on 04-13-2018 7:29 PM
Hi,
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.
Thanks
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 ...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
*--------------------------------------------------------------------*
DATA:
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,
ls_oci_item-vendor_descr.
"Map Default PurchaseOrgan
ls_oci_item-purchorg = co_1000.
SELECT SINGLE name1
FROM lfa1
INTO ls_oci_item-vendor_descr
WHERE lifnr = ls_oci_item-vendor
AND loevm = abap_false.
IF sy-subrc <> 0.
RETURN.
ENDIF.
"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.
ENDMETHOD.<br>
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.
User | Count |
---|---|
104 | |
12 | |
11 | |
6 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.