Implement BADI BADI_ACC_DOCUMENT for Enabling Parameter Extension2 in BAPI_ACC_DOCUMENT_POST.
Implement BADI BADI_ACC_DOCUMENT.
Implement BADI BADI_ACC_DOCUMENT.
BAPI_ACC_DOCUMENT_POST is meanly used to create FI documents like as GL, AP, and AR (TCode F-02). This BAPI, there are EXTENTION2 table parameters that can be used to throw data for which fields are not provided by BAPI BAPI_ACC_DOCUMENT_POST, such as the Ref field. Key 1 Header (BKPF-XREF1_HD), or even for the need to change the key post from the journal to be made.
However, this EXTENTION2 parameter will only function if BADI_ACC_DOCUMENT has been implemented. Following are the steps for implementing BADI_ACC_DOCUMENT:
Copy class CL_EXM_IM_ACC_DOCUMENT to custome class YCL_EXM_IM_ACC_DOCUMENT via SE24. Activate.
Run TCode SE19 and create BADI_ACC_DOCUMENT in the Create Implementation >> New BAdI section.
Write the name of the BAdI Enhancement Implementation along with the Composite Enhancement Implementation (if there is no composite yet, create it first.
• Enter the name of the BAdI custome in step 3 and the name of the custom class in step 1, and select the name BAdI Definitioan = BADI_ACC_DOCUMENT.
1.Save & Activate.
1.On the Technical Tab, double click the custom class for BAdI custom coding according to the requirement.
1.Double click the ~ CHANGE method to start coding.
- Save & Activate
- ABAP program, the passing parameter extension2 is as follows
DATA: ld_header LIKE bapiache09, ld_objkey LIKE bapiache09-obj_key, lt_gl LIKE bapiacgl09 OCCURS 0 WITH HEADER LINE, lt_ap LIKE bapiacap09 OCCURS 0 WITH HEADER LINE, lt_amt LIKE bapiaccr09 OCCURS 0 WITH HEADER LINE, lt_ext LIKE bapiparex OCCURS 0 WITH HEADER LINE, lt_ret LIKE bapiret2 OCCURS 0 WITH HEADER LINE, ld_itemno LIKE bapiacgl09-itemno_acc, CONSTANT: c_struct TYPE TE_STRUC VALUE 'XREF1_HD'. CLEAR lt_ext. ADD 1 TO ld_itemno. lt_ext-structure = c_struct. lt_ext-valuepart1 = ld_itemno. lt_ext-valuepart2 = 'Test Ref Key Header'. APPEND lt_ext. CLEAR lt_ext. ADD 1 TO ld_itemno. lt_ext-structure = c_struct. lt_ext-valuepart1 = ld_itemno. lt_ext-valuepart2 = 'Test Ref Key Header'. APPEND lt_ext. *isi parameter ld_header, lt_gl, lt_amt sesuai requirement. CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST' EXPORTING documentheader = ld_header IMPORTING obj_key = ld_objkey TABLES accountgl = lt_gl accountpayable = lt_ap currencyamount = lt_amt return = lt_ret extension2 = lt_ext EXCEPTIONS OTHERS = 1. IF ld_objkey IS INITIAL OR ld_objkey EQ '$'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ENDIF.
The CHANGE method does the following coding:
DATA: wa_extension TYPE bapiparex, wa_accit TYPE accit, ld_posnr TYPE posnr_acc. LOOP AT c_extension2 INTO wa_extension. ld_posnr = wa_extension-valuepart1. READ TABLE c_accit WITH KEY posnr = ld_posnr INTO wa_accit. IF sy-subrc IS INITIAL. IF wa_extension-structure = 'XREF1_HD'. wa_accit-xref1_hd = wa_extension-valuepart2. MODIFY c_accit FROM wa_accit index sy-tabix TRANSPORTING xref1_hd. ENDIF. ENDIF. ENDLOOP.
No comments:
Post a Comment