点击此处---> 群内免费提供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)
解决方案。
谢谢大家。
人们曾经问过Sachin解决方案是什么,从2015年就再也没有回答过,你坚持……真的吗?
cf 注释 1459896中的解决方案-BCS:支持四位数的文件扩展名
# p#发布前请先搜索。 关于此问题有几篇文章,而其中最新的一篇是昨天发布的。 请阅读此答案( ),它也适用于您。
谢谢
Juwin
你好,
如果附件类型仅支持3种字符,请将其更改为3个字符。
更改
lv_filename ='AttachmentFilename.xlsx'
到
lv_filename ='AttachmentFilename.xls'..
此致
Deepan Swaminathan。
嗨,萨钦,
我觉得六方转换不见了。
但是请检查下面的林-这可能有帮助...
发送邮件 使用面向对象方法的附件-代码库-SCN Wiki
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。
嗨,萨钦,
为什么要固定长度和尺寸参数?
分析cl_document_bcs = > create_document&add_attachment类和方法。 这两个参数应基于附件文件。
问候,
Praveer。
据我所知,您只能使用
出于这个原因,几年前我下载了abap2xlsx代码,它的确很棒! 在这里是: http://wiki.scn.sap.com/wiki/display/ABAP/abap2xlsx
一周热门 更多>