打开通过邮件发送的.xlsx附件时出现错误弹出消息。

2020-09-05 04:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我想通过邮件发送.xlsx作为附件,成功附加到邮件的xlsx文件,但是在打开xlsx文件时出现错误弹出消息,如下所示:

请为我提供解决方案。


代码:

数据lo_send_request类型引用为cl_bcs。

数据lo_document类型参考cl_document_bcs。

数据lt_doc_text类型bcsy_text。

数据lt_att_text类型bcsy_text。

数据lt_att_head类型soli_tab。

数据lv_text_line类型单独。

数据lv_filename类型字符串。

数据:收件人类型为if_recipient_bcs的引用。

数据:send_request类型参考为cl_bcs。

数据:send_to_all类型为os_boolean。

数据:bcs_exception类型引用为cx_bcs。

尝试。

* --------创建持久发送请求------------------------

lo_send_request = cl_bcs => create_persistent()。

* --------创建并设置带有附件的文档---------------

*使用文本从内部表创建文档

附加"你好,世界!" 到lt_doc_text。

lo_document = cl_document_bcs => create_document(

i_type ='RAW'

i_text = lt_doc_text

i_length ='12'

i_subject ='主文档'

)。

*向文档添加附件

在lt_att_text后面附加"这是附件"。

*设置了四个字符的文件扩展名'.text'

lv_filename ='AttachmentFilename.xlsx'。 将'&SO_FILENAME ='lv_filename连接到lv_text_line。

将lv_text_line附加到lt_att_head。

lo_document-> add_attachment(导出

i_attachment_type ='XLS'

i_attachment_subject ='附件'

i_attachment_size ='21'

i_att_content_text = lt_att_text

i_attachment_header = lt_att_head

)。

*添加文档以发送请求

lo_send_request-> set_document(lo_document)。

* ---------添加收件人(电子邮件地址)-----------------------

*创建收件人-请替换电子邮件地址!!!

收件人= cl_cam_address_bcs => create_internet_address(

'mail@mail.com ')。

*添加具有各自属性的收件人以发送请求

调用方法lo_send_request-> add_recipient

导出

i_recipient =收件人

i_express ='X'。

* ----------发送文档---------------------------------- -----

调用方法lo_send_request-> send(

导出

i_with_error_screen ='X'

接收

结果= send_to_all)。

如果send_to_all ='X'。

写文字113。

endif。

提交工作。

* ---------------------------------------------- -------------

* *异常处理

* ---------------------------------------------- -------------

* *替换这种非常基本的异常处理

* *和您自己的一个!

* ---------------------------------------------- -------------

将cx_bcs捕获到bcs_exception中。

写:text-111。

编写:text-112,bcs_exception-> error_type。

退出。

努力。

