02-05-2009 1:21 PM
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.
02-05-2009 1:36 PM
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