通过电子邮件发送多个PDF附件

2020-08-24 11:05发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我的要求是在一封...

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

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


专家们,

我的要求是在一封邮件中发送两个PDF作为附件。 我能够看到两个附件。 但是,第一个附件没有打开,而第二个附件只是打开。

在这里,我正在提供我编写的代码。 有谁可以帮助我解决错误所在? 如果需要其他ABAP声明,请提出建议。

预先感谢您的帮助。

  • 从Application Server中读取SRQ文档

数据:开始为INT_SRQ发生0,

FIELD(256),

INT_SRQ的结尾。

数据:WS_FILE1(100)值'/tmp/ safety_questionaire.pdf '。

在二进制模式下输入要打开的数据集WS_FILE1。

做。

将WS_FILE1数据集读入INT_SRQ-FIELD。

IF SY-SUBRC EQ 0。

APPEND INT_SRQ。

ELSE。

退出。

ENDIF。

ENDDO。

  • 从Application Server中读取保险文档

数据:开始出现INT_INSURANCE发生次数0,

FIELD(256),

INT_INSURANCE的结尾。

数据:WS_FILE2(100)VALUE'/tmp/ insurance.pdf '。

在BINARY模式下输入要打开的数据集WS_FILE2。

做。

将WS_FILE2数据集读入INT_INSURANCE-FIELD。

如果SY-SUBRC EQ 0。

APPEND INT_INSURANCE。

ELSE。

退出。

ENDIF。

ENDDO。

*************************************************** ******************

数据:类似于itcpo的itcpo,

tab_line类似于sy-tabix。

  • 电子邮件功能的变量

数据:类似于sodocchgi1的邮件数据。

数据:像sopcklsti1这样的邮件包在标题行中出现2。

数据:像solisti1这样的邮件头在标题行中出现1。

数据:类似于solisti1的邮件箱出现在标题行中的10。

数据:类似于solisti1的mailtxt在标题行出现10次。

数据:类似于somlrec90的mailrec在标题行出现0。

数据:类似于solisti1的solisti1在标题行出现0。

执行send_form_via_email。

如果sy-subrc eq为0。

使用"电子邮件发送成功"的消息i000(0)。

endif。

*************************************************** *************************

  • 表单SEND_FORM_VIA_EMAIL *

*************************************************** *************************

表单send_form_via_email。

清除:maildata,mailtxt,mailbin,mailpack,mailhead,mailrec。

刷新:mailtxt,mailbin,mailpack,mailhead,mailrec。

  • 创建要发送的文档文件名

maildata-obj_name ='SRQ'。

  • 邮件主题

maildata-obj_descr =调查表。

  • 邮件内容

mailtxt-line ='问卷'。

附加mailtxt。

  • 准备装箱单

执行prepare_packing_list。

  • 在此处设置收件人-电子邮件地址!

mailrec-receiver = 'vamseekrishna_k@yahoo.co.in '。

mailrec-rec_type ='U'。

附加mailrec。

  • 发送文档

调用函数" SO_NEW_DOCUMENT_ATT_SEND_API1"

导出

document_data = maildata

put_in_outbox ='x'

表格

包装清单=邮件包

object_header =邮件头

contents_bin = mailbin

contents_txt = mailtxt

收件人= mailrec

例外

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

其他= 99。

endform。

*************************************************** *************************

  • 表格PREPARE_PACKING_LIST

*************************************************** *************************

form prepare_packing_list。

清除:mailpack,mailbin,邮件头。

刷新:mailpack,mailbin,邮件头。

描述表格mailtxt行tab_lines。

读取表mailtxt索引的tab_lines。

maildata-doc_size =(tab_lines-1)* 255 + strlen(mailtxt)。

  • 创建压缩文档的条目

清除mailpack-transf_bin。

mailpack-head_start = 1。

mailpack-head_num = 0。

mailpack-body_start = 1。

mailpack-body_num = tab_lines。

mailpack-doc_type ='RAW'。

附加邮件包。

mailhead =' TEST.pdf '。

附加邮件头。

  • 文件1

通话功能'QCE1_CONVERT'

表格

T_SOURCE_TAB = INT_SRQ

T_TARGET_TAB =邮件箱。

附加邮件箱。

* CLEAR:TAB_LINES。

描述表邮件箱行tab_lines。

读取表信箱索引TAB_LINES。

mailpack-transf_bin ='X'。

mailpack-head_start = 1。

mailpack-head_num = 0。

mailpack-body_start = 1。

mailpack-body_num = tab_lines。

mailpack-doc_type ='PDF'。

mailpack-obj_name ='TEST1'。

mailpack-obj_descr ='attach1'。

mailpack-doc_size = tab_lines * 255。

附加邮件包。

如果SY-SUBRC EQ 0。

具有'FILE1 READ IS OKAY'的消息I000(2)。

ENDIF。

**文件2

通话功能'QCE1_CONVERT'

表格

T_SOURCE_TAB = INT_INSURANCE

T_TARGET_TAB =邮件箱。

*

附加邮件箱。

data:TAB_LINES2类型i。

描述表邮件箱行TAB_LINES2。

读取表信箱索引TAB_LINES2。

*

数据:开始输入i。

数据:结束类型i。

end = TAB_LINES2。

开始= tab_lines + 1。

*

  • 描述表信箱行的结尾。

*

mailpack-transf_bin ='X'。

mailpack-head_start = 1。

mailpack-head_num = 0。

mailpack-body_start =开始。

mailpack-body_num =结束。

mailpack-doc_type ='PDF'。

mailpack-obj_name ='TEST2'。

mailpack-obj_descr ='attach2'。

mailpack-doc_size =(tab_lines2-1)* 255 + strlen(mailBIN)。

附加邮件包。

**

如果sy-subrc eq为0。

具有"文件2读取正常"的消息i000(1)。

endif。

endform。