2020-09-09 16:50发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在开发一个报告,... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在开发一个报告,其中我会向同一用户发送多封带有附件的电子邮件。
我的问题是某些excel附件可以正确打开而没有任何错误,而其他excel附件在下面遇到错误。
请帮助我。 任何帮助将不胜感激。
谢谢。
此致
Katherine Darunday
嗨,
尝试以下代码
数据lo_send_request类型参考cl_bcs。 数据lv_date(10)。 数据lv_text TYPE char255。 文字 数据lv_subject TYPE so_obj_des。 数据lo_document类型参考cl_document_bcs。 数据lv_binary_content TYPE solix_tab。 数据lv_size TYPE so_obj_len。 DATA lv_string TYPE字符串。 数据lt_main_text类型bcsy_text。 数据lo_recipient类型参考if_recipient_bcs。 数据lv_sent_to_all TYPE os_boolean。 数据lo_bcs_exception类型参考cx_bcs。 数据:lv_email TYPE ad_smtpadr, lv_lines类型i。 *电子表格附件的分隔符 CLASS:cl_abap_char_utilities定义加载。 常量:gc_tab类型c值cl_bcs_convert => gc_tab, gc_crlf类型c值cl_bcs_convert => gc_crlf。 数据:gv_tab类型c值cl_abap_char_utilities => horizontal_tab, gv_newline TYPE c VALUE cl_abap_char_utilities =>换行符, gv_line_feed类型c值cl_abap_char_utilities => cr_lf。 将sy-datum写入lv_date DD/MM/YYYY。 lv_lines = LINES(gt_up_file)。 如果lv_lines GT 65000。 讯息i000(zmm)与 '报告有65,000多行。 电子邮件不能为' "已发送-报告只能显示。" "为了通过电子邮件发送报告" "请更改您的选择标准。"。 出口。 万一。 循环至gt_up_file。 CONCATENATE lv_string gt_up_file gc_crlf gv_newline INTO lv_string。 结局。 * ------------------------------------------------- ------------- *将文本字符串转换为UTF-16LE二进制数据,包括 *字节顺序标记。 Mircosoft Excel更喜欢这些设置 *所有这些都是由新类cl_bcs_convert完成的(请参阅注释1151257) 尝试。 cl_bcs_convert => string_to_solix( 出口 iv_string = lv_string iv_codepage ='4103'"适用于MS Excel,请留空 iv_add_bom ='X'"用于其他文档类型 输入 et_solix = lv_binary_content ev_size = lv_size)。 捕捉cx_bcs。 讯息e445(如此)。 ENDTRY。 尝试。 * --------创建持久发送请求------------------------ lo_send_request = cl_bcs => create_persistent()。 * --------创建并设置带有附件的文档--------------- *使用文本从内部表创建文档对象 lv_text = lv_date。 附加lv_text至lt_main_text。 在lt_main_text后面添加初始行。 lv_text ='附加了PO错误文件'。 附加lv_text至lt_main_text。 CONCATENATE'PO错误文件''' INTO lv_subject。 lo_document = cl_document_bcs => create_document( i_type ='RAW' i_text = lt_main_text i_subject = lv_subject)。 *将电子表格作为附件添加到文档对象 lo_document-> add_attachment( i_attachment_type ='XLS' i_attachment_subject = lv_subject i_attachment_size = lv_size i_att_content_hex = lv_binary_content)。 *添加文档对象以发送请求 lo_send_request-> set_document(lo_document)。 * ---------添加收件人(电子邮件地址)----------------------- *创建收件人对象 环回s_ercpt。 lv_email = s_ercpt-low。 lo_recipient = cl_cam_address_bcs => create_internet_address( lv_email)。 *添加收件人对象以发送请求 lo_send_request-> add_recipient(lo_recipient)。 结局。 * ----------发送文件------------------------------------- - lv_sent_to_all = lo_send_request-> send(i_with_error_screen ='X')。 提交工作。 如果lv_sent_to_all是INITIAL。 使用''的消息s500(sbcoms)。 其他。 讯息s022(so)。 万一。 * - - - - - - 异常处理 - - - - - - - - - - - - - - - - - 捕获cx_bcs INTO lo_bcs_exception。 使用lo_bcs_exception-> error_type的消息i865(so)。 ENDTRY。
最多设置5个标签!
嗨,
尝试以下代码
一周热门 更多>