Friday, October 30, 2009

Business Objects XI R2 and Google Maps

Have you ever felt the need for more visualization techniques than WebIntelligence delivers out of the box? One example is mapping and this is where Business Objects Masher comes in. By installing the Business Objects Masher server, you now have a way to access APIs, such as Google Maps or Flash, and easily incorporate them into a WebIntelligence document. The following diagram shows how mapping integrates into the Business Objects architecture.




The Masher tool comes with two components:

1) Mashup Editor - converts a WebIntelligence report into a Mashup report
2) Template Editor - contains the instructions for how WebIntelligence will convert to the Mashup report you choose

The Template Editor, as shown below, contains several definitions that need to be set for a new template.



Mashup Template Editor: Google Map

In the example of the Google Map, the Requirements needed (parameters passed by the WebIntelligence report) are an address, state, and zip code. These dimensions can be plotted on the X axis while the measures are plotted on the Y. Additional JavaScript coding can be done in the Masher functions of Init, Mash, and Dispose, to perform functions such as creating the markers with specific values, sending the Google API key, and adding in controls like Zoom, Traffic, and Search.

In the example below using the Mash function, these additional controls will be updated any time the WebIntelligence report is refreshed or if the filters are updated.

map.enableScrollWheelZoom();
map.enableContinuousZoom();
var trafficOptions = {incidents:true};
trafficInfo = new GTrafficOverlay(trafficOptions);
map.addOverlay(trafficInfo);
map.addControl(new TrafficControl());
map.addControl(new GLargeMapControl3D());
map.enableGoogleBar();
Additional Controls defined in Mash

After creating a WebIntelligence report with the dimensions and measures needed for the mapping template, you can convert the report to a Mashup report by using the Mashup Editor as seen below. Open the WebIntelligence report, right click on the table, choose “Turn to Table”, and pick the new Google Map format. Then format the Chart to define your parameters for the X and Y axis as defined in the template.


Mashup Editor


Format Chart
 

After saving your report in the Mashup Editor, you can log into WebIntelligence and view your report as you would any other. Our example map can be seen below:


Example Map

Friday, October 16, 2009

OBIEE: Enabling Multi-User Development

Thanks to Venkatakrishnan J for a large portion of the content for this entry. His original entry was published on March 27, 2008.

Enabling Multi-User Development (MUD) to work with the pre-built out of the box repository is the same process as if you are working with a custom built rpd. Typically one implements this solution when there are many data sources and lots of tables; it would make sense to distribute the repository development work to multiple users. In our example we will introduce MUD as a basic feature because we will have many developers between multiple project iterations. The MUD solution is a feature of the OBI EE admin tool wherein multiple users can work on the repository at the same time. The concept of Repository Merging was actually introduced in the product in order to facilitate MUD.

Let’s start with a simple diagram from Oracle below.




The above diagram illustrates how the MUD works. To implement the solution we need to follow the pre-requisites

  1. A shared drive to host the Master Repository
  2. All developer workstations should have access to the master repository.
  3. All developer workstations must have the admin tool installed.

For the MUD to work, the repository that is shared by developers should be kept in a shared directory (Samba share if on Linux). The shared directory should be accessible by each member of the development team. In each of the client’s Admin tool, enter the Shared Directory path.

Now, open the Master repository in offline mode. In MUD each object in the repository will be organized into Projects. So, from within the Admin tool navigate to Manage - Projects.



This will open up a project window. Projects are basically subsets of objects within the Admin tool that can be assigned each developer. The idea being that each developer has his/her own objects assigned to different projects to work on. Typically, each of these projects contains one or more Logical Fact tables from the BMM. As soon as a logical fact table is included all the other dependent objects would automatically be part of the project. It is recommended that one import all the physical tables and create the physical joins in the repository first before implementing MUD. Since we are using the pre-built Financial and Procurement Analytics we don’t have to worry about this. Good news is we can assign Users, Init Blocks and Variables to a project.



After creating and assigning objects to a project, the next step is to save the master repository in a shared drive. Now, open up the Admin tool and navigate to File - Multiuser - Checkout. This Check out process does 2 things

  1. Copies the Master repository from the shared drive to the local drive (This will serve as the developer’s local master repository).
  2. Allows you to choose the project that you have the authority to work on.
  3. Creates a subset repository which contains only the selected project related objects for that developer.
For our example the idea is to work on the subset repository (like creating Financials – GL, Procurement) and then after developer completes their unit tests merge the changes back to the local master repository. The merge process will lock the master repository in the shared drive until it’s complete and then release the lock by selecting “Publish to Network” which will copy the modified and merged local master repository to the shared drive. The process would be the same for the other developers.

Friday, October 2, 2009

Enabling BI Publisher with OBIEE for External Web Users

A challenging task in implementing an OBIEE environment can be the hosting and accessing the BI publisher reports outside of a DMZ or by the general public. Enabling OBIEE using the presentation server plug-in is fairly well documented in Oracle’s install documentation as well as various blogs on the web. Once you have created a website in IIS and followed the steps your installation should look something like this:




With a virtual directory called Analytics that is pointed to the \OracleBI\web\app folder. The application it runs is the saw.dll file. The virtual directory execute permissions property should be set to "Scripts and Executables". The next step is to make sure the Siebel Analytics Web Service Extension (saw.dll) is added as an extension and marked as Allowed.





If you plan on exposing OBIEE and BI Publisher reports to external web users outside the corporate firewall you need to plan for requesting that the correct ports are opened between the Presentation Server and the IIS server and the BI Publisher Server and the IIS server. The default configuration is to open port 9710 for OBIEE and port 9704 for BI Publisher. In the diagram Presentation Server and BIP are on the same internal box. On the IIS server you need to configure the \OracleBIData\web\config\ isapiconfig.xml file with the Internal Server and the port 9710.



Example:



Also you need to configure the \OracleBI\web\app\WEB-INF\web.xml with the internal presentation server and port 9710.




Following the above steps you should have OBIEE working just fine over the internet hosted by IIS. But if you have any BI Publisher reports they will not be available. So to over-come this limitation we need to follow the instructions outlined in section 9.2 of Oracle® Business Intelligence New Features Guide

The Oracle BI Publisher component of the OBIEE installation require Oracle Containers for Java (OC4J) and will not run natively on Microsoft's Internet Information Server (IIS).IIS can be configured as a listener for OC4J. This is accomplished via an IIS proxy plug-in that is provided with the BI EE installation files. When configured, the requests are routed from IIS to OC4J so that it appears to the user that everything is being executed by IIS. Below are the configuration steps:


  1. From your BI EE install files, locate oracle_proxy.dll. The navigation path is as follows:
    \Server\Oracle_Business_Intelligence\oc4jproxy\oracle_proxy.dll

  2. Create a folder on an accessible drive, for example: c:\proxy. Copy oracle_proxy.dll to this folder.

  3. In the same folder, create a configuration file called "proxy.conf " . Following is a sample configuration file:

      1. # Server names that the proxy plug-in will recognize.
        oproxy.serverlist=Internal

      2. # Hostname to use when communicating with
        a specific server.
        oproxy.Internal.hostname=internalserver.company.com

      3. # Port to use when communicating with a specific server.
        oproxy.Internal.port=9704

      4. # Description of URL(s) that will be
        redirected to this server.
        oproxy.Internal.urlrule=/xmlpserver
        oproxy.Internal.urlrule=/xmlpserver/*

      5. When you complete this Step, there will be two files (oracle_proxy.dll and proxy.conf) in the folder that you created in Step 2.

  4. Define the OracleAS Proxy Plug-in Registry as follows:

      1. Edit your registry to create a new registry key named: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\IIS Proxy Adapter.


      2. Specify the exact location of your configuration file with the name server_defs, and a value pointing to the location of your configuration file, for example: c:\proxy\proxy.conf.

      3. (Optional) Specify a log_file and log_level: Add a string value with the name log_file, and the desired location of the log file, for example, c:\proxy\plugin.log. Add a string value with the name log_level, and a value for the desired log level. Valid values are "debug", "inform", "error", and "emerg".

  5. Create the "oproxy" virtual directory in IIS as follows:

      1. Using the IIS management console, add a new virtual directory to your IIS Web site with the same physical path as that of oracle_proxy.dll. Name the directory "oproxy" and give it execute access.


      2. Using the IIS management console, add oracle_proxy.dll as a filter in your IIS Web site. The name of the filter should be "oproxy" and its executable must point to the directory that contains oracle_proxy.dll, for example, c:\proxy\oracle_proxy.dll.

      3. Add Oproxy as a Web service extension for c:\proxy\oracle_proxy.dll and set status to allow.


      4. Restart IIS (stop and then start the IIS server), ensuring that the filter is marked with a green arrow pointing up.

  6. Check the following configuration files to remove the port 9704 because now IIS is routing all the calls to OC4J.
    \oracleBIData\web\Config\instanceconfig.xml\oracleBI\xmlp\Admin\configutation\xmlp-server-config.xml

  7. To access BI Servlets from the IIS / OracleAS Proxy Plug-in, you must specify the complete URL for example:
    http:///xmlpserver/login.jsp