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
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: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..
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |