Bapi Acc Document Post
Bapi Acc Document Post
Bapi Acc Document Post
*&---------------------------------------------------------------------*
*& Report Y_BAPI_ACC_DOCUMENT_POST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT y_bapi_acc_document_post_1.
DATA: ls_header TYPE bapiache09.
*
* move: 'BKPFF' to ls_header-obj_type.
* call function 'OWN_LOGICAL_SYSTEM_GET'
* importing
* own_logical_system = ls_header-obj_sys.
*
* move: ls_bkpf-glvor to ls_header-bus_act,
* sy-uname to ls_header-username,
* <lfs_datos>-bktxt to ls_header-header_txt,
DATA: LV_BELNR TYPE BELNR_D.
data: lv_bukrs TYPE bukrs.
lv_bukrs = 'CGAL'.
LV_BELNR = '0400000000'.
*LV_BELNR = '9400000003'.
*LV_BELNR = '9400000015'.
SELECT SINGLE *
FROM bkpf
INTO @DATA(ls_bkpf)
WHERE bukrs EQ @lv_bukrs AND
belnr EQ @LV_BELNR AND
* belnr EQ '9400000025' AND
gjahr EQ '2021'.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
own_logical_system = ls_header-obj_sys.
ls_header-obj_type = 'BKPFF'.
ls_header-bus_act = ls_bkpf-glvor.
ls_header-bus_act = 'RFBU'.
ls_header-username = sy-uname.
ls_header-header_txt = ls_bkpf-bktxt.
ls_header-comp_code = ls_bkpf-bukrs.
ls_header-doc_date = ls_bkpf-bldat.
ls_header-pstng_date = ls_bkpf-budat.
ls_header-doc_type = ls_bkpf-blart.
ls_header-FIS_PERIOD = ls_bkpf-monat.
ls_header-ref_doc_no = ls_bkpf-xblnr.
DATA: lt_return TYPE STANDARD TABLE OF bapiret2.
DATA: lt_currency TYPE TABLE OF bapiaccr09,
ls_currency TYPE bapiaccr09.
DATA: lt_accountgl TYPE TABLE OF bapiacgl09,
ls_bapiacgl09 TYPE bapiacgl09.
data: lt_BAPIACAR09 TYPE TABLE OF BAPIACAR09,
ls_BAPIACAR09 TYPE BAPIACAR09.
*--------------------------------------------------------------------*
**--------------------------------------------------------------------*
** Posicion de la moneda
**--------------------------------------------------------------------*
* move: '001' to ls_currency-itemno_acc,
* 'EUR' to ls_currency-currency.
*
* if <lfs_bseg>-shkzg eq 'S'.
* ls_currency-amt_doccur = '110'.
* elseif <lfs_bseg>-shkzg eq 'H'.
* ls_currency-amt_doccur = <lfs_bseg>-wrbtr * -1.
* else.
* " nothing to do with default case
* endif.
*APPEND ls_currency TO lt_currency.
DATA: lt_bseg TYPE STANDARD TABLE OF bseg.
CALL FUNCTION 'FI_DOCUMENT_READ'
EXPORTING
* I_AWTYP = 'BKPF'
* I_AWREF =
* I_AWORG = ' '
* I_AWSYS = ' '
* I_XNBKL = ' '
i_bukrs = lv_bukrs "'2410'
I_BELNR = LV_BELNR "'9400000025'
* I_BELNR = '9400000024'
* i_belnr = '1600000000'
i_gjahr = '2021'
* I_BSTAT = ' '
* I_XBLNR = ' '
* I_BUDAT =
* I_BLART = ' '
* I_AUTH_RFC = ' '
* I_BSEG_STRUCNAME = 'BSEG'
* I_CAST_TO_CALLING_BSEG = 'X'
* I_BKPF_STRUCNAME = 'BKPF'
* I_CAST_TO_CALLING_BKPF = 'X'
* I_CHECK_FOR_MAPPING_ISSUES = 'X'
TABLES
t_bseg = lt_bseg
EXCEPTIONS
wrong_input = 1
not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT lt_bseg ASSIGNING FIELD-SYMBOL(<lfs_bseg>) TO 1 FROM 1.
*LOOP AT lt_bseg ASSIGNING FIELD-SYMBOL(<lfs_bseg>).
* IF <lfs_bseg>-bschl = '01'.
ls_bapiacgl09-itemno_acc = <lfs_bseg>-buzei.
* ls_bapiacgl09-gl_account = <lfs_bseg>-hkont.
ls_bapiacgl09-gl_account = <lfs_bseg>-KUNNR.
ls_bapiacgl09-comp_code = <lfs_bseg>-bukrs.
ls_bapiacgl09-pstng_date = sy-datum.
*ls_bapiacgl09-doc_type = ls_bseg-bkpf-blart.
ls_bapiacgl09-profit_ctr = <lfs_bseg>-prctr.
*move:
*<lfs_bseg>-sgtxt to ls_bapiacgl09-item_text.
* ' ' 'FS006-DOCID' '*',
* ' ' 'RF05A-NEWBS' '06', "50 40
* ' ' 'RF05A-NEWKO' i_bseg-kunnr, GL_ACCOUNT
* ' ' 'BSEG-WRBTR' d_wrbtr_c,
* ' ' 'BSEG-SGTXT' i_bkpf-belnr,
* ' ' 'BSEG-KIDNO' i_bkpf-belnr,
* ' ' 'BSEG-ZTERM' i_bseg-zterm,
* ' ' 'RF05A-NEWBS' '18',
* ' ' 'RF05A-NEWKO' i_bseg-kunnr,
*
* ' ' 'BSEG-XREF1' i_bseg-xref1,
* ' ' 'BSEG-XREF2' i_bseg-xref2,
* ' ' 'BSEG-XREF3' i_bseg-xref3,
*
* ' ' 'BSEG-WRBTR' d_wrbtr_c,
* ' ' 'BSEG-SAMNR' i_bseg-samnr,
* ' ' 'BSEG-SGTXT' d_c_fdev,
* ELSE.
* ENDIF.
MOVE:
* MOVE: <lfs_bseg>-buzei TO ls_bapiacgl09-itemno_acc,
* <lfs_bseg>-hkont TO ls_bapiacgl09-gl_account,
<lfs_bseg>-sgtxt TO ls_bapiacgl09-item_text,
**** ls_bseg-belnr TO ls_bapiacgl09-ac_doc_no,
<lfs_bseg>-xref1 TO ls_bapiacgl09-ref_key_1,
<lfs_bseg>-xref2 TO ls_bapiacgl09-ref_key_2,
<lfs_bseg>-xref3 to ls_bapiacgl09-ref_key_3.
* <lfs_bseg>-kostl to ls_bapiacgl09-costcenter, "acct_key,
* <lfs_bseg>-koart to ls_bapiacgl09-acct_type,
*** ls_bseg-bkpf-blart TO ls_bapiacgl09-doc_type,
* <lfs_bseg>-bukrs to ls_bapiacgl09-comp_code,
* <lfs_bseg>-gsber TO ls_bapiacgl09-bus_area,
* <lfs_bseg>-fkber to ls_bapiacgl09-func_area,
* <lfs_bseg>-werks to ls_bapiacgl09-plant,
*** ls_bseg-bkpf TO ls_bapiacgl09-fis_period,
* <lfs_bseg>-gjahr to ls_bapiacgl09-fisc_year,
* <lfs_bseg>-valut TO ls_bapiacgl09-value_date,
* <lfs_bseg>-kunnr to ls_bapiacgl09-customer,
* <lfs_bseg>-xskrl to ls_bapiacgl09-cshdis_ind,
* <lfs_bseg>-lifnr to ls_bapiacgl09-vendor_no,
* <lfs_bseg>-zuonr to ls_bapiacgl09-alloc_nmbr,
********** <lfs_bseg>-mwskz to ls_bapiacgl09-tax_code.
* <lfs_bseg>-txjcd to ls_bapiacgl09-taxjurcode,
* <lfs_bseg>-kstrg to ls_bapiacgl09-costobject,
* <lfs_bseg>-kostl to ls_bapiacgl09-costcenter,
* <lfs_bseg>-lstar to ls_bapiacgl09-acttype,
* <lfs_bseg>-prctr to ls_bapiacgl09-profit_ctr,
* <lfs_bseg>-prctr to ls_bapiacgl09-part_prctr,
* <lfs_bseg>-nplnr to ls_bapiacgl09-network,
* <lfs_bseg>-aufnr to ls_bapiacgl09-orderid,
* <lfs_bseg>-geber to ls_bapiacgl09-fund,
* <lfs_bseg>-fistl to ls_bapiacgl09-funds_ctr,
* <lfs_bseg>-fipos to ls_bapiacgl09-cmmt_item,
* <lfs_bseg>-prznr to ls_bapiacgl09-co_busproc,
** ls_bseg-anln1 TO ls_bapiacgl09-asset_no,
** ls_bseg-anln2 TO ls_bapiacgl09-sub_number,
* <lfs_bseg>-menge to ls_bapiacgl09-quantity,
* <lfs_bseg>-meins to ls_bapiacgl09-base_uom_iso,
* <lfs_bseg>-erfmg to ls_bapiacgl09-entry_qnt,
* <lfs_bseg>-erfme to ls_bapiacgl09-entry_uom,
* <lfs_bseg>-matnr to ls_bapiacgl09-material,
* <lfs_bseg>-hrkft to ls_bapiacgl09-orig_group,
* <lfs_bseg>-vptnr to ls_bapiacgl09-part_acct,
* <lfs_bseg>-pargb to ls_bapiacgl09-tr_part_ba,
* <lfs_bseg>-vbund to ls_bapiacgl09-trade_id,
* <lfs_bseg>-bwkey to ls_bapiacgl09-val_area,
* <lfs_bseg>-bwtar to ls_bapiacgl09-val_type,
* <lfs_bseg>-ebeln to ls_bapiacgl09-po_number,
* <lfs_bseg>-ebelp to ls_bapiacgl09-po_item,
* <lfs_bseg>-projn to ls_bapiacgl09-itm_number,
* <lfs_bseg>-fkber to ls_bapiacgl09-func_area_long,
* <lfs_bseg>-grant_nbr to ls_bapiacgl09-grant_nbr,
* <lfs_bseg>-bewar to ls_bapiacgl09-cs_trans_t,
* <lfs_bseg>-measure to ls_bapiacgl09-measure,
* <lfs_bseg>-segment to ls_bapiacgl09-segment,
* <lfs_bseg>-psegment to ls_bapiacgl09-partner_segment,
* <lfs_bseg>-kblnr to ls_bapiacgl09-res_doc,
* <lfs_bseg>-kblpos to ls_bapiacgl09-res_item,
* <lfs_bseg>-perop_beg to ls_bapiacgl09-billing_period_start_date,
* <lfs_bseg>-perop_end to ls_bapiacgl09-billing_period_end_date,
* <lfs_bseg>-ppa_ex_ind to ls_bapiacgl09-ppa_ex_ind,
* <lfs_bseg>-fastpay to ls_bapiacgl09-fastpay,
* <lfs_bseg>-budget_pd to ls_bapiacgl09-budget_period,
* <lfs_bseg>-pbudget_pd to ls_bapiacgl09-partner_budget_period,
* <lfs_bseg>-pgeber to ls_bapiacgl09-partner_fund,
* <lfs_bseg>-taxps to ls_bapiacgl09-itemno_tax.
APPEND ls_bapiacgl09 TO lt_accountgl.
*--------------------------------------------------------------------*
* Posicion de la moneda
*--------------------------------------------------------------------*
MOVE: <lfs_bseg>-buzei TO ls_currency-itemno_acc,
ls_bkpf-waers TO ls_currency-currency.
IF <lfs_bseg>-shkzg EQ 'S'.
* ls_currency-amt_doccur = <lfs_bseg>-wrbtr.
ls_currency-DISC_BASE = <lfs_bseg>-wrbtr.
ls_currency-AMT_DOCCUR = <lfs_bseg>-wrbtr.
ELSEIF <lfs_bseg>-shkzg EQ 'H'.
* ls_currency-amt_doccur = <lfs_bseg>-wrbtr * -1.
ls_currency-DISC_BASE = <lfs_bseg>-wrbtr * -1.
ELSE.
* " nothing to do with default case
ENDIF.
ls_currency-CURR_TYPE = '00'.
APPEND ls_currency TO lt_currency.
ls_currency-DISC_BASE = <lfs_bseg>-wrbtr * -1.
ls_currency-AMT_DOCCUR = <lfs_bseg>-wrbtr * -1.
Ls_currency-itemno_acc = <lfs_bseg>-buzei + 1.
APPEND ls_currency TO lt_currency.
*--------------------------------------------------------------------*
ls_BAPIACAR09-itemno_acc = <lfs_bseg>-buzei.
* ls_bapiacgl09-gl_account = <lfs_bseg>-hkont.
* ls_BAPIACAR09-gl_account = <lfs_bseg>-KUNNR.
ls_BAPIACAR09-CUSTOMER = <lfs_bseg>-KUNNR.
ls_BAPIACAR09-comp_code = <lfs_bseg>-bukrs.
* ls_BAPIACAR09-pstng_date = sy-datum.
move:
<lfs_bseg>-sgtxt TO ls_BAPIACAR09-item_text,
**** ls_bseg-belnr TO ls_bapiacgl09-ac_doc_no,
<lfs_bseg>-xref1 TO ls_BAPIACAR09-REF_KEY_1,
<lfs_bseg>-xref2 TO ls_bapiacgl09-REF_KEY_2,
<lfs_bseg>-xref3 to ls_BAPIACAR09-REF_KEY_3.
*'XX' TO ls_BAPIACAR09-W_TAX_CODE.
append ls_BAPIACAR09 to lt_BAPIACAR09.
ls_BAPIACAR09-itemno_acc = <lfs_bseg>-buzei + 1.
append ls_BAPIACAR09 to lt_BAPIACAR09.
*--------------------------------------------------------------------*
ENDLOOP.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
***DATA: ls_extension2 TYPE bapiparex.
***DATA: lt_extension2 LIKE TABLE OF ls_extension2.
***DATA: lt_extension22222 type table of bapiparex.
***
***DATA: ls_extension_field TYPE ZFI_ACC_DOCUMENT_EXTENSION2.
***
****DATA: IT_EXTENSION2 TYPE STANDARD TABLE OF BAPIPAREX WITH HEADER LINE.
***
***
***
****DATA: Lt_ext TYPE STANDARD TABLE OF ZFI_ACC_DOCUMENT_EXTENSION2.
****DATA: Lt_ext like table of bapiacextc with header line.
***DATA: Lt_ext like table of bapiacextc with header line.
***CLEAR lt_extension2[].
***
***CLEAR ls_extension_field.
***
***ls_extension_field-bschl = '06'. "Línea de pedido de documento
***ls_extension_field-SAMNR = '516'. "Código de razón
***
***CLEAR ls_extension2.
***ls_extension2-structure = 'ZFI_ACC_DOCUMENT_EXTENSION2'.
***ls_extension2-valuepart1 = ls_extension_field.
***APPEND ls_extension2 TO lt_extension2.
***
***APPEND ls_extension_field TO Lt_ext.
DATA: LT_EXTENSION2 TYPE STANDARD TABLE OF BAPIPAREX,
LWA_EXTENSION2 TYPE BAPIPAREX.
*LWA_EXTENSION2-STRUCTURE = 'ACCIT'.
LWA_EXTENSION2-STRUCTURE = 'ZFI_ACC_DOCUMENT_EXTENSION2'.
LWA_EXTENSION2-VALUEPART1 = '06'.
*LWA_EXTENSION2-VALUEPART1+6(2) = 15.
LWA_EXTENSION2-VALUEPART2 = '03'.
APPEND LWA_EXTENSION2 TO LT_EXTENSION2.
LWA_EXTENSION2-VALUEPART1 = '18'.
*LWA_EXTENSION2-VALUEPART1+6(2) = 15.
LWA_EXTENSION2-VALUEPART2 = '04'.
APPEND LWA_EXTENSION2 TO LT_EXTENSION2.
*--------------------------------------------------------------------*
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = ls_header
* CUSTOMERCPD =
* CONTRACTHEADER =
* IMPORTING
* OBJ_TYPE =
* OBJ_KEY =
* OBJ_SYS =
TABLES
* accountgl = lt_accountgl
ACCOUNTRECEIVABLE = lt_BAPIACAR09
* ACCOUNTPAYABLE =
* ACCOUNTTAX =
currencyamount = lt_currency
* CRITERIA =
* VALUEFIELD =
* EXTENSION1 = Lt_ext
return = lt_return
* PAYMENTCARD =
* CONTRACTITEM =
EXTENSION2 = LT_EXTENSION2
* EXTENSION2 = lt_extension2
* REALESTATE =
* ACCOUNTWT =
.
BREAK-POINT.
*CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
** EXPORTING
** WAIT =
** IMPORTING
** RETURN =
* .
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
CREAMOS LA BADI ACC_DOCUMENT
https://www.zapyard.com/how-to-pass-reversal-date-reason-to-bapi_acc_document_post/