A Sample Files

This appendix contains the contents of sample files that enable you to configure actions and to enable actions to invoke browser script calls.

This appendix contains the following section:

A.1 Sample Action Framework Configuration File

Use the ActionFrameworkConfig.xml sample file with information given in Chapter 5, "Using Actions to Integrate Oracle BI EE with External Systems" to understand the various ways to configure actions.

<?xml version="1.0" encoding="UTF-8" ?> 
- <obi-action-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="afconfig.xsd">
- <aliases>
 - <location-alias>
    <alias>actionsrv</alias> 
    <actual>localhost:9704</actual> 
   </location-alias>
 - <location-alias>
    <alias>biserver</alias> 
    <actual>http://localhost:9704/analytics/saw.dll?WSDL</actual> 
   </location-alias>
   </aliases>
- <registries>
 - <registry>
    <id>reg1</id> 
    <name>Sample Web Services</name> 
    <content-type>webservices</content-type> 
    <provider-class>oracle.bi.action.registry.wsil.WSILRegistry</provider-class> 
    <description /> 
  - <location>
     <path>http://localhost:9704/ActionSamples/inspection.wsil</path> 
    </location>
  - <service-access>
     <path>/Sample Web Services/Rating Service</path> 
     <policy>SAMLPolicy</policy> 
     <propagateIdentity>true</propagateIdentity> 
    </service-access>
   </registry>
 - <registry>
    <id>reg1b</id> 
    <name>BI EE Web Services for SOA</name> 
    <content-type>webservices</content-type> 
    <provider-class>oracle.bi.action.registry.wsil.WSILRegistry</provider-class> 
    <description /> 
  - <location>
     <path>http://localhost:9704/biservices/inspection?wsil</path> 
    </location>
  - <service-access>
     <account>wsil.browsing</account> 
     <policy>wss_username_token_policy</policy> 
     <propagateIdentity>false</propagateIdentity> 
     </service-access>
   </registry>
 - <registry>
     <id>reg1c</id> 
     <name>Built-in BI EE Web Services</name> 
     <content-type>webservices</content-type> 
     <provider-class>oracle.bi.action.registry.wsil.WSILRegistry</provider-class> 
     <description /> 
   - <location>
      <path>http://localhost:9704/ActionSamples/Builtin.wsil</path> 
     </location>
    </registry>
  - <registry>
     <id>reg2</id> 
     <name>Secure Web Services Sample</name> 
     <content-type>webservices</content-type> 
     <provider-class>oracle.bi.action.registry.wsil.WSILRegistry</provider-class> 
     <description /> 
   - <location>
      <path>http://localhost:9704/ActionSamples/secure.wsil</path> 
     </location>
   - <service-access>
      <path>/Secure Web Services  Sample/RatingService/CreditRatingService/CreditRatingPort/processRating</path> 
     <policy>SAMLPolicy</policy> 
     <propagateIdentity>true</propagateIdentity> 
    </service-access>
   </registry>
 - <registry>
    <id>reg03</id> 
    <name>Sample EJBs</name> 
    <content-type>java</content-type> 
    <provider-class>oracle.bi.action.registry.java.EJBRegistry</provider-class> 
    <description>Custom Java classes which can be invoked as action  targets</description> 
  - <location>
     <path /> 
    </location>
  - <custom-config>
   - <ejb-targets>
    - <appserver>
       <context-factory>weblogic.jndi.WLInitialContextFactory</context-factory> 
       <jndi-url>t3://localhost:9704</jndi-url> 
       <server-name>localhost</server-name> 
       <account>WLSJNDI</account> 
       <ejb-exclude>mgmt</ejb-exclude> 
       <ejb-exclude>PopulationServiceBean</ejb-exclude> 
      </appserver>
    - <ejb-app>
       <server>localhost</server> 
       <app-context>ActionSamplesEJB</app-context> 
      </ejb-app>
     </ejb-targets>
    </custom-config>
   </registry>
  </registries>
- <content-types>
 - <content-type>
    <typename>webservices</typename> 
    <displayname>Web Services and BPEL Processes</displayname> 
    <actionType>WebServiceActionType</actionType> 
   </content-type>
 - <content-type>
    <typename>psft</typename> 
    <displayname>PeopleSoft Applications</displayname> 
    <actionType>URLActionType</actionType> 
   </content-type>
 - <content-type>
    <typename>epm</typename> 
    <displayname>Hyperion Applications</displayname> 
    <actionType>URLActionType</actionType> 
   </content-type>
 - <content-type>
    <typename>misc</typename> 
    <displayname>Mixed Services</displayname> 
    <actionType>URLActionType</actionType> 
   </content-type>
 - <content-type>
    <typename>java</typename> 
    <displayname>Java Actions</displayname> 
    <actionType>JavaActionType</actionType> 
   </content-type>
  </content-types>
- <accounts>
 - <account>
    <name>wsil.browsing</name> 
    <description>Account for BI WS for SOA</description> 
    <adminonly>false</adminonly> 
    <credentialkey>browsing</credentialkey> 
   </account>
 - <account>
    <name>WLSJNDI</name> 
    <description>Account used to access WLS JNDI.</description> 
    <adminonly>false</adminonly> 
    <credentialkey>JNDIUser</credentialkey> 
   </account>
 - <account>
    <name>EPM</name> 
    <description>Account used to connect to EPM.</description> 
    <adminonly>false</adminonly> 
    <credentialkey>EPM</credentialkey> 
   </account>
  </accounts>
- <policies>
 - <policy>
    <name>SAMLPolicy</name> 
    <policyfile>ActionsSAMLPolicy.xml</policyfile> 
   </policy>
 - <policy>
    <name>wss_username_token_policy</name> 
    <policyfile>wss_username_token_policy.xml</policyfile> 
   </policy>
  </policies>
- <!-- 
Uncomment this element to enable support for using proxy settings to enable browsing/invocation 
of external web services when running behind a firewall

          <proxy>
     <host>@proxy.host@</host>
     <port>@proxy.port@</port>
     <userid>@proxy.user@</userid>
     <password>@proxy.password@</password>
             <nonProxyHosts>localhost|*.oracle.com|@proxy.nonProxyHosts@</nonProxyHosts>
          </proxy>
 
        
 
  --> 
- <ebusinesssuiteconfig>
    <visible>true</visible> 
   </ebusinesssuiteconfig>
 </obi-action-config>

A.2 Sample Java Script File

Use the UserScripts.js sample file with information given in Chapter 5, "Using Actions to Integrate Oracle BI EE with External Systems" to understand how to enable actions to invoke browser script calls.

/ --------------------------------------------------------------------------------------------------------------------
/** USER-DEFINED SCRIPTS
  *
  * Use this file to enter any user-defined JavaScript functions you wish to invoke from a client-side Script action.
  * By using the namespace of USERSCRIPT (as shown in the example code below), you will ensure that no function name
  * conflicts occur with with the product code, and all PUBLISHED functions (in the USERSCRIPT namespace) can be
  * browsed for selection, at Action creation time.
  *
  * By default, all functions in here are PRIVATE, in so much that they are not displayed within the Browse dialog
  * during Action creation.
  * Note - They ARE still usable, providing you know the correct function name.
  *
  * To publish (make visible) a function, simply add the 'publish' static member as shown in the example below, along
  * with any parameters you want automatically created.
  *
  * ALL functions will receive ONE parameter; a named array of values, indexed by the parameter name.
  */
// --------------------------------------------------------------------------------------------------------------------
 
USERSCRIPT = function(){};
 
// --------------------------------------------------------------------------------------------------------------------
/** This is the parameter object you can create to supply default parameters on creation of Script action.
  * See the 'displayParameters' example below for usage.
  * @param {String} sName is the unique name of parameter.
  * @param {String} sPrompt is the display text used to prompt for the parameter value.
  * @param {String} sValue (Optional) is the default value for the parameter.
  */
USERSCRIPT.parameter = function(sName, sPrompt, sValue)
{
   this.name   = sName;
   this.prompt = sPrompt;
   this.value  = sValue;
};
 
/** This is an example function to display all parameters that are recieved
  * @params {Array} aParams an array of values indexed by the parameter name
  */
USERSCRIPT.example_displayParameters = function(aParams)
{
   var sArgs = "";
   for( args in aParams )
   {
      var argName  = args;
      var argValue = aParams[argName];
 
      sArgs += "Parameter name: " + argName + "  Value: " + argValue;
      sArgs += "\n";
   }
 
   alert( sArgs.length == 0 ? "No Parameters" : sArgs );
};
USERSCRIPT.example_displayParameters.publish =
{
   // The existence of this 'publish' object causes the 'USERSCRIPT.example_displayParameters' function to be
   // shown when browing the available user script functions (during creation of a Script action).
 
   // If you wish the Script function to have parameters automatically created on selection of the function,
   // create a 'parameters' object as shown below.
   // You can have any number of parameters, with each parameter requiring a unique name, prompt and an
   // optional value.
   parameters :
   [
      new USERSCRIPT.parameter( 'p1', 'Enter value for Param 1', 'p1 default value' ),
      new USERSCRIPT.parameter( 'p2', 'Enter value for Param 2', 'p2 default value' ),
      new USERSCRIPT.parameter( 'p3', 'Enter value for Param 3'  )
   ]
 
   // If no generated parameters are required, either create an empty array
   //    parameters : []
   // or don't declare the 'parameters' object at all.
};
//global variables
var newWin;
var sArgs;
 
 
// ----------------------------------------------------------------------------------------------
/** This is an example of a private function, which is not shown when browsing available
  * user-defined functions.  It is private as is does NOT have the 'publish' static member declaration.
  * However, the function CAN still be called if you know the function name.
  */
USERSCRIPT.example_hideMeDuringBrowse = function()
{
   alert("But I can still be called");
};
 
 
 
// ----------------------------------------------------------------------------------------------