‎2007 Sep 12 4:18 PM
Hi Gurus,
I'm trying to insert lines in a table control via batch.
Unfortunately I must be able to insert more lines than the table control can show (4 lines at the same time).
I am not able to get the good OkCode trough SHDB.
I tried to add a line via OkCode 'P++' but it didnt worked.
See below a sample of my code.
IF NOT P_L_DATA-SA01 IS INITIAL.
CLEAR L_C_INDEX.
L_C_INDEX = L_INDEX.
CONCATENATE 'ADRCITYCCS-SPARTE(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = '01'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
CONCATENATE 'ADRCITYCCS-BUKRS(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = P_L_DATA-SA01.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_INDEX = L_INDEX + 1.
ENDIF.
IF NOT P_L_DATA-SA04 IS INITIAL.
CLEAR L_C_INDEX.
L_C_INDEX = L_INDEX.
CONCATENATE 'ADRCITYCCS-SPARTE(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = '04'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
CONCATENATE 'ADRCITYCCS-BUKRS(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = P_L_DATA-SA04.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_INDEX = L_INDEX + 1.
ENDIF.
IF NOT P_L_DATA-SA05 IS INITIAL.
CLEAR L_C_INDEX.
L_C_INDEX = L_INDEX.
CONCATENATE 'ADRCITYCCS-SPARTE(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = '05'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
CONCATENATE 'ADRCITYCCS-BUKRS(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = P_L_DATA-SA05.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_INDEX = L_INDEX + 1.
ENDIF.
IF NOT P_L_DATA-SA06 IS INITIAL.
CLEAR L_C_INDEX.
L_C_INDEX = L_INDEX.
CONCATENATE 'ADRCITYCCS-SPARTE(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = '06'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
CONCATENATE 'ADRCITYCCS-BUKRS(0' L_C_INDEX ')' INTO L_FIELD.
L_VALUE = P_L_DATA-SA06.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_INDEX = L_INDEX + 1.
ENDIF.
L_FIELD = 'BDC_OKCODE'.
L_VALUE = '/00'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
IF L_INDEX = 5.
L_PROG = 'SAPLSZRC'.
L_DYN = '0200'.
PERFORM BDC_DYNPRO USING L_PROG L_DYN.
L_FIELD = 'BDC_CURSOR'.
L_VALUE = 'ADRCITYCCS-BUKRS(04)'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_FIELD = 'BDC_OKCODE'.
L_VALUE = 'P++'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
ENDIF.
L_PROG = 'SAPLSZRC'.
L_DYN = '0200'.
PERFORM BDC_DYNPRO USING L_PROG L_DYN.
L_FIELD = 'BDC_CURSOR'.
L_VALUE = 'ADRCITYCCS-BUKRS(02)'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
the 5th line
IF NOT P_L_DATA-SA07 IS INITIAL.
CLEAR L_C_INDEX.
L_C_INDEX = L_INDEX.
CONCATENATE 'ADRCITYCCS-SPARTE(' '02' ')' INTO L_FIELD.
L_VALUE = '07'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
CONCATENATE 'ADRCITYCCS-BUKRS(' '02' ')' INTO L_FIELD.
L_VALUE = P_L_DATA-SA07.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_INDEX = L_INDEX + 1.
ENDIF.
L_FIELD = 'BDC_OKCODE'.
L_VALUE = '/00'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
L_PROG = 'SAPLSZRC'.
L_DYN = '0200'.
PERFORM BDC_DYNPRO USING L_PROG L_DYN.
L_FIELD = 'BDC_OKCODE'.
L_VALUE = 'SAVE'.
PERFORM BDC_FIELD USING L_FIELD L_VALUE.
Any idea will be welcomed.
Please try to be clear and precide as I always wen trought several posts wich just not match.
Thanks
‎2007 Sep 12 4:37 PM
Hi,
You can insert only limited records in to table control. if you want to increase that, While creating BDC recoring check for button near the table control. this button will be visible only at the time of recording. This button will enable to add new rows.
There will also be a button like goto line. once you reach some limit, you can trigger this button and give the line number. THis will take you the next set of lines
Regards,
Niyaz
‎2007 Sep 13 9:04 AM
Hi Niyaz,
Sorry but there is no button to add lines to this table control during the bdc recording.
The only way to enter more lines than the default number is to scroll the table control.
Unfortunatly this scroll action is not recorded (no OkCode) during recording.
Any idea gurus ???
Regards