‎2006 Jun 26 7:14 AM
Hi,
I am uploading a flat file from excel to SAP table j_2iaccbal. The program is going to the short dump. Pls tell me what is the error.
Code:
REPORT ZJ_21ACCBALUPLOAD .
tables: j_2iaccbal.
data: begin of itab occurs 0,
mandt like sy-mandt,
exgrp like j_2iaccbal-exgrp,
datum like j_2iaccbal-exgrp,
op_bal like j_2iaccbal-op_bal,
cl_bal like j_2iaccbal-cl_bal,
usnam like sy-uname,
cpudt like sy-datum,
cputm like sy-uzeit,
end of itab.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\SMS1.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
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.
loop at itab.
j_2iaccbal-mandt = ITAB-MANDT.
j_2iaccbal-exgrp = ITAB-EXGRP.
j_2iaccbal-datum = itab-datum.
j_2iaccbal-op_bal = itab-op_bal.
j_2iaccbal-cl_bal = itab-cl_bal.
j_2iaccbal-usnam = ITAB-USNAM.
j_2iaccbal-cpudt = ITAB-CPUDT.
j_2iaccbal-cputm = ITAB-CPUTM.
modify j_2iaccbal.
endloop.
commit work.
Regards,
Karthik
‎2006 Jun 26 7:17 AM
Hi karthik,
1. Very minor mistake.
2. HAS_FIELD_SEPARATOR = 'X '
(remove the EXTRA space after X and before 2nd QUOTE)
'X@' (where @ = space)
It should be only ONE CHARACTER 'X'.
HAS_FIELD_SEPARATOR = 'X'
regards,
amit m.
‎2006 Jun 26 7:17 AM
Hi karthik,
1. Very minor mistake.
2. HAS_FIELD_SEPARATOR = 'X '
(remove the EXTRA space after X and before 2nd QUOTE)
'X@' (where @ = space)
It should be only ONE CHARACTER 'X'.
HAS_FIELD_SEPARATOR = 'X'
regards,
amit m.
‎2006 Jun 26 7:23 AM
you said from EXCEL but in the program you hardcoded file as .txt.. check this
& i observer a space extra in HAS_FIELD_SEPERATOR field
it should be 'X'.
check it .
if you are uploading from excel, use the function module given in this link,
http://www.sapdevelopment.co.uk/file/file_upexcel.htm
TEXT_CONVERT_XLS_TO_SAP
regards
srikanth
‎2006 Jun 26 7:24 AM
Hai Karthik
Check the following COde
Just remove the space in between 'X'
that is
HAS_FIELD_SEPARATOR = 'X ' to
HAS_FIELD_SEPARATOR = 'X'
Code:
REPORT ZJ_21ACCBALUPLOAD .
tables: j_2iaccbal.
data: begin of itab occurs 0,
mandt like sy-mandt,
exgrp like j_2iaccbal-exgrp,
datum like j_2iaccbal-exgrp,
op_bal like j_2iaccbal-op_bal,
cl_bal like j_2iaccbal-cl_bal,
usnam like sy-uname,
cpudt like sy-datum,
cputm like sy-uzeit,
end of itab.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\SMS1.TXT'
FILETYPE = 'ASC'
<b>HAS_FIELD_SEPARATOR = 'X'</b>
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
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.
loop at itab.
j_2iaccbal-mandt = ITAB-MANDT.
j_2iaccbal-exgrp = ITAB-EXGRP.
j_2iaccbal-datum = itab-datum.
j_2iaccbal-op_bal = itab-op_bal.
j_2iaccbal-cl_bal = itab-cl_bal.
j_2iaccbal-usnam = ITAB-USNAM.
j_2iaccbal-cpudt = ITAB-CPUDT.
j_2iaccbal-cputm = ITAB-CPUTM.
modify j_2iaccbal.
endloop.
commit work.
Thanks & regards
Sreenivasulu P