0% found this document useful (0 votes)
213 views6 pages

Ydsh Bapi FB01 Procon

This document contains code for an SAP report that posts accounting documents. It begins by defining data structures and importing parameters for a business document. It then reads data from various accounting tables into internal tables. Accounting line items are moved from the business document segments table to a structure for posting. The structures are appended to internal tables. Finally, a function module is called to post the accounting documents, commit the transaction, and return any errors.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
213 views6 pages

Ydsh Bapi FB01 Procon

This document contains code for an SAP report that posts accounting documents. It begins by defining data structures and importing parameters for a business document. It then reads data from various accounting tables into internal tables. Accounting line items are moved from the business document segments table to a structure for posting. The structures are appended to internal tables. Finally, a function module is called to post the accounting documents, commit the transaction, and return any errors.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

*&---------------------------------------------------------------------*

*& Report YDSH_BAPI_FB01


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

report ydsh_bapi_fb01_procon.

data: lt_return type table of bapiret2.


data: lv_awtyp type acchd-awtyp,
lv_awref type acchd-awref,
lv_aworg type acchd-aworg,
lv_awsys type acchd-awsys.

data: abuz type table of abuz,


acchd type table of acchd,
accit type table of accit,
acccr type table of acccr,
bkpf type table of bkpf,
ls_bkpf type bkpf,
bseg type table of bseg,
ls_bseg type bseg.
*DATA i_currencyamount LIKE bapiaccr09 OCCURS 0 WITH HEADER LINE.
data: lt_currency type table of bapiaccr09,
ls_currency type bapiaccr09.
data: lv_bukrs type bukrs,
lv_belnr type belnr_d,
lv_gjahr type gjahr.
parameters: p_bukrs type bukrs,
p_belnr type belnr_d,
p_gjahr type gjahr.

select single bukrs belnr gjahr


from bkpf
into (lv_bukrs, lv_belnr, lv_gjahr)
where bukrs eq p_bukrs and "'14' and "'50' AND
belnr eq p_belnr and "'0018000076' AND
gjahr eq p_gjahr. "'2016'.

call function 'FI_DOCUMENT_READ'


exporting
i_bukrs = lv_bukrs "'50'
i_belnr = lv_belnr "'18000076'
i_gjahr = lv_gjahr "'2016'
tables
t_abuz = abuz
t_acchd = acchd "
t_accit = accit "
t_acccr = acccr "
t_bkpf = bkpf
t_bseg = bseg
exceptions
wrong_input = 1
not_found = 2
others = 3.
if sy-subrc <> 0.
* Implement suitable error handling here
endif.

*--------------------------------------------------------------------*
*CALL FUNCTION 'AC_DOCUMENT_CREATE'
* EXPORTING
** I_COMP = ' '
** I_COMP_CHECK = ' '
* i_free_table = ' ' "'X'
* TABLES
* t_acchd = acchd
* t_accit = accit
* t_acccr = acccr
* T_ACCDA =
* T_ACCFI =
* T_ACCTX =
* T_ACCTAX =
* T_ACCIT_PA =
* T_ACCCR_PA =
* T_ACCWT =
* T_ACCIT_EXT =
* T_AUSZ2 =
* T_AUSZ3 =
* T_AUSZ4 =
* T_ACCIT_SPL =
* T_ACCIT_EXT_SPL =
* T_ACCCR_SPL =
* T_SPLINFO =
* T_SPLINFO_VAL =
* T_ACCIT_REF =
.

*--------------------------------------------------------------------*
*BREAK-POINT.
data: ls_header type bapiache09.
read table bkpf index 1 into ls_bkpf.
*move:

"'BKPFF' to ls_header-OBJ_TYPE. 29/11/2018


*ls_bkpf-AWTYP to ls_header-OBJ_TYPE,
********ls_bkpf-AWKEY to ls_header-OBJ_KEY,
*********ls_bkpf-AWSYS to ls_header-OBJ_SYS,
**** CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET' 29/11/2018
**** IMPORTING 29/11/2018
**** own_logical_system = ls_header-OBJ_SYS. v
* EXCEPTIONS
* OWN_LOGICAL_SYSTEM_NOT_DEFINED = 1
* OTHERS = 2
.

move: "ls_bkpf-GLVOR to ls_header-BUS_ACT, 29/11/2018


