点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我需要在后台模式下...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我需要在后台模式下...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我需要在后台模式下发送包含2张纸的Excel文件作为附件。
我已经使用IXML和ixml_stream_factory类将数据转换为XML,并根据需要创建了2张工作表。
正在使用SO_NEW_DOCUMENT_ATT_SEND_API1发送邮件。 但是,电子邮件附件的大小为30MB,因为Excel文件的类型为XML DATA(* .xml)。
以下是发送邮件的代码:
*-创建流工厂
l_streamfactory = l_ixml-> create_stream_factory()。
*-将内部XML表连接到Stream Factory
l_ostream = l_streamfactory-> create_ostream_itable(table = l_xml_table)。
*-呈现文档
l_renderer = l_ixml-> create_renderer(ostream = l_ostream document = l_document)。
l_rc = l_renderer-> render()。
*-保存XML文档
l_xml_size = l_ostream-> get_num_writing_raw()。
ls_doc_chng-obj_descr =文本-060。
*-创建文档附件
*-L_XML_TABLE是RAW格式的转换后的XML数据。
*-类型:xml_line的开始,
*-data(255)TYPE x,
*-xml_line的结尾。
在l_xml_table INTO wa_xml中循环。
清除ls_objbin。
ls_objbin-line = wa_xml数据。
附加ls_objbin至lt_objbin。
ENDLOOP。
描述表lt_objbin LINES tab_lines。
ls_objhead-line = text-060。
附加ls_objhead到lt_objhead。
*-电子邮件附件的包装清单
ls_objpack-transf_bin ='X'。
ls_objpack-head_start = 1。
ls_objpack-head_num = 0。
ls_objpack-body_start = 1。
ls_objpack-body_num = tab_lines。
ls_objpack-doc_type ='XLS'。
ls_objpack-doc_size = tab_lines * 255。
附加ls_objpack到lt_objpack。
*-目标收件人
lv_email = gv_high。
清除ls_reclist。
ls_reclist-receiver = lv_email。
ls_reclist-rec_type ='U'。
ls_reclist-express ='X'。
附加ls_reclist到lt_reclist。
*-发送文档
通话功能'SO_NEW_DOCUMENT_ATT_SEND_API1'
导出
document_data = ls_doc_chng
put_in_outbox ='X'
commit_work ='X'
表格
包装清单= lt_objpack
object_header = lt_objhead
contents_txt = lt_objtxt
contents_hex = lt_objbin
接收者= lt_reclist
例外情况
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
其他= 99。
有关如何减小邮件大小的任何指示都将有所帮助。
谢谢。
大家好,
我能够通过在发送文件之前压缩文件来达到要求。
压缩率达到97-99%。 (58 MB文件在zip文件中减少为671 KB)。
此致。
一周热门 更多>