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: 

BDC Code for inbound delivery

Former Member
0 Kudos

HI Experts,

i am creating on BDC for inbound delivery using VL31n. for the single item it is working fine.but when it comes to multiple item i am confused how to take the values because it may happen that only 3 items are processed for ASN out of 10. this can be any no.

Can anybody help me out , how to code for that.how i can map which item is to be processed. Send me the code if possible.

Thanks in advance.

1 REPLY 1

Former Member
0 Kudos

hi,

take the multiple data in an internal table.

Loop at t_data into fs_data.

perform bdc_dynpro sapxxxxx screen_number.

perform bdc_field field_name fs_data-col1.

endloop.

you get the program name number from the bdc recording in SHDB

field name you get from BDC recording and the data object fs_data-col1 from the internal table

in the form bdc_field

declare a table t_steps of type table of BDCDATA structure

FORM bdc_dynpro USING value(p_program_name)

value(p_screen_number).

CLEAR t_steps.

t_steps-program = p_program_name.

t_steps-dynpro = p_screen_number.

t_steps-dynbegin = 'X'.

APPEND t_steps.

ENDFORM.

FORM bdc_field USING value(p_fieldname)

value(p_value).

CLEAR t_steps.

t_steps-fnam = p_fieldname.

t_steps-fval = p_value.

APPEND t_steps.

ENDFORM.

This is a sample code which have been done for transaction XD01.

hope this makes things clear.

LOOP AT t_cust INTO fs_cust.

w_num = w_num + 1.

ON CHANGE OF FS_CUST-NAME1.

PERFORM screen_data USING 'SAPMF02D' '0100'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM field_data USING 'RF02D-BUKRS' fs_cust-bukrs.

PERFORM field_data USING 'RF02D-KTOKD' fs_cust-ktokd.

PERFORM field_data USING 'RF02D-REF_KUNNR' ''.

PERFORM screen_data USING 'SAPMF02D' '0110'.

PERFORM field_data USING 'KNA1-ANRED' fs_cust-anred.

PERFORM field_data USING 'KNA1-NAME1' fs_cust-name1.

PERFORM field_data USING 'KNA1-SORTL' fs_cust-sortl.

PERFORM field_data USING 'KNA1-ORT01' fs_cust-ort01.

PERFORM field_data USING 'KNA1-ORT02' fs_cust-ort02.

PERFORM field_data USING 'KNA1-PFACH' fs_cust-pfach.

PERFORM field_data USING 'KNA1-PSTLZ' fs_cust-pstlz.

PERFORM field_data USING 'KNA1-PFORT' fs_cust-pfort.

PERFORM field_data USING 'KNA1-LAND1' fs_cust-land1.

PERFORM field_data USING 'KNA1-SPRAS' fs_cust-spras.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0120'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0125'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0130'.

PERFORM field_data USING 'BDC_OKCODE' '=ENTR'.

PERFORM screen_data USING 'SAPMF02D' '0340'.

PERFORM field_data USING 'BDC_OKCODE' '=ENTR'.

PERFORM screen_data USING 'SAPMF02D' '0370'.

PERFORM field_data USING 'KNA1-CIVVE' 'X'.

PERFORM field_data USING 'BDC_OKCODE' '=ENTR'.

ENDON.

PERFORM screen_data USING 'SAPMF02D' '0360'.

CONCATENATE 'KNVK-ANRED(' w_num ')' INTO line.

PERFORM field_data USING line fs_cust-title. "KNVK-ANRED(01)

CLEAR line.

CONCATENATE 'KNVK-NAMEV(' w_num ')' INTO line.

PERFORM field_data USING line fs_cust-namev. "KNVK-NAMEV(01)

CLEAR line.

CONCATENATE 'KNVK-NAME1(' w_num ')' INTO line.

PERFORM field_data USING line fs_cust-name2. "KNVK-NAME1(01)

CLEAR line.

CONCATENATE 'KNVK-TELF1(' w_num ')' INTO line.

PERFORM field_data USING line fs_cust-telf1. "KNVK-TELF1(01)

CLEAR line.

CONCATENATE 'KNVK-TELF1(' w_num ')' INTO line.

PERFORM field_data USING line fs_cust-abtnr. "KNVK-ABTNR(01)

PERFORM field_data USING 'BDC_OKCODE' '=ENTR'.

AT END OF NAME1.

PERFORM screen_data USING 'SAPMF02D' '0360'.

PERFORM field_data USING 'BDC_OKCODE' '=ENTR'.

PERFORM screen_data USING 'SAPMF02D' '0210'.

PERFORM field_data USING 'KNB1-AKONT' fs_cust-akont.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0215'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0220'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

PERFORM screen_data USING 'SAPMF02D' '0230'.

PERFORM field_data USING 'BDC_OKCODE' '/00'.

CALL TRANSACTION 'XD01' USING t_steps MODE 'A' MESSAGES INTO t_messages.

REFRESH T_STEPS.

clear w_num.

ENDAT.

ENDLOOP. " LOOP AT t_cust INTO fs_cust

Thanks and regards

Sharath