Capture.PNG (9.7 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我想通过邮件发送.xlsx作为附件,成功附加到邮件的xlsx文件,但是在打开xlsx文件时出现错误弹出消息,如下所示:

请为我提供解决方案。


代码:

数据lo_send_request类型引用为cl_bcs。

数据lo_document类型参考cl_document_bcs。

数据lt_doc_text类型bcsy_text。

数据lt_att_text类型bcsy_text。

数据lt_att_head类型soli_tab。

数据lv_text_line类型单独。

数据lv_filename类型字符串。

数据:收件人类型为if_recipient_bcs的引用。

数据:send_request类型参考为cl_bcs。

数据:send_to_all类型为os_boolean。

数据:bcs_exception类型引用为cx_bcs。

尝试。

* --------创建持久发送请求------------------------

lo_send_request = cl_bcs => create_persistent()。

* --------创建并设置带有附件的文档---------------

*使用文本从内部表创建文档

附加"你好,世界!" 到lt_doc_text。

lo_document = cl_document_bcs => create_document(

i_type ='RAW'

i_text = lt_doc_text

i_length ='12'

i_subject ='主文档'

)。

*向文档添加附件

在lt_att_text后面附加"这是附件"。

*设置了四个字符的文件扩展名'.text'

lv_filename ='AttachmentFilename.xlsx'。 将'&SO_FILENAME ='lv_filename连接到lv_text_line。

将lv_text_line附加到lt_att_head。

lo_document-> add_attachment(导出

i_attachment_type ='XLS'

i_attachment_subject ='附件'

i_attachment_size ='21'

i_att_content_text = lt_att_text

i_attachment_header = lt_att_head

)。

*添加文档以发送请求

lo_send_request-> set_document(lo_document)。

* ---------添加收件人(电子邮件地址)-----------------------

*创建收件人-请替换电子邮件地址!!!

收件人= cl_cam_address_bcs => create_internet_address(

'mail@mail.com ')。

*添加具有各自属性的收件人以发送请求

调用方法lo_send_request-> add_recipient

导出

i_recipient =收件人

i_express ='X'。

* ----------发送文档---------------------------------- -----

调用方法lo_send_request-> send(

导出

i_with_error_screen ='X'

接收

结果= send_to_all)。

如果send_to_all ='X'。

写文字113。

endif。

提交工作。

* ---------------------------------------------- -------------

* *异常处理

* ---------------------------------------------- -------------

* *替换这种非常基本的异常处理

* *和您自己的一个!

* ---------------------------------------------- -------------

将cx_bcs捕获到bcs_exception中。

写:text-111。

编写:text-112,bcs_exception-> error_type。

退出。

努力。

Capture.PNG (9.7 kB)
付费偷看设置
发送
8条回答
bbpeas
1楼 · 2020-09-05 05:14.采纳回答

解决方案。

谢谢大家。

天桥码农
2楼-- · 2020-09-05 05:12

人们曾经问过Sachin解决方案是什么,从2015年就再也没有回答过,你坚持……真的吗?

cf 注释 1459896中的解决方案-BCS:支持四位数的文件扩展名

# p#

发布前请先搜索。 关于此问题有几篇文章,而其中最新的一篇是昨天发布的。 请阅读此答案( ),它也适用于您。

谢谢

Juwin

小c菟菟
3楼-- · 2020-09-05 05:01

你好,

如果附件类型仅支持3种字符,请将其更改为3个字符。

更改

lv_filename ='AttachmentFilename.xlsx'


lv_filename ='AttachmentFilename.xls'..



此致

Deepan Swaminathan。

wang628962
4楼-- · 2020-09-05 04:57

嗨,萨钦,

我觉得六方转换不见了。

但是请检查下面的林-这可能有帮助...

发送邮件 使用面向对象方法的附件-代码库-SCN Wiki

zhangjiyang1323
5楼-- · 2020-09-05 05:16

Hello Sachin,

如错误消息所示,它与文件扩展名有关。

请更改此

lv_filename ='AttachmentFilename.xlsx'。 将'&SO_FILENAME ='lv_filename连接到lv_text_line。



lv_filename ='AttachmentFilename.xls'。 将'&SO_FILENAME ='lv_filename连接到lv_text_line。


I.e .:该文件的扩展名为XLS。 这可能是因为MS Office上的旧版本不支持扩展名" XLSX"(或)的文件类型,该代码用于扩展名XLS的文件类型。


其他可能的解决方案将会改变,

lo_document-> add_attachment(导出

i_attachment_type ='XLS'

lo_document-> add_attachment(导出

i_attachment_type ='XLSX'


两个职位的格式均应相同。 XLS或XLSX。


奖励积分,如果有帮助!


此致

Deepan Swaminathan。



6楼-- · 2020-09-05 05:24

嗨,萨钦,

为什么要固定长度和尺寸参数?

分析cl_document_bcs = > create_document&add_attachment类和方法。 这两个参数应基于附件文件。

问候,

Praveer。

hongfeng1314
7楼-- · 2020-09-05 05:11

据我所知,您只能使用

出于这个原因,几年前我下载了abap2xlsx代码,它的确很棒! 在这里是: http://wiki.scn.sap.com/wiki/display/ABAP/abap2xlsx

一周热门 更多>