I have recently come across an issue with hierarchy input help (F4) on query selection screen. Unfortunately I've run out of ideas so I decided to register here as maybe someone knows what to do.
As I'm not very experienced I would like to share this problem with you who may have broader knowledge than me on this subject and I kindly ask for advice. Any help is much appretiated.
Now, to the point.
Description of environment
Let's assume the following
- My characteristic is "POSITION". This char is bearing time-dep. master data
- I have a hierarchy with time dependent structure for this char. Let's call it "ORG_STRUCT".
- In the hierarchy, an external characteristic is used: "DEPARTMENT". This characteristic is a time-dependent navigation attribute of POSITION.
- On query a user can choose a calendar month for reporting
Text; InfoObject; Node Name ; Valid From ; Valid to
1. Sales; DEPARTMENT; 12; 01.01.2014; 31.12.9999
1.1. Marketer; POSITION; 13; 01.01.2014; 30.04.2014
1.2. Analyst; POSITION; 14; 01.01.2014; 31.12.2014
1.3. Strategist; POSITION; 17; 01.01.2014; 31.12.2014
2. Research; DEPARTMENT; 15; 01.01.2013; 31.12.2013
2.1. Researcher; POSITION; 16; 01.01.2013; 31.12.2013
And, to imagine it easier, an example of master data for some positions:
ID; valid to; valid from; department; text
13; 31.12.2013; 01.01.1000; NULL; NULL
13; 31.12.2014; 01.01.2014; 1. Sales; marketer
13; 31.12.9999; 01.01.2015; NULL; NULL
16; 31.12.2012; 01.01.1000; NULL; NULL
16; 31.12.2013; 01.01.2013; Research; Researcher;
16; 31.12.9999; 01.01.2014; NULL; NULL
And now, In the infoprovider we have data for historical positions too (so the ones that are no longer assigned in the hierarchy as of present day). So setting "show only values posted in infoprovider" doesn't take the case.
On the report
A selection screen is displayed. A hierarchy node variable (manual input/visible to the user) is set on POSITION.
When a user click an input help, then it displays an "unassigned node" with all of the POSITIONS that are no longer valid for May 2014, so something like this:
And the problem is how can I display only those nodes, that are valid at a selected time (cal month) on selection screen.
I know that you can use a F4 badi to include only some nodes depending on the input from other variable (here it would be calmonth). However, I still experience some difficulties.
In the badi you have table C_T_NODE where you list nodename and infobject that are to be included.
My problem is, that it doesn't work on leaves, only higher level nodes.
SO if in C_T_NODE I have the following:
C_T_NODE-nodename = 12 (for sales)
C_T_NODE-iobj = "DEPARTMENT" (higher node)
It works perfectly and only the "Sales" node is shown.
But if I have something like:
C_T_NODE-nodename = 14 (for analyst)
C_T_NODE-iobj = "POSITION" (so the leave and char for which hierarchy is built)
it doesn't work and everything is displayed.
Therefore I have two questions regarding this BADI:
- Should the badi work for leaves? I don't know if I'm doing something wrong in implementation, or maybe it simply cannot restrict leaves, only higher nodes. If they should work then what I should do additionally, as it seems to work great on higher nodes in hierarchies
- Is there any way to manipulate the "unassigned" node (rest_h) that is automatically created? This would be required as even if I assume that I can somehow filter by leaves (in hierarchy) then some of my old nodes will still be in "not assigned" node. I assume that what I could change via badi is only if the nodes (so positions here) are to be shown or not on input help, but not the date of the hierarchy structure itself. But as it's autmatically created then I'm affraid that the BADI would not recognize it. So I'm not able to restrict the input help to (e.g.) show only "not assigned" nodes here as there is no "Node Name" and "InfoObject" in the selected hierarchy. If I'm wrong then please enlighten me how I can do this.
If it is not possible to achieve the result via BADI, then what can I do (if I can at all with such configuration) to achieve the desired result?
The post is long, but I wanted to give you all required information to properly analyze this issue. And definately thank you for your valuable time.