KB21N、KB24N作业分配与冲销
一、KB21N
调用BAPI:BAPI_ACC_ACTIVITY_ALLOC_POST
经测试,分配订单时行项目一次性最多传332条数据
"-----------------------------@斌将军----------------------------- DATA:ls_header TYPE bapidochdrp, lv_doc_no TYPE bapidochdrp-doc_no, lt_item TYPE TABLE OF bapiaaitm, ls_item TYPE bapiaaitm, lt_return TYPE TABLE OF bapiret2, ls_return TYPE bapiret2. DATA:lv_check TYPE char1, lv_message TYPE char200. ls_header-co_area = 'LLLG'. ls_header-docdate = sy-datum. ls_header-postgdate = sy-datum. ls_header-username = sy-uname. ls_header-val_period = sy-datum+4(2). ls_header-val_fisyear = sy-datum+0(4). ls_item-send_cctr = '1000410101'. ls_item-acttype = 'L010'. ls_item-actvty_qty = '308.6'. *ls_item-ACTIVITYUN = 'MIN'. ls_item-rec_order = '000110000003'. ls_item-seg_text = 'test'. APPEND ls_item TO lt_item. CALL FUNCTION 'BAPI_ACC_ACTIVITY_ALLOC_POST' EXPORTING doc_header = ls_header ignore_warnings = 'X' IMPORTING doc_no = lv_doc_no TABLES doc_items = lt_item return = lt_return. CLEAR:lv_check,lv_message. LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'. lv_check = 'E'. lv_message = lv_message && ls_return-message. ENDLOOP. IF lv_check = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. WRITE: lv_doc_no. ENDIF. "-----------------------------@斌将军-----------------------------
二、KB24N
调用BAPI:BAPI_ACC_ACT_POSTINGS_REVERSE
"-----------------------------@斌将军----------------------------- DATA:ls_header TYPE bapidochdrr, lt_doc_no TYPE TABLE OF bapidochdrr, ls_doc_no TYPE bapidochdrr, lt_return TYPE TABLE OF bapiret2, ls_return TYPE bapiret2. DATA:lv_check TYPE char1, lv_message TYPE char200. ls_header-co_area = 'LLLG'. ls_header-docdate = sy-datum. ls_header-postgdate = sy-datum. ls_header-username = sy-uname. ls_header-rvrs_no = '0104452804'."需要冲销的凭证 CALL FUNCTION 'BAPI_ACC_ACT_POSTINGS_REVERSE' EXPORTING doc_header = ls_header ignore_warnings = 'X' * CO_TRANSACTION = ' ' TABLES doc_no = lt_doc_no return = lt_return . CLEAR:lv_check,lv_message. LOOP AT lt_return INTO ls_return WHERE type CA 'AEX'. lv_check = 'E'. lv_message = lv_message && ls_return-message. ENDLOOP. IF lv_check = 'E'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. ENDIF. "-----------------------------@斌将军-----------------------------
定期更文,欢迎关注