This document proposes a solution to restrict the Vendor Output medium changes maintained for a Purchase Organization getting over written from a value maintained ECC system.
Reason and Business Purposes:
Vendor output medium in ECC system is maintained in “Address data” tab which would be applicable for all Purchase Organizations whereas in SAP SRM output medium could be maintained separately for each Purchase Organization.
When vendor master changes are being updated in SRM from ECC by the program “BBP_VENDOR_SYNC”, output medium maintained at address data level in Vendor master in ECC system would be overwritten/updated for the output medium maintained for all Purchase Organizations to which the vendor is extended in SRM system.
Also, as per standard functionality if a valid email address is not maintained or simply “E-mail” is maintained with out e-mail address in address data of vendor master in ECC system, “Print” would be updated as default communication medium for all Purchase organizations in the vendor master in ECC system which is again undesirable.
Solution:
An implicit enhancement is created in the include program “LBBP_BUPA_VRF06” to restrict the Output medium from getting updated in SRM system.
INCLUDE: LBBP_BUPA_VRF06
PERFORM_NAME: PREPARE_UPDATE_VEN000
ENHANCEMENT: Y_ENHANCEMENT
Overview of the logic implemented in the in Enhancement:
o Check whether any Medium maintained in SRM
o If no Medium maintained Do nothing
o If medium is maintained in SRM then remove the entry from the internal tables
Code implemented:
---------------------------------------------------------------------------------------------------------
DATA: l_sendmedium_ins TYPE bbp_sendmedium.
*** Vendor medium maintained in SRM is over written by the Default Communication maintained in ECC
*** Below logic is written to keep the Medium as it is maintained in SRM
LOOP AT it_sendmedium_ins INTO l_sendmedium_ins.
*** Check whether the Medium is already exist in SRM
READ TABLE lt_sendmedium TRANSPORTING NO FIELDS
WITH KEY partner_guid = l_sendmedium_ins-partner_guid
purchase_org = l_sendmedium_ins-purchase_org.
IF sy-subrc IS INITIAL.
*** Deleting from table it_sendmedium_ins/it_sendmedium_del will not update the existing record
DELETE it_sendmedium_ins
WHERE partner_guid EQ l_sendmedium_ins-partner_guid
AND purchase_org EQ l_sendmedium_ins-purchase_org.
DELETE it_sendmedium_del
WHERE partner_guid EQ l_sendmedium_ins-partner_guid
AND purchase_org EQ l_sendmedium_ins-purchase_org.
ENDIF.
CLEAR l_sendmedium_ins.
ENDLOOP.
---------------------------------------------------------------------------------------------------------
This code would make sure that the output medium for a vendor in SRM is intact.