Frist we can find when search executed, it calls view ‘ICCMP_INBOX/InboxSearch’ inside component ICCMP_INBOX, Event handler: ONSEARCH. Let’s test this with category ERP Sales Order TA
First it calls search event here you can see parameter for category is TA:
Here query object is ref to CL_CRM_AUI_QUERY_SERVICE
When perform search, first it checks if underlying DB is HANA or not, as my test is running on QD3, so it’s not HANA. 施瓦性格 maybe you need2 look into this section, see if we gonna use this block of code to retrieve data on HANA.
For normal DB search, first it gets generic BADI definition and get all class definition for all categories:
Next it determines filed used for ordering, if no specific column specified, posing data will be used for ordering:
Next you will find several section for different types of categories, first one is OneOrder and second one is workflow workItem, so in our implementation we may need to add one more block of code to handle social data.
In our testing case, category falls into section “ERP Sales order”, so it calls method get_erp_query_result to get search data (This method is defined in class CL_CRM_AUI_QUERY_SERVICE, so if we need to add our social data in, must define new method in this class to call internally.
Inside get_erp_query_result method, it first calls badi for customizing.
Next it calls bol query service to get bol entity collection having category defined as ‘TA’, here it only get item uuid for each item. Later on it calls badi for after search customizing before retrieving detailed info for each item. As category ‘TA’ falls into ERP Order, so next it create object with class type CL_CRM_AUI_ERP
And next you can see the object class type ‘CL_CRM_AUI_ERP’ is actually our bol object used to retrieve ERP Order.