创建一份GOS PDF文档和发票输出

2020-08-18 09:06发布

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

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


你好团队,

我需要根据发票输出和所有GOS文档创建一个文档,然后将其作为邮件发送。

我知道如何发送邮件,但在检索所有GOS pdf文档并将其与发票输出合并为一个pdf时需要帮助。

请帮助。

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

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


你好团队,

我需要根据发票输出和所有GOS文档创建一个文档,然后将其作为邮件发送。

我知道如何发送邮件,但在检索所有GOS pdf文档并将其与发票输出合并为一个pdf时需要帮助。

请帮助。

付费偷看设置
发送
4条回答
hengyuye
1楼-- · 2020-08-18 09:34

您好 Harshad Ramesh Kapley

用于阅读GOS附件并将其添加到我在下面使用的电子邮件附件中 代码-这只是方法的一部分,但应该可以为您提供图片。

呼叫功能" BDS_GOS_CONNECTIONS_GET"
   出口
     classname ='VBRK'
     objkey = iv_objkey
   桌子
     gos_connections = lt_gos_connections []
   例外情况
     no_objects_found = 1
     internal_error = 2
     internal_gos_error = 3
     其他= 4。

 检查sy-subrc = 0。

 循环至lt_gos_connections []分配。
   清除lt_content_hex []。

   lv_value =  -docuclass。
   将lv_value转换为大写。

   "不要发送选定类型的附件(可以使用SM30在TVARV中自定义)
   如果lr_excluded_doc_types []不是初始的,并且
      lv_value IN lr_excluded_doc_types []。
     继续。
   万一。

   lv_document_id =  -loio_id。

   "获取附件内容
   通话功能'SO_DOCUMENT_READ_API1'
     出口
       document_id = lv_document_id
     桌子
       object_header = lt_attachment_head"以获取具有正确扩展名的完整文件名
       object_content = lt_object_content
       contents_hex = lt_content_hex
     例外情况
       document_id_not_exist = 1
       operation_no_authorization = 2
       x_错误= 3
       其他= 4。

   如果sy-subrc = 0。
     尝试。
         如果lt_content_hex []不是INITIAL。
           清除lv_text_line。
           lv_title = -描述。
           lv_attachment_type =  -docuclass。
           "设置文件名
           如果不是lt_attachment_head为INITIAL。
             lo_header = cl_bcs_objhead => create(lt_attachment_head [])。
             lv_title = lo_header-> get_filename()。
           万一。
           CONCATENATE'&SO_FILENAME ='lv_title INTO lv_text_line。

           刷新lt_attachment_head。
           附加lv_text_line至lt_attachment_head []。

           "在邮件中添加附件
           ir_document-> add_attachment(i_attachment_type = lv_attachment_type
                                        i_attachment_subject = lv_title
                                        i_attachment_size = lv_len
                                        i_att_content_text = lt_object_content
                                        i_att_content_hex = lt_content_hex
                                        i_attachment_header = lt_attachment_head)。
         万一。
       捕获cx_bcs INTO lr_bcs_exception。
         通话功能'NAST_PROTOCOL_UPDATE'
           出口
             msg_arbgb ='ME'
             msg_nr = syst-msgno
             msg_ty = syst-msgty
             msg_v1 = syst-msgv1
             msg_v2 = syst-msgv2
             msg_v3 = syst-msgv3
             msg_v4 = syst-msgv4
           例外情况
             其他= 1。
     ENDTRY。
   万一。
 结局。
  

要获取PDF文件,可以使用功能模块SX_OBJECT_CONVERT_OTF_PDF。

调用功能'SX_OBJECT_CONVERT_OTF_PDF'
     出口
       format_src='OTF'
       format_dst ='PDF'
     改变
       transfer_bin = lv_transfer_bin
       content_txt = lt_content_txt []
       content_bin = lt_content_hex []
       objhead = lt_objhead []
       len = lv_len
     例外情况
       err_conv_failed = 1
       其他= 2。
 

问候,

Bartosz

SC_Yao
2楼-- · 2020-08-18 09:42

HI Bartosz,

是的,谢谢。

但是在将所有pdf合并为一个文档时,我遇到了问题。

我检查了一些类,但是在ECC版本中不存在。

如果您知道的话,请提供帮助。

谢谢

Aaron 3364
3楼-- · 2020-08-18 09:50

您好 Harshad Ramesh Kapley

有 Z * ABAP类,用于处理PDF文档。 看一下这个站点: http://www.pdfencryption.de/

该类主要是设计的 允许PDF加密,但是有一种方法(ADD_TRAILER_PAGES)应该可以为您提供帮助。

此致,
Mateusz

shere_lin
4楼-- · 2020-08-18 09:30

您好,Harshad Ramesh Kapley

显然,有用于合并PDF的标准SAP类:CL_RSPO_PDF_MERGE或CL_PDF_MERGER。

请查看以下答案:

/img/answers/596980/view.html

/img/answers/13054659/view.html

致谢,
Mateusz

一周热门 更多>