点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,我正在使用FM SO_DOCUMENT_SEND_API1发送带有Excel附件的电子邮件。
我能够发送带有excel附件的邮件。
但是问题是当我尝试打开附件时弹出消息为''文件格式和'orders.xls'扩展名不匹配。 该文件可能已损坏或不安全。 除非您信任其来源,否则请不要打开它。 您是否仍要打开它?"
如果我在excel中单击"是"按钮,则可以查看自己的输出。
您能指导我为什么打开excel附件时显示弹出消息吗?
执行send_email表lt_message it_attach lt_receivers 使用"预算与实际"""主题 'XLS' "预算与实际附加费用"""附加文件名 'INT' 更改gd_error。 表格send_email表格pit_message pit_attach plt_receivers 使用p_mtitle p_format p_文件名 p_sender_addres_type 更改p_error。 ld_mtitle = p_mtitle。 ld_format = p_format。 ld_attfilename = p_filename。 ld_sender_address_type = p_sender_addres_type。 *填写文档数据并获取附件大小 清除:w_doc_data,w_cnt。 描述表pit_attach线w_cnt。 w_doc_data-doc_size =(w_cnt-1)* 255 + strlen(pit_attach)。 w_doc_data-obj_langu = sy-langu。 w_doc_data-obj_name ='SAPRPT'。 w_doc_data-obj_descr = ld_mtitle。 w_doc_data-sensitiveivty ='F'。 清除t_attachment。 刷新t_attachment。 t_attachment [] = pit_attach []。 清除w_t_packing_list。 刷新t_packing_list。 w_t_packing_list-transf_bin =空间。 w_t_packing_list-head_start = 1。 w_t_packing_list-head_num = 0。 w_t_packing_list-body_start = 1。 描述表pit_message LINEs w_t_packing_list-body_num。 w_t_packing_list-doc_type ='RAW'。 APPEND w_t_packing_list到t_packing_list。 w_t_packing_list-transf_bin ='X'。 w_t_packing_list-head_start = 1。 w_t_packing_list-head_num = 1。 w_t_packing_list-body_start = 1。 描述表t_attachment线w_t_packing_list-body_num。 w_t_packing_list-doc_type = ld_format。 w_t_packing_list-obj_descr = sy-datum。" ld_attdescription。 w_t_packing_list-obj_name = ld_attfilename。 w_t_packing_list-doc_size = w_t_packing_list-body_num * 255。 APPEND w_t_packing_list到t_packing_list。 通话功能" SO_DOCUMENT_SEND_API1" 出口 document_data = w_doc_data put_in_outbox ='X' sender_address = ld_sender_address sender_address_type = ld_sender_address_type commit_work ='X' 输入 sent_to_all = w_sent_all 桌子 包装清单= t_包装清单 object_header = objhead contents_bin = t_attachment contents_txt = pit_message 接收者= plt_receivers 例外情况 too_many_receivers = 1 document_not_sent = 2 document_type_not_exist = 3 operation_no_authorization = 4 parameter_error = 5 x_错误= 6 enqueue_error = 7 其他= 8。 ld_error = sy-subrc。error-in-xls-file.jpg (72.7 kB)
您知道Excel支持多种格式吗?
现在,您应该更好地理解为什么使用Excel 发送以下消息以及纠正方法。
如果要发送扩展名超过3个字符(xlsx)的附件,则应在功能模块SO_DOCUMENT_SEND_API1的参数OBJECT_HEADER中传输以下行(和 相应地,在参数PACKING_LIST中编辑HEAD_START和HEAD_NUM,以指示OBJECT_HEADER中的行在哪里):
嗨,
尝试将数据转换为十六进制表示以消除问题。
在FM SO_NEW_DOCUMENT_ATT_SEND_API中,将其传递到CONTENTS_HEX表参数而不是CONTENTS_BIN。
可能有效。
嗨,Sunil,
问题不是您的代码真正的问题,而是信任您的excel文件的设置。 每当您尝试从不受信任的位置打开excel文件时,该文件都会弹出。 您可以使用一些替代方法来摆脱此弹出窗口。 这是详细的答案:
https://social.technet.microsoft.com/Forums/office/zh-CN/4a15e472-a265-4058 -b439-7d79c2670817/xls-file-will-not-open-in-excel-2016-only-gray-view?forum = excel
通过更改excel的安全设置, 您可以摆脱此弹出窗口。
GK
嗨,Sunil,
1。 更改文件扩展名以.xlsx或.xlsm
结尾测试。
.xlsx或.xlsm文件重命名为.xls时可以生成消息
2。 将文件复制到更高级别的文件夹,查看是否解决错误。 Excel的文件路径限制为218个字符。 测试。
3。 添加受信任的位置:
a。 点击文件>选项
b。 单击"信任中心">"信任中心设置">"受信任的位置"
c。 点击添加新位置
d。 单击浏览查找文件夹,选择一个文件夹,然后单击确定。 测试。参考
https://answers.microsoft.com/zh-CN/msoffice/forum/all/file-corrupted-or-un-safe-how-to-recoverfix/1b84b312-1434 -42b2-8b43-26313047e8c6
http ://office.microsoft.com/zh-CN/excel-help/repair-a-corrupted-workbook-HA102749554.aspx
https://answers.microsoft.com/zh-cn/msoffice/forum/all/the-file-format-and-extension-of-dont -match-excel/99538197-6a5f-4474-a967-630e44060688
嗨,我正在尝试生成xlsx或.xlsm来代替.xls,但它不会改变 扩展名。
一周热门 更多>