Back in the early days of HCM P&F, you almost felt like a cave man with crude wooden tools and maybe one stone wheel. Times were hard. You had to make due with what you were given (ie. not much).
In the early days of HCM P&F, we did not have much to offer by way of “help values” to the user. Even SAP’s documentation stated that we pretty much could only “realize” input help in the form of a “drop down list” on the form. And even then, there were limitations (for instance, if SAP_PA handled creating the help values list, the field associated with it must have a valid check table assigned to it). You often would have to create your own generic service to populate your input help lists correctly (often due to business rules such as wanting to “filter” some values out for just the form). Then came the “headaches” of making rules or “clever coding” so that your generic service did not get called too unnecesarily as well as insuring your “help list” was not too long as to cause performance issues. But then things changed a little.
I first began to “play around” with Search Helps from HCM Processes & Forms back when EhP4 was released and brought us SAP_PD with all it’s many PD-ish related process samples. I did not spend a whole lot of time with it as I was fairly busy on other projects. Then I read Ian Stubbing’s great blog, HCM Processes & Forms: Web Dynpro ABAP Search Helps. This got me interested again…enough to tear it all apart and attempt to document it to the Nth degree.
Ian had gotten me thinking about Search Helps, but I wanted to know more. What was available? How did they work? Could I make my own?
What follows is a short series of blogs based on an actual workshop/document I put together for a client in order to teach their team the very same thing.
In this blog:
-Organization Structure Views
When we talk about “Search Helps”, we are talking about the nice window pop-up (aka. “F4 help”) that users are familiar with for some fields. This usually allows them a much more advanced, complex search capability than simply picking a single value from among results (like selecting drop-down values).
The standard “Search Helps” for HCM P&F are actually the WebDynpro ABAP components and can easily be found by doing a “where used” for implementations of the interface IF_HRASR00_FORM_WINDOW:
These are triggered from the Adobe form typically by using a button with script behind it in the “click” event to set “which” component to call.
$record.CONTROL_PARAM.ISR_EVENT = “USER_EVENT_POPUP”
$record.HRASR_FORM_WINDOW.DATA[*].FIELD.value = “HRASR_C_ORGUNIT”
(How this script works is explained in detail later in the section about HRASR_FORM_WINDOW.)
If you look at the WebDynpro ABAP implementations of the “search helps” you will notice they follow a very similar coding and for the most part an engine that serves as a “wrapper” around the OADP (Object And Data Provider)configuration. Therefore, two pieces work together here:
- OADP configuration
- OADP “engine” WebDynpro ABAP component
OADP configuration actually began long ago as a “generic” means of providing organizational data to managers via MSS. For example, it allowed a manager to select a “view” of “all direct employees”, “indirect reporting employees”, employees down all org. units below the one he manages, or any number of options. Since then, it is used in many areas of SAP HCM. However, you will still find its configuration under the IMG portion related to MSS. This location is at the bottom node of your IMG at the “Integration with Other mySAP.com Components” location. You expand it, then expand the “Business Packages/Functional Packages” node and finally, you will find it under MSS (you will see two “MSS” nodes here…the first is the one you want…the second is due to previous MSS versions for ECC5.0).
If you expand the “Object and Data Provider” node, you will find 3 main sections:
- In the Object Provider section, you define which “objects” are to be displayed to users. Think of this as defining WHERE your data comes from.
- In the Data Provider section, you define HOW the data is displayed. I know the name is misleading, but this is where you define “columns” and “groups of columns” for your data.
- In the Organizational Structure Views section, you define your overall “views” of how the user will finally see the information based on what you defined in the first two steps. This is how you tie together the Object Provider to the Data Provider.
In our example, we will be tracing the OADP configuration somewhat backwards of how you actually “build it up, but this makes it easier to understand the overall picture.
Organization Structure Views
Define Organizational Structure Views
From SAP: “In this IMG activity, you define the views for the organizational structure of your company. Each organizational structure view includes an object selection and a group of data views. If the object selection includes an object selection rule for navigation objects, a navigation area is also displayed for the user in which he or she can further refine the view for particular objects. “
This assumes that these IMG sections have already been done:
If we go into this task, we see several listings.
Here, we can see some of the available “HCM P&F Search Help” OADP values. We will focus/trace one of them.
Click “into” ASR_ORG_SEARCH.
Think of this as “how we get our data” (Object Selection) and “how we display our data” (Data Views).
Group Organizational Structure Views
From SAP: “In this IMG activity, you group the individual organizational structure views and define the position of the views within the group.
The system displays these groups on the user interface. The individual organizational structure views that belong to a particular group are displayed as list boxes in a combo box. By specifying the position number, you can define the sequence in which the list boxes are displayed. From the group of organizational structure views displayed (for example, Employee Selection), the user selects the organizational structure view (for example, Directly Subordinate Employees) he or she requires.”
This makes more sense in something like MSS where you might have different “views” of the Org. For example,
Then a manager would have these options:
In Part 2, we take a deeper look at the Object Provider portion of OADP confiuguration….