如何通过邮件目录通过标准向客户发送Adobe表单

2020-09-21 13:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我用VF02交易生成...

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

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


专家们,

我用VF02交易生成的Adobe表格开发了一个开票销售发票表格。 现在的要求就像,我需要通过电子邮件将生成的表单直接通过标准直接发送到客户邮件ID,而无需任何自定义驱动程序。

如果有人这样做,请提供解决方案。

致谢

Ashok

7条回答
nice_wp
2020-09-21 13:42

首先,您需要使用FM SCMS_XSTRING_TO_BINARY将表单附件转换为二进制格式。 查找下面的代码以获取详细信息解决方案。

数据:
lv_pdf类型xstring,
lv_size类型i,
lv_error_log类型abap_bool,
lv_email_sub类型字符串,
lt_bindata类型solix_tab。

*将PDF转换为二进制格式

通话功能'SCMS_XSTRING_TO_BINARY'

导出

缓冲区= FP_FORMOUTPUT-pdf

导入

output_length = lv_size

表格

binary_tab = lt_bindata。

 CLASS cl_bcs定义负载。
   数据:
   lo_send_request类型参考cl_bcs值是初始值。
   lo_send_request = cl_bcs => create_persistent()。
 *邮件正文和主题
   数据:
   lt_message_body TYPE bcsy_text VALUE是INITIAL,
   lo_document类型参考cl_document_bcs值是初始值。
   在lt_message_body中追加"亲爱的"。
   将''附加到lt_message_body。
   附录"请填写所附表格,然后将其发送回给我们。"
   到lt_message_body。
   将''附加到lt_message_body。
   在lt_message_body上附加"谢谢"。
 lo_document = cl_document_bcs => create_document(
   i_type ='RAW'
   i_text = lt_message_body
   i_subject ="人员信息表")。
   数据:lx_document_bcs类型参考cx_document_bcs值是初始值。
尝试。
       lo_document-> add_attachment(
       出口
       i_attachment_type ='PDF'
       i_attachment_subject ='已附加开票发票'
 * I_ATTACHMENT_SIZE =
 * I_ATTACHMENT_LANGUAGE =空格
 * I_ATT_CONTENT_TEXT =
 * I_ATTACHMENT_HEADER =
       i_att_content_hex = lt_bindata)。
     捕获cx_document_bcs INTO lx_document_bcs。
   ENDTRY。
 * 添加附件
 *传递文件发送请求
   lo_send_request-> set_document(lo_document)。
 *创建发件人
   数据:
   lo_sender类型参考if_sender_bcs的值是INITIAL,
   l_send类型ADR6-SMTP_ADDR值'abc@test.com'。
 * lo_sender = cl_cam_address_bcs => create_internet_address(l_send)。
   lo_sender = cl_sapuser_bcs => create(sy-uname)。
 *设置发件人
   lo_send_request-> set_sender(
   出口
   i_sender = lo_sender)。
 *创建收件人
   数据:
   lo_recipient类型参考if_recipient_bcs的值是INITIAL。
 * lo_recipient = cl_sapuser_bcs => create(sy-uname)。
   lo_recipient = cl_cam_address_bcs => create_internet_address(l_send)。
 **设置收件人
   lo_send_request-> add_recipient(
   出口
   i_recipient = lo_recipient
   i_express ='X')。
 * lo_send_request-> add_recipient(
 *出口
 * i_recipient = lo_recipient
 * i_express ='X')。

 *发送电子邮件
   数据:lv_sent_to_all(1)类型c值是初始值。
   lo_send_request-> send(
   出口
   i_with_error_screen ='X'
   接收
   结果= lv_sent_to_all)。
   提交工作。  


一周热门 更多>