DATA: lt_billing TYPE STANDARD TABLE OF bapivbrk,
lt_return TYPE STANDARD TABLE OF bapireturn1.
DATA: lt_errors TYPE STANDARD TABLE OF bapivbrkerrors,
lt_success TYPE STANDARD TABLE OF bapivbrksuccess.
lt_billing = VALUE #( ( ref_doc = cs_head-vbeln_vl bill_date = lv_budat ref_doc_ca = 'J' ) ).
CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
EXPORTING
testrun = abap_true
TABLES
billingdatain = lt_billing
errors = lt_errors
return = lt_return
success = lt_success.
LOOP AT lt_return TRANSPORTING NO FIELDS WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT lt_return INTO DATA(ls_ret).
mt_ret = VALUE #( BASE mt_ret ( CORRESPONDING #( ls_ret ) ) ).
ENDLOOP.
RETURN.
ENDIF.
FREE: lt_errors,lt_return,lt_success.
lt_billing = VALUE #( ( ref_doc = cs_head-vbeln_vl bill_date = lv_budat ref_doc_ca = 'J' ) ).
CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
TABLES
billingdatain = lt_billing
errors = lt_errors
return = lt_return
success = lt_success.
LOOP AT lt_return TRANSPORTING NO FIELDS WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
cs_head-vbeln_vf = VALUE #( lt_success[ 1 ]-bill_doc OPTIONAL ).
IF cs_head-vbeln_vf IS INITIAL.
RETURN.
ENDIF.
销售发票创建-BAPI_BILLINGDOC_CREATEMULTIPLE
最新推荐文章于 2024-07-15 17:45:44 发布