‎2011 Mar 23 6:02 AM
Hi experts,
I am doing BDC for Tcode CA02.
if i give DISMODE = 'N'. it is getting error as nO batch data input for screen SAPLCZDI 1010.
if i give DISMODE = 'A'..it getting uploaded sucessfully..
Can any body plzzz tell me..what to do..please!!!
Thanks in advance,
Veena.
‎2011 Mar 23 6:06 AM
HI Veena,
Take the screen name and it fields and keep in your report. I will work.
Regards,
madhu.
‎2011 Mar 23 6:06 AM
HI Veena,
Take the screen name and it fields and keep in your report. I will work.
Regards,
madhu.
‎2011 Mar 23 6:09 AM
Hi Madhu..
Thanks for immediate resonse..i already used that screen in report..plz check my code...
LOOP AT GT_FILE INTO GS_FILE.
REFRESH GT_BDC.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1010'.
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'RC271-PLNNR',
'BDC_OKCODE' '/00',
'RC271-PLNNR' GS_FILE-PLNNR,
'RC271-STTAG' lv_STTAG.
PERFORM BDC_DYNPRO USING 'SAPLCPDI ' '1200'.
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'RC27X-ENTRY_ACT',
'BDC_OKCODE' '=MTUE',
'RC27X-ENTRY_ACT' '1' .
PERFORM BDC_DYNPRO USING 'SAPLCZDI ' '1010' .
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'MAPL-WERKS(02)',
'BDC_OKCODE ' '=BACK',
'RC27X-ENTRY_ACT ' '1'.
REFRESH GT_MAPL.
SELECT MATNR WERKS PLNNR PLNAL FROM MAPL INTO TABLE GT_MAPL
WHERE PLNNR = GS_FILE-PLNNR and
LOEKZ NE 'X'.
sort GT_MAPL by matnr.
sort gt_mas by matnr.
LOOP at GT_MAS INTO GS_MAS.
read table GT_MAPL into gs_mapl WITH key matnr = GS_MAS-matnr BINARY SEARCH.
if sy-subrc = 0.
MOVE GS_MAPL-MATNR TO GS_ERR-MATNR.
MOVE GS_MAPL-WERKS TO GS_ERR-WERKS.
MOVE GS_MAPL-PLNNR TO GS_ERR-PLNNR.
MOVE GS_MAPL-PLNAL TO GS_ERR-PLNAL.
APPEND GS_ERR TO GT_ERR.
CLEAR GS_ERR.
DELETE gt_mas where matnr = gs_mapl-matnr.
endif.
endloop.
DESCRIBE TABLE GT_MAPL LINES LV_COUNT.
CLEAR LV_IDX.
lv_idx = LV_COUNT + 1.
LOOP AT GT_MAS INTO GS_MAS WHERE PLNNR = GS_FILE-PLNNR.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-PLNAL(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-PLNAL.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-MATNR(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-MATNR.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-WERKS(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-WERKS.
CLEAR LV_FNAME.
LV_IDX = LV_IDX + 1.
*OPT-DISMODE = 'N'.
*OPT-UPDMODE = 'A'.
*OPT-DEFSIZE = 'X'.
*OPT-RACOMMIT = 'X'.
***call TRANSACTION 'CA02' USING GT_BDC OPTIONS FROM OPT MESSAGES INTO GT_message.
***READ TABLE GT_message INTO GS_message WITH KEY MSGTYP = 'E'.
**IF SY-SUBRC EQ '0'.
PERFORM message_log1 USING GS_MAS-PLNNR GS_MAS-MATNR GS_MAS-WERKS.
REFRESH GT_message.
**ENDIF.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'.
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'RC27X-ENTRY_ACT',
'BDC_OKCODE' '=BU',
'RC27X-ENTRY_ACT ' '1'.
OPT-DISMODE = 'N'.
OPT-UPDMODE = 'A'.
OPT-DEFSIZE = 'X'.
OPT-RACOMMIT = 'X'.
*OPT-NOBINPT = 'X'.
call TRANSACTION 'CA02' USING GT_BDC OPTIONS FROM OPT MESSAGES INTO GT_message.
PERFORM message_log USING GS_FILE-PLNNR.
ENDLOOP.
Please help me out madhu....
‎2011 Mar 23 6:12 AM
Hi Veena,
PERFORM BDC_DYNPRO USING 'SAPLCZDI ' '1010' .
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'MAPL-WERKS(02)',
'BDC_OKCODE ' '=BACK',
at this stage in all screens mode are you pressing enter or any key?
Regards,
Madhu.
‎2011 Mar 23 6:14 AM
‎2011 Mar 23 6:18 AM
Hi,
you should do a new recording of the transaction CA02 in SHDB and compare it with your logic. It seems, there is a fcode or "new" dynpro 1010 missing!
Regards,
Klaus
‎2011 Mar 23 6:18 AM
HI Veena ,
Then * PERFORM bdc_dynpro USING 'SAPLMLSP' '0200'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
Check where you are pressing the enter take the scree number and keep. I t will work.
Regards,
madhu.
‎2011 Mar 23 6:20 AM
No madhu...
actually then enter is not recorded ..i tried so many times...
my code and recording both are same now..
Please tell me what to do..
ThankQ
veena.
‎2011 Mar 23 6:25 AM
Hi Veena,
Thats ok. Add that code manually. It will work.
Regards,
Madhu.
Edited by: madhurao123 on Mar 23, 2011 7:30 AM
‎2011 Mar 23 6:36 AM
Ya madhu..
i added code like this..it is workinggg..
PERFORM BDC_DYNPRO USING 'SAPLCZDI ' '1010' .
PERFORM BDC_FIELDS USING:
'BDC_CURSOR' 'MAPL-WERKS(02)',
'RC27X-ENTRY_ACT ' '1'.REFRESH GT_MAPL.
SELECT MATNR WERKS PLNNR PLNAL FROM MAPL INTO TABLE GT_MAPL
WHERE PLNNR = GS_FILE-PLNNR and
LOEKZ NE 'X'.
sort GT_MAPL by matnr.
sort gt_mas by matnr.
LOOP at GT_MAS INTO GS_MAS.
read table GT_MAPL into gs_mapl WITH key matnr = GS_MAS-matnr BINARY SEARCH.
if sy-subrc = 0.
MOVE GS_MAPL-MATNR TO GS_ERR-MATNR.
MOVE GS_MAPL-WERKS TO GS_ERR-WERKS.
MOVE GS_MAPL-PLNNR TO GS_ERR-PLNNR.
MOVE GS_MAPL-PLNAL TO GS_ERR-PLNAL.
APPEND GS_ERR TO GT_ERR.
CLEAR GS_ERR.
DELETE gt_mas where matnr = gs_mapl-matnr.
endif.
endloop.
DESCRIBE TABLE GT_MAPL LINES LV_COUNT.
CLEAR LV_IDX.
lv_idx = LV_COUNT + 1.
LOOP AT GT_MAS INTO GS_MAS WHERE PLNNR = GS_FILE-PLNNR.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-PLNAL(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-PLNAL.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-MATNR(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-MATNR.
CLEAR LV_FNAME.
CONCATENATE 'MAPL-WERKS(' lv_idx ')' INTO LV_FNAME.
PERFORM BDC_FIELDS USING LV_FNAME GS_MAS-WERKS.
CLEAR LV_FNAME.
LV_IDX = LV_IDX + 1.
*OPT-DISMODE = 'N'.
*OPT-UPDMODE = 'A'.
*OPT-DEFSIZE = 'X'.
*OPT-RACOMMIT = 'X'.
***call TRANSACTION 'CA02' USING GT_BDC OPTIONS FROM OPT MESSAGES INTO GT_message.
***READ TABLE GT_message INTO GS_message WITH KEY MSGTYP = 'E'.
**IF SY-SUBRC EQ '0'.
PERFORM message_log1 USING GS_MAS-PLNNR GS_MAS-MATNR GS_MAS-WERKS.
REFRESH GT_message.
**ENDIF.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPLCZDI ' '1010' .
PERFORM BDC_FIELDS USING:'BDC_OKCODE ' '=BACK'.
Actually i added 'SAPLCZDI ' '1010' two times..i don't know whether it wrong or what? now workingg...can you plzzz suggest me can i use like this...
‎2011 Mar 23 6:40 AM
Hi Veena,
There is nothing.Just watch the screens in all screens mode what and all keys you are pressing while data entering .Some times it may happen when you gone for no screens mode. Thats all.Any way issue solved . Good.
Regards,
Madhu.
‎2011 Mar 23 7:00 AM