ABAP

[ABAP] Billing BAPI (BAPI_BILLINGDOC_CREATEMULTIPLE)

mrexuex 2024. 5. 9. 14:19

🚩 코드

  DATA : LT_BILLING TYPE TABLE OF BAPIVBRK,
         LT_RETURN  TYPE TABLE OF BAPIRET1,
         LT_SUCCESS TYPE TABLE OF BAPIVBRKSUCCESS,
         LT_MESG    TYPE TABLE OF MESG WITH HEADER LINE.


  APPEND VALUE #( REF_DOC    = 'ALV에서 선택한 납품문서'
                  REF_DOC_CA = 'ALV에서 셀렉트된 VBTYP'
                  BILL_DATE  = '입력받은 WADAT_IST' ) TO LT_BILLING.


  CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
    TABLES
      BILLINGDATAIN = LT_BILLING
      RETURN        = LT_RETURN
      SUCCESS       = LT_SUCCESS.


  READ TABLE LT_SUCCESS INTO DATA(LS_SUCCESS) INDEX GC_1.

  IF LS_SUCCESS-BILL_DOC IS INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      INTO LT_MESG-TEXT
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    MESSAGE E000 WITH LT_MESG-TEXT.

  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT = 'X'.

    MESSAGE S011. "Processed successfully.
  ENDIF.
반응형