2020-08-19 17:42发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
在创建对象cl_document_bcs之后,有什么方法可以修改邮件的内容? 我有一些在循环内处理的附件。 根据附件进行某些检查后,我需要修改邮件正文内容。 有可能吗?
它是一种动态处理和验证,无法根据需要修改的邮件正文附加文件之前完成。
您可以使用类似IF_DOCUMENT_BCS〜GET_BODY_PART_CONTENT的方法来获取内容。 然后再次调用:
email_body = cl_document_bcs => create_document ...(
send_request-> set_document(email_body)。
将替换旧内容。
非常感谢Matthew。 有效。 我只是添加了这样的代码。
p_counter =>附件数
lv_part =>零件号,据我了解,电子邮件内容为1,附件为2,3 ...
IF p_counter GT 1."如果附件数量大于1(程序逻辑)
ls_content-line ='测试'。
附加ls_content至lt_content。
*尝试。
*调用方法cl_document_bcs => create_document
*导出i_type ='HTM'
* i_subject ="测试"
* i_text = lt_content接收结果= lr_document。
lv_part =2。p_counter = p_counter +1。"因为1是用于邮件内容的,所以递增支票p_counter TIMES。
"用于添加附件的循环CLEAR ls_bcsdoc。
*呼叫方法p_lr_document-> if_document_bcs〜get_body_part_content
*导出im_part = lv_part
*接收re_content = ls_bcsdoc。
* CATCH cx_document_bcs。
* ENDTRY。 *尝试。
调用方法lr_document-> add_attachment
导出
i_attachment_type ='PDF'
i_attachment_subject ='测试'
i_att_content_hex = ls_bcsdoc-cont_hex。
*捕获cx_document_bcs。
如果lv_part = p_counter。 "如果所有附件都附上
退出。
ENDIF。
lv_part = lv_part + 1."下一个附件ENDDO。ENDIF的计数器增量。
消息的编辑者:Matthew Billingham-固定格式
我今天遇到了类似的情况,但是发现来自马修·比林汉姆(a Billingham)实际上不是我的情况的答案。
我创建了ref_bcs_document,然后向其中添加了几个附件。 再次调用send_request-> set_document(xxx)后,所有附件都丢失了,因为实际上我们是在send_request中设置一个新对象,而不是带有附件的原始对象。
代码段:
send_request = cl_bcs => create_persistent()。
ref_bcs_document = cl_document_bcs => create_document(xxx)。
send_request-> set_document(ref_bcs_document)
在ttt循环。
ref_bcs_document-> add_attachment(xxx)。
endloop。
//根据附件内容更改电子邮件内容。
email_body = cl_document_bcs => create_document(xxx)。
send_request-> set_document(email_body)。 <--- email_body是一个新对象!
任何人都可以更改电子邮件内容吗?
您真的应该将此问题作为新问题发布,并带有指向该问题的链接。
最多设置5个标签!
您可以使用类似IF_DOCUMENT_BCS〜GET_BODY_PART_CONTENT的方法来获取内容。 然后再次调用:
email_body = cl_document_bcs => create_document ...(
send_request-> set_document(email_body)。
将替换旧内容。
嗨,
非常感谢Matthew。 有效。 我只是添加了这样的代码。
p_counter =>附件数
lv_part =>零件号,据我了解,电子邮件内容为1,附件为2,3 ...
IF p_counter GT 1."如果附件数量大于1(程序逻辑)
ls_content-line ='测试'。
附加ls_content至lt_content。
*尝试。
*调用方法cl_document_bcs => create_document
*导出i_type ='HTM'
* i_subject ="测试"
* i_text = lt_content接收结果= lr_document。
lv_part =2。p_counter = p_counter +1。"因为1是用于邮件内容的,所以递增支票p_counter TIMES。
"用于添加附件的循环CLEAR ls_bcsdoc。
*尝试。
*呼叫方法p_lr_document-> if_document_bcs〜get_body_part_content
*导出im_part = lv_part
*接收re_content = ls_bcsdoc。
* CATCH cx_document_bcs。
* ENDTRY。 *尝试。
调用方法lr_document-> add_attachment
导出
i_attachment_type ='PDF'
i_attachment_subject ='测试'
i_att_content_hex = ls_bcsdoc-cont_hex。
*捕获cx_document_bcs。
*尝试。
如果lv_part = p_counter。 "如果所有附件都附上
退出。
ENDIF。
lv_part = lv_part + 1."下一个附件ENDDO。ENDIF的计数器增量。
消息的编辑者:Matthew Billingham-固定格式
我今天遇到了类似的情况,但是发现来自马修·比林汉姆(a Billingham)实际上不是我的情况的答案。
我创建了ref_bcs_document,然后向其中添加了几个附件。 再次调用send_request-> set_document(xxx)后,所有附件都丢失了,因为实际上我们是在send_request中设置一个新对象,而不是带有附件的原始对象。
代码段:
send_request = cl_bcs => create_persistent()。
ref_bcs_document = cl_document_bcs => create_document(xxx)。
send_request-> set_document(ref_bcs_document)
在ttt循环。
ref_bcs_document-> add_attachment(xxx)。
endloop。
//根据附件内容更改电子邮件内容。
email_body = cl_document_bcs => create_document(xxx)。
send_request-> set_document(email_body)。 <--- email_body是一个新对象!
任何人都可以更改电子邮件内容吗?
您真的应该将此问题作为新问题发布,并带有指向该问题的链接。
一周热门 更多>