需求:需要将SAP内表資料下載下傳到Excel裡,總共有六個欄位,分别是物料号、物料組、文本描述、長文本、建立日期、舊料号。

遇到的問題:長文本的資料中有雙引号開頭的資料,如果使用tab分割的下載下傳格式,引号會自動尋找下一個引号,在這其中的資料都會被視作一條資料,是以最後下載下傳的資料會少很多。
如果用CSV格式(以逗号分隔的格式),其中有很多資料中都有逗号,遇到逗号會增加一列,是以不可取。
解決辦法:使用Dbase格式進行下載下傳,此格式會解決大部分Excel下載下傳問題,是單元格形式(不知道這麼解釋對不對)。
FILENAME參數下載下傳位址
FILETYPE參數更多格式可去function中檢視,有較長的描述。
‘DBF’ : 解釋
Data is downloaded in dBase format. Since in this format the data types of the individual columns are stored as well, you can often avoid import problems, for example, into Microsoft Excel, especially when interpreting numeric values.
CODEPAGE參數是指語言,如果系統中有中文,使用錯誤代碼,下載下傳Excel會亂碼,可根據function SCP_CODEPAGE_BY_EXTERNAL_NAME來尋找4位代碼。
FIELDNAMES參數表頭(此格式表頭是列格式)
CALL FUNCTION ‘GUI_DOWNLOAD’
EXPORTING
filename = t_down
filetype = ‘DBF’
codepage = ‘8300’
TABLES
data_tab = itab2
fieldnames = itab1_text
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.