‎2007 Mar 06 4:41 PM
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.
‎2007 Mar 06 10:40 PM
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.
‎2007 Mar 06 10:40 PM
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.