cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BDC FOR VENDOR INVOICE FB60

Former Member
0 Likes
3,159

Hi,

I need to make a BDC to upload transaction data for Vendor invoice thru fb60. Can someone help me with making this BDC. I have multiple invoice line items where G/L Accounts can be same for multiple line items.

plz any help soon will be appreciated ...

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Likes

hi Raj,

Here a Example:

report ZTEST

no standard page heading line-size 255.

include bdcrecx1.

start-of-selection.

perform open_group.

perform bdc_dynpro using 'SAPMF05A' '1100'.

perform bdc_field using 'BDC_OKCODE'

'=DUMMY'.

perform bdc_field using 'RF05A-BUSCS'

'R'.

perform bdc_field using 'BDC_CURSOR'

'INVFO-XMWST'.

perform bdc_field using 'INVFO-ACCNT'

'4711'. "LIFNR

perform bdc_field using 'INVFO-BUDAT'

'07.07.2006'.

perform bdc_field using 'INVFO-WRBTR'

'1000'.

perform bdc_field using 'INVFO-WAERS'

'EUR'.

perform bdc_field using 'INVFO-XMWST'

'X'.

perform bdc_field using 'INVFO-MWSKZ'

'V4'.

perform bdc_dynpro using 'SAPMF05A' '1100'.

perform bdc_field using 'BDC_OKCODE'

'=BU'.

perform bdc_field using 'RF05A-BUSCS'

'R'.

perform bdc_field using 'BDC_CURSOR'

'INVFO-XBLNR'.

perform bdc_field using 'INVFO-ACCNT'

'4711'. "LIFNR

perform bdc_field using 'INVFO-XBLNR'

'test'.

perform bdc_field using 'INVFO-WRBTR'

'1.000,00'.

perform bdc_field using 'INVFO-XMWST'

'X'.

perform bdc_field using 'INVFO-MWSKZ'

'V4'.

perform bdc_dynpro using 'SAPMF05A' '1100'.

perform bdc_field using 'INVFO-BLDAT'

'07062006'.

perform bdc_field using 'INVFO-XBLNR'

'TEST'.

perform bdc_field using 'ACGL_ITEM-HKONT(01)'

'467000'.

perform bdc_field using 'ACGL_ITEM-WRBTR(01)'

' 1000'.

perform bdc_field using 'ACGL_ITEM-KOSTL(01)'

'1000'.

perform bdc_transaction using 'FB60'.

perform close_group.

OR Also u can use the

U can use the std batchinput RFBIBL00 (or a BAPI, like BAPI_ACC_DOCUMENT_POST ) instead of to write an own BDC program for FB60.

FB60 is enjoy trx and it couldn't support the BDC for all its functionalities.

For more infor abt the BDC

http://www.sap-img.com/abap/learning-bdc-programming.htm

Assing the points if helpfulll

ranjit

null

null

Former Member
0 Likes

Hi Ranjit,

thanks for the program, I think thats a simple recording from SHDB for a BDC for one entry but i need to include multiple table entries in the same invoice. Now my problem is how do i loop through these multiple values as the GL A/C is not unique.

plz help me out on this.

Former Member
0 Likes

Have a look to RFBIBL00 and the help there.

Proces;

File from extern system

ABAP that transfer the fields from the file to the structure in RFBIBL00 and this abap submit RFBIBL0.

This program create FB01 postings and not FB60.

Paul

Former Member
0 Likes

Thanks Paul,

But I have written small BDC programs before, this fb60 one includes table controls and data where i dont have an unique key to have acontrol loop over multiple table entries.

How should i go ahead with this ..

I didnt quite understand RFBIBL0. If i run the program for every file it give file check failed.

Awais_syed77786
Explorer
0 Likes

Hi,

BDC for Single and Multiple Line Upload for FB60 T-code.

Please refer below code.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = it_text
i_filename = p_file
TABLES
i_tab_converted_data = it_final
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


IF it_final IS NOT INITIAL.
LOOP AT it_final INTO wa_final.
ON CHANGE OF wa_final-xblnr.

PERFORM bdc_dynpro USING 'SAPLACHD' '1000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BKPF-BUKRS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'BKPF-BUKRS'
wa_final-bukrs. "'EBIP'.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DUMMY'.
PERFORM bdc_field USING 'RF05A-BUSCS'
'R'.
PERFORM bdc_field USING 'BDC_CURSOR'
'INVFO-XMWST'.
PERFORM bdc_field USING 'INVFO-ACCNT'
wa_final-lifnr. "'1074'.
PERFORM bdc_field USING 'INVFO-BLDAT'
wa_final-bldat. "'19.10.2023'.
PERFORM bdc_field USING 'INVFO-XBLNR'
wa_final-xblnr. "'testbdc1'.
PERFORM bdc_field USING 'INVFO-BUDAT'
wa_final-budat. "'19.10.2023'.
PERFORM bdc_field USING 'INVFO-BLART'
'KR'.
PERFORM bdc_field USING 'INVFO-BELNR'
wa_final-belnr. "'p1235'.
PERFORM bdc_field USING 'INVFO-WAERS'
' '.
PERFORM bdc_field USING 'INVFO-XMWST'
wa_final-xmwst. "'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=DUMMY'.
PERFORM bdc_field USING 'RF05A-BUSCS'
'R'.
PERFORM bdc_field USING 'BDC_CURSOR'
'INVFO-MWSKZ'.
PERFORM bdc_field USING 'INVFO-ACCNT'
' '.
PERFORM bdc_field USING 'INVFO-XBLNR'
' '.
PERFORM bdc_field USING 'INVFO-BLART'
'KR'.
PERFORM bdc_field USING 'INVFO-BELNR'
' '.
PERFORM bdc_field USING 'INVFO-WAERS'
' '.
PERFORM bdc_field USING 'INVFO-XMWST'
'X'.
PERFORM bdc_field USING 'INVFO-MWSKZ'
wa_final-mwskz.
PERFORM bdc_field USING 'INVFO-GST_PART'
' '.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF05A-BUSCS'
'R'.
PERFORM bdc_field USING 'INVFO-ACCNT'
' '.
PERFORM bdc_field USING 'INVFO-XBLNR'
' '.
PERFORM bdc_field USING 'INVFO-BLART'
'KR'.
PERFORM bdc_field USING 'INVFO-BELNR'
wa_final-belnr. "'P1235'.
PERFORM bdc_field USING 'INVFO-WAERS'
' '.
PERFORM bdc_field USING 'INVFO-XMWST'
'X'.
PERFORM bdc_field USING 'INVFO-MWSKZ'
wa_final-mwskz. "'IA'.
PERFORM bdc_field USING 'INVFO-BUPLA'
wa_final-bupla. "'EBMH'.
PERFORM bdc_field USING 'INVFO-SECCO'
wa_final-secco. "'EBMH'.
PERFORM bdc_field USING 'INVFO-SGTXT'
wa_final-bktxt. "'testbdc1'.
PERFORM bdc_field USING 'INVFO-GST_PART'
' '.
PERFORM bdc_field USING 'BDC_CURSOR'
wa_final-hsn_sac. "'ACGL_ITEM-HSN_SAC(01)'.

CLEAR lv_amt.
LOOP AT it_final INTO wa_final WHERE xblnr = wa_final-xblnr. "AND lifnr = wa_final1-lifnr.
lv_cnt = lv_cnt + 1.

CONCATENATE 'ACGL_ITEM-HKONT(' lv_cnt ')' INTO lv_fdnm.
**** PERFORM bdc_field USING 'ACGL_ITEM-HKONT(01)'
PERFORM bdc_field USING lv_fdnm
wa_final-hkont. "'77500'.

