【转】NAST表的使用
應(yīng)用場景:
如何在smartform打印程序中使用nast表,來記錄打印狀態(tài),我們將打印狀態(tài)定為:未打印、已打印、已不正確地打印。
Nast信息狀態(tài)表
分析:在nast表中有VSTAT(消息處理狀態(tài))字段,0代表未處理;1代表處理成功;2代表已不正確的處理;所以我們可以將要打印的記錄記錄到表nast中,用這個字段來代表打印狀態(tài),然后去調(diào)用smartform的function,如果返回值不等于,這代表用戶打印了但是是不成功的處理,所以將這張單據(jù)的nast中的vstat設(shè)置成2。需要使用nast表的四個主鍵kappl、Objky、kschl、spras。
Objky記錄打印的單據(jù)號;kschl記錄信息類型,我們可以設(shè)定自定義規(guī)則比如我們的程序編號;spras記錄信息的語言;kappl記錄信息的篩選條件,因為這張表可能會被用于記錄其他信息,所以為了便于區(qū)分我們特定smartform的信息記錄設(shè)為’V7’.
第一步:nast表賦值
SELECT SINGLE spld
? ?? ?FROM usr01
? ?? ?INTO nast-ldest
? ???WHERE bname = sy-uname.
? ? IF sy-subrc <> 0.
? ?? ?MESSAGE e018.??“打印輸出設(shè)備出錯,請先用事務(wù)碼SU3維護.
? ? ENDIF.
? ? nast-spras = ‘1′.
? ? nast-kappl = ‘V7′.
? ? nast-kschl = ‘Y020′.
? ? nast-dimme = ‘X’.? ??“立即打印
nast-objky = fp_wa_header-tknum.”假設(shè)要打印的是裝運單
第二步:調(diào)用smartform,并返回調(diào)用成功與否的值
調(diào)用smartform的時候傳入nast表參數(shù)
??l_wa_out_option-tddest? ???= fp_nast-ldest.?“打印設(shè)備
??l_wa_out_option-tdcopies? ?= fp_nast-anzal.?“副本數(shù)
??l_wa_out_option-tdimmed? ? = fp_nast-dimme.?“立即打印
??l_wa_out_option-tddelete? ?= fp_nast-delet.?“打印后刪除
??l_wa_out_option-tdcovtitle = fp_nast-tdcovtitle.“Text for coverpage
??l_wa_out_option-tdautority = fp_nast-tdautority.“打印:權(quán)限
??l_wa_out_option-tdcover? ? = fp_nast-tdocover.??“打印:封面
??l_wa_out_option-tddivision = fp_nast-tddivision.“打印參數(shù),封面的類
??l_wa_out_option-tddataset??= fp_nast-dsnam.“假脫機請求:名
??l_wa_out_option-tdsuffix1??= fp_nast-dsuf1.“假脫機請求:suffx1
??l_wa_out_option-tdsuffix2??= fp_nast-dsuf2.“假脫機請求:suffx2
??l_wa_out_option-tdcovtitle = fp_nast-tdcovtitle.“打印參數(shù),封面文本
??l_wa_out_option-tdarmod? ? = fp_nast-tdarmod.“打印: 存檔模式
??l_wa_out_option-tddest? ???= fp_nast-ldest.“假脫機: 輸出設(shè)備
??l_wa_out_option-tdarmod? ? = fp_nast-tdarmod.“打印: 存檔模式
??l_wa_out_option-tdschedule = fp_nast-tdschedule.“發(fā)送時間請求
第三步:更新nast表
可以調(diào)用RV_MESSAGE_UPDATE_SINGLE來更新nast表。
既然我們已經(jīng)將打印的單據(jù)保存到了nast表,那么我們就可以很容易的實現(xiàn)用戶需要區(qū)分單據(jù)是否已打印的需求了。
假設(shè)用戶通過選擇屏幕選擇的裝運單數(shù)據(jù)在內(nèi)表fp_i_output中。
通過上述我們實現(xiàn)了記錄單據(jù)是否打印的目的,但也存在一個問題,因為公司存在多種單據(jù)的打印,如果都需要記錄打印狀態(tài),都使用nast表,那么隨著時間的推移nast表記錄的數(shù)據(jù)量將會是非常龐大的。當(dāng)數(shù)據(jù)量達到一定數(shù)量級時,打印程序每次都去查詢nast表,程序的性能就會受到影響。
總結(jié)
以上是生活随笔為你收集整理的【转】NAST表的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PP】长交期计划(LTP)简介
- 下一篇: 【采购订单】利用BAPI创建PO后丢失消