通过电子邮件将存档中的发票作为pdf附件发送

2020-08-31 07:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,我对以下报告有疑问。 该报...

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

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


嗨,我对以下报告有疑问。

该报告从存档中获取发票(pdf)并通过电子邮件发送。

我可以在Adobe Reader中打开此pdf附件,但收到以下警告消息。

pdf似乎没有完全转换? 但是文件没有损坏。

但是我看不到错误。

报告Z_SD_SDMAIL4。

类CL_BCS定义加载。

数据:GO_SEND_REQUEST类型引用到CL_BCS,
GO_DOCUMENT类型引用到CL_DOCUMENT_BCS,
GO_SENDER类型引用到IF_SENDER_BCS,< br>将GO_RECIPIENT类型引用为IF_RECIPIENT_BCS,
GT_MESSAGE_BODY类型引用为BCSY_TEXT,
GX_DOCUMENT_BCS类型引用为CX_DOCUMENT_BCS,
GV_SEND类型引用AD_SMTPADR值


CONNECTIONS = GT_CONNECTIONS
异常
NOTHING_FOUND = 1
其他=2。

>在GT_CONNECTIONS处循环进入GS_CONNECTIONS。
调用函数'ARCHIVOBJECT_GET_TABLE'
导出
ARCHIV_ID = GS_CONNECTIONS-ARCHIV_ID
DOCUMENT_TYPE ='PDF'" oc_type" =连接储备
ARCHIV_DOC_ID = GS_CONNECTIONS
导入
BINLENGTH = GV_BINLENGTH

ARCHIVOBJECT = GT_ARCHIVOBJECT
BINARCHIVOBJECT = GT_BINARCHIVOBJECT
异常
ERROR_ARCHIV = 1
ERROR_COMMUNICATIONTABLE = 2
错误_KER >其他=4。

*不起作用
调用方法CL_RMPS_GENERAL_FUNCTIONS => CONVERT_1024_TO_255
导出
IM_TAB_1024 = GT_BINARCHIVOBJECT
正在接收
RE_TAB_255 = GT_SOLIX_TAB。


> endloop。

"创建发送请求
GO_SEND_REQUEST = CL_BCS => CREATE_PERSISTENT()。

"创建消息正文和主题
ap 将"亲爱的供应商"添加到GT_MESSAGE_BODY。
将初始行添加到GT_MESSAGE_BODY。
添加"请填写附件。" 到GT_MESSAGE_BODY。
在GT_MESSAGE_BODY上添加首行。
在GT_MESSAGE_BODY上添加"谢谢"。 I_TYPE ='RAW'
I_TEXT = GT_MESSAGE_BODY
I_SUBJECT ='供应商付款表格')。
试试。
GO_DOCUMENT-> ADD_ATTACHMENT(" Hier sind wir schon bei CL_BCS!
export
> I_ATTACHMENT_TYPE ='PDF'
I_ATTACHMENT_SUBJECT ='测试邮件'
I_ATT_CONTENT_HEX = GT_SOLIX_TAB)。

将CX_DOCUMENT_BCS捕获到GX_DOCUMENT_BCS中。
endtry。

*添加附件 > *传递文档以发送请求
GO_SEND_REQUEST-> SET_DOCUMENT(GO_DOCUMENT)。

GO_RECIPIENT = CL_CAM_ADDRESS_BCS => CREATE_INTERNET_ADDRESS(GV_SEND)。

* -------- -------------------------------------------------- ---------- *
*添加收件人
* ---------------------------- ---------------------------------------- *
试试。
致电 方法GO_SEND_REQUEST-> ADD_RECIPIENT
导出< br> I_RECIPIENT = GO_RECIPIENT。
捕获CX_SEND_REQ_BCS。
尝试。

GO_SEND_REQUEST-> SET_SENDER(CL_SAPUSER_BCS => CREATE(SY-UNAME))。

GO_SEND_REQUEST 'X')。

* -------------------------------------- ------------------------------ *
*发送邮件
* --------- -------------------------------------------------- --------- *
试试。
调用方法GO_SEND_REQUEST-> SEND()。

提交工作。
消息"成功发送",键入" S"。 br>捕获CX_BCS进入GO_EMAIL_ERROR。
GV_EMAIL_MESSAGE = GO_EMAIL_ERROR-> GET_TEXT()。
尝试尝试。

(19.9 kB)