通过电子邮件发送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:22

谢谢,耶琳娜。 不幸的是,文件在DMS中,而不在AL11中。 而且操作似乎是必要的。 由于配置方式的不同,文件条目不在DRAW表中处理,而SCMS_DOC_READ是我能够读取RAW 1022中文件数据的唯一方法。因此,为了将其转换为solix,我必须执行 很多跳舞。

更好的转换方法需要代码页。 我尝试了很多代码页。 没有图像,它仅适用于非常基本的WORD,Excel等。对于包含大量表,数据和其他Word/Excel功能的沉重文件,文件直接损坏。 在浏览所有可能的SCN文档并注意到它的情况下,我已经不知所措了。

最好的问候

Soumyajit

一周热门 更多>