Friday, 19 February 2021

SAP ABAP Posting Invoice From Parked Document Using BAPI

 REPORT ZPOST_INVOICE.


DATA :
  I_BELNR      TYPE RBKP_V-BELNR,
  I_GJAHR      TYPE RBKP_V-GJAHR,
  E_RBKPV      TYPE MRM_RBKPV,
  I_RBKPV      TYPE MRM_RBKPV,
  T_DRSEG      TYPE MMCR_TDRSEG,
  TI_DRSEG     TYPE MMCR_TDRSEG,
  I_EDITOR     TYPE REF TO C_TEXTEDIT_CONTROL,
  I_DO_PRICING TYPE BOOLE-BOOLE,
  I_BOPF_CALL  TYPE BOOLE-BOOLE.

DATA:
  EX_OBJECT_CX_ROOT TYPE REF TO CX_ROOT,
  EX_TEXT           TYPE STRING,
  EX_TEXT_LONG      TYPE STRING.


I_BELNR '5105603952'.
I_GJAHR '2021'.

CALL FUNCTION 'MRM_INVOICE_READ'
  EXPORTING
    I_BELNR I_BELNR
    I_GJAHR I_GJAHR
*   I_XSELK = ' '
*   I_BUFFER_ON            = X
*   I_LOCK  = ' '
*   I_DISPL = ' '
  IMPORTING
    E_RBKPV E_RBKPV
*   T_RBSELCONTRACT        =
*   T_RBSELTRANSPMNG       =
*   T_RBSELTM              =
  TABLES
    T_DRSEG T_DRSEG
*   T_KONV  =
*   T_RBSELBEST            =
*   T_RBSELLIFS            =
*   T_RBSELFRBR            =
*   T_RBSELWERK            =
*   T_RBSELERFB            =
*   T_RBSELTRAN            =
* EXCEPTIONS
*   ENTRY_NOT_FOUND        = 1
*   LOCK_ERROR             = 2
*   OTHERS  = 3
  .
IF SY-SUBRC 0.
  TI_DRSEG T_DRSEG.
  I_RBKPV  E_RBKPV.

  TRY .
      CALL FUNCTION 'MRM_PARKED_INVOICE_POST'
        EXPORTING
          I_RBKPV  I_RBKPV
          TI_DRSEG TI_DRSEG.

      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT 'X'.
    CATCH CX_ROOT INTO EX_OBJECT_CX_ROOT.
      EX_TEXT EX_OBJECT_CX_ROOT->GET_TEXT).
      EX_TEXT_LONG EX_OBJECT_CX_ROOT->GET_LONGTEXT).
  ENDTRY.




  WRITE 'Posted'.

ENDIF.

SAP ABAP Parking Invoice With Purchase Order Using BAPI

 REPORT ZPARK_INVOICE.


DATA :
  HEADERDATA       TYPE BAPI_INCINV_CREATE_HEADER,
  ITEMDATA         TYPE TABLE OF BAPI_INCINV_CREATE_ITEM,
  LSEMDATA         TYPE BAPI_INCINV_CREATE_ITEM,
  ACCOUNTINGDATA   TYPE TABLE OF BAPI_INCINV_CREATE_ACCOUNT,
  GLACCOUNTDATA     TYPE TABLE OF BAPI_INCINV_CREATE_GL_ACCOUNT,
  LSACCOUNTDATA     TYPE BAPI_INCINV_CREATE_GL_ACCOUNT,
  ITRETURN         TYPE TABLE OF BAPIRET2,
  INVOICEDOCNUMBER TYPE BAPI_INCINV_FLD-INV_DOC_NO,
  FISCALYEAR       TYPE BAPI_INCINV_FLD-FISC_YEAR.

CLEAR HEADERDATA.
HEADERDATA-INVOICE_IND 'X'.
HEADERDATA-DOC_TYPE 'KR'.
HEADERDATA-DOC_DATE   SY-DATUM.
HEADERDATA-PSTNG_DATE SY-DATUM.
HEADERDATA-BLINE_DATE SY-DATUM.
HEADERDATA-REF_DOC_NO 'IV/PO000000001'.
HEADERDATA-COMP_CODE  '1000'.
HEADERDATA-CURRENCY   'IDR'.
HEADERDATA-GROSS_AMOUNT '2000000'.
HEADERDATA-HEADER_TXT   'Parking INV'.

CLEAR LSEMDATA.
LSEMDATA-INVOICE_DOC_ITEM '000010'.
LSEMDATA-PO_NUMBER        '4500003809'.
LSEMDATA-PO_ITEM          '000010'.
LSEMDATA-ITEM_AMOUNT      '1050000'.
LSEMDATA-QUANTITY         '300'.
LSEMDATA-PO_UNIT          'ST'.
LSEMDATA-ITEM_TEXT        'Parking INV'.
APPEND LSEMDATA TO ITEMDATA.

CLEAR LSACCOUNTDATA.
LSACCOUNTDATA-INVOICE_DOC_ITEM '000010'.
LSACCOUNTDATA-GL_ACCOUNT       '0063003000'.
LSACCOUNTDATA-ITEM_AMOUNT      '1050000'.
LSACCOUNTDATA-DB_CR_IND        'S'.
LSACCOUNTDATA-COMP_CODE        '1000'.
LSACCOUNTDATA-TAX_CODE         'I1'.
APPEND LSACCOUNTDATA TO GLACCOUNTDATA.

CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
  EXPORTING
    HEADERDATA       HEADERDATA
*   ADDRESSDATA      =
  IMPORTING
    INVOICEDOCNUMBER INVOICEDOCNUMBER
    FISCALYEAR       FISCALYEAR
  TABLES
    ITEMDATA         ITEMDATA
*   ACCOUNTINGDATA   =
    GLACCOUNTDATA    GLACCOUNTDATA
*   MATERIALDATA     =
*   TAXDATA          =
*   WITHTAXDATA      =
*   VENDORITEMSPLITDATA       =
    RETURN           ITRETURN
*   EXTENSIONIN      =
*   TM_ITEMDATA      =
*   NFMETALLITMS     =
  .

ABAP CDS View Part 10 : Authorization & DCL untuk ABAP CDS

Authorization & DCL di ABAP CDS | Panduan Lengkap (PFCG, @AccessControl, DCL) Authorization & DCL untuk ABAP CDS — Pandua...