How to pass DIMENSIONFILTER Values from Design Studio Application to WEBI for Compounded Characteristics
How to pass parameters from Design Studio Application to WEBI for Compounded Characteristics
It is quite often that we need to pass the sections from Design studio application to WEBI on Compound characteristics, when we use the BEX queries as the source. I am presenting the situation here what I had and what solution that I have followed.
I have a BEx Query to display some Plant Maintenance data. This BEx Query is used as the source for both Design studio application and WEBI. WEBI is used to show the data at detail level as the drill through from Design Studio application.
The BEx Query has the below set of Variables and all of them are optional entry variables. These Variables are used is WEBI (but not in Design Studio application) to receive the values form sender application. And it also allow the users to select the different selection after jumping to WEBI from DS application.
Here 0WORKCENTER and 0PMPLANGRP are compounded characteristics as shown below:
Even though there are compounded, the possible values that we see in the variable prompt are not compounded ones. So we need to pass uncompounded values when we pass the values to the prompts of WEBI.
Here in the below screen, we can observe that we need to pass/Enter uncompounded values for “Work Center” and “PM planner group”.
We can see that the same Key values are appearing more than once (it can be same description or different), since they belong to different compounding characteristics.
Even though we selected one single Value of all those repeated Keys (for ex: M for Work centers), in the WEBI/BEX report it shows all the plants where ever we have “M” Work centers.
But where as in Design Studio application, we see the possibility to select the Compounded characteristic with its compounding characteristics. For ex, as shown below, Work Center along with Plant is allowed to select in the DIMENSIONFILTER.
The problem statement: When we are calling the WEBI Application, by passing the values by statement, then I get the error message like this:
var url=”/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=AXodJcudeyFHmjL10ztpBxA”+ “&lsMWork Center=”+DS_5.getFilterExt(“0WORKCENTER”)+ “&sRefresh=Y”;
Note: I have used DIMESIONFILTER for both 0WORKCENTER and 0PMPLANGRP dimensions in the Design Studio application.
Solution: I need to pass the uncompounded values. So I have used the below solution in this case. Here I managed to get uncompounded values into Variables and used these variables while calling the WEBI application.
Here I have taken a TEXT Component called TEXT_3 to show how the system considers the selected values from DIMENSIONFILTER on WorkCentre. Please see the value of TEXT_3 component.
Here I have taken TEXT_4 as the TEXT component to show us what is the final value that we need to pass to WEBI while drill through from DS Application.
I have used 2 different solutions for passing values of 0WORKCENTER and 0PMPLANGRP.
In Step 3: I have taken all the possible values of “PM planner group” which are available in the Data source.
So here I get not only user selected Dimension filter values but I get all the values. But I restricted to 1000, since I know that there are not more than 1000 distinct values in the source Cube.
In step 9: I have taken the user selected values into TEXT_3 to just to show how the selected values in DIMESIONFILTER comes out of the function “GetFilterExt”.
The number of user selected values in DIMESIONFILTERS of “PM planner group” is always less than the number of records gets out of “getmembers” function.
In step 10 to 18: Since number of Values in PG1 are always greater than the number of selected user selected values in “GetFilterExt”, I have used to loop on PG1 and taking different substring every time from the result of “GetFilterExt”
In step 21: I have taken the user selected values into variable PG3 by using the function “GetFilterExt”. Since I used Split function, so I am getting result as array.
In Step 24 to 32: I have used loop statements on the array result from step 21.
Here I used “if” statement to avoid concatenating “;” incase if user has selected only one value in the DIMENSION Filter of Workcenter.
How am I using it while calling open document:
As shown below, The values derived in approach 1 for “PM Planner Group” is passed to “url” variable by using “getText” function, since I have used TEXT Component in approach1.
The values derived in approach 2 for “Work Center” is passed to “url” variable by providing the String PG4.
Values selected in Design Studio:
Here User has selected the Work centers: 1000/E-MC; 1000/I-PL; 1000/M-EL; 1000/M-IN; 1000/M-IS
And user has selected the PM Planer Group: 1000/C01; 1000/C03; 1000/C04
We can see that the non-concatenated values are passed to WEBI from below screen:
I am working on Similar requirement.
could you please explain me what is the number "14" in line number 27 and 29.
I have modified the code as below than keeping a hard coded value
The format of my compounded characteristic is always for example- 1000/123, 1000/#, 1000/234890.
the first part always has fixed 4 digit value 1000. and second part value can vary.
my code works for all values except when it has #. ex: 1000/#.
Could you please help
To receive broader community feedback and in compliance with the Rules of Engagement, I would suggest posting a new question and referencing this blog post.