Introduction
“How do we make BI EE to generate different filters for every column(within a dimension) chosen from Answers?”
The idea is when you add the column Channel desc from the SH sample schema to an answer the query must be automatically filtered with a predicate on a other column.
Articles Related
Steps
- Go to Manage > Security Manager
- Open a group or a user
- Add this filter
You can read it as when you add the column “Channel Desc”, add the business model filter
SH.Channels."Channel Class" = 'Direct'
The result
With the column “Channel class” and “Amount Sold”
Sql Request
SELECT Channels."Channel Class" saw_0, "Sales Facts"."Amount Sold" saw_1 FROM SH ORDER BY saw_0
As you can see no filter is added to the database query.
Database Query
select T161.CHANNEL_CLASS as c1,
sum(T245.AMOUNT_SOLD) as c2
from
SH.CHANNELS T161,
SH.SALES T245
where ( T161.CHANNEL_ID = T245.CHANNEL_ID )
group by T161.CHANNEL_CLASS
order by c1
With the column “Channel desc” and “Amount Sold”
Sql Request
SELECT Channels."Channel Class" saw_0, Channels."Channel Desc" saw_1, "Sales Facts"."Amount Sold" saw_2
FROM SH ORDER BY saw_0, saw_1
By adding the column Channels.“Channel Desc”, OBIEE add automatically the security filter.
Database Query
select T161.CHANNEL_CLASS as c1,
T161.CHANNEL_DESC as c2,
sum(T245.AMOUNT_SOLD) as c3
from
SH.CHANNELS T161,
SH.SALES T245
where ( T161.CHANNEL_ID = T245.CHANNEL_ID and T161.CHANNEL_CLASS = 'Direct' )
group by T161.CHANNEL_DESC, T161.CHANNEL_CLASS
order by c1, c2
With the column “Channel desc” and “Channel class”
Sql Request
SELECT Channels."Channel Class" saw_0, Channels."Channel Desc" saw_1 FROM SH ORDER BY saw_0, saw_1
Database Query
select distinct T161.CHANNEL_CLASS as c1,
T161.CHANNEL_DESC as c2
from
SH.CHANNELS T161
where ( T161.CHANNEL_CLASS = 'Direct' )
order by c1, c2
Others
This documentation was created in answer to an original idea of Venkat with this blog entry: Puzzlers – Puzzle 1