Tag Archives: JAVASCRIPT
OBIEE10g AutoRunPrompt
A client asked me if I could create an auto run prompt for him. Basically he wanted an edit box prompt which would updated his report after each character has been typed. Since this isn’t a standard 10g functionality I wrote some JavaScript to make it happen. It uses the onkeyup event to fire the GFPDoFilters filter event.
The script can be downloaded here: download COBIEEJS.
Copy the file to your b_mozilla directory’s (or other webserver dirs you use)
How to use it?
1. Add an edit box style prompt to your dashboard:
2. Add a textbox with:
<script src="res/b_mozilla/cobieejs.js" language="javascript"> </script>
<script language="javascript">
AutoRunPrompt('C1 Cust Name');
</script>
don’t forget the Contains HTML Markup checkbox
3. Add your prompted report:
Run the dashboard:
Till Next Time
OBIEE11g Blocking a formula
In http://obiee101.blogspot.com/2011/09/obiee11g-blocking-analyses-based-on.html I showed you the possibilities to block an analyses based on criteria system wide. In this article I want show how to block an analyses based on the editing of a formula.
A large part of the criteria editor is controlled by the criteriatemplate.xml
the kuiColumnFormulaEditorHead generates a web message reference to kuiFormulaBlockingScript
In order to use this reference you will have to create a new web message in on of your custom xml files:
<WebMessage name="kuiFormulaBlockingScript" translate="no">
<HTML>
<script type="text/javascript" src="fmap:myformulablocking.js" />
</HTML>
</WebMessage>
This effectively creates a “fork out” to a javascript (.JS) file. You can place this java script file in the ORACLE_INSTANCE\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obipsn\analyticsRes directory.
Let’s start with a simple example:
// http://obiee101.blogspot.com
// This is a formula blocking function.
// It makes sure the user does not enter an unacceptable formula.
function validateAnalysisFormula(sFormula, sAggRule)
{
alert(sFormula);
alert(sAggRule);
return true;
}
//
It basically returns the formula you enter:
and the Aggregation rule you selected.
Based on this info you can block for instance the usage from EVALUATE functions: (based on example for 10g found here:http://prolynxuk.com/blog/?p=413) (note: EVALUATE can be a security risk if the connection pool user have certain database roles…..)
// http://obiee101.blogspot.com
// This is a formula blocking function.
// It makes sure the user does not enter an unacceptable formula.
function validateAnalysisFormula(sFormula, sAggRule)
{
// alert(sFormula);
// alert(sAggRule);
// Donot allow EVALUATE function
var evaluateRe = "EVALUATE";
var nEvaluate = sFormula.search(evaluateRe);
if (nEvaluate >= 0)
{
alert("You used Evaluate function and is not allowed.");
return false;
}
return true;
}
Till Next Time