‎2007 May 02 8:27 AM
im creating se38 through bdc.and i ve to upload from a file that has a format wherein all the events are populated.so that when the user opens se38 all the events are alredy populated on the report screen.so i have uploaded that file in an internal table.now i have to loop at that internal table.im concatinating 'RSTXP-TDLINE(' v_cnt ') ' where v_cnt( type N) should start from 10.but even if i declare it in data the value starts from 0.why this is happening?
‎2007 May 02 9:26 AM
hi rashmi,
go through this code...................if its help you then plz reward it.........
*&&structure for flat file--
TYPES : BEGIN OF T_TEMPLATE,
V_SCODE(1000),
END OF T_TEMPLATE.
*&&internal table to hold flat file data---
DATA : I_TEMPLATE TYPE TABLE OF T_TEMPLATE WITH HEADER LINE,
*&&internal table to hold bdcdata---
I_BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE,
*&&internal table to hold error message---
I_MESSAGES TYPE TABLE OF BDCMSGCOLL.
DATA : V_FILE TYPE STRING,
V_STRING TYPE STRING,
V_LINE TYPE RSTXP-TDLINE VALUE '10',
V_COUNT TYPE RSTXP-TDLINE VALUE 1.
CONSTANTS : C_TCODE(4) VALUE 'SE38',
C_MODE(3) VALUE 'A',
C_UPDT(3) VALUE 'S'.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*SELECTION SCREEN.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
*&&user entry for program attributes--
PARAMETERS : P_PNAME LIKE TRDIR-NAME default 'Z',
P_TITLE LIKE RS38M-REPTI,
P_PTYPE LIKE TRDIR-SUBC,
P_PSTAT LIKE TRDIR-RSTAT,
P_APPLN LIKE TRDIR-APPL.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
*&&source file path--
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK2.
SELECTION-SCREEN END OF BLOCK BLK1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*&&locate flat file--
PERFORM ZF_PROC_BROWSE_PATH.
AT SELECTION-SCREEN.
*&&validate user entry--
PERFORM ZF_PROC_VALIDATE.
START-OF-SELECTION.
*&&fetch data from flat file--
PERFORM ZF_PROC_DATA_UPLOAD.
*&&bdc operation--
PERFORM ZF_PROC_BDC_OPERATION.
END-OF-SELECTION.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
****LOAD DATA FROM FLAT FILE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_DATA_UPLOAD
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_DATA_UPLOAD .
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = I_TEMPLATE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ZF_PROC_DATA_UPLOAD
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
****BROWSE FILE PATH>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_BROWSE_PATH
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_BROWSE_PATH .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
ENDFORM. " ZF_PROC_BROWSE_PATH
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>VALIDATIONS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_VALIDATE
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_VALIDATE .
CONSTANTS : C_XTN(3) VALUE 'txt',
C_NAME(4) VALUE 'Z'.
DATA : V_STRLN TYPE I,
V_OFFST TYPE I,
V_XTSN(3),
V_SFILE TYPE STRING.
*&&check attributes--
IF P_PNAME IS INITIAL OR
P_TITLE IS INITIAL OR
P_PTYPE IS INITIAL OR
P_PSTAT IS INITIAL.
MESSAGE S036.
ENDIF.
*&&chk prog-name format 'Z'--
*&&chk txt file--
V_SFILE = P_FILE.
V_STRLN = STRLEN( V_SFILE ).
V_OFFST = V_STRLN - 3.
V_XTSN = V_SFILE+V_OFFST(3).
IF V_XTSN <> C_XTN.
MESSAGE S037.
ENDIF.
ENDFORM. " ZF_PROC_VALIDATE
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>BDC OPERATION>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_BDC_OPERATION
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_BDC_OPERATION .
*&&pass the program name--
perform bdc_dynpro using 'SAPLWBABAP' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RS38M-PROGRAMM'.
perform bdc_field using 'BDC_OKCODE'
'=NEW'.
perform bdc_field using 'RS38M-PROGRAMM'
P_PNAME.
perform bdc_field using 'RS38M-FUNC_EDIT'
'X'.
*&&pass title and type--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'TRDIR-SUBC'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER_SC'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&pass the program status--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'TRDIR-RSTAT'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&pass the application--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'RSAHD-APPL'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'RSAHD-APPL'
P_APPLN.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&ok code for 'SAVE'--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'RS38M-REPTI'.
perform bdc_field using 'BDC_OKCODE'
'=CONT'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'RSAHD-APPL'
P_APPLN.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&local object and user name---
perform bdc_dynpro using 'SAPLSTRD' '0100'.
perform bdc_field using 'BDC_CURSOR'
'KO007-L_DEVCLASS'.
perform bdc_field using 'BDC_OKCODE'
'=TEMP'.
perform bdc_field using 'KO007-L_DEVCLASS'
'$TMP'.
perform bdc_field using 'KO007-L_AUTHOR'
'TRAINEE'.
*&&pass one record at a time--
LOOP AT I_TEMPLATE.
CONCATENATE 'RSTXP-TDLINE(' V_LINE ')' INTO V_STRING.
perform bdc_dynpro using 'SAPLS38E' '0400'.
perform bdc_field using 'BDC_OKCODE'
'=ED_ENTER'.
perform bdc_field using 'BDC_CURSOR'
V_STRING.
perform bdc_field using : 'RSTXP-TDFIRST'
V_COUNT,
V_STRING I_TEMPLATE-V_SCODE.
V_LINE = V_LINE + 1.
IF V_LINE >= 20.
V_LINE = 18.
V_COUNT = V_COUNT + 1.
V_LINE = V_LINE + 1.
ENDIF.
ENDLOOP.
*&&save contents of editor created--
perform bdc_dynpro using 'SAPLS38E' '0400'.
perform bdc_field using 'BDC_OKCODE'
'=WB_SAVE'.
*&&call transaction 'SE38'--
CALL TRANSACTION C_TCODE
USING I_BDCDATA
MODE C_MODE
UPDATE C_UPDT
MESSAGES INTO I_MESSAGES.
*&&if call is successful--
IF SY-SUBRC = 0.
SET PARAMETER ID 'RID'
FIELD P_PNAME.
LEAVE TO TRANSACTION C_TCODE
AND SKIP FIRST SCREEN .
MESSAGE S035.
ENDIF.
ENDFORM. " ZF_PROC_BDC_OPERATION
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
*----
CLEAR I_BDCDATA.
I_BDCDATA-PROGRAM = PROGRAM.
I_BDCDATA-DYNPRO = DYNPRO.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF fval <> nodata.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = FNAM.
I_BDCDATA-FVAL = FVAL.
APPEND I_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
----
Regards,
vijay chaturvedi
‎2007 May 02 8:31 AM
Hi Rashmi..
Welcome to SDN!!
If u could paste some code of yours , prob can be pinpointed.
‎2007 May 02 8:38 AM
&----
*& Report Z9RNP_BDC_MODIFIED *
*& *
&----
*& *
*& *
&----
REPORT Z9RNP_BDC_MODIFIED no standard page heading line-size 120
message-id z9rashmip .
&----
*& Report Z9RNP_BDC_SE38 *
*& *
&----
*& *
*& *
&----
&----
*name:rashmi purohit
*descp:to create transaction se38 using BDC.
*created on:17/04/2007.
&----
DATA DECLARATION FOR INTERNAL TABLES
&----
data: IT_bdcdata type table of bdcdata .
messages of call transaction
DATA: IT_MESSTAB like BDCMSGCOLL occurs 0 with header line.
&----
DATA DECLARATION FOR WORK AREAS
&----
DATA:WA_BDCDATA TYPE BDCDATA.
&----
SELECTION-SCREEN DEFINITION
&----
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001.
parameters: p_prog(30) type c.
parameters: p_title(70) type c.
parameters: p_ptype like TRDIR-SUBC.
parameters: p_status like trdir-RSTAT.
SELECTION-SCREEN END OF BLOCK BL1.
&----
MAIN LOGIC
&----
start-of-selection.
Perform Populate_BDC Using : 'X' 'SAPLWBABAP' '0100',
' ' 'BDC_CURSOR' 'RS38M-PROGRAMM',
' ' 'BDC_OKCODE' '=NEW',
' ' 'RS38M-PROGRAMM' p_prog,
' ' 'RS38M-FUNC_EDIT' 'X',
'X' 'SAPLSEDTATTR' '0200',
' ' 'BDC_CURSOR' 'TRDIR-SUBC',
' ' 'BDC_OKCODE' '=CONT',
' ' 'RS38M-REPTI' p_title,
' ' 'TRDIR-SUBC' p_ptype,
' ' 'TRDIR-RSTAT' p_status,
' ' 'TRDIR-FIXPT' 'X',
' ' 'TRDIR-UCCHECK' 'X',
'X' 'SAPLSTRD' '0100',
' ' 'BDC_CURSOR' 'KO007-L_DEVCLASS',
' ' 'BDC_OKCODE' '=TEMP',
' ' 'KO007-L_DEVCLASS' '$TMP',
' ' 'KO007-L_AUTHOR' 'TRAINEE'.
*--============================================================
types : Begin of i_datatable,
line type string,
End of i_datatable .
data: it_datatable type standard table of i_datatable with header line.
Data v_cnt type N.
DATA:v_fldnm(50).
v_cnt = 10.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Documents and Settings\rpurohit\My Documents\bdc.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
*IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = it_datatable
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Loop at it_datatable.
v_cnt = v_cnt + 1.
Clear v_fldnm.
Concatenate 'RSTXP-TDLINE(' v_cnt ') '
Into v_fldnm.
perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' v_fldnm,
' ' 'RSTXP-TDFIRST' ' 1',
' ' v_fldnm it_datatable-line.
If v_cnt = 19.
Clear v_cnt.
v_cnt = 0.
v_cnt = v_cnt + 1.
perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_NEXT_PAGE',
' ' 'BDC_CURSOR' v_fldnm,
' ' 'RSTXP-TDFIRST' ' 18',
' ' v_fldnm it_datatable-line.
ENdif.
EndLoop.
*--============================================================
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(10)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(10)'
'*&------------------------------------'
& '---------------------------------*'.
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(11)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(11)' '*NAME:'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(12)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(12)' '*DESCRIPTION:'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(13)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(13)' '*CREATED ON:'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(14)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(11)' 'NAME OF THE REPORT:',
' ' 'RSTXP-TDLINE(14)' '*CREATED BY:'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(15)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(15)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(16)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(16)'
'*DEFINING STRUCTURES'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(17)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(17)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(18)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(18)'
'*DEFINING INTERNAL TABLES'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 1',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 2',
' ' 'RSTXP-TDLINE(19)'
'*DECLARING THE WORK AREAS'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 3',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 4',
' ' 'RSTXP-TDLINE(19)'
'*DECLARING THE VARIABLES'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 5',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 6',
' ' 'RSTXP-TDLINE(19)'
'*DECLARING THE CONSTANTS'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 7',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 8',
' ' 'RSTXP-TDLINE(19)'
'*SCREEN-DEFINITION'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 9',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 10',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:AT SELECTION-SCREEN(VALIDAT'
& 'ION OF SCREEN-FIELDS)'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 11',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 12',
' ' 'RSTXP-TDLINE(19)'
'AT SELECTION-SCREEN.'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 13',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 14',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:INITIALISATION'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 15',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 16',
' ' 'RSTXP-TDLINE(19)'
'INITIALIZATION.'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 17',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 18',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:START-OF-SEELCTION(MAIN LOGIC)'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 19',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 20',
' ' 'RSTXP-TDLINE(19)'
'START-OF-SELECTION.'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 21',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 22',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:END-OF-SELECTION.'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 23',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 24',
' ' 'RSTXP-TDLINE(19)'
'END-OF-SELECTION.'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 25',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 26',
' ' 'RSTXP-TDLINE(19)'
'*EVENT:TOP-OF-PAGE'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 27',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 28',
' ' 'RSTXP-TDLINE(19)'
'TOP-OF-PAGE.'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 29',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 30',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:TOP-OF-PAGE DURING AT LINE-SEL'
& 'ECTION'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 31',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 32',
' ' 'RSTXP-TDLINE(19)'
'TOP-OF-PAGE DURING AT LINE-SELECTION.'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 33',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 34',
' ' 'RSTXP-TDLINE(19)'
'* EVENT:AT LINE-SELECTION'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 35',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 36',
' ' 'RSTXP-TDLINE(19)'
'AT LINE-SELECTION.'.
*
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 37',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 38',
' ' 'RSTXP-TDLINE(19)'
'*EVENT:AT USER-COMMAND'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 39',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 40',
' ' 'RSTXP-TDLINE(19)'
'AT USER-COMMAND.'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 41',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 42',
' ' 'RSTXP-TDLINE(19)'
'*EVENT:END-OF-PAGE'.
*
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 43',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 44',
' ' 'RSTXP-TDLINE(19)'
'END-OF-PAGE.'.
*
*perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_ENTER',
' ' 'BDC_CURSOR' 'RSTXP-TDLINE(19)',
' ' 'RSTXP-TDFIRST' ' 45',
' ' 'RSTXP-TDLINE(19)'
'*&------------------------------------'
& '---------------------------------*'.
CALL TRANSACTION 'SE38' USING IT_BDCDATA
MODE 'A'
MESSAGES INTO IT_MESSTAB.
&----
*POPULATING THE SCREEN AND THE SCREEN FIELDS BY MERGING THE PERFORMS.
*RATHER THAN WRITING TH PERFORMS INDIVIDUALLY FOR DYNPRO AND SCREEN.
&----
*&---define a flag for starting new sceen.(dynbegin)
*&---also define 2 local variables for the form p_fnam & p_fval.
*&---assign the prog name to the f_nam and the screen no to the p_fval.
*&---if the value is 'X' then fill the bdc with its field value and
*&---field name.
*&--else populate the bdc for the field value n name.
Form Populate_BDC using p_flg
P_fnam
P_fval.
If p_flg = 'X'.
clear WA_bdcdata.
WA_bdcdata-program = P_fnam. "program name
WA_bdcdata-dynpro = P_fval. "screen no.
WA_bdcdata-dynbegin = 'X'. "start screen
append WA_bdcdata TO IT_BDCDATA.
Else.
clear WA_bdcdata.
WA_bdcdata-fnam = p_fnam. "field name
WA_bdcdata-fval = p_fval. "field value
append WA_bdcdata TO IT_BDCDATA.
Endif.
‎2007 May 02 8:33 AM
What is the length of v_cnt , is it greater than 1
data : v_cnt(2) type n value '10'.
‎2007 May 02 8:40 AM
Hi Rashmi,
Are you trying to create a SE38 or writing a BDc on SE38.... if you are creating a SE38 then I think it's better to try using controls for creating it.....
Can you please post your code.. so that we may be able to solve your queries anyway's
Regards,
Jayant Sahu
‎2007 May 02 8:43 AM
As explained in my previous thread , change the length of v_cnt to 2
<b>data : v_cnt(2) type n value '10'.</b>
you have just declare it of length 1 , so it will take only 0 from value 10
‎2007 May 02 8:43 AM
Give length of variable as two written below..
<i>Data v_cnt type N</i>
Data v_cnt(2) type N.
Now check.
Variables of the type n, c ,x ,p need length specification.
Reward if useful
Message was edited by:
shweta soni
‎2007 May 02 9:56 AM
now what is happenin is v_cnt is initialising at 10 but since the editor page is line-count is 22 the error given is RSTXP-TDLINE(23)input not available.so whatever it is looping at the internal table when it exceeds 22 it starts overwriting.i mean i ve given the condition like that..
If v_cnt = 23.
Clear v_cnt.
v_cnt = 0.
v_cnt = v_cnt + 1.
perform populate_bdc using : 'X' 'SAPLS38E' '0400',
' ' 'BDC_OKCODE' '=ED_NEXT_PAGE',
' ' 'BDC_CURSOR' v_fldnm,
' ' 'RSTXP-TDFIRST' ' 18',
' ' v_fldnm it_datatable-line.
where '=ED_NEXT_PAGE' is the page-down value in bdc.coz if i dont start from 1 the error given earlier is given.
‎2007 May 02 9:26 AM
hi rashmi,
go through this code...................if its help you then plz reward it.........
*&&structure for flat file--
TYPES : BEGIN OF T_TEMPLATE,
V_SCODE(1000),
END OF T_TEMPLATE.
*&&internal table to hold flat file data---
DATA : I_TEMPLATE TYPE TABLE OF T_TEMPLATE WITH HEADER LINE,
*&&internal table to hold bdcdata---
I_BDCDATA TYPE BDCDATA OCCURS 0 WITH HEADER LINE,
*&&internal table to hold error message---
I_MESSAGES TYPE TABLE OF BDCMSGCOLL.
DATA : V_FILE TYPE STRING,
V_STRING TYPE STRING,
V_LINE TYPE RSTXP-TDLINE VALUE '10',
V_COUNT TYPE RSTXP-TDLINE VALUE 1.
CONSTANTS : C_TCODE(4) VALUE 'SE38',
C_MODE(3) VALUE 'A',
C_UPDT(3) VALUE 'S'.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*SELECTION SCREEN.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
*&&user entry for program attributes--
PARAMETERS : P_PNAME LIKE TRDIR-NAME default 'Z',
P_TITLE LIKE RS38M-REPTI,
P_PTYPE LIKE TRDIR-SUBC,
P_PSTAT LIKE TRDIR-RSTAT,
P_APPLN LIKE TRDIR-APPL.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-002.
*&&source file path--
PARAMETERS : P_FILE TYPE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK2.
SELECTION-SCREEN END OF BLOCK BLK1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*&&locate flat file--
PERFORM ZF_PROC_BROWSE_PATH.
AT SELECTION-SCREEN.
*&&validate user entry--
PERFORM ZF_PROC_VALIDATE.
START-OF-SELECTION.
*&&fetch data from flat file--
PERFORM ZF_PROC_DATA_UPLOAD.
*&&bdc operation--
PERFORM ZF_PROC_BDC_OPERATION.
END-OF-SELECTION.
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
****LOAD DATA FROM FLAT FILE>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_DATA_UPLOAD
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_DATA_UPLOAD .
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = I_TEMPLATE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " ZF_PROC_DATA_UPLOAD
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
****BROWSE FILE PATH>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_BROWSE_PATH
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_BROWSE_PATH .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = P_FILE
.
ENDFORM. " ZF_PROC_BROWSE_PATH
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>VALIDATIONS>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_VALIDATE
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_VALIDATE .
CONSTANTS : C_XTN(3) VALUE 'txt',
C_NAME(4) VALUE 'Z'.
DATA : V_STRLN TYPE I,
V_OFFST TYPE I,
V_XTSN(3),
V_SFILE TYPE STRING.
*&&check attributes--
IF P_PNAME IS INITIAL OR
P_TITLE IS INITIAL OR
P_PTYPE IS INITIAL OR
P_PSTAT IS INITIAL.
MESSAGE S036.
ENDIF.
*&&chk prog-name format 'Z'--
*&&chk txt file--
V_SFILE = P_FILE.
V_STRLN = STRLEN( V_SFILE ).
V_OFFST = V_STRLN - 3.
V_XTSN = V_SFILE+V_OFFST(3).
IF V_XTSN <> C_XTN.
MESSAGE S037.
ENDIF.
ENDFORM. " ZF_PROC_VALIDATE
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>BDC OPERATION>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
&----
*& Form ZF_PROC_BDC_OPERATION
&----
text
----
--> p1 text
<-- p2 text
----
FORM ZF_PROC_BDC_OPERATION .
*&&pass the program name--
perform bdc_dynpro using 'SAPLWBABAP' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RS38M-PROGRAMM'.
perform bdc_field using 'BDC_OKCODE'
'=NEW'.
perform bdc_field using 'RS38M-PROGRAMM'
P_PNAME.
perform bdc_field using 'RS38M-FUNC_EDIT'
'X'.
*&&pass title and type--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'TRDIR-SUBC'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER_SC'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&pass the program status--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'TRDIR-RSTAT'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&pass the application--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'RSAHD-APPL'.
perform bdc_field using 'BDC_OKCODE'
'=DROPDOWN_ENTER'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'RSAHD-APPL'
P_APPLN.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&ok code for 'SAVE'--
perform bdc_dynpro using 'SAPLSEDTATTR' '0200'.
perform bdc_field using 'BDC_CURSOR'
'RS38M-REPTI'.
perform bdc_field using 'BDC_OKCODE'
'=CONT'.
perform bdc_field using 'RS38M-REPTI'
P_TITLE.
perform bdc_field using 'TRDIR-SUBC'
P_PTYPE.
perform bdc_field using 'TRDIR-RSTAT'
P_PSTAT.
perform bdc_field using 'RSAHD-APPL'
P_APPLN.
perform bdc_field using 'TRDIR-FIXPT'
'X'.
perform bdc_field using 'TRDIR-UCCHECK'
'X'.
*&&local object and user name---
perform bdc_dynpro using 'SAPLSTRD' '0100'.
perform bdc_field using 'BDC_CURSOR'
'KO007-L_DEVCLASS'.
perform bdc_field using 'BDC_OKCODE'
'=TEMP'.
perform bdc_field using 'KO007-L_DEVCLASS'
'$TMP'.
perform bdc_field using 'KO007-L_AUTHOR'
'TRAINEE'.
*&&pass one record at a time--
LOOP AT I_TEMPLATE.
CONCATENATE 'RSTXP-TDLINE(' V_LINE ')' INTO V_STRING.
perform bdc_dynpro using 'SAPLS38E' '0400'.
perform bdc_field using 'BDC_OKCODE'
'=ED_ENTER'.
perform bdc_field using 'BDC_CURSOR'
V_STRING.
perform bdc_field using : 'RSTXP-TDFIRST'
V_COUNT,
V_STRING I_TEMPLATE-V_SCODE.
V_LINE = V_LINE + 1.
IF V_LINE >= 20.
V_LINE = 18.
V_COUNT = V_COUNT + 1.
V_LINE = V_LINE + 1.
ENDIF.
ENDLOOP.
*&&save contents of editor created--
perform bdc_dynpro using 'SAPLS38E' '0400'.
perform bdc_field using 'BDC_OKCODE'
'=WB_SAVE'.
*&&call transaction 'SE38'--
CALL TRANSACTION C_TCODE
USING I_BDCDATA
MODE C_MODE
UPDATE C_UPDT
MESSAGES INTO I_MESSAGES.
*&&if call is successful--
IF SY-SUBRC = 0.
SET PARAMETER ID 'RID'
FIELD P_PNAME.
LEAVE TO TRANSACTION C_TCODE
AND SKIP FIRST SCREEN .
MESSAGE S035.
ENDIF.
ENDFORM. " ZF_PROC_BDC_OPERATION
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
*----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
*----
CLEAR I_BDCDATA.
I_BDCDATA-PROGRAM = PROGRAM.
I_BDCDATA-DYNPRO = DYNPRO.
I_BDCDATA-DYNBEGIN = 'X'.
APPEND I_BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF fval <> nodata.
CLEAR I_BDCDATA.
I_BDCDATA-FNAM = FNAM.
I_BDCDATA-FVAL = FVAL.
APPEND I_BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
----
Regards,
vijay chaturvedi
‎2007 May 02 10:30 AM
thanks vijay..
but i did not understand the part of code which goes..
perform bdc_field using : 'RSTXP-TDFIRST'
V_COUNT,
V_STRING I_TEMPLATE-V_SCODE.
V_LINE = V_LINE + 1.
IF V_LINE >= 20.
V_LINE = 18.
V_COUNT = V_COUNT + 1.
V_LINE = V_LINE + 1.
ENDIF.
canu plz explain..
‎2007 May 02 11:08 AM
thanks vijay..
but i did not understand the part of code which goes..
perform bdc_field using : 'RSTXP-TDFIRST'
V_COUNT,
V_STRING I_TEMPLATE-V_SCODE.
V_LINE = V_LINE + 1.
IF V_LINE >= 20.
V_LINE = 18.
V_COUNT = V_COUNT + 1.
V_LINE = V_LINE + 1.
ENDIF.
canu plz explain..