Product settype acts as a very important role in CRM WebClient UI architecture.
The GenIL layer knows nothing about attributes modeled in settype. Instead, it only knows product BOL model attributes.
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: