Action FrameworkA Practical Guide To The Galaxy Kevin McGinley ([email protected])
Action Framework, As Advertised
Copyright © 2012 Accenture All Rights Reserved.
Insight Action
What Do We Use It For?
Copyright © 2012 Accenture All Rights Reserved.
Action Framework, As Advertised
Copyright © 2012 Accenture All Rights Reserved.
Insight Action
Action Framework, Co-Opted
Copyright © 2012 Accenture All Rights Reserved.
Insight
Beam me up to another
application, Scotty
Action Framework, Co-Opted Again
Copyright © 2012 Accenture All Rights Reserved.
Insight
Let me do something you
didn't ETL, Scotty
Action Framework, Co-Opted Yet Again
Copyright © 2012 Accenture All Rights Reserved.
InsightLet me do
something you did ETL, Scotty
Contents
• Integrating with ERP • Short-Cutting ETL • Integrating with ETL • One More Thing...
Copyright © 2012 Accenture All Rights Reserved.
Integrating with ERP
Copyright © 2012 Accenture All Rights Reserved.
Integration Options
Copyright © 2012 Accenture All Rights Reserved.
Navigate from EBS to OBIEE
Navigate to EBS from
OBIEE
Navigate to EBS from
OBIEE (with parameters)
Initiate EBS workflow from
OBIEE
Action FrameworkRequired
Navigate Overview
Copyright © 2012 Accenture All Rights Reserved.
EBS config for OBIEE
OBIEE config for
EBS
EBS Forms config
AF EBS config
Action
•Metalink Note: Integrating Oracle Business Intelligence Applications with Oracle E-Business Suite [ID 1343143.1]
•OBIEE 11g Integrators Guide •EBS R12 base install does not require any patches for this functionality to work. •EBS 11i will require patchset 5473858 (which is 11i.ATG_PF.H.delta.5)
EBS Config Overview
• Create EBS Function(s) for OBIEE • Create EBS Menu with OBIEE Function • Assign Menu to Responsibility (New or Existing) • Assign Responsibility to a User • Create a System Profile for Responsibility
Copyright © 2012 Accenture All Rights Reserved.
EBS Config
Copyright © 2012 Accenture All Rights Reserved.
Create functions for OBIEE dashboards and Answers, if desired.
EBS Config
Copyright © 2012 Accenture All Rights Reserved.
Enter the full host and port names for OBIEE.
OBIEE Config Overview
• Add Connection Script to Init Block Connection Pool • Create Authentication Init Block and Session Variables • Update AuthenticationSchemas.xml with EBS ICX
Authentication Cookie Name and Session Variable Name • Update InstanceConfig.xml Authentication Tags
Copyright © 2012 Accenture All Rights Reserved.
OBIEE Config
Copyright © 2012 Accenture All Rights Reserved.
EBS_RESP_ID, EBS_RESP_APPL_ID, EBS_SEC_GROUP_ID, EBS_RESP_NAME, EBS_USER_ID, EBS_EMPLOYEE_ID, USER
OBIEE Config
Copyright © 2012 Accenture All Rights Reserved.
authenticationschemas.xml
instanceconfig.xml
TIP: Log into EBS and type javascript:document.write(document.cookie) in the address bar to get nameInSource.
EBS Forms & AF Config Overview
• Edit ActionFrameworkConfig.xml to Enable EBS • Identify Form Parameters to Pass • Create a Trigger Event on the Form • Create OBIEE Action
Copyright © 2012 Accenture All Rights Reserved.
ActionFrameworkConfig.xml
Copyright © 2012 Accenture All Rights Reserved.
<Oracle Middleware Home>\user_projects\domains\bifoundation_domain\config\fmwconfig\biinstances\coreapplication
Form Parameters
Copyright © 2012 Accenture All Rights Reserved.
Create Trigger
Copyright © 2012 Accenture All Rights Reserved.
This value goes into a parameter in the action.
Create Action
Copyright © 2012 Accenture All Rights Reserved.
It's a good idea to fix and/or hide the Function Code and Connection Pool.
Once attached to a report, pass a column on the report to the parameter.
Demo
Copyright © 2012 Accenture All Rights Reserved.
Call EBS Workflow - Overview
• Install and enable the Integrated SOA Gateway • Apply numerous EBS patches for Integrated SOA Gateway • Expose a service and assign it to user(s) • Test exposed web service with SoapUI or similar tool • Make sure proper EBS parameters are exposed in Soap
Header • Use SOA Monitor UI tool to diagnose errors in EBS • Add proper credentials to credential store • Validate SOAP policies • Create OBIEE Action
Copyright © 2012 Accenture All Rights Reserved.
Short-Cutting ETL
Copyright © 2012 Accenture All Rights Reserved.
Practical Possibilities
• Currency Conversion – On-demand translation of a
single value versus storing and updating exchange rates
• External Data Sources – Call out to external data on-
demand instead of capturing on a scheduled basis
– Geo – Whois – Financial – Government (Census) – Healthcare (ICD-9, Hick-Picks) – General Conversions
• Informational Attributes – Call non-analytical attributes
from other applications instead of storing dozens or hundreds of barely used attributes
• Language Translation – Conversion of text/description
fields to another language
Copyright © 2012 Accenture All Rights Reserved.
On-demand!
AF JavaScript vs Web Service
• Pros: – AF Browser Script Parameter
Functionality – Offers great flexibility when
dynamically interacting with external websites and web services
– Also valuable dynamically linking to internal websites
• Cons: – Requires custom scripting and
basic JavaScript skill set – No default OBIEE display
results options
Copyright © 2012 Accenture All Rights Reserved.
• Pros: – AF Browser Script Parameter
Functionality – Native OBIEE call & result
option • Cons: – Requires wsdl's (and well
structured ones at that) – Limited interactivity/
manipulation of values returned
Real Time Currency Conversion
Copyright © 2012 Accenture All Rights Reserved.
• Calculate currency conversion rates and target currency values in real time.
• Feed product prices or other report parameters directly to 3rd party web services – http://www.webservicex.net/CurrencyConvertor.asmx/
ConversionRate?FromCurrency=USD&ToCurrency=EUR – http://currencies.apps.grandtrunk.net/getlatest/USD/EUR
Browser Setup
Copyright © 2012 Accenture All Rights Reserved.
• Anytime you begin leveraging interactive functionality in JavaScript you’ll need to adjust security settings. – Turn off pop-up blocker
• Add OBIEE as a trusted site and enable cross domain AJAX calls – You can add a trusted site in IE via the Tools | Internet Options
| Security tab. Then you can set the security for trusted site via the Custom level | Miscellaneous section. You'll see that, by default, the "Access data sources across domains" option is set to Prompt. However, Prompt is unsatisfactory because it will interrupt any current application that is running with a message box, asking the user to confirm that they want access to the service. Instead, set the option to Enable.
The Script - Key Parts
Copyright © 2012 Accenture All Rights Reserved.
• AF Browser Scripts calls are broken into 2 functions. – The first function manages the parameters passed from OBIEE
Action Framework to the JavaScript file for processing. – The second function actually calls the web service, captures the
result, performs a calculation and opens an internet window to display results.
<middleware home>/user_projects/domains/bifoundation_domain/servers/bi_ server1/tmp/_WL_user/analytics_11.1.1.2.0/<installation dependent folder>/war/res/b_mozilla/actions/UserScripts.js
The Script (cont.)
Copyright © 2012 Accenture All Rights Reserved.
The Script (cont.)
Copyright © 2012 Accenture All Rights Reserved.
Action
Copyright © 2012 Accenture All Rights Reserved.
Demo
Copyright © 2012 Accenture All Rights Reserved.
Integrating with ETL
Copyright © 2012 Accenture All Rights Reserved.
Practical Possibilities
• Micro ETL – Run filtered ETL job on-demand instead of running for all data on a
frequent scheduled basis • Use Cases – Financial adjustments during month-end-close – Latest sales updates during a brief campaign to gauge demand – Process recently-updated semi-structured data set (spreadsheet) – Any potential for near-real-time that is hard to schedule or can be
segmented by dimensional values
Copyright © 2012 Accenture All Rights Reserved.
On-demand!
Overview with ODI
Copyright © 2012 Accenture All Rights Reserved.
Action Framework
ODI Run-Time
ServicesScenario
Interface
Variable
ODI Configuration
Copyright © 2012 Accenture All Rights Reserved.
• ODI Run-Time Services Overview • Installation Components • Extending the Web Logic Domain • Verifying ODI Java EE Agent deployment • Configure ODI Topology with Java EE Agent • Example ETL and Variable • Testing the OdiInvoke Web Service with SoapUI • Kicking off the ETL from OBIEE
Installation Components
Copyright © 2012 Accenture All Rights Reserved.
Extend WLS Domain
• [HOME]/Oracle_ODI1/common/bin/config.bat • Extend existing domain • Select domain directory (bifoundation_domain if OBIEE) • Check Oracle Data Integrator Agent (JRF auto-checked) • Complete the wizard specific to your environment
Copyright © 2012 Accenture All Rights Reserved.
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/odi/odi_11g/setup_jee_agent/setup_jee_agent.htm
Verify Deployment
Copyright © 2012 Accenture All Rights Reserved.
Configure ODI Topology with Agent
Copyright © 2012 Accenture All Rights Reserved.
Physical
Logical
Example ETL and Variable
Copyright © 2012 Accenture All Rights Reserved.
Test ODiInvoke Web Service
Copyright © 2012 Accenture All Rights Reserved.
SoapUI gives us an easy layout of the request and the ability to test it out by putting in parameters where instructed.
XML Request Template with Parameters
Copyright © 2012 Accenture All Rights Reserved.
REQUEST TEMPLATE: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:odi="xmlns.oracle.com/odi/OdiInvoke/"> <soapenv:Header/> <soapenv:Body> <odi:OdiStartScenRequest> <!--You may enter the following 2 items in any order--> <Credentials> <!--You may enter the following 3 items in any order--> <!--Optional:--> <OdiUser>?</OdiUser> <!--Optional:--> <OdiPassword>?</OdiPassword> <WorkRepository>?</WorkRepository> </Credentials> <Request> <ScenarioName>?</ScenarioName> <ScenarioVersion>?</ScenarioVersion> <Context>?</Context> <!--Optional:--> <Synchronous>true</Synchronous> <!--Optional:--> <SessionName>?</SessionName> <!--Optional:--> <Keywords>?</Keywords> <!--Zero or more repetitions:--> <Variables> <!--You may enter the following 2 items in any order--> <Name>?</Name> <Value>?</Value> </Variables> <!--Optional:--> <LogLevel>5</LogLevel> </Request> </odi:OdiStartScenRequest> </soapenv:Body> </soapenv:Envelope>
SAMPLE REQUEST WITH PARAMETERS: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:odi="xmlns.oracle.com/odi/OdiInvoke/"> <soapenv:Header/> <soapenv:Body> <odi:OdiStartScenRequest> <!--You may enter the following 2 items in any order--> <Credentials> <!--You may enter the following 3 items in any order--> <!--Optional:--> <OdiUser>SUPERVISOR</OdiUser> <!--Optional:--> <OdiPassword>SUPERVISOR</OdiPassword> <WorkRepository>WORKREP</WorkRepository> </Credentials> <Request> <ScenarioName>UPDATESTOREREVENUE</ScenarioName> <ScenarioVersion>001</ScenarioVersion> <Context>ODI_DEMO_CONTEXT</Context> <!--Optional:--> <Synchronous>true</Synchronous> <!--Optional:--> <SessionName>?</SessionName> <!--Optional:--> <Keywords>?</Keywords> <!--Zero or more repetitions:--> <Variables> <!--You may enter the following 2 items in any order--> <Name>WS_DEMO.OFFICE</Name> <Value> Madison</Value> OBIEE passes in the value of the variable here </Variables> <!--Optional:--> <LogLevel>5</LogLevel> </Request> </odi:OdiStartScenRequest> </soapenv:Body> </soapenv:Envelope>
Create Action
Copyright © 2012 Accenture All Rights Reserved.
Create Action
Copyright © 2012 Accenture All Rights Reserved.
Demo
Copyright © 2012 Accenture All Rights Reserved.
One More Thing...
Copyright © 2012 Accenture All Rights Reserved.
Action Menu Using OBIEE Presentation Web Services
• Create an agent for the given report – writeIBot() method
• Execute existing agent for the given report – executeIBotNow() method
• Subscribe to an existing agent for the given report – subscribe() method
• Unsubscribe to an existing agent for the given report – unsubscribe() method
• Retrieve information about a column on the report – describeColumn() method
• Create a copy of the given report in the user's My Folder – copyItem() method
Copyright © 2012 Accenture All Rights Reserved.
Use JavaScript to...
• Call logon() method and capture sessionID
• Call desired presentation web service and pass sessionID
• Call logoff() method and pass sessionID
Copyright © 2012 Accenture All Rights Reserved.