Monday, August 6, 2012


Calling the database function from the OBIEE Answers
 

Below I have written an oracle function which accepts 3 input parameters & return 1 output column.
Function name is FIND_CUSTID. Input parameters are Customer first name, Customer last name & Customer birth year & output parameter (Return value) is Customer ID.
Note: Ensure that function return SINGLE value for the unique combination of INPUT parameters.








Let us check by calling the function from the oracle database itself just to check if it is working fine or not.













In OBIEE Answers, we will create the dashboard prompts on the columns Customer First Name, Customer Last Name & Customer Birth Year. In the Direct database request, we will call the function FINDCUSTID which will return the customer id with respect to the combination of parameters selected from the prompt.

Let us create a direct database request. (Report name is Calling a function using DDR)















Presentation variables-

<!--[if !supportLists]-->     A-     <!--[endif]-->Customer First Name
<!--[if !supportLists]-->     B-      <!--[endif]-->Customer Last Name
<!--[if !supportLists]-->     C-      <!--[endif]-->Customer Birth Year

Function Call –

SELECT FIND_CUSTID ( ( @{A}{'Abel'} ),( @{B}{'Aaron'} ),( @{C}{1960} ) ) as CUSTID from DUAL

Let us create the dashboard prompts for the columns- Customer First Name (uses Presentation variable A), Customer Last Name (uses Presentation variable B) and Customer Birth Year (uses Presentation variable C)
Ensure that only 1 value is returned for the combination of customer first name, customer last name and customer birth year and therefore we have put constraints.

Prompt is saved with the name Function prompt.









Note:  As mentioned in the example 2 – we have to put the single quotes around the columns Customer First Name & Customer Last Name. (Not required around the column Customer birth year since its data type is numeric). 










Set the presentation variables for the respective columns. Do not select the all choices option.
Click the Constrain check box.
It is not required to set the default values as in the database function call we have passed the default values for the 3 input columns.
Set the appropriate labels.
Preview the Prompt.









Now let us go back to dashboard page and pull the Function prompt and the direct database request calling a function using DDR

















You can see the customer ID (14762)- This has been returned by the function FIND_CUSTID and the default values we passed to this function.
Select some other combination – Don’t leave any prompt empty. Make selection from all the prompts.













To clear the selected values in the prompt you can click on the Page settings option & click on “Clear My Selections” and select some other combination.


























You can see a button below the prompt with the name “Clear”. This does the same job as the “Clear My Selections” option.

To add this button- open the dashboard creation console-Below the prompt Function prompt- add one Text object & paste the below JavaScript there.

<div class="XUIPromptEntry minibuttonOn"><a href="#" onclick="return PersonalizationEditor.removeDefaultSelection(false )">Clear</a></div>

Note: Don’t forget to select the “Contains HTML Markup” 












Press “Clear” button to clear the selected values in the dashboard prompt.
Alternatively you can use the guided navigation so that the second section (Customer ID) will appear only when function returns a single value for the combination of customer first name, customer last name & customer birth year. You have to make selection from each prompt.

 




Thanks,
Satya



No comments:

Post a Comment