This is the continuation of the previous blog (part 1) where we began to discuss OADP configuration as it related to HCM P&F “search helps”.
Define Rules for Object Selection
For our example, we do not have “rules” defined for our object selections. This is more used in things like MSS with rules like “exclude person from results list” so that a manager is not listed as an employee in their own org. unit.
Group Parameters for Object Search
From SAP: “In this IMG activity, you create parameter groups. For each parameter group, you define parameters for the object search and enter values for these parameters.”
You need only perform this IMG activity, if you set the Object Search indicator in the IMG activity Define Object Selections.
What we have done is simply defined a “name” (ASR_ORG_SEARCH) for a grouping of application parameter name/value pairs that we will be passing. In our case, we will pass this to a “search class” as defined in the next section.
Define Object Selections
In this step, we are going to define “how” our data is going to be selected (“object selection”) . We are either going to define it to select data objects using “Rules” (from the first node) or using application parameters (from the previous node) that are passed to a “Search class”.
In our case, we are using a “search class” (the standard one given) and passing the parameters we defined earlier.
If you want to allow managers to search according to a selection ID,
…you can use the search class CL_HRWPC_SEARCH_VIA_SELID which is included in the standard system.
This standard SAP class is used to find objects using the Object and Data Provider (OADP) and is a great reference for developing your own.
From SAP: “The object search is executed using an HR selection ID. The fields for the search template are determined from the conditions of the selection ID that are based on infotype tables (one field for each condition). When the search is executed, the values for the search criteria are added to the value ranges of the conditions for the selection ID. The search result comprises the objects found for the selection.”
You will notice that this class contains the implementation of the interace IF_HRWPC_OADP_OBJECTSEARCH which contains the methods required for the object search. If you develop your own search class, you must implement this interface.
From SAP: “In the frontend system, you can switch between a simple and an advanced search function. A method exists for each of the search functions that determines the fields that are to be displayed in the search template (GET_FIELDS_FOR_SIMPLE_SEARCH or GET_FIELDS_FOR_ADVANCED_SEARCH) and a method for executing the object search (EXECUTE_SIMPLE_SEARCH or EXECUTE_ADVANCED_SEARCH).”
Back to the class CL_HRWPC_SEARCH_VIA_SELID ,our “Selection ID” is transferred to the class using a parameter with the name ‘SEL_ID’. This “Selection ID” we define is what sets up our nice “search selections” on the screen and is what is used to retrieve the data.
To add additional search parameters, you simply need to create a selection ID that contains the relevant fields. You define selection IDs using the view cluster HR_SELECTIONS (transaction SM34) or in the IMG locations shown above. (*note, this is covered in detail in the section “Selection ID”)
Custom Search Class
To create your own “search class” as mentioned before,you must implement the specified interface IF_HRWPC_OADP_OBJECTSEARCH. To enable any parameters in the form of name-value pairs to be passed to the interface methods when they are called, you must define parameter groups in the OADP “Group Parameters for Object Search” configuration and assign these parameter groups, together with the name of the ABAP class for the object search, to an object selection in this “Define Object Selection” configuration step.
At this point, we defined “where” we were getting our data. Now we define how it is displayed.
In Part 3, we discuss the “Data Provider” portion of OADP…..