Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Problem When Uploading XK01

Former Member
0 Kudos

Hi,

Here is my code for XK01 uploading .

It's working fine when there is only <b>one Vendor with one bank details</b>.If there are <b>more bank details for one Vendor</b> it's not working .

Please go through my code and check it .

Thanks in advance .

TYPES :BEGIN OF ty_header ,

lifnr TYPE lifnr ,

bukrs TYPE bukrs ,

ktokk TYPE ktokk ,

name1 TYPE name1 ,

sortl TYPE sortl ,

land1 TYPE land1 ,

akont TYPE akont ,

fdgrv TYPE fdgrv ,

END OF ty_header ,

BEGIN OF ty_item ,

lifnr TYPE lifnr ,

banks TYPE banks ,

bankl TYPE bankl ,

bankn TYPE bankn ,

END OF ty_item .

DATA : BEGIN OF itab OCCURS 0 ,

lifnr TYPE lifnr ,

bukrs TYPE bukrs ,

ktokk TYPE ktokk ,

name1 TYPE name1 ,

sortl TYPE sortl ,

land1 TYPE land1 ,

banks TYPE banks ,

bankl TYPE bankl ,

bankn TYPE bankn ,

akont TYPE akont ,

fdgrv TYPE fdgrv ,

END OF itab .

DATA bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE .

TYPES : ty_t_header TYPE ty_header ,

ty_t_item TYPE ty_item .

DATA : t_header TYPE ty_t_header OCCURS 0 ,

t_item TYPE ty_t_item OCCURS 0 .

DATA : w_header TYPE ty_t_header ,

w_item TYPE ty_t_item .

DATA : a TYPE n ,

str(20) TYPE c .

a = 1 .

*INCLUDE bdcrecx1.

START-OF-SELECTION.

CALL FUNCTION 'UPLOAD'

EXPORTING

filename = 'c:\xk01.txt'

filetype = 'DAT'

TABLES

data_tab = itab.

LOOP AT itab .

MOVE itab-lifnr TO w_header-lifnr .

MOVE itab-bukrs TO w_header-bukrs .

MOVE itab-ktokk TO w_header-ktokk .

MOVE itab-name1 TO w_header-name1 .

MOVE itab-sortl TO w_header-sortl .

MOVE itab-land1 TO w_header-land1 .

MOVE itab-akont TO w_header-akont .

MOVE itab-fdgrv TO w_header-fdgrv .

APPEND w_header TO t_header .

AT NEW bankn ."lifnr .

MOVE itab-lifnr TO w_item-lifnr .

MOVE itab-banks TO w_item-banks .

MOVE itab-bankl TO w_item-bankl .

MOVE itab-bankn TO w_item-bankn .

APPEND w_item TO t_item .

ENDAT .

ENDLOOP .

LOOP AT t_header INTO w_header .

PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RF02K-LIFNR' w_header-lifnr.

PERFORM bdc_field USING 'RF02K-BUKRS' w_header-bukrs.

PERFORM bdc_field USING 'RF02K-KTOKK' w_header-ktokk.

PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-REGIO'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFA1-NAME1' w_header-name1.

PERFORM bdc_field USING 'LFA1-SORTL' w_header-sortl.

PERFORM bdc_field USING 'LFA1-LAND1' w_header-land1.

PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-KOINH(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

LOOP AT t_item INTO w_item where lifnr eq w_header-lifnr .

CONCATENATE 'LFBK-BANKS(' a ')' INTO str .

PERFORM bdc_field USING str w_item-banks.

CONCATENATE 'LFBK-BANKL(' a ')' INTO str .

PERFORM bdc_field USING str w_item-bankl.

CONCATENATE 'LFBK-BANKN(' a ')' INTO str .

PERFORM bdc_field USING str w_item-bankn.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

CONCATENATE 'LFBK-BANKS( ' a ')' into str.

PERFORM bdc_field USING 'BDC_CURSOR' STR .

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

a = a + 1 .

ENDLOOP .

PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-FDGRV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFB1-AKONT' w_header-akont .

PERFORM bdc_field USING 'LFB1-FDGRV' w_header-fdgrv.

PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-TOGRU'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB5-MAHNA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

  • PERFORM bdc_transaction USING 'XK01'.

*

  • PERFORM close_group.

CALL TRANSACTION 'XK01' USING bdcdata MODE 'A' UPDATE 'S' .

REFRESH bdcdata .

ENDLOOP .

----


  • Start new screen *

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "bdc_dynpro

----


  • Insert field *

----


FORM bdc_field USING fnam fval.

IF fval <> space .

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

ENDIF.

ENDFORM. "bdc_field

2 REPLIES 2

Former Member
0 Kudos

Hi Pavan,

There can only be two reasons why you are not able to load multiple Bank Details.

1) Table Control item line number not done properly.

i.e - CONCATENATE 'LFBK-BANKS' COUNTER INTO str .

PERFORM bdc_field USING str w_item-banks.

Need to check the Counter = Counter + 1. in loop.

2) The OK_CODE for new line entry may not be included.

Hope this helps.

Manish

Former Member
0 Kudos

Hi pavan,

If u r trying to upload vendor master data my suggestion is to go to LSMW direct input method there u will be having standard structure for bank details company codes purchase org etc..........

If u want to upload Vendor Email or IBAN number then it is better to go to recording as these two fields are not available in standard program....

For further clarification post the query.