Set yesterday or some date value as default in OBIEE dashboard prompt
Aim is to set default value to yesterday or some other day that you desired in dashboard prompt. So, when we click on the dashboard page.
This can be done in many ways
Here I am going to introduce 3 ways of doing the same.
Using Advanced SQL in Prompt (From Answer side)
Using repository variable (From rpd side)
Using derived column in rpd (Same using repository variable)
We discuss this one by one
Using Advanced SQL in Prompt (From Answer side):
Create a prompt on date column as per your requirement
In Default to option drop-down, select SQL Result
3. Now click on eclipse button provided under selected SQL Result option
4. Write the following query in the editor & click on OK.
(Here I am explaining to set default value to yesterday,)
SELECT CASE WHEN 1=0 THEN Times.”Time Id” else TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE) END FROM SH
In general, query will be,
SELECT CASE WHEN 1=0 THEN “any date column” else TIMESTAMPADD(SQL_TSI_DAY, -1, CURRENT_DATE) END FROM “SubjectAreaName”
Note: You can change instead of date put it week,Year,Moth etc.....
5. Now add this prompt to dashboard page and you will be able to see the prompt is filled with the default value for yesterday
Note: If you want to set some other date as default, you can do that by simply changing the else part of SQL written.
Using repository variable (From rpd side):
1. Open rpd and go to Manage > Variables… and select new initialization block to creating dynamic repository variable. Select new initialization block option.
2. Click on Edit Data Source… and write the query & choose the corresponding connection pool as shown below.
SELECT CURRENT_DATE – 1 FROM DUAL
SELECT SYSDATE – 1 FROM DUAL
3. Click on OK to confirm the query (You can test here the query o/p by clicking on Test button)
4. Click on Edit Data Target… option and click New… to create new repository variable
5. Give repository variable Name, here I am using YstrDay as Variable Name and click OK
6. Click OK and again OK to confirm creation of initialization block.
7. Save the rpd and go to answers and reload the server metadata.
8. Go to the prompt you have created already, and this time select Server Variable from Default to option.
9. Click on Eclipse button under the Server Variable option and mention the repository variable name in editor. i.e. “YstrDay” in my case.
10. Save the prompt and check the default value displayed on dashboard.
Note: Again, if you want to change the default date value to some other you need to change the query written in initialization block of rpd
Using derived column in rpd:
1. Even this is using repository variable, but this time I am creating dedicated column for this in rpd. So that you can simply make it use without mentioning case when condition in writing query or mentioning the repository variable name
2. Create a Logical column under Time related table and click on Use existing logical column as the source in order to specify the functionality
3. Write VALUEOF(YstrDay) in eclipse as functionality
4. Now in query, of 1st method, you can replace timestampadd thing with Yester Day column you have created in rpd
Satya Ranki Reddy