Oracle BI EE 10.1.3.3 and mapviewer – Step by Step Integration Phase2 / Phase3

We saw yesterday here on how to go about implementing the phase 1 of integrating OBI EE and Mapviewer. Now lets discuss the next 2 phases. I would rather focus on the phase 3 which shows how to about passing parameters from Mapviewer to OBI EE.
Phase 2 is primarily on the mapviewer front wherein one can have multiple basemaps and change the basemaps when we click on any foi region dynamically in order to simulate a drill down. We would be using the same example as we used in phase1. But our aim is to showcase the way of passing parameters from mapviewer to OBI EE. So, lets begin with the simple map that we created yesterday. Instead of passing parameters to the map, we would change the map in such a way that it would show the customers in 2 cities i.e OAKLAND and HAYWARD. The idea is to show the sales of a city while clicking on any customer within that city. For example, if we click on any customer within OAKLAND our OBI EE sales report should change and show the sales of OAKLAND. The same should happen for HAYWARD city.
1. Lets create a BI EE report that would basically show the sales of all the cities. Create a filter on city that would be entered via prompts (i.e prompted).
      
      
2. Once this is done, the next step is to create a narrative BI EE report that would basically call the above report using iframes. Ensure that iframe is given a name and also check the GO URL parameter for the BI EE report that we created earlier. It should look like this
http://localhost:9704/analytics/saw.dll?GO&NQUser=Administrator&NQPassword=Administrator&Path=/shared/Paint+Demo/Mapviewer/City+Sales&Options=md&Action=Navigate&P0=1&P1=eq&P2=”Dimension%20-%20Customer”.CITY&P3=”OAKLAND”
The above url will pass OAKLAND as a parameter to the BI EE report which in turn would be displayed in a narrative iframe element named BI EE.
      
3. The next step is to create a map that would basically show the customers within the 2 cities OAKLAND and HAYWARD. We shall use the same map that we created yesterday. Save the same map as a new map and modify it to suit our needs.
      
Lets discuss the structure of the map html today. I have commented out the part wherein we had passed Region as a parameter to the map yesterday. Also, i have hardcoded 2 regions OAKLAND and HAYWARD using the below parameter variable.
var parameters = “\”" + “OAKLAND” + “\”,” + “\”" + “HAYWARD” + “\”";
Once this is done, we need to add a listener in order to make the map listen for mouse clicks on the customers. This is done by this part of the code.
var marrayPara = new ArrayParameter(parameters,’sarray’,'city_list’);
var themebasedfoi=mapview.getThemeBasedFOI(“themebasedfoi1″);
if (themebasedfoi==null)
{
themebasedfoi = new MVThemeBasedFOI(‘themebasedfoi1′,’mvdemo.customer_by_cities’);
themebasedfoi.setQueryParameters(marrayPara);
themebasedfoi.setBringToTopOnMouseOver(true);
mapview.addThemeBasedFOI(themebasedfoi);
}
else
{
themebasedfoi.setQueryParameters(marrayPara);
themebasedfoi.setBringToTopOnMouseOver(true);
themebasedfoi.refresh() ;
}
themebasedfoi.addEventListener(“mouse_click”, foiClick);
}
After adding the mouse click event, we need to define the foiClick function that would basically obtain the city name (stored in the foi) and pass it on to OBI EE.
function foiClick(point, foi)
{
var drillURL =
“http://vejanaki-pc:9704/analytics/saw.dll?
GO&NQUser=Administrator&NQPassword=Administrator&Path=/shared/Paint+Demo/Mapviewer/City+Sales&Options=md&Action=Navigate&P0=1&P1=eq&P2=\”Dimension%20-%
20Customer\”.CITY&P3=”+foi.attrs[1];
objWin = window.open(drillURL, “biee”,”height=480,width=240,scrollbars=yes,resizeable=yes”);
}
The foi.attrs[1] would have the city name and this is passed to OBI EE in the form of GO URL parameter. OBI EE report would change dynamically since window.open points to the biee (name we gave earlier to the iframe) iframe.
      
When one clicks on the OAKLAND customers, the OBI EE report would give the sales of OAKLAND city. Same is the case for HAYWARD.