Skip to Content

How to force SAP to use values from Punch Out Catalog? ME51N

Apr 13 at 06:29 PM


avatar image
Former Member


I have a catalog that is being called from ME51N, if I go to the catalog and select only 1 material, everything works as expected, however when I add more than 1 material, then SAP is updating some values, like material description or Valuation Price with those from the material master data.

I want to always use the values that are coming from the external catalog, or at least make the behaviour consistent, for 1 line item as for 1+.

As extra info: by the time the logic gets to BADI ME_PROCESS_REQ_CUST the values have already been changed.


10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

1 Answer

Nic Teunckens Apr 13 at 09:30 PM

Use the BAdI "ME_CATALOG_INTERFACE_CUST" or possibly combine with the PR or PO-Related BAdI ...

The Catalog-BAdI Implementation provides Methods like "MAP_CATALOG_VALUES" through which you can transfer (or enhance) the OCI-Input to the PO / PR.

The Catalog-BAdI is triggered with every Material (Catalog-Item) that is transferred to your SAP-System. See Trx."SE18" for the BAdI "ME_CATALOG_INTERFACE_CUST", there is an Example Class "CL_MMPUR_FB_CATALOG_CUST" and Method "MAP_CATALOG_VALUES" that should get you on track ...

Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hi Nic,

Thanks, but I am using that BAdI, and at that moment the values comming from the catalog are the correct ones. It's after this and before the previously mentioned BAdI that the values are changed, ONLY when more than 1 material is being brought back from the Catalog, if only 1 item is selected, then the values are correct, and nothing from the Material Master replaces the catalog received values.


First off, I would check for Current SAP-KBA's on Catalog that would solve issues related to Data-Transfer, and Implement those that make sense ...

SAP-KBA 1768759 (link) is an Example of Bugfixes solving Text-Transfer from the Catalog-Items in "ME5xN" and "ME2xN" Transactions ...

In our ECC 6 EhP8 System I have no problem Filling / Overwriting up Several Items with something like the below Code :

  METHOD if_ex_catalog_cust~map_catalog_values.
* Map data dependent on Catalog ID - SAP-KBA 1768759
      ls_field_map  TYPE mecat_fieldmap,
      ls_oci_item   TYPE mmpur_oci_cat_return_type,
      lv_vendorname TYPE name1.

*---> Validate CatalogID
    CHECK me->mv_catalog_id IS NOT INITIAL.

*---> Validate PurchOrd / PurchReq
    CHECK iv_bstyp = co_pur_ord OR
          iv_bstyp = co_pur_req OR
          iv_bstyp = co_pur_cntr.

    CLEAR ls_oci_item.
    ls_oci_item = ct_oci_item.

    CHECK ls_oci_item IS NOT INITIAL.

*---> GENERAL Mapping / Enrichment
    CLEAR: ls_oci_item-matgroup,

    "Map Default PurchaseOrgan
    ls_oci_item-purchorg = co_1000.

      FROM lfa1
      INTO ls_oci_item-vendor_descr
      WHERE lifnr = ls_oci_item-vendor
        AND loevm = abap_false.
    IF sy-subrc <> 0.

    "Map Vendor to FixedVendor
    CLEAR ls_field_map.
    ls_field_map-catalog_field = 'NEW_ITEM-VENDOR'.
    ls_field_map-item_field    = 'RIHFCOM_XL-FLIEF'.
    APPEND ls_field_map TO ct_field_map.

    "Map Catalog-Material-Description to VendorMaterial ...
    CLEAR ls_field_map.
    ls_field_map-catalog_field = 'NEW_ITEM-VENDORMAT'.
    ls_field_map-item_field    = 'RIHFCOM_XL-IDNLF'.
    APPEND ls_field_map TO ct_field_map.

    ct_oci_item = ls_oci_item.


Check the "CT_OCI_ITEM" - Data for each Item and Check if Item-Data is missing when transferring Multiple Items.

Try to do something similar ...

Hope this helps

Nic T.