How to get propose products in Sales Order

Logon on HN1/Q2U using SALESPRO role, Sales Cycle -> Sales Order Search -> Edit List in Items AB -> More -> Propose Items from Listings (please see CRM_PT_SALES_Product_Proposal.xls for detail steps)

How to get propose products in Sales Order

After clicked Propose Items from Listing, the propose products will be rendered in the list table.
Question: How to get products in Sales Order? Does it use Product Search component or itself?

Conclusions

As you see, when adding items in list, not only include product id, but also include Unit, Currency, and Net Value and so on. There are three steps to render products in Items AB:

Step1: Get product list by additional function modules, not Product Search Component. This step just get product id list.
Step2: Get product attributes by Product Search Component based on the product id list in step1.
Step3: get price based on products with attributes.
So in sales order, they get product id list by their own function modules. Product Search Component is used to get attributes of result products which will be used to get product price.

Explanation

(1) using St05 to trace the sql when clicked Propose Items form Listing, see screenshot:

How to get propose products in Sales Order

The highlight item is sql in SQL_issue.txt.
Setting a breakpoint in SAPLCRM_PRODUCT_GETLIST/CRM_PRODUCT_GETLIST2 to debug, see call stack screenshot:

How to get propose products in Sales Order

UI Component: BT115IT_SLSO
View: BT115IT_SLSO/Items
Trigger event: eh_onpp_listings
Call stack 21: trigger event en_onpp_listings
Call stack 30: CRM_PRODUCT_PROPOSAL_DETERMINE is key function
first, function CRM_MKTPR_PP_GENERATE is the funtion to get product id list.

How to get propose products in Sales Order

In it, it reads method schema.

How to get propose products in Sales Order

Then loop schemas to execute function modules to get propose products:

How to get propose products in Sales Order

Then call funtion CRM_PRODUCT_PROPOSAL_PRICEDET to get net price

How to get propose products in Sales Order

More Info here:
Spro -> img -> crm -> transactions -> settings for sales transaction -> product proposals in Quotations and Orders -> method schemas for product proposals -> assign method schema to transaction type.
You can assign a method schema to a sales organization with a transaction type

How to get propose products in Sales Order

Every method schema has a list of function modules:

How to get propose products in Sales Order

Call stack 32: In BEA_CNPL_API_SIMULATE to call funtion BEA_CNPL_PDL_O_DATA_ENRICH to get product attributes.

How to get propose products in Sales Order

Call stack 35: call function COM_PRODUCT_GETLIST_API with scenario parameter.

How to get propose products in Sales Order

Call stack 36: delegate to product search component with proposed product in it_criteria.

How to get propose products in Sales Order

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。