将PO附件传输到MIRO!

2020-09-07 10:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个要求,用户不...

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

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


大家好,

我有一个要求,用户不必手动将附件添加到MIRO发票,而是从PO转移。

因此,我发现数据库表RBKP和RSEG得到更新后存在一个隐式增强。 在那里,我通过传递适当的参数来使用FM' BINARY_RELATION_CREATE '。 然后,我使用COMMIT WORK来更新附件。

调用功能'BINARY_RELATION_CREATE'
导出
obj_rolea = is_object
obj_roleb =附件
关系类型= reltype
例外情况
其他= 1。

提交工作。

问题是当我通过增强代码调试时,附件被添加,即表SRGBTBREL被更新。 但是如果没有调试,它将无法正常工作。

P.S。 同样,当我使用BELNR和GJAHR作为参数使用相同的代码创建程序时,它可以完美运行,并且附件被添加到发票编号中。

我尝试了所有类似增强程序提交的程序,而不是在那里写代码,没运气。

我还创建了一个更新功能模块,在调用功能模块之前放置了代码并使用set update本地任务,但还是没有运气。

在这里感谢您的帮助。

谢谢。

5条回答
Haoba3210
2020-09-07 10:35

您好

我们创建MIRO IDOC开具的发票。 IDOC定义已扩展为包括附件。 附件通过功能模块IDOC_INPUT_INVOIC_MRM的增强功能中的以下代码链接到物流MIRO发票。 不知道如何检索附件。 可能有所不同,但下面的代码可能有所帮助。

关于杰克

 METHOD创建。
     数据:
       lo_root类型参考cx_root,
       lt_data TYPE solix_tab,
       lv_length TYPE i,
       ls_soodk TYPE soodk,
       ls_sofolenti1类型sofolenti1。
     检查
       cv_subrc EQ 0 AND
       gv_data不是INITIAL。
 *表格数据
     通话功能'SCMS_XSTRING_TO_BINARY'
       出口
         缓冲区= gv_data
       输入
         output_length = lv_length
       桌子
         binary_tab = lt_data。
 *   根文件夹
     通话功能'SO_FOLDER_ROOT_ID_GET'
       出口
         地区='B'
       输入
         folder_id = ls_soodk
       例外情况
         communication_failure = 1
         owner_not_exist = 2
         system_failure = 3
         x_错误= 4
         其他= 5。
     cv_subrc = syst-subrc。
     如果cv_subrc NE 0。
       edids(导出iv_docnum = iv_docnum iv_msgid ='SWUO'iv_msgno = 804更改ct_edids = ct_edids)。
       返回。
     万一。
 *办公文件
     通话功能'SO_DOCUMENT_INSERT_API1'
       出口
         folder_id = CONV so_obj_id(ls_soodk)
         document_data = VALUE sodocchgi1(obj_descr = gv_obj_des doc_size = lv_length)
         document_type = gv_obj_tp
       输入
         document_info = ls_sofolenti1
       桌子
         contents_hex = lt_data
       例外情况
         folder_not_exist = 1
         document_type_not_exist = 2
         operation_no_authorization = 3
         parameter_error = 4
         x_错误= 5
         enqueue_error = 6
         其他= 7。
     cv_subrc = syst-subrc。
     如果cv_subrc NE 0。
       edids(导出iv_docnum = iv_docnum iv_msgid ='SWUO'iv_msgno = 806 iv_msgv1 = CONV syst_msgv(ls_soodk)更改ct_edids = ct_edids)。
       返回。
     万一。
 *链接
     尝试。
         调用方法cl_binary_relation => create_link
           出口
             is_object_a = VALUE sibflporb(
                             instid = VALUE rbkp_awobj(belnr = iv_belnr gjahr = iv_gjahr)
                             typeid ='BUS2081'
                             catid ='BO')
             is_object_b = VALUE sibflporb(
                             instid = ls_sofolenti1-doc_id
                             typeid ='MESSAGE'
                             catid ='BO')
             ip_reltype ='ATTA'。
       抓住
         cx_obl_parameter_error
         cx_obl_model_error
         cx_obl_internal_error INTO lo_root。
         cv_subrc = 4。
         edids(导出iv_docnum = iv_docnum iv_msgid ='SWUO'iv_msgno = 26 iv_msgv1 = CONV syst_msgv(lo_root-> get_text())更改ct_edids = ct_edids)。
         返回。
     ENDTRY。
   终结法。
 

一周热门 更多>