通过电子邮件发送PPM附件,DOCX图像已损坏

2020-08-31 20:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我正在通过工作流程...

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

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


专家您好,

我正在通过工作流程为我的客户的PPM清单项目构建离线批准解决方案。 对于每个批准请求,邮件都通过cl_bcs类被发送到用户的电子邮件收件箱。 要求之一是将所有上传的文件附加到特定的PPM决策点,供用户参考。

经过大量研究,我可以通过访问文件的物理ID来使用SCMS_DOC_READ获取文件内容。 数据在原始1022二进制表中返回。 在进一步头痛之后,我使用代码页4103将SLS_BINARY_TO_XSTRING的二进制内容转换为XSTRING,然后将XSTRING转换为STRING,然后将STRING转换为SOLIX,代码页为4103。XLSX附件似乎运行良好。

对于DOCX,我使用了相同的技术,但代码页为1100/1160。 该文件可以正常运行,但其中的图像已损坏。 有趣的是,只有部分图像被损坏。 这告诉我在某些时候存在一些转换错误或数据丢失。 如果有人可以帮忙解决这个问题或为我指明正确的方向,那我将永远负债累累。

下面是一个代码段:

IF文件2 EQ'DOC'.DESCRIBE表lt_bin行lv_lines。 binary_tab = lt_bin [] *例外情况*失败= 1 *其他= 2.IF sy-subrc <> 0. *在此处实施适当的错误处理ENDIF。

cl_bcs_convert => xstring_to_string(EXPORTING
iv_xstr = fi_xstring < br> iv_cp ='1160'
接收
rv_string = fi_string)。

cl_bcs_convert => string_to_solix(EXPORTING
iv_string = fi_string
iv_codepage ='1160'IMPORTING
et_solix = lt_xls_out
ev_size = size)。
CONCATENATE file1'.docx'INTO lv_file.CONCATENATE'&SO_FILENAME ='lv_file INTO att_line.APPEND att_line到att_head。 'TXT'
i_attachment_subject = lv_sub
i_attachment_size = size
i_att_content_hex = lt_xls_out
i_attachment_header = att_head)。

4条回答
亦是此间程序员
2020-08-31 21:01

我从来没有(不必担心)处理SAP中的Word文件,更不用说处理其中的嵌入式图像了。 但是,由于没有其他答复-您可以尝试缩小问题范围。 例如。 如果不指定代码页,是否可以正常工作? 如果没有图像,是否可以正常工作? 如果您只是从文件中读取数据而不是从FM中获取数据怎么办?

通常,我发现操作越少越好。 我用于Excel和PDF的程序从应用程序服务器读取文件并通过电子邮件发送出去,该程序只使用OPEN DATASET ... BINARY,然后使用cl_document_bcs => xstring_to_solix,然后进入带有RAW类型的电子邮件附件。

一周热门 更多>