sy-uname to ls_header-username,
****ls_bkpf-USNAM to ls_header-USERNAME,
ls_bkpf-bktxt to ls_header-header_txt,
ls_bkpf-bukrs to ls_header-comp_code,
*--------------------------------------------------------------------*
sy-datum to ls_header-doc_date,
*ls_bkpf-BLDAT to ls_header-DOC_DATE,
sy-datum to ls_header-pstng_date,
*ls_bkpf-BUDAT to ls_header-PSTNG_DATE,
sy-datum to ls_header-trans_date,
*ls_bkpf-WWERT to ls_header-TRANS_DATE,
*--------------------------------------------------------------------*
ls_bkpf-gjahr to ls_header-fisc_year,
ls_bkpf-monat to ls_header-fis_period,
***************'06' to ls_header-FIS_PERIOD,
ls_bkpf-blart to ls_header-doc_type,
ls_bkpf-xblnr to ls_header-ref_doc_no,
****ls_bkpf-BELNR to ls_header-AC_DOC_NO,
ls_bkpf-vatdate to ls_header-vatdate,
ls_bkpf-reindat to ls_header-invoice_rec_date.

*MOVE-CORRESPONDING ls_bkpf TO ls_header.

data: lt_account type table of bapiacgl08,


ls_account type bapiacgl08.

data: lt_bapiacgl09 type table of bapiacgl09,


ls_bapiacgl09 type bapiacgl09.

data: lt_bapiacar09 type table of bapiacar09,


ls_bapiacar09 type bapiacar09.

loop at bseg into ls_bseg.


move: ls_bseg-buzei to ls_bapiacgl09-itemno_acc.
move: ls_bseg-hkont to ls_bapiacgl09-gl_account,
ls_bseg-sgtxt to ls_bapiacgl09-item_text,
*** ls_bseg-belnr TO ls_bapiacgl09-ac_doc_no,
ls_bseg-xref1 to ls_bapiacgl09-ref_key_1,
ls_bseg-xref2 to ls_bapiacgl09-ref_key_2,
ls_bseg-xref3 to ls_bapiacgl09-ref_key_3,
ls_bseg-kostl to ls_bapiacgl09-costcenter, "acct_key,
ls_bseg-koart to ls_bapiacgl09-acct_type,
** ls_bseg-bkpf-blart TO ls_bapiacgl09-doc_type,
ls_bseg-bukrs to ls_bapiacgl09-comp_code,
ls_bseg-gsber to ls_bapiacgl09-bus_area,
ls_bseg-fkber to ls_bapiacgl09-func_area,
ls_bseg-werks to ls_bapiacgl09-plant,
** ls_bseg-bkpf TO ls_bapiacgl09-fis_period,
ls_bseg-gjahr to ls_bapiacgl09-fisc_year,
ls_bseg-valut to ls_bapiacgl09-value_date,
ls_bseg-kunnr to ls_bapiacgl09-customer,
ls_bseg-xskrl to ls_bapiacgl09-cshdis_ind,
ls_bseg-lifnr to ls_bapiacgl09-vendor_no,
ls_bseg-zuonr to ls_bapiacgl09-alloc_nmbr,
ls_bseg-mwskz to ls_bapiacgl09-tax_code,
ls_bseg-txjcd to ls_bapiacgl09-taxjurcode,
ls_bseg-kstrg to ls_bapiacgl09-costobject,
ls_bseg-kostl to ls_bapiacgl09-costcenter,
ls_bseg-lstar to ls_bapiacgl09-acttype,
ls_bseg-prctr to ls_bapiacgl09-profit_ctr,
ls_bseg-prctr to ls_bapiacgl09-part_prctr,
ls_bseg-nplnr to ls_bapiacgl09-network,
ls_bseg-aufnr to ls_bapiacgl09-orderid,
ls_bseg-geber to ls_bapiacgl09-fund,
ls_bseg-fistl to ls_bapiacgl09-funds_ctr,
ls_bseg-fipos to ls_bapiacgl09-cmmt_item,
ls_bseg-prznr to ls_bapiacgl09-co_busproc,
ls_bseg-anln1 to ls_bapiacgl09-asset_no,
ls_bseg-anln2 to ls_bapiacgl09-sub_number,
ls_bseg-menge to ls_bapiacgl09-quantity,
ls_bseg-meins to ls_bapiacgl09-base_uom_iso,
ls_bseg-erfmg to ls_bapiacgl09-entry_qnt,
ls_bseg-erfme to ls_bapiacgl09-entry_uom,
ls_bseg-matnr to ls_bapiacgl09-material,
ls_bseg-hrkft to ls_bapiacgl09-orig_group,
ls_bseg-vptnr to ls_bapiacgl09-part_acct,
ls_bseg-pargb to ls_bapiacgl09-tr_part_ba,
ls_bseg-vbund to ls_bapiacgl09-trade_id,
ls_bseg-bwkey to ls_bapiacgl09-val_area,
ls_bseg-bwtar to ls_bapiacgl09-val_type,
ls_bseg-ebeln to ls_bapiacgl09-po_number,
ls_bseg-ebelp to ls_bapiacgl09-po_item,
ls_bseg-projn to ls_bapiacgl09-itm_number,
ls_bseg-fkber to ls_bapiacgl09-func_area_long,
ls_bseg-grant_nbr to ls_bapiacgl09-grant_nbr,
ls_bseg-bewar to ls_bapiacgl09-cs_trans_t,
ls_bseg-measure to ls_bapiacgl09-measure,
ls_bseg-segment to ls_bapiacgl09-segment,
ls_bseg-psegment to ls_bapiacgl09-partner_segment,
ls_bseg-kblnr to ls_bapiacgl09-res_doc,
ls_bseg-kblpos to ls_bapiacgl09-res_item,
ls_bseg-perop_beg to ls_bapiacgl09-billing_period_start_date,
ls_bseg-perop_end to ls_bapiacgl09-billing_period_end_date,
ls_bseg-ppa_ex_ind to ls_bapiacgl09-ppa_ex_ind,
ls_bseg-fastpay to ls_bapiacgl09-fastpay,
ls_bseg-budget_pd to ls_bapiacgl09-budget_period,
ls_bseg-pbudget_pd to ls_bapiacgl09-partner_budget_period,
ls_bseg-pgeber to ls_bapiacgl09-partner_fund,
ls_bseg-taxps to ls_bapiacgl09-itemno_tax.

