Application Development and Automation 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: 
Read only

No batch data input problem in BDC CA02.

Former Member
0 Likes
1,537

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.

1 ACCEPTED SOLUTION
Read only

madhu_vadlamani
Active Contributor
0 Likes
1,457

HI Veena,

Take the screen name and it fields and keep in your report. I will work.

Regards,

madhu.

11 REPLIES 11
Read only

madhu_vadlamani
Active Contributor
0 Likes
1,458

HI Veena,

Take the screen name and it fields and keep in your report. I will work.

Regards,

madhu.

Read only

0 Likes
1,457

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....

Read only

0 Likes
1,457

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.

Read only

0 Likes
1,457

Ya i am pressing enter...

Read only

0 Likes
1,457

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

Read only

0 Likes
1,457

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.

Read only

0 Likes
1,457

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.

Read only

0 Likes
1,457

Hi Veena,

Thats ok. Add that code manually. It will work.

Regards,

Madhu.

Edited by: madhurao123 on Mar 23, 2011 7:30 AM

Read only

0 Likes
1,457

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...

Read only

0 Likes
1,457

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.

Read only

0 Likes
1,457

Thanq so much Madhu...