使用CL_BCS的电子邮件正文中HTML格式的表格

2020-09-10 22:27发布

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

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


大家好,

好像我错过了一些东西。 我正在使用类获取HTML格式的电子邮件,但仅获得第一列,其中填充了所有字段的数据。 有人能帮我吗。 以下是我的代码段。

此外,电子邮件主题仅接受50个字符的文本。 我的文字比那更长。 请帮忙。

类型:lty_rec_email的开头,
              收件人TYPE ad_smtpadr,
            结束于lty_rec_email,
            lty_i_rec_email lty_rec_email的类型标准表。

     数据:li_text TYPE soli_tab,
            lw_text TYPE soli,
            l_subject TYPE so_obj_des,
            l_emailid TYPE adr6-smtp_addr,
            li_rec_email类型lty_i_rec_email,
            lw_rec_email类型lty_rec_email。

     将TEXT-010移动到lw_text-line。  " 
     附加lw_text到li_text。

     将TEXT-011移动到lw_text-line。  " 
     附加lw_text到li_text。

     将TEXT-010移动到lw_text-line。  " 
     附加lw_text到li_text。

 *内容标题
     将TEXT-018移动到lw_text-line。  " 

附加lw_text到li_text。 将TEXT-008移动到lw_text-line。 "此记录由于数据错误而失败 附加lw_text到li_text。 将TEXT-018移动到lw_text-line。 "

附加lw_text到li_text。 *表格标题 将TEXT-019移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-020移动到lw_text-line。 " 附加lw_text到li_text。 *表格行 * 供应商编号 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 *地址 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 * Idoc编号 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 * Idoc状态 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 *错误文字 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-030移动到lw_text-line。 " 附加lw_text到li_text。 *添加内容 将TEXT-020移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-031移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-030移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-033移动到lw_text-line。 "
附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-023移动到lw_text-line。 "供应商 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-026移动到lw_text-line。 "地址号码 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-027移动到lw_text-line。 " Idoc号 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-028移动到lw_text-line。 " Idoc状态 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-029移动到lw_text-line。 "错误文字 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 "
附加lw_text到li_text。 将TEXT-032移动到lw_text-line。 " 附加lw_text到li_text。 *内部表数据 循环至i_idoc_error_list INTO lw_idoc_error_list。 合并lw_idoc_error_list-lifnr lw_idoc_error_list-adrnr lw_idoc_error_list-docnum lw_idoc_error_list-状态 lw_idoc_error_list-error_text INTO lw_text-line。 附加lw_text到li_text。 结局。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 "
附加lw_text到li_text。 *填写电子邮件主题行 连接sy-mandt'-'sy-datum'-'sy-uzeit'-' "数据错误/IDOC错误–这是接口错误"(006) INTO l_subject。 尝试。 *创建新的发送请求 lo_bcs = cl_bcs => create_persistent()。 尝试。 *使用HTML格式的主题行和正文内容创建电子邮件文档 呼叫方法cl_document_bcs => create_document 出口 i_type ='HTM'" c_htm i_subject = l_subject i_text = li_text 接收 结果= lo_bcs_doc。 *设置电子邮件文档以发送请求 调用方法lo_bcs-> set_document(lo_bcs_doc)。 尝试。 *收件人 *从TVARVC表获取电子邮件地址 选择低从 tvarvc INTO 表li_rec_email 名称= c_idoc_error_email。 如果sy-subrc = 0。 环聊li_rec_email INTO lw_rec_email。 l_emailid = lw_rec_email-收件人。 *为收据创建互联网地址 呼叫方法cl_cam_address_bcs => create_internet_address 出口 i_address_string = l_emailid 接收 结果= lo_recipient。 *将收件人添加到发送请求 呼叫方法lo_bcs-> add_recipient 出口 i_recipient = lo_recipient。 结局。 万一。 如果不是lo_bcs是INITIAL的话。 *将发送标志立即设置为" X" lo_bcs-> set_send_immediately(abap_true)。 * 发电子邮件 呼叫方法lo_bcs->发送 接收 结果= l_email_sent。 万一。 *捕获异常 捕捉cx_address_bcs INTO lo_cx_address_bcs。 " #EC NO_HANDLER ENDTRY。 捕获cx_document_bcs INTO lo_cx_doc_bcs。 " #EC NO_HANDLER ENDTRY。 捕捉cx_send_req_bcs INTO lo_cx_send_req_bcs。 " #EC NO_HANDLER ENDTRY。

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

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


大家好,

好像我错过了一些东西。 我正在使用类获取HTML格式的电子邮件,但仅获得第一列,其中填充了所有字段的数据。 有人能帮我吗。 以下是我的代码段。

此外,电子邮件主题仅接受50个字符的文本。 我的文字比那更长。 请帮忙。

类型:lty_rec_email的开头,
              收件人TYPE ad_smtpadr,
            结束于lty_rec_email,
            lty_i_rec_email lty_rec_email的类型标准表。

     数据:li_text TYPE soli_tab,
            lw_text TYPE soli,
            l_subject TYPE so_obj_des,
            l_emailid TYPE adr6-smtp_addr,
            li_rec_email类型lty_i_rec_email,
            lw_rec_email类型lty_rec_email。

     将TEXT-010移动到lw_text-line。  " 
     附加lw_text到li_text。

     将TEXT-011移动到lw_text-line。  " 
     附加lw_text到li_text。

     将TEXT-010移动到lw_text-line。  " 
     附加lw_text到li_text。

 *内容标题
     将TEXT-018移动到lw_text-line。  " 

