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

Dynamic upload

Former Member
0 Likes
312

Hi ,

Could some one paste the code for a dynamic upload of a file in data base table ?

i did this way plz correct where i am wrong ..

tables tadir.

DATA: FN(20) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK B1.

PARAMETERS: FNAME like FN ,

tabname like tadir-OBJ_NAME.

SELECTION-SCREEN END OF BLOCK B1.

DATA: FN1 TYPE STRING,itab like standard table of tabname .

FN1 = FNAME.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FN1

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = itab

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

MODIFY (tabname) FROM TABLE itab.

commit work.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
281

Hi,

You internal table declaration is not dynamic. so you are not able to do it. check the code below..

report ztest.

tables tadir.

DATA: FN(20) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK B1.

PARAMETERS: FNAME like FN ,

tabname like tadir-OBJ_NAME.

SELECTION-SCREEN END OF BLOCK B1.

field-symbols: <fs> type standard table.

DATA dref TYPE REF TO data.

create data dref type standard table of (tabname).

assign dref->* to <fs>.

DATA: FN1 TYPE STRING.

FN1 = FNAME.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FN1

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = <fs>

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

MODIFY (tabname) FROM TABLE <fs>.

commit work.

I tested this as well. Award points if it helps.

1 REPLY 1
Read only

Former Member
0 Likes
282

Hi,

You internal table declaration is not dynamic. so you are not able to do it. check the code below..

report ztest.

tables tadir.

DATA: FN(20) TYPE C.

SELECTION-SCREEN BEGIN OF BLOCK B1.

PARAMETERS: FNAME like FN ,

tabname like tadir-OBJ_NAME.

SELECTION-SCREEN END OF BLOCK B1.

field-symbols: <fs> type standard table.

DATA dref TYPE REF TO data.

create data dref type standard table of (tabname).

assign dref->* to <fs>.

DATA: FN1 TYPE STRING.

FN1 = FNAME.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FN1

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = <fs>

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

MODIFY (tabname) FROM TABLE <fs>.

commit work.

I tested this as well. Award points if it helps.