CONCATENATE 'ACGL_ITEM-WRBTR(' lv_cnt ')' INTO lv_fdnm.
**** PERFORM bdc_field USING 'ACGL_ITEM-WRBTR(01)'
PERFORM bdc_field USING lv_fdnm
wa_final-wrbtr. "'1000'.
CONDENSE wa_final1-wrbtr.
lv_amt = lv_amt + wa_final-wrbtr.

CONCATENATE 'ACGL_ITEM-SGTXT(' lv_cnt ')' INTO lv_fdnm.
**** PERFORM bdc_field USING 'ACGL_ITEM-SGTXT(01)'
PERFORM bdc_field USING lv_fdnm
wa_final-sgtxt. "'testbdcgl1'.

CONCATENATE 'ACGL_ITEM-KOSTL(' lv_cnt ')' INTO lv_fdnm.
**** PERFORM bdc_field USING 'ACGL_ITEM-KOSTL(01)'
PERFORM bdc_field USING lv_fdnm
wa_final-kostl. "'P116'.

CONCATENATE 'ACGL_ITEM-HSN_SAC(' lv_cnt ')' INTO lv_fdnm.
**** PERFORM bdc_field USING 'ACGL_ITEM-HSN_SAC(01)'
PERFORM bdc_field USING lv_fdnm
wa_final-hsn_sac. "'7318'.

CLEAR : wa_final-hkont, wa_final-wrbtr, wa_final-sgtxt, wa_final-kostl, wa_final-hsn_sac.
ENDLOOP.
CLEAR lv_cnt.
wa_final-wrbtr = lv_amt.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'INVFO-ZFBDT'.
PERFORM bdc_field USING 'INVFO-ZFBDT'
wa_final-zfbdt. "'19.10.2023'.
PERFORM bdc_field USING 'INVFO-ZTERM'
' '.
PERFORM bdc_field USING 'INVFO-ZBD1T'
' '.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MAIN'.
PERFORM bdc_field USING 'INVFO-ZFBDT'
wa_final-zfbdt. "'19.10.2023'.
PERFORM bdc_field USING 'INVFO-ZTERM'
' '.
PERFORM bdc_field USING 'INVFO-ZBD1T'
' '.
PERFORM bdc_dynpro USING 'SAPMF05A' '1100'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BS'.
PERFORM bdc_field USING 'RF05A-BUSCS'
'R'.
PERFORM bdc_field USING 'INVFO-ACCNT'
' '.
PERFORM bdc_field USING 'INVFO-XBLNR'
' '.
PERFORM bdc_field USING 'INVFO-BLART'
'KR'.
PERFORM bdc_field USING 'INVFO-BELNR'
wa_final-belnr. "'P1235'.
PERFORM bdc_field USING 'INVFO-WRBTR'
' '.
PERFORM bdc_field USING 'INVFO-XMWST'
'X'.
PERFORM bdc_field USING 'INVFO-MWSKZ'
' '.
PERFORM bdc_field USING 'INVFO-BUPLA'
' '.
PERFORM bdc_field USING 'INVFO-SECCO'
' '.
PERFORM bdc_field USING 'INVFO-SGTXT'
' '.
PERFORM bdc_field USING 'INVFO-GST_PART'
' '.
PERFORM bdc_field USING 'INVFO-PLC_SUP'
' '.
PERFORM bdc_dynpro USING 'SAPMSSY0' '0120'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.

CLEAR it_bdcmsg.
CALL TRANSACTION 'FB60'
USING it_bdcdata
MODE bdc_mode
UPDATE 'S' MESSAGES INTO it_bdcmsg.

LOOP AT it_bdcmsg INTO wa_bdcmsg.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = wa_bdcmsg-msgid
lang = sy-langu
no = wa_bdcmsg-msgnr
v1 = wa_bdcmsg-msgv1
v2 = wa_bdcmsg-msgv2
v3 = wa_bdcmsg-msgv3
v4 = wa_bdcmsg-msgv4
IMPORTING
msg = v_message
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDLOOP.

Regard,

Awais Syed.