传输期间发生错误-返回码:

2020-09-09 05:46发布

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

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


HI队

我正在向用户发送Excel。 需要使用不同的Excel工作表发送3k记录信息。 每个具有1k条记录的excel ..我的代码适用于前1k条记录,第二条1k recoreds也发送了bt错误,如上所示。 和第三个1k记录未发送。 下面是我的代码。

lo_document = cl_document_bcs => create_document("创建文档
i_type = lc_raw"'RAW""文档HTM,TXT等的类型
i_text = lt_text"电子邮件主体内部表
i_subject = lc_subject)。

循环内部表wa。

如果count = 1000。

cl_bcs_convert => string_to_solix("秘密转换为二进制

lo_document-> add_attachment("附加文件

lo_send_request-> set_sender("已发送用户
导出
i_sender = lo_sender)。

lo_send_request-> add_recipient(

呼叫方法lo_send_request-> set_send_immediately

lo_send_request->发送(
导出
i_with_error_screen = gc_x)。

清除计数。

endif。

endloop。

我的代码适用于第一个1k修复,第二个1k修复也已发送,但出现错误。 那样就不会发送第3个1k分数。

救救我。

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

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


HI队

我正在向用户发送Excel。 需要使用不同的Excel工作表发送3k记录信息。 每个具有1k条记录的excel ..我的代码适用于前1k条记录,第二条1k recoreds也发送了bt错误,如上所示。 和第三个1k记录未发送。 下面是我的代码。

lo_document = cl_document_bcs => create_document("创建文档
i_type = lc_raw"'RAW""文档HTM,TXT等的类型
i_text = lt_text"电子邮件主体内部表
i_subject = lc_subject)。

循环内部表wa。

如果count = 1000。

cl_bcs_convert => string_to_solix("秘密转换为二进制

lo_document-> add_attachment("附加文件

lo_send_request-> set_sender("已发送用户
导出
i_sender = lo_sender)。

lo_send_request-> add_recipient(

呼叫方法lo_send_request-> set_send_immediately

lo_send_request->发送(
导出
i_with_error_screen = gc_x)。

清除计数。

endif。

endloop。

我的代码适用于第一个1k修复,第二个1k修复也已发送,但出现错误。 那样就不会发送第3个1k分数。

救救我。

付费偷看设置
发送
2条回答
浮生未央
1楼-- · 2020-09-09 06:20

谢谢,我得到了将文件压缩为ZIP的解决方案,并使用

发送给用户

cl_abap_zip类。

绿领巾童鞋
2楼-- · 2020-09-09 06:22

Presistace类和创建文档类放置在循环内部。 它正在创建3个带有1k条记录的XL工作表。 但是问题是每个xl工作表触发邮件3次,但是我们需要所有3张工作单邮件..帮助我吗? 表格email_attachment。 数据: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, lv_string TYPE字符串, lt_main_text TYPE 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 => horizo​​ntal_tab, gv_newline TYPE c VALUE cl_abap_char_utilities =>换行符, gv_line_feed类型c值cl_abap_char_utilities => cr_lf。 数据:开始于gt_up_file OCCURS 0, 第255行,TYPE C, gt_up_file的结尾。 将sy-datum写入lv_date DD/MM/YYYY。 lv_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 ='报告标题...'。 附加lv_text至lt_main_text。 合并"客户价目表" sy-datum sy-uzeit 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。 ENDFORM。 " EMAIL_ATTACHMENT

一周热门 更多>