Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Y_BAPI_ACC_DOCUMENT_POST_1

*&---------------------------------------------------------------------*
*& 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/

You might also like