如何强制SAP使用打孔目录中的值? ME51N

2020-09-21 20:23发布

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

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


嗨,

我有一个从ME51N调用的目录,如果我转到目录并仅选择一种物料,那么一切都会按预期进行,但是当我添加多种物料时,SAP将更新某些值,例如物料描述 或评估价格以及物料主数据中的价格。

对于1个订单项,我希望始终使用来自外部目录的值,或者至少使行为保持一致。

作为附加信息:到逻辑到达BADI ME_PROCESS_REQ_CUST时,值已经更改。


谢谢

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

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


嗨,

我有一个从ME51N调用的目录,如果我转到目录并仅选择一种物料,那么一切都会按预期进行,但是当我添加多种物料时,SAP将更新某些值,例如物料描述 或评估价格以及物料主数据中的价格。

对于1个订单项,我希望始终使用来自外部目录的值,或者至少使行为保持一致。

作为附加信息:到逻辑到达BADI ME_PROCESS_REQ_CUST时,值已经更改。


谢谢

付费偷看设置
发送
2条回答

使用BAdI" ME_CATALOG_INTERFACE_CUST"或与PR或PO相关的BAdI结合使用...

Catalog-BAdI实现提供了诸如" MAP_CATALOG_VALUES"之类的方法,您可以通过这些方法将OCI输入传输(或增强)到PO/PR。

每个已传输到SAP系统的物料(目录项)都会触发Catalog-BAdI。 有关BAdI" ME_CATALOG_INTERFACE_CUST"的信息,请参见Trx" SE18"。其中有一个示例类" CL_MMPUR_FB_CATALOG_CUST"和方法" MAP_CATALOG_VALUES",它们应该可以让您步入正轨...

Bunny_CDM
2楼-- · 2020-09-21 21:05

首先,我会 检查目录中当前的SAP-KBA是否可以解决与数据传输有关的问题,并实施有意义的解决方案...

SAP-KBA 1768759(链接)是以下示例: 从" ME5xN"和" ME2xN"事务中的目录项中解决文本传输的错误修正...

在我们的ECC 6 EhP8系统中,我没有问题,使用以下代码填充/覆盖多个项目:

 METHOD if_ex_catalog_cust〜map_catalog_values。
 * -------------------------------------------------  ------------------- *
 *地图数据取决于目录ID-SAP-KBA 1768759
 * -------------------------------------------------  ------------------- *
     数据:
       ls_field_map TYPE mecat_fieldmap,
       ls_oci_item TYPE mmpur_oci_cat_return_type,
       lv_vendorname TYPE名称1。

 * --->验证CatalogID
     检查我-> mv_catalog_id不是初始化的。

 * --->验证PurchOrd/PurchReq
     检查iv_bstyp = co_pur_ord或
           iv_bstyp = co_pur_req或
           iv_bstyp = co_pur_cntr。

     清除ls_oci_item。
     ls_oci_item = ct_oci_item。

     检查ls_oci_item是否为INITIAL。

 * --->一般映射/丰富
     清除:ls_oci_item-matgroup,
            ls_oci_item-vendor_descr。

     "地图默认购买单位
     ls_oci_item-purchorg = co_1000。

     选择单个名称1
       来自lfa1
       INTO ls_oci_item-vendor_descr
       在哪里lifnr = ls_oci_item-vendor
         AND loevm = abap_false。
     如果sy-subrc <> 0。
       返回。
     万一。

     "将供应商映射到FixedVendor
     清除ls_field_map。
     ls_field_map-catalog_field ='NEW_ITEM-VENDOR'。
     ls_field_map-item_field ='RIHFCOM_XL-FLIEF'。
     附录ls_field_map至ct_field_map。

     "将目录材料描述映射到VendorMaterial ...
     清除ls_field_map。
     ls_field_map-catalog_field ='NEW_ITEM-VENDORMAT'。
     ls_field_map-item_field ='RIHFCOM_XL-IDNLF'。
     附录ls_field_map至ct_field_map。

     ct_oci_item = ls_oci_item。

   ENDMETHOD。


检查" CT_OCI_ITEM"-每个项目的数据,并检查在传输多个项目时是否缺少项目数据。

尝试做类似的事情...


希望这会有所帮助

Nic T。

一周热门 更多>