簡單說一下這個DBC,之前也一直在用,每次找記錄都很麻煩,所以今天干脆就記下來吧
T-CODE:SHDB
輸入個NAME,T-CODE.然后執行。。。最后用保存或者返回來結束錄屏。
然后選擇記錄,創建程序,放到本地,這個時候,記錄的所有東西都在程序里了。。。下面就是處理部分了
1.跳轉類的:
開頭定義的地方加上兩個變量
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE. DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. DATA: GS_CTU_PARAMS TYPE CTU_PARAMS.
BDCDATA是存這些錄屏過程中的變量及常量等
GS_ctu_PARAMS是調事務代碼時帶的一些參數,是否前台執行,報錯停止等等。。。。
然后從程序中選一些dynpro 和field的BDC行。。。
有些不需要的字段或者屏幕,可以直接刪除對應代碼
CLEAR bdcdata[]. gs_ctu_params-updmode = 'S'. gs_ctu_params-dismode = 'E'. gs_ctu_params-defsize = ''."設置窗口非默認大小 "調用BDC執行 T-code COOIS 顯示訂單抬頭 PERFORM bdc_dynpro USING 'PPIO_ENTRY' '1000'. PERFORM bdc_field USING 'BDC_OKCODE' '=ONLI'. PERFORM bdc_field USING 'PPIO_ENTRY_SC1100-PPIO_LISTTYP' 'PPIOM000'. PERFORM bdc_field USING 'PPIO_ENTRY_SC1100-ALV_VARIANT' '000000000001'. PERFORM bdc_field USING 'BDC_CURSOR' 'S_WERKS-LOW'. * perform bdc_field using 'S_AUFNR-LOW' * GS_AFKO-AUFNR. PERFORM bdc_field USING 'S_AUART-LOW' 'DL01'. PERFORM bdc_field USING 'S_ECKEN-LOW' gw_zstybcp-gstrp. * GS_AFKO-GSTRP. PERFORM bdc_field USING 'S_WERKS-LOW' gw_zstybcp-werks. * GS_AFKO-WERKS. PERFORM bdc_field USING 'S_COMPO-LOW' gw_zstybcp-matnr. * GS_AFKO-MATNR. PERFORM bdc_dynpro USING 'SAPLCOISOUTPUT' '0100'. CALL TRANSACTION 'COOIS' USING bdcdata OPTIONS FROM gs_ctu_params.
至於上面的s和E是什么意思,你運行一下剛生成的程序,你就看到了。。。
2.執行類的錄屏
這類的錄屏在有些沒有標准函數或者太簡單,或者太復雜的函數處理的時候偷懶的做法。。。
能簡單就簡單嘛。
和上面同樣的方法生成程序。
然后選擇需要的代碼段。。。不需要的可以注釋,或者刪除
CLEAR BDCDATA[]. PERFORM BDC_DYNPRO USING 'SAPMM06I' '0100'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EINE-WERKS'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'. PERFORM BDC_FIELD USING 'EINA-LIFNR' GW_EXCEL-LIFNR. PERFORM BDC_FIELD USING 'EINA-MATNR' GW_EXCEL-MATNR. PERFORM BDC_FIELD USING 'EINE-EKORG' GW_EXCEL-EKORG. PERFORM BDC_FIELD USING 'EINE-WERKS' GW_EXCEL-WERKS. PERFORM BDC_FIELD USING 'RM06I-NORMB' 'X'. PERFORM BDC_DYNPRO USING 'SAPMM06I' '0101'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=EINE'. * PERFORM BDC_FIELD USING 'EINA-MEINS' * RECORD-MEINS_006. * PERFORM BDC_FIELD USING 'EINA-UMREZ' * RECORD-UMREZ_007. * PERFORM BDC_FIELD USING 'EINA-UMREN' * RECORD-UMREN_008. PERFORM BDC_DYNPRO USING 'SAPMM06I' '0102'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EINE-MWSKZ'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'. * PERFORM BDC_FIELD USING 'EINE-APLFZ' * RECORD-APLFZ_009. * PERFORM BDC_FIELD USING 'EINE-EKGRP' * RECORD-EKGRP_010. * PERFORM BDC_FIELD USING 'EINE-NORBM' * RECORD-NORBM_011. * PERFORM BDC_FIELD USING 'EINE-WEBRE' * RECORD-WEBRE_012. PERFORM BDC_FIELD USING 'EINE-MWSKZ' GW_EXCEL-MWSKZ. * PERFORM BDC_FIELD USING 'EINE-IPRKZ' * RECORD-IPRKZ_014. PERFORM BDC_DYNPRO USING 'SAPMM06I' '0105'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'EINE-ANGNR'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=KO'. PERFORM BDC_DYNPRO USING 'SAPLV14A' '0102'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'VAKE-DATAB(01)'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=NEWD'. PERFORM BDC_DYNPRO USING 'SAPMV13A' '0201'. PERFORM BDC_FIELD USING 'BDC_CURSOR' 'KONP-KBETR(01)'. PERFORM BDC_FIELD USING 'BDC_OKCODE' '=SICH'. PERFORM BDC_FIELD USING 'RV13A-DATAB' GW_EXCEL-LIFAB. PERFORM BDC_FIELD USING 'RV13A-DATBI' GW_EXCEL-LIFBI. PERFORM BDC_FIELD USING 'KONP-KBETR(01)' GW_EXCEL-NETPR. PERFORM BDC_FIELD USING 'KONP-KPEIN(01)' GW_EXCEL-KPEIN. * PERFORM BDC_TRANSACTION USING 'ME12'. CALL TRANSACTION 'ME12' USING BDCDATA MODE 'N' UPDATE 'S' MESSAGES INTO MESSTAB.
這段是做的采購信息記錄,修改價格,稅碼和單位數量的。。。
這種最后CALL TRANSACTION和上面的那種是不同的方式,這種可以接收返回消息
然后處理返回消息,判斷是否成功等。。。
好了,就說到這,有不懂得,自己研究研究。。。