append ls_bapiacgl09 to lt_bapiacgl09.


**--------------------------------------------------------------------*
** Posicion de la moneda
*--------------------------------------------------------------------*
move: ls_bseg-buzei to ls_currency-itemno_acc,
ls_bkpf-waers to ls_currency-currency.

* IF ls_bseg-shkzg EQ 'S'.
*
* ls_currency-amt_doccur = ls_bseg-wrbtr.
* ELSEIF ls_bseg-shkzg EQ 'H'.
*
* ls_currency-amt_doccur = ls_bseg-wrbtr * -1.
* ENDIF.
append ls_currency to lt_currency.

move: ls_bseg-zterm to ls_bapiacar09-pmnttrms,


ls_bseg-zlsch to ls_bapiacar09-pymt_meth.
move: ls_bseg-buzei to ls_bapiacar09-itemno_acc,
ls_bseg-hkont to ls_bapiacar09-gl_account,
ls_bseg-kunnr to ls_bapiacar09-customer,
ls_bseg-gsber to ls_bapiacar09-bus_area.
append ls_bapiacar09 to lt_bapiacar09.
endloop.
*BREAK-POINT.
*CALL FUNCTION 'BAPI_ACC_GL_POSTING_POST'
* EXPORTING
* documentheader = ls_bkpf
** IMPORTING
** OBJ_TYPE =
** OBJ_KEY =
** OBJ_SYS =
* tables
* accountgl =
* currencyamount =
* RETURN = lt_return
** EXTENSION1 =
* .

data: ls_doc type bapiache09.


****ZJESUS002<
call function 'BAPI_ACC_DOCUMENT_POST'
exporting
documentheader = ls_header
* CUSTOMERCPD =
* CONTRACTHEADER =
importing
obj_type = ls_doc-obj_type
obj_key = ls_doc-obj_key
obj_sys = ls_doc-obj_sys
tables
accountgl = lt_bapiacgl09 "original
*** ACCOUNTRECEIVABLE = lt_BAPIACAR09
*** ACCOUNTRECEIVABLE = lt_bapiacgl09 "descomentado por accountgl
* ACCOUNTPAYABLE =
* ACCOUNTTAX =
currencyamount = lt_currency
* CRITERIA =
* VALUEFIELD =
* EXTENSION1 =
return = lt_return
* PAYMENTCARD =
* CONTRACTITEM =
* EXTENSION2 =
* REALESTATE =
* ACCOUNTWT =
.

break-point.
call function 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
check 1 = 2.
*CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
* EXPORTING
* documentheader =
** CUSTOMERCPD =
** CONTRACTHEADER =
* tables
** ACCOUNTGL =
** ACCOUNTRECEIVABLE =
** ACCOUNTPAYABLE =
** ACCOUNTTAX =
** CURRENCYAMOUNT =
** CRITERIA =
** VALUEFIELD =
** EXTENSION1 =
* return =
** PAYMENTCARD =
** CONTRACTITEM =
** EXTENSION2 =
** REALESTATE =
** ACCOUNTWT =
* .

You might also like