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

bdc

Former Member
0 Likes
940

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?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
886

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

10 REPLIES 10
Read only

Former Member
0 Likes
886

Hi Rashmi..

Welcome to SDN!!

If u could paste some code of yours , prob can be pinpointed.

Read only

0 Likes
886

&----


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

Read only

Former Member
0 Likes
886

What is the length of v_cnt , is it greater than 1

data : v_cnt(2) type n value '10'.

Read only

Former Member
0 Likes
886

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

Read only

Former Member
0 Likes
886

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

Read only

Former Member
0 Likes
886

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

Read only

0 Likes
886

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.

Read only

Former Member
0 Likes
887

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

Read only

0 Likes
886

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

Read only

0 Likes
886

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