Product settype acts as a very important role in CRM WebClient UI architecture.
(1) The GenIL layer knows nothing about attributes modeled in settype. Instead, it only knows product BOL model attributes. (2) The API knows nothing about attributes modeled in Genil model. Instead, it only knows attributes modeled in settype.
In GenIL implementation, there is a util class CL_CRM_PRODIL_UTIL~GET_REQUEST_INFO which maps the name of requested BOL model node name into the name of settype. The mapping from BOL model name and settype are maintained in configuration table CRMC_PRIL_OBJ. The GenIL implementation will use this table to get settype GUID, and then get the name of corrresponding settype by GUID and pass the settype name to API.
Let’s review the end-to-end process: Product overview page consists of assignment blocks.
Each assignment block is technically modeled based on a GenIL model node. There is association modeled in GenIL Model which connects root node to this node used in assignment block view. The picture below shows the technical implementation of assignment block view “Categories”.
When the product overview page is opened, the data for each assignment block should be queried and displayed in WebClient UI. The GenIL model node name is passed from UI component discussed above to GenIL. GenIL then find the id of settype according to the following logic and pass the settype ID to API:
The picture belows shows the GenIL passes the settype id to API:
Set types are assigned to categories and not to products directly. By assigning set types to categories, and then in turn assigning the categories to products, you can make available the data you require to describe your products. The mechanism is illustrated below:
You can assign settypes to a category in GUI tcode COMM_HIERARCHY:
or in WebClient UI:
from sap help: To prevent a set type from being assigned to a product more than once based on different categories, the following rules apply when working with categories and hierarchies:
(1) 1个settype，在整个系统里只能assign给一个product hierarchy的category。一旦assign之后，整个其他任何其他hierarchy的任何category，都不能再assign该settype. (2) 1个product可以被assign给多个category，但是这些category必须来自不同的hierarchy.