使用HTML布局发送电子邮件

2020-08-18 11:01发布

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

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


你好灌篮

我的要求是在SAP收件箱和外部电子邮件中以HTML布局发送通知。 我正在使用FM SO_NEW_DOCUMENT_SEND_API1,并且可以正常工作,但是HTML布局无法正常工作。

我做了两个步骤

1)我通过SO10创建了文本,并在其中编写了html逻辑,并通过READ_TEXT对其进行了调用

2)然后将内容移动到主体OBJECT_CONTENT中并按文档类型HTM发送

但是它没有用,有人可以向我解释我做错了什么步骤或错过了什么步骤

谢谢

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

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


你好灌篮

我的要求是在SAP收件箱和外部电子邮件中以HTML布局发送通知。 我正在使用FM SO_NEW_DOCUMENT_SEND_API1,并且可以正常工作,但是HTML布局无法正常工作。

我做了两个步骤

1)我通过SO10创建了文本,并在其中编写了html逻辑,并通过READ_TEXT对其进行了调用

2)然后将内容移动到主体OBJECT_CONTENT中并按文档类型HTM发送

但是它没有用,有人可以向我解释我做错了什么步骤或错过了什么步骤

谢谢

付费偷看设置
发送
2条回答
SC_Yao
1楼-- · 2020-08-18 11:08

您好 Azeem Haider

我知道这不适合SO_NEW_DOCUMENT_SEND_API1,但也许您可以重写 代码使用CL_CRM_EMAIL_DATA类? 我认为这对开发人员更友好。

数据:
   lv_html TYPE字符串,
   ls_recipient TYPE crms_email_recipient。

 DATA(lo_email)= NEW cl_crm_email_data()。
 呼叫方法cl_crm_email_utility_base => get_body_part_from_editor
   输入
     et_mime_data = lo_email-> body
   改变
     cv_html = lv_html
   例外情况
     input_error = 1
     其他= 2。

 lo_email-> subject = |我的第一封HTML电子邮件,是的!|。
 lo_email-> from-name ='我的名字'。
 lo_email->发件人地址=''。

 ls_recipient-name ='您的名字'。
 ls_recipient-address ='YourEmailAddress@server.com'。
 APPEND ls_recipient TO lo_email-> to。

 尝试。
     DATA(lo_send_request)= cl_crm_email_utility_base => cre_send_req_from_mail_data(lo_email)。
     " N =永不,E =错误
     lo_send_request-> set_status_attributes(i_requested_status ='N')。
     lo_send_request-> set_send_immediately(abap_true)。
     DATA(lv_result)= lo_send_request-> send()。
     调用功能" BAPI_TRANSACTION_COMMIT"。
   捕获cx_send_req_bcs INTO DATA(lx_bcs)。
     "处理异常
   捕获cx_crm_email INTO DATA(lx_crm)。
     "处理异常
 ENDTRY。

 

致谢,

Mateusz
梦想连接
2楼-- · 2020-08-18 11:06

您没有指定如何"移动内容",但是我认为,您只是插入了READ_TEXT中的行,即" SAP脚本" 文本行"(具有TDSTXLLINE格式和内容的CHAR 132)到" SAP-Office行"(仅内容SO_TEXT255的字符为CHAR 255)。

但是,您可以/应该将SAP脚本转换为SAP -Office格式正确。 为此,我先将SAP脚本移动到字符串中,然后再从字符串移动到SAP-Office中。

" 1)以SAP脚本格式读取文本
 数据lt_lines线型表。  "具有CHAR 132的TDFORMAT和TDLINE的struc TLINE表
 通话功能" READ_TEXT"
   出口
     id = your_id",例如" ST"
     语言= your_language",例如'E'
     名称= your_text_name
     object = your_object",例如" TEXT"
   桌子
     行= lt_lines。  "在SAP脚本中输出


 * 2)将SAP脚本转换为字符串
 数据lo_text_assist类型参考/plmu/cl_ltx_assist。
 DATA lv_string TYPE字符串。
 创建对象lo_text_assist。
 调用方法lo_text_assist-> convert_itf_to_string(
      导出it_lines = lt_lines
      正在导入ev_ltx_content = lv_string)。


 * 3)将字符串转换为SAP-Office
 数据lt_content类型SOLI_TAB。  "具有CHAR 255的LINE TYPE SO_TEXT255的Struc SOLI表
 lt_content = cl_document_bcs => string_to_soli(lv_string)。


 * 4)使用SAP-Office数据作为对象内容
   数据lt_mail_content SOLISTI1的类型表。  "与soli_tab相同的结构,只是"表类型"不同
   将lt_content的行插入表lt_mail_content中。
   通话功能" SO_NEW_DOCUMENT_SEND_API1"
     出口
       " ...
     输入
       " ...
     桌子
       object_content = lt_mail_content
       " ...
     例外情况
       " ...
 

PS:除了使用FM,还可以使用CL_BCS类创建和发送邮件,以及使用CL_DOCUMENT_BCS类创建内容。

一周热门 更多>