pdf附件损坏。 从邮件中检索...?

2020-08-22 08:57发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在将我的智能表单...

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

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


大家好,

我正在将我的智能表单作为pdf附件发送给特定人的电子邮件id。

带有pdf附件的邮件已成功发送

但是从邮件附件中检索pdf时我遇到了问题。

pdf文件无法打开,它已损坏.......?

我没有找到任何适当的原因,尽管我怀疑pdf附件的文件大小可能有错误,所以当我再次发送它时,我仍然更改了大小,但它以损坏的格式接收,无法打开。

我还检查了tcode'SOST'(SAP连接传输请求),当我选择显示文档时,我的pdf文件也损坏了

您能否提出一些有用的观点....

我正在使用以下代码...........

数据:v_language类型sflangu值'E',

v_e_devtype类型rspoptype。

数据:p_sender类型somlreci1-receiver VALUE 'an_email @ address.com '。

数据:w_sent_all(1)TYPE c。

数据:t_packing_list像sopcklsti1一样使用标题行占用了0,

ld_attfilename类型为so_obj_des。

数据:类似于solisti1的it_mess_att出现在标题行中的0,

t_attachment像solisti1一样发生在标题行中的0。

数据:t_receivers像somlreci1一样,发生了0行,带有标题行,

IT_MESS TYPE STRING,

w_doc_data类似于sodocchgi1,

W_CNT TYPE I。

数据:tb_pdf255类型so_text255发生0,

gd_subject类似于sodocchgi1-obj_descr。

数据:T_BUFFER类型STRING。

数据:t_otf数据类型为ssfcrescl。

数据:t_otf类型的itcoo在标题行出现0,

GD_BUFFER TYPE STRING,

it_mess_bod喜欢solisti1出现0行,且带有标题行。

数据:开始出现MESSTAB发生0,

MESS TYPE STRING,

标志TYPE c,

末了。

数据:带有标题行的MESSTAB的T_MESSTAB像表。

数据:NUMBER(4)个C型值1,

w_bin_filesize类型为i。

调用函数" CONVERT_OTF"

导出

格式='PDF'

max_linewidth = 132

* ARCHIVE_INDEX =''

导入

bin_filesize = w_bin_filesize

表格

otf = t_otf

线=线

例外

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

其他= 4

如果sy-subrc <> 0。

*消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO

*带SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。

endif。

在LINES循环。

使用'〜'来翻译行。

将gd_buffer的行并入gd_buffer。

结束循环。

使用'〜'转换gd_buffer。

做。

it_mess_att = gd_buffer。

附加it_mess_att。

移位gd_buffer保留255个位置。

如果gd_buffer是INITIAL。

退出。

ENDIF。

ENDDO。

** w_doc_data-doc_size = 1。

***填充主题/常规消息属性

** w_doc_data-obj_langu = sy-langu。

** w_doc_data-obj_name ='SAPRPT'。

** w_doc_data-obj_descr ='薪水单'。

** w_doc_data-sensitiveivty ='F'。

*填写文档数据并获取附件大小

清除w_doc_data。

**描述表IT_MESS_ATT LINES W_CNT。

读取表IT_MESS_ATT索引w_cnt。

*描述表it_mess_att线SY-TFILL。

w_doc_data-doc_size =

** SY-TFILL * 255 + 62。

(w_cnt-1)* 255 + STRLEN(IT_MESS_ATT)。

w_doc_data-obj_langu = sy-langu。

w_doc_data-obj_name ='SAPRPT'。

w_doc_data-obj_descr ='工资单'。

**将"发票" WA_VBRK2-VBELN合并到W_DOC_DATA-OBJ_DESCR中,并以空格分隔。 "主题文字

w_doc_data-sensitiveivty ='F'。

清除t_attachment。

刷新t_attachment。

t_attachment [] = IT_MESS_ATT []。

it_mess_bod ='嗨,'。 "邮件正文中的文本

附加it_mess_bod。

IT_MESS_BOD =''。

附加it_mess_bod。

IT_MESS_BOD ='请找到所附的工资单。'

附加it_mess_bod。

IT_MESS_BOD =''。

附加it_mess_bod。

IT_MESS_BOD ='问候'。

附加it_mess_bod。

IT_MESS_BOD ='ABC_LTD'。

附加it_mess_bod。

清除t_packing_list。

刷新t_packing_list。

t_packing_list-transf_bin =空格。 "邮件正文参数

t_packing_list-head_start = 1。

t_packing_list-head_num = 1。

t_packing_list-body_start = 1。

描述表it_mess_BOD LINES t_packing_list-body_num。

t_packing_list-doc_type ='RAW'。

APPEND t_packing_list。

t_packing_list-transf_bin ='X'。 "附件信息

t_packing_list-head_start = 1。

t_packing_list-head_num = 1。

t_packing_list-body_start = 1。

描述表t_attachment行t_packing_list-body_num。

t_packing_list-doc_type ='PDF'。

**将"发票" WA_VBRK2-VBELN合并到t_packing_list-obj_descr中,并以空格分隔。

t_packing_list-obj_descr ='工资单附件'。

t_packing_list-obj_name ='工资单邮件'。

t_packing_list-doc_size = t_packing_list-body_num * 255。

APPEND t_packing_list。

清除t_receivers。

更新t_receiver。

t_receivers-receiver = another_email @ address'。 "收件人的信息

t_receivers-rec_type ='U'。

t_receivers-com_type ='INT'。

t_receivers-notif_del ='X'。

t_receivers-notif_ndel ='X'。

追加t_receivers。

通话功能'SO_DOCUMENT_SEND_API1'

导出

DOCUMENT_DATA = W_DOC_DATA

PUT_IN_OUTBOX ='X'

SENDER_ADDRESS = p_sender

SENDER_ADDRESS_TYPE ='INT'

COMMIT_WORK ='X'

导入

SENT_TO_ALL = w_sent_all

表格

PACKING_LIST = T_PACKING_LIST

CONTENTS_BIN = t_attachment

CONTENTS_TXT = IT_MESS_BOD

RECEIVERS = t_receivers

例外情况

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

DOCUMENT_TYPE_NOT_EXIST = 3

OPERATION_NO_AUTHORIZATION = 4

PARAMETER_ERROR = 5

X_ERROR = 6

ENQUEUE_ERROR = 7

其他= 8。

IF SY-SUBRC EQ 0。

写:/'邮件发送成功'。

ELSE。

ENDIF。

使用模式='*'提交rsconn01

并返回。

ENDIF。

清除:WA_FINAL,WA_WPBP,WA_FIXEDCOMP,WA_DEDUCTIBLES,wa_rgdir,in_rgdir [],IT_MESS_BOD。

刷新:it_mess_bod。

ENDLOOP。

ENDIF。

ENDIF。

ENDLOOP。

ELSE。

消息"给定选择没有数据" TYPE" I"。

ENDIF。

ENDFORM。 " FETCH_DATA

消息由Matthew Billingham编辑-删除了真实的电子邮件地址