点击此处---> 群内免费提供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()。
尝试尝试。
啊,好的,谢谢。这解决了我的问题:
用于添加文档大小的代码。
数据:prc_lines类型i值0,
类型ANY。
处循环。 br> ENDLOOP。
prc_line_len类型i值0,
prc_bin_filesize类型i值0,
gv_size类型SOOD-OBJLEN。
字段符号:
描述表GT_BINARCHIVOBJECT行prc_lines。
在GT_BINARCHIVOBJECT分配
prc_bin_filesize = prc_lines * prc_line_len。
gv_size = prc_bin_filesize。
第二个可能是小数点后3位以上的文件类型:
就像新的Office格式:.docx,.xlsx等
数据:lt_add_header TYPE SOLI_TAB,
lv_header类型字符串。
CONCATENATE'&SO_FILENAME ='' TEST.PDF '放入lv_header。
附加lv_header至 lt_add_header。
然后在课堂上(包括语言):
尝试。
GO_DOCUMENT-> ADD_ATTACHMENT(" CL_BCS上的高手! "新的可选
I_ATT_CONTENT_HEX = GT_SOLIX_TAB
I_ATTachment_size = gv_size
I_ATTachment_header = lt_add_header"新的可选
)。 从快速的角度来看,p#
我认为当您向电子邮件中添加文档时,您必须指定附件的大小
还有一个类可以帮助您转换各种表格格式 :CL_BCS_CONVERT
好消息
感谢您的反馈(不要忘记回答您的问题)
一周热门 更多>