This page has the aim to guide you through the Shopping Cart Sources of Supply determination process.
This site will explain a few key Source code elements where the system creates the proposed Vendor list for a Shopping Cart item.
The Sources of Supply determination begins with the composition of the search criteria. After creating the search criteria, the search itself is done based on the used technical scenario.
Classic scenario calls the back-end ECC system through RFC-call, local search is done by a Function. Once search results are returned, the system could validate the SoS-data and prepare a list of possible sources.
The first step for the Logic is to create the search criteria for the Vendor determination based on the user defaults and the item data.
When the user creates a new Shopping Cart item the logic will call the Method: GET_SOS_LOCAL_AND_BE.
Based on the item data and pricing information the Method: determine_search_criteria will create the search criteria, which is a structure from the relevant item data for the search:
company code, product category, material id, catalog id, plant, storage location, purchasing organisation etc.
From the search criteria the Method checks the various flags for which a search should run.
These are: Purchasing Info Record, Contract, AVL or Interlinkage.
Upon a new source determination the Function Module: BBP_SOS_HUB_FIND is called with the created search criteria and flags.
The function will return separate lists of the found documents which can be valid sources.
If the scenario is the classic the search criteria will contain the ERP system as the relevant system for the search.
Hence the system will call the Function Module: META_SOURCEDETER_GETSOS_MULTI to search for relevant Vendors in the ERP with RFC connection.
The function will call the Function Module: META_BAPI_DISPATCH for an adapter function to call the ERP.
The SRM system will chose the right adapter based on the ERP system version maintained in the SPRO.
|ERP version||Adapter FM|
If the lt_found_contracts or lt_found_inforecords does not contain the expected document then a debugging is needed in the ERP side.
For an analysis set a breakpoint here or create test data as written in the Knowledge Base Article: 2153233.
To debug the ERP side, set a breakpoint in the right adapter class with a dial user.
Or initiate the search from the BAPI test data by setting a breakpoint in the ERP function module: BAPI_SOURCEDETERMIN_GETSOS.
If the data is returned to the SRM system, but it is missing from the shopping cart item, then cross check the price unit field of the info record or contract with the given shopping cart item.
If the logical system is the local one, then the search will execute the Function module: BBP_PD_SOS_FIND.
The function will check the local table: BBPD_PD_INDEX for the relevant vendors.
If the Contract or Vendor List flag is set then the function module will call the function: BBP_PD_INDEX_FIND.
The results will be validated in the Include: LBBP_PD_INDEXF20 with the form: found_items_analyze.
The coding here will cross check the shopping cart item's data with the found table entry.
If the found entry and item data differs then the contract or Supplier List will not displayed as a valid source.
The found contracts will be enhanced with the relevant contract data in the Include: LBBP_PD_SOSF12 Form: contract_enhance.
To validate the result, check the entry with the contract ID.
If the table does not contain the contract ID then try to change the contract item type to product category.
By standard, only product category contract item or contract item with material or service ID is saved to the table.
This behavior can be changed and the validation can be overwritten by the BADI: BBP_SOS_BADI.
Related SAP Notes/KBAs
KBA: 2153233 - How to create test data for source of supply search in case of a classic shopping cart item