使用FM SO_DOCUMENT_SEND_API1发送带有excel附件的邮件时,excel格式出现问题。

2020-08-25 09:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好,我正在使用FM SO_DO...

         点击此处--->   EasySAP.com群内免费提供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)
5条回答
土豆飞人
2020-08-25 09:51

嗨,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

一周热门 更多>