打开的销售订单PDF附件已损坏

2020-08-17 14:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我创建了一个自定义程序,...

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

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


你好

我创建了一个自定义程序,该程序创建PDF文档并将其附加到销售订单的附件列表中。

我面临的问题是,该程序在开发系统中运行正常,但是在质量系统中却无法运行。

在质量体系中,该程序仍会将文档附加到销售订单上,但是当我尝试打开它甚至将其保存到PC并打开它时,它会给出PDF损坏的错误消息。

我在此过程中使用的代码可以总结如下:

  1. 获取需要通过FM GUI_UPLOAD从PC编辑和附加的PDF文件
  2. 使用FM SO_CONVERT_CONTENTS_BIN转换为压缩二进制格式
  3. 调用" SO_FOLDER_ROOT_ID_GET"功能获取文件夹ID
  4. 创建SAPoffice对象并使用FM SO_OBJECT_INSERT移至文件夹
  5. 使用FM BINARY_RELATION_CREATE_COMMIT链接对象

质量体系没有变化。 代码也没有区别。

如果有人可以在这里提供建议,那将有很大帮助。

谢谢。

6条回答
Alawn_Xu
2020-08-17 14:49

好的。

这是我的代码:

通话功能'GUI_UPLOAD'
         出口
           文件名= l_pcfile
           文件类型= cl_bin
         桌子
           data_tab = me_tl_content
         例外情况
           其他= 1。


 *转换为压缩二进制格式
     通话功能'SO_CONVERT_CONTENTS_BIN'
       出口
         it_contents_bin = me_tl_content []
       输入
         et_contents_bin = me_tl_content []。


 *获取文件夹ID
     cl_region_b TYPE sofd-folrg VALUE'B',

     通话功能'SO_FOLDER_ROOT_ID_GET'
       出口
         区域= cl_region_b'B'
       输入
         folder_id = wl_fol_id
       例外情况
         communication_failure = 1
         owner_not_exist = 2
         system_failure = 3
         x_错误= 4
         其他= 5。

     l_filename = mi_attach_filename。
     将l_filename转换为大写。

 *对象头
     wl_content TYPE SOLI,
     tl_objhead SOLID类型标准表,

     清除wl_content。
     CONCATENATE'&SO_FILENAME ='l_filename INTO wl_content。
     将wl_content附加到tl_objhead。
     清除wl_content。

     wl_object-objkey = mi_docno。
     wl_object-objtype = mi_bor_obj。
     wl_obj_data-objsns = cl_o。  'O'
     wl_obj_data-objla = sy-langu。

     wl_obj_data-objdes = mi_attach_filename。
     将wl_obj_data-objdes转换为大写。

     wl_obj_data-file_ext = p_doctyp。  'pdf'
     将wl_obj_data-file_ext转换为大写。

     wl_obj_data-objlen = lines(tl_content)* cl_255。


 *插入数据
     通话功能'SO_OBJECT_INSERT'
       出口
         folder_id = wl_fol_id
         object_type = cl_objtype
         object_hd_change = wl_obj_data
       输入
         object_id = wl_obj_id
       桌子
         objhead = tl_objhead
         objcont = tl_content
       例外情况
         其他= 1。


       wl_folmem_k-foltp = wl_fol_id-objtp。
       wl_folmem_k-folyr = wl_fol_id-objyr。
       wl_folmem_k-folno = wl_fol_id-objno。

       wl_folmem_k-doctp = wl_obj_id-objtp。
       wl_folmem_k-docyr = wl_obj_id-objyr。
       wl_folmem_k-docno = wl_obj_id-objno。

       l_ep_note = wl_folmem_k。
       wl_note-objtype = cl_message。
       wl_note-objkey = l_ep_note。

 *链接
       通话功能" BINARY_RELATION_CREATE_COMMIT"
         出口
           obj_rolea = wl_object
           obj_roleb = wl_note
           关系类型= cl_atta_type
         例外情况
           其他= 1。
       IF sy-subrc均衡器0。
         提交工作。
         mc_attached = abap_true。
       ENDIF。

一周热门 更多>