There seems to always be the occasion where you want to create a report, which will need the use of selection steps to include all the available members; but you want to override the values to keep/use with those of a dashboard prompt. Currently, as of 11.1.1.5, the UI does not make it easy enough to do this. As the Start with all members dialog does not have the Override with prompt checkbox; like, the Start with selected member does. Nor does the Start with selected member option have the ability to specify or check you want all members. So you have a couple options:
- Use Start with selected members with the option checked; but then you would need to select all members which is not really feasible with large member datasets or dynamic members. The dynamic members is when the dataset may grow due to added member values such as locations for example.
- Have the first selection step be Start with all members. Then creating 2nd selection step to use Select Members>Keep Only and checking the override option. This also has the same problems pointed out in #1 above with having to select the members in large member dataset and dynamic member sets.
- Have the first selection step be Start with all members. Then creating 2nd selection step to use the Apply a Condition>Match>Name contains ‘abc’>Keep. Where the operator is to match all members using the % to bring in all members and selecting the Override with prompt option. This option fixes the dynamic and large dataset issues from 1 and 2; but brings in another issue that may or may not affect your report. That being that conditional selection steps are pushed into the physical SQL query. So care needs to be taken that the filtering in the query is not affecting the outcome you expected or wanted. As for example, a rank in a report. The filter is done prior to the ranking, so that the ranking is done on the reduced (filtered) result set and not the entire result set before the Keep only conditional one.
Anyway there has to be a better way, and that is what this posting is about to show. I would call it a hidden gem, at least as of version 11.1.1.5, as Oracle may fix this issue and add the option in later releases. All props to finding this go to Kyle Guillot.
To create the Start with all Members with Override with prompt functionality you just need to do the following:
- In the report/Analysis, go to the Advanced tab.
- Look for the column you are using in the selection step and wanting to apply this property.
- Then look for the ‘<saw:dimensionSelection>’ tag for that column. It will be enclosed in the ‘<saw:column…>’ tags.
- You will see the following for the selction steps for that column:
<saw:dimensionSelection>
<saw:selectionStep stepID=”1″ type=”startWith” category=”member”>
<saw:stepMembers xsi:type=”saw:staticMemberGroupDef”>
<saw:staticMemberGroup>
<saw:members xsi:type=”saw:specialValueMembers”>
<saw:value specialValue=”all”/></saw:members></saw:staticMemberGroup></saw:stepMembers></saw:selectionStep></saw:dimensionSelection>
The Start with all members step is always stepID=1 and later has the following tag in the saw:members which signifies such:
<saw:value specialValue=”all”/>
5. If you do not see this or any selection steps of dimensionSelection tag, do the following:
a. Go to the criteria tab.
b. Open up the selection steps.
c. Go to the columns selection step and flip it to Start with members with anything really and hit ok to save.
d. Then go back and switch to Start with all Members. This will force the create of this tag in the xml for you in the advanced tab so you can add the overridable attribute detailed below.
6. Now to make this Override with Prompt, all that is needed is to add one attribute to the selectionStep tag highlighted below:
<saw:dimensionSelection>
<saw:selectionStep stepID=”1″ type=”startWith” category=”member” overridable=”true”>
<saw:stepMembers xsi:type=”saw:staticMemberGroupDef”>
<saw:staticMemberGroup>
<saw:members xsi:type=”saw:specialValueMembers”>
<saw:value specialValue=”all”/></saw:members></saw:staticMemberGroup></saw:stepMembers></saw:selectionStep></saw:dimensionSelection>
So that is it, you would just need to add the overridable=”true” attribute to the selectionStep tag to make it so.
Now, on another note, one may say they could have done #2 without the need to select all the members and/or worry about taking care of dynamically added new members by also modifying the second selection step Start With Members>Keep Only by also modifying the XML in the advanced tab by adding and modifying the highlighted code below:
<saw:dimensionSelection>
<saw:selectionStep stepID=”1″ type=”startWith” category=”member” overridable=”false”>
<saw:stepMembers xsi:type=”saw:staticMemberGroupDef”>
<saw:staticMemberGroup>
<saw:members xsi:type=”saw:specialValueMembers”>
<saw:value specialValue=”all”/></saw:members></saw:staticMemberGroup></saw:stepMembers></saw:selectionStep>
<saw:selectionStep stepID=”2″ overridable=”true” type=”keep” category=”member”>
<saw:stepMembers xsi:type=”saw:staticMemberGroupDef”>
<saw:staticMemberGroup>
<saw:members xsi:type=”saw:specialValueMembers”>
<saw:value specialValue=”all”/></saw:members></saw:staticMemberGroup></saw:stepMembers></saw:selectionStep></saw:dimensionSelection>
So what we did here was remove/modified the selected member list to the ‘All members special value’. So you really could do this both ways. But I prefer the first one as it is all done in the first selection step instead of creating 2 selection steps. Oh, by the way, you could also do the above in just one selection step by specifying the first selection step as Start with Members with Override with Prompt option and then changing the selected member list in the xml as stated above. Again, I still like the first solution as it is the quickest and easiest way with just needing to add the one attribute overridable=”true’.
So make life easier, by making things simple
-Frank
























