我正在使用gui_upload将文件附加到电子邮件中。 Gui_upload以十六进制格式填充内部表。但是,总是,内部表的最后一条记录填充零“0”,直到它适合它的长度。
认为这是内部表(t_mailhex);
85020E0368CEE8AEFF98BEF9100800880C2D773CAEEF95C63 5005151AC1FEB1228FBB1F4C68D715468E0934AB24B8799A7 A2B67D3456A8B370FF12578966738CC7805D088A0BAD81DD3 86941AE43776E4F255FF1ED461FE0D9702F596EE0CBD89C2E 492A27EF90500000000000000000000000000000000000000
喜欢这个。最后一条记录以零结尾。所以我附加的文件不是我想要的文件。它有一些奇怪的空字符代替零。
这就是功能。
DATA: t_mailhex TYPE STANDARD TABLE OF solix.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = l_file
filetype = 'BIN'
TABLES
data_tab = t_mailhex
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.
是否应手动删除这些零或我是否遗漏了使用该功能的内容?
答案 0 :(得分:3)
该功能完全按预期工作,您只是没有正确使用它。您忽略了附加参数,该参数告诉您读取了多少字节。由于表格的行具有固定的长度,因此在技术上不可能省略这些尾随的零。您可以将字节连接到XSTRING
,但是您必须跟踪已经收集的字节数并切断过程中的尾随零。
答案 1 :(得分:0)
好的,这是整个解决方案;
首先,您需要将文件长度导入整数变量。
CALL METHOD cl_gui_frontend_services=>gui_upload
...
IMPORTING
filelength = fleng_i
...
将其写入字符类型变量并将 i_attachment_size 作为参数添加到添加附件类;
CALL METHOD w_document->add_attachment
EXPORTING
i_attachment_size = fleng
...