附加lw_text到li_text。 将TEXT-008移动到lw_text-line。 "此记录由于数据错误而失败 附加lw_text到li_text。 将TEXT-018移动到lw_text-line。 "

附加lw_text到li_text。 *表格标题 将TEXT-019移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-020移动到lw_text-line。 " 附加lw_text到li_text。 *表格行 * 供应商编号 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 *地址 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 * Idoc编号 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 * Idoc状态 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 *错误文字 将TEXT-021移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-030移动到lw_text-line。 " 附加lw_text到li_text。 *添加内容 将TEXT-020移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-031移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-030移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-033移动到lw_text-line。 "
附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-023移动到lw_text-line。 "供应商 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-026移动到lw_text-line。 "地址号码 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-027移动到lw_text-line。 " Idoc号 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-028移动到lw_text-line。 " Idoc状态 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-022移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-029移动到lw_text-line。 "错误文字 附加lw_text到li_text。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 "
附加lw_text到li_text。 将TEXT-032移动到lw_text-line。 " 附加lw_text到li_text。 *内部表数据 循环至i_idoc_error_list INTO lw_idoc_error_list。 合并lw_idoc_error_list-lifnr lw_idoc_error_list-adrnr lw_idoc_error_list-docnum lw_idoc_error_list-状态 lw_idoc_error_list-error_text INTO lw_text-line。 附加lw_text到li_text。 结局。 将TEXT-024移动到lw_text-line。 " 附加lw_text到li_text。 将TEXT-025移动到lw_text-line。 "
附加lw_text到li_text。 *填写电子邮件主题行 连接sy-mandt'-'sy-datum'-'sy-uzeit'-' "数据错误/IDOC错误–这是接口错误"(006) INTO l_subject。 尝试。 *创建新的发送请求 lo_bcs = cl_bcs => create_persistent()。 尝试。 *使用HTML格式的主题行和正文内容创建电子邮件文档 呼叫方法cl_document_bcs => create_document 出口 i_type ='HTM'" c_htm i_subject = l_subject i_text = li_text 接收 结果= lo_bcs_doc。 *设置电子邮件文档以发送请求 调用方法lo_bcs-> set_document(lo_bcs_doc)。 尝试。 *收件人 *从TVARVC表获取电子邮件地址 选择低从 tvarvc INTO 表li_rec_email 名称= c_idoc_error_email。 如果sy-subrc = 0。 环聊li_rec_email INTO lw_rec_email。 l_emailid = lw_rec_email-收件人。 *为收据创建互联网地址 呼叫方法cl_cam_address_bcs => create_internet_address 出口 i_address_string = l_emailid 接收 结果= lo_recipient。 *将收件人添加到发送请求 呼叫方法lo_bcs-> add_recipient 出口 i_recipient = lo_recipient。 结局。 万一。 如果不是lo_bcs是INITIAL的话。 *将发送标志立即设置为" X" lo_bcs-> set_send_immediately(abap_true)。 * 发电子邮件 呼叫方法lo_bcs->发送 接收 结果= l_email_sent。 万一。 *捕获异常 捕捉cx_address_bcs INTO lo_cx_address_bcs。 " #EC NO_HANDLER ENDTRY。 捕获cx_document_bcs INTO lo_cx_doc_bcs。 " #EC NO_HANDLER ENDTRY。 捕捉cx_send_req_bcs INTO lo_cx_send_req_bcs。 " #EC NO_HANDLER ENDTRY。

付费偷看设置
发送
5条回答
当学会了学习
1楼 · 2020-09-10 22:50.采纳回答

尝试类似

 DATA之类的方法:short_subject TYPE so_obj_des,
       long_subject TYPE字符串。
 "...。
 lo_bcs = cl_bcs => create_persistent()。
 lo_bcs-> set_message_subject(ip_subject = long_subject)。
 lo_document = cl_document_bcs => create_document(i_type ='HTM'i_text = lt_mailtext i_subject = short_subject)。
 lo_bcs-> set_document(lo_document)。
 

长主题将仅由SMTP使用。

槿木_熙
2楼-- · 2020-09-10 22:49

与您的问题无关:不要将不应翻译的文本使用文本符号。 取而代之的是,将文字与杂注## NO_TEXT一起使用,以说静态检查不要警告翻译。 必须为每个单元格创建标签。

唯一的其他问题是主题行的长度限制为50个字符。

hengyuye
3楼-- · 2020-09-10 22:57

是否提取了生成的html字符串(在调试中,或者最好在编码前) 并将其粘贴到诸如 w3schools.com

wang628962
4楼-- · 2020-09-10 22:53
# p#

管道是构造HTML

Like

 | 

A标题

野沐沐
5楼-- · 2020-09-10 22:43
我知道此方法,但是由于我正在调用create_document()方法,其中i_subject是必需参数。 不确定如何使用set_message_subject()。

 lo_bcs = cl_bcs => create_persistent()。
         lo_bcs-> set_message_subject(l_subject1)。
         尝试。
 *使用HTML格式的主题行和正文内容创建电子邮件文档
             呼叫方法cl_document_bcs => create_document
               出口
                 i_type = c_html
                 i_subject = l_subject
                 i_text = li_text
               接收
                 结果= lo_bcs_doc。

 *设置电子邮件文档以发送请求
             调用方法lo_bcs-> set_document(lo_bcs_doc)。

一周热门 更多>