01-21-2011 7:05 AM
Hi experts,
I am writting BDC for Tcode IQ04.I done recording part..code is genarated..Problem is In that Tcode For each Material no they may enter more than one serial numbers at a time as a screen in iq04.so how can i validae this part in perform statements,
These are the performs statements which are genrated during recording
LOOP AT gt_upload INTO gs_upload.
refresh lv_bdcdata.
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-SERNR(03)'.
perform bdc_field using 'BDC_OKCODE'
'=DV'.
perform bdc_field using 'RISA0-MATNR'
gs_upload-MATNR.
perform bdc_field using 'EQUI-EQTYP'
'S'.
*perform bdc_field using 'RISA0-SERNR(01)'*
*gs_upload-SERNR.*
*perform bdc_field using 'RISA0-SERNR(02)'*
*gs_upload-SERNR.*
*perform bdc_field using 'RISA0-SERNR(03)'*
gs_upload-SERNR.
perform bdc_dynpro using 'SAPMIEQ0' '3100'.
perform bdc_field using 'BDC_OKCODE'
'=NEXT'.
perform bdc_field using 'BDC_CURSOR'
'EQBS-B_WERK'.
perform bdc_field using 'EQBS-LBBSA'
'01'.
perform bdc_field using 'EQBS-B_WERK'
gs_upload-B_WERK.
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'RISA0-MATNR'
'ABCD'.
perform bdc_field using 'EQUI-EQTYP'
'S'.
*perform bdc_transaction using 'IQ04'.
call TRANSACTION 'IQ04' USING lv_bdcdata MODE 'A' UPDATE 'A' MESSAGES INTO lv_message.
ENDLOOP.
while i am recording i have entered three serial numbers..so here perform statements are there(Which i have commented)...suppose in my excel i have 10 serial number for a material..then how can change the code over there?
Can any body plz help me out...
Thanks in advanace,,
Veena
Moderator Message: Moved to right forum and add tags. Take care next time.
Edited by: kishan P on Jan 21, 2011 12:49 PM
01-21-2011 7:39 AM
Hi,
Aplly this logic and run the BDC with default size = 'X'
DATA : wa_fieldname(30) TYPE c,
wcntr(2) TYPE n VALUE 1.
sort it by matnr.
" Note : matnr should be firt column in the internal table it.
LOOP AT it.
at new matnr
refresh lv_bdcdata[].
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-SERNR(03)'.
perform bdc_field using 'BDC_OKCODE'
'=DV'.
perform bdc_field using 'RISA0-MATNR'
gs_upload-MATNR.
perform bdc_field using 'EQUI-EQTYP'
'S'.
wndat.
CONCATENATE 'RISA0-SERNR' wcntr INTO wa_fieldname.
PERFORM bdc_field USING wa_fieldname it-srno.
wcntr = wcntr + 1.
IF wcntr EQ '13'.
PERFORM bdc_dynpro USING 'SAPMIEQ0' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RISA0-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NE'.
wcntr = 2.
ENDIF.
at end of matnr.
perform bdc_dynpro using 'SAPMIEQ0' '3100'.
perform bdc_field using 'BDC_OKCODE'
'=NEXT'.
perform bdc_field using 'BDC_CURSOR'
'EQBS-B_WERK'.
perform bdc_field using 'EQBS-LBBSA'
'01'.
perform bdc_field using 'EQBS-B_WERK'
gs_upload-B_WERK.
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'RISA0-MATNR'
'ABCD'.
perform bdc_field using 'EQUI-EQTYP'
'S'.
*perform bdc_transaction using 'IQ04'.
call TRANSACTION 'IQ04' USING lv_bdcdata MODE 'A' UPDATE 'A' MESSAGES INTO lv_message.
endat.
ENDLOOP.
Hope this logic helps
Regards,
Madhukar Shetty
01-21-2011 7:39 AM
Hi,
Aplly this logic and run the BDC with default size = 'X'
DATA : wa_fieldname(30) TYPE c,
wcntr(2) TYPE n VALUE 1.
sort it by matnr.
" Note : matnr should be firt column in the internal table it.
LOOP AT it.
at new matnr
refresh lv_bdcdata[].
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-SERNR(03)'.
perform bdc_field using 'BDC_OKCODE'
'=DV'.
perform bdc_field using 'RISA0-MATNR'
gs_upload-MATNR.
perform bdc_field using 'EQUI-EQTYP'
'S'.
wndat.
CONCATENATE 'RISA0-SERNR' wcntr INTO wa_fieldname.
PERFORM bdc_field USING wa_fieldname it-srno.
wcntr = wcntr + 1.
IF wcntr EQ '13'.
PERFORM bdc_dynpro USING 'SAPMIEQ0' '2000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RISA0-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=NE'.
wcntr = 2.
ENDIF.
at end of matnr.
perform bdc_dynpro using 'SAPMIEQ0' '3100'.
perform bdc_field using 'BDC_OKCODE'
'=NEXT'.
perform bdc_field using 'BDC_CURSOR'
'EQBS-B_WERK'.
perform bdc_field using 'EQBS-LBBSA'
'01'.
perform bdc_field using 'EQBS-B_WERK'
gs_upload-B_WERK.
perform bdc_dynpro using 'SAPMIEQ0' '2000'.
perform bdc_field using 'BDC_CURSOR'
'RISA0-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'RISA0-MATNR'
'ABCD'.
perform bdc_field using 'EQUI-EQTYP'
'S'.
*perform bdc_transaction using 'IQ04'.
call TRANSACTION 'IQ04' USING lv_bdcdata MODE 'A' UPDATE 'A' MESSAGES INTO lv_message.
endat.
ENDLOOP.
Hope this logic helps
Regards,
Madhukar Shetty
01-21-2011 11:29 AM