ABAP程序做批處理一般用BDC來完成。本文主要講解如何將BDC放在SM35的會話里。
步驟:
- 調用BDC_OPEN_GROUP,通過參數GROUP傳入會話名稱
- 編輯BDC錄屏數據,調用函數BDC_INSERT,通過參數TCODE,CTUPARAMS,DYNPROTAB傳入BDC相關數據
- 調用BDC_CLOSE_GROUP關閉會話
- 程序跑完后,SM35通過會話名稱,能找到對應的會話,后台執行后,SM37能看見對應Job
注意點:
- 第2步,可以循環放入多條數據

DATA:lv_bdcgroup TYPE char12. DATA: bdcdata LIKE STANDARD TABLE OF bdcdata WITH HEADER LINE, bdcmsg LIKE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE. MOVE 'JOB_GROUP' TO lv_bdcgroup. CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING client = sy-mandt group = lv_bdcgroup keep = 'X' user = sy-uname EXCEPTIONS client_invalid = 1 destination_invalid = 2 group_invalid = 3 group_is_locked = 4 holddate_invalid = 5 internal_error = 6 queue_error = 7 running = 8 system_lock_error = 9 user_invalid = 10 OTHERS = 11. LOOP AT itab INTO ls_itab. CLEAR: bdcdata. REFRESH bdcdata. PERFORM bdc_dynpro USING 'SAPLCHRG' '1000'. PERFORM bdc_field USING 'BDC_OKCODE' '=ENTR'. ... ... PERFORM bdc_dynpro USING 'SAPLCHRG' '1000'. PERFORM bdc_field USING 'BDC_OKCODE' '=SAVE'. CALL FUNCTION 'BDC_INSERT' EXPORTING tcode = 'MM01' ctuparams = t_opt TABLES dynprotab = bdcdata EXCEPTIONS internal_error = 1 not_open = 2 queue_error = 3 tcode_invalid = 4 printing_invalid = 5 posting_invalid = 6 OTHERS = 7. ENDLOOP. CALL FUNCTION 'BDC_CLOSE_GROUP' EXCEPTIONS not_open = 1 queue_error = 2 OTHERS = 3.