Upgrade From OBIEE To OBIEE Features and changes 11G12c[13026] Error in getting roles from BI Security Service (nQSError: 12002, 12010)NQSError:15019 - Table @1%ls is functionally dependent upon level @2%ls[39008] Logical dimension table does not join to any fact source[39059] Logical dimension table has a source at level that joins to a higher level fact sourceAct as (Proxy user) FunctionalityActionAction Framework - How to create and invoke a Java Method (EJB)Administrator AccountAdministration Tool (admintool)Repository Admintool Object Copy/PasteHow to configure BI Server against the LDAP of ADSI ?(Weblogic|OBIEE 11G) - Active Directory (ADSI) Configuration(Ibot|Agent)Aggregate At Function"Aggregate By" FunctionAggregate (Navigation|Table|Content)Aggregate Persistence (Script)Aggregate Persistence Wizard (aka Data Mart Automation)Repository Aggregation rules based on dimension (dimension-specific aggregate)Aggregation RulePeriod to period comparison with the AGO Function Alias (synonyms)Answer/AnalyticsGrand Total Formatting in a Pivot viewApex IntegrationOracle BI Fusion Middleware ArchitectureAt Sign (@)(Presentation column|Attribute Columns)Authentication (ATN)AuthenticationAuthorizationBaseline columnBi-init.cmd (or on UNIX)BI Domain - The complete OBI SystemBI Server (Obis) (Architecture|Overview)Bi Server metrics functionsHome page (bieehome)BIP report integrationBIPlatform SchemaBiserverxmlcliBiserverxmlexec (RPD creation and patching)BiserverxmlgenBISQLProviderBISystemUserBlob data typeThe Business Model and Mapping (BMM)BottomN functionBriefing BookAll the cachesCache ManagerCalculated ItemCalculationCapacity planning / SizingCase When StatementCast as date - Which date format to use ?Cast(NULL as INTEGER)Catalog GroupCatalog ManagerCentral configuration through Fusion Middleware Control(Browser|Database|Third party product) CertificationChoose FunctionBI Server Clients (ODBC, JDBC)Client ToolsCluster (High Availability)Complex (Join|Operator) (Physical and Logical)ConditionsConditional FormattingConnectionConnection PoolConnection ScriptCopy Request Xml to ClipboardCosmetic Formatting (Style, Css)Count (and sometimes Sum)Criteria TabCurrencyDashboardEnable column sorting in DashboardsThe (dashboard|column) promptDashboard parameter prompt - The WHEN 1=0 or ifnull solutionHow to constraint the values of a dashboard prompt based on the selection of an other ?Dashboard Prompt with data level securityHow to create a prompt to handle a parameter ?Dashboard (Url|Link)Data FormatDatabase ObjectDatabase Features ParametersDatatypeHow to mix String and Number data type in one column and obtain a sum ?Date Datatype and FunctionsDbGateway (DB_GATEWAY_THREAD_RANGE)OBIEE / Weblogic 11G - (Create|Recreate) a default authentication provider (with administrator, ...)DeliversAdvanced Publication with Delivers (In Java)What means "Data is dense" ?Densification / Dimensions Preservation PossibilitiesDensification with the fact-based fragmentation capabilitiesLog Files (Oracle Diagnostic Logging - ODL)Dimension (Logical Table)Dimension fragmentation design to add an automatic filter with the choice of a columnIdentifying a Dimension TableHow to create a measure from data that is stored in a dimension tableDirect Database RequestTable Function/Stored Procedure in Direct Database Request(Display Function|Derived Measures) (Rank, TopN, Median, ...)Basic Discrete Distribution ReportDMS Metrics(Universe|Domain)Double column (Descriptor Id)Drilling (Down and Through)Driving TableDXE ExecutionEBS IntegrationEqualizing ObjectsEqualizerpds utilityEssbaseEvaluate - Embedded DB FunctionsEvent Pooling table (Event Table) to purge the cache after ETL processMicrosoft ExcelHow to create an HTML view (Narrative, Static Text) to get a good Excel formatting ?EXECUTE PHYSICAL CONNECTION POOL StatementOracle BI Server Execution EngineExtractprojects utilityFact table (of logical fact table)Defining a Non-Aggregated Measure (Baseline column) of a Fact TableIdentifying a Fact TableDefining the Logical Key of a Fact TableFederated Query / Multi-Database or Cross-Database JoinFilterConditional Filtering based on Presentation Service VariableHow to force a user to filter on a column A every time column B is in the requestPivot Measures (The Filter Function)Filter on current timeThe relative path fmapForeign Key or Physical Join (Fragment|ation) (Partitioning)Fragmentation Content, value-based, horizontal partitioningFact-based vertical partitioning/fragmentationAggregate Navigation with level-based fragmentationFull outer JoinFunctionsTime Series Conversion Functions : AGO and TODATEFunnel ViewGauge ViewGetting Started / TutorialThe Go URLGrain - Level of (summarization|aggregation)(Chart|Graph) View(Group|Security Role|Application Role)Aggregation rules in Logical SQL with the GROUP BY and BY clauseGUIDGuided NavigationHadoop HiveSAP HanaHardenXSS - Specifying Whether to Allow HTML Input in OBIPS FieldsDimension Hierarchy (logical dimensions)Level-based HierarchyHintHistoryHtml Content CachingHTML MarkupIbotVoid (Id)Repository Object IdentifierIframeIIS BI Presentation Service Plugin (OC4J listener)Where and how to call an image / picture ?ImpersonateImplicit Fact ColumnImport WizardHow to retrieve data from BI Server in Excel ?IndexCol Function - Handle hierarchy Level securityInitialization BlockInstallation / ConfigurationOracle Business Intelligence 11.1 Simple installation steps on Windows and OEL Linux 32 bitInstanceInstanceconfig.xml (Configuration Presentation Services)Integer DatatypeOracle BI Open Intelligence Interface (ODBC and JDBC) client connectivityMobile Application, Mobile DeviceIssue SQL (the IssueRawSQl Url)Java HostJavascriptJdbcOracle BI JDBC DriverJob ManagerJoinHow to model a bridge table (Many-to-Many relationship) with the joins property of a Logical Table ?Joins definitions in the repository (complex, foreign, logical table source)KPIPeriod to period comparison (YAGO, MAGO) with the analytical function Lag/LeadLast/First functionThe drop targets of a layout (view|pane)LDAP over SSL with Global Security Kit (GSKit)Left outer joinLogical levelConfigure Level Number of Elements in Dimensional HierarchiesLinux OEL 5 x86 Installation version system session variableLocalizationCommon Enterprise Information Model (CEIM) - The Logical Business Model (the three-layer metadata model)Logical ColumnLogical JoinLogical Request (before navigation)Logical SqlLogical TableLoginSetting a Query Logging LevelLookup FunctionLogical Table Source (LTS) (Physical and Logical Column Mappings)How to see the Physical SQL generated by a request in Presentation Service ?(Manage|Configure) Map DataBI Management PackMap ViewMapviewerOracle Marketing SegmentationMaster Detail(MDS|Metadata Service) (XML|XUDML)Measures (Columns|Attributes)Level-Based Measure CalculationsNested aggregate measureMerge RepositoryCustom MessagesGenerating and Deploying a Metadata DictionaryOracle BI DMS MetricsMonitoring - (Performance|Perfmon) (Metrics|Counter)Redirect to MonitoringReporting on Multiple Subject Area (Advanced Logical SQL)MultiUser Development Environment (MUDE - Projects)Narrative viewHow to set up a navigate interaction ?(Invoke|Navigate) to an URL (Web Page|HTTP Request)Data Navigation (Drill Down, Through, Link, ...)No Result ViewNQClient.exeNqcmd.exe ODBC Client ToolNqgenoldverrpd (Repository Downgrade)The nQuireID ( Authentication nqid )The Log Viewer (nQLogViewer)Nqquery.log (Query logging)Connection Pool Password ChangeNQSConfig.iniNQsError: 35008 - An error occurred while trying to check outNQServer.logAuthentication Web Service with SAWSessionService (nQSessionService)Nqudmlgen.exeHow to find the value, the data type of a Server variable ?How to define OBIEE to leverage SQL OLAP Query ?Oracle Warehouse Builder IntegrationThe answer PromptHow to customize the background color of a graphBackupHow to define a Many-to-Many relationship with a Bridge table ?How to connect remotely to the servers (BI, Presentation) ?Complement SoftwareFederated Query with Excel SheetHow to limit the number of records fetchHow to define a One to Many RelationshipNullArchitectureRss FeedScript to start Oracle BI Servers and Cluster ControllersOC4JOracle Call Interface (OCI) configurationODBCODBC ClientOracle BI ODBC driverHow to create an Analytics ODBC Data Source (System DSN ODBC connexion)BI Server (JDBC|ODBC) Driver FunctionsMicrosoft Office Server and (Add-in|Plug-In)Opaque ViewORA-00937 - Not a single-group group functionOuter JoinParameters (parameterized query)PasswordPatchIn-Place Upgrade - Patch Set Installation from version to version Upgrade - Moving from to Server PatchHow to redeploy the BI Presentation Service Plug-in (after a patch Installation, Don't forget to redeploy the WAR/EAR file)PDFPERF_PREFER_INTERNAL_STITCH_JOIN database featurePerformance Monitor (Perfmon)Repository PermissionPersist connection poolPhysical Alias Physical LayerPhysical SQLCross conditional formatting on a pivotHow to sort on a measure column of a pivot view ?How to sort on the column grand total value of a pivot view ?How to suppress detail rows of a master group in a pivot view ?How to pivot a character column ?Pivot ViewPlus ComponentsPopulate StatementPorts(Presentation Hierarchy|Hierarchical Column)Presentation LayerBI Presentation Service (SAW/OBIPS)Presentation Services ArchitecturePresentation Service (Query|Result|Cursor) CacheHow to install an other instance of Presentation Services on one Application Server (OC4J)Presentation Service Plug-inPresentation VariablesDatatype of a presentation variableDate Format in presentation variable, dashboard prompt and logical SQLHow to set a presentation variable ?Presentation Variable System (reserved variable)Where can I use a presentation variable ?Privilege packagePrivilegesProjects Release (Promotion|Migration) - From Dev, Test to ProductionPromptFully Qualified Name Object Identifier (Object Path)BI Server (Logical Query|Result) CacheLogical Query Result Cache ParametersPurging / Disabling the Query CacheWhy a Query is Not Added to the Query Cache ?Query CompilerQuery PlanQuery ProcessingRankRegular Expression (Regexp) and how to filter on string pattern ?How to model the different relationships ?Report-based TotalRepository (RPD file)Repository DesignObjects Import from another repositoryRequestRequest variableRight outer join(Row-wise|List of Values) server variableOracle BI Server XML API (XUDML)Running Sum (RSum)How to produce and show a total section on **each line** (Running total)?Usage Tracking S_NQ_ACCT TableS_NQ_INSTANCE tableS_NQ_SUMMARY_ADVISOR tableSA System subject areaSametaexport utility (Metadata Exchange)Installation Sample Application version 825Sample App V107SAP BWSASchInvoke (command line Triggering of Oracle BI Scheduler Jobs)Saw Url - Symbolic URL Parameters AppletHow to set a request/session variable using the Saw Url (Go/Dashboard)Presentation Services log (sawlog.log)ScalingBI SchedulerBI Scheduler Configuration (for Delivers)How to configure the Mail server of Scheduler/DeliversScorecards (and Strategy Management)SecuritySecuritySecurity (Level|Type)How to define the BI server security to add automatically a filter when a column is added to an answer (row security level)The Security ManagerSELECT_PHYSICAL statementsSelection Steps"Server Complex Aggregate" ruleInstalling Oracle BI Components on Different MachinesServer ThreadBI Server Variables (session and repository)How to set and use a server variable (system/repository) of type date ?Where can I use a BI Server variable (session/repository) ?SessionSession ManagerHow to set a server variable with the session type via a dashboard prompt (with a request variable) ?How and where can I set a Request variable (SET VARIABLE) ?How to define one different database credential for each user (the shared logon) ?Single table model.Look and feel Customizing (Style and Skin)OBIEE 11G ( - How to configure a new SkinOBIEE 10G/ - How to create a New Style and Skin ?Quick Skin and Style customizationData Source (Oracle Analytics Adapter)Special CharactersStarting Oracle Business Intelligence on WindowsHow to Start and Stop the services ?How to start and stop OBIEE automatically with a Bat file ?Static Text ViewStaticports.iniStitch Join (Intern Join Operations)Subject Area / Presentation catalogExalytics Summary Advisor(Error Correction) SupportSystem (Configuration) Management (Mbean)System session variables (reserved variables)How to perform a pivot in a table viewTable viewTemps filesHow to set up the time dimension (for time series functions Ago, Todate, ...) ?Time zoneTitle ViewTopNUDML(Upgrade|Refresh|Recover) GUIDUpgrade from the Sample App SampleSales 10gUpgrade ID (UID)Base URLPassing Filters through the Go and Dashboard URL(Usage Tracking|UT) (Query Log)Which Usage Tracking time measure should be used to gauge the performance of SQL retrieval time ?UserBI Server UtilitiesAll type of variablesVariable ManagerThe variable promptOBI VersionVersioningHow to control the use of the WITH CLAUSE and of STITCH Join ?ViewsVirtual Private DatabaseWeb Services API (SOAP,WSDL)The (Web|Presentation) Catalog (Webcat)Translate the WebCat (Dashboard, page and report names)WEBLANGUAGE system session variableHow to add a wiki to OBIEE (installation of a wiki on OC4J standalone)Windows Installation Version Services as Windows Services InstallationSSO Authentication with Windows Native Authentication (WNA)Writeback Capabilities (Table of Pivot)XMLHow to retrieve a result set with the XMLViewService WebService and the logical SQL ?


OBIEE 10G - Integration of a heat-map with Mapviewer


This article show you how Mapviewer can receive data from OBIEE.

To transmit data, Mapviewer need an xml file. Obiee can create a xml file with the help of the Go Url. For this purpose, we need to give as parameters to the Go Url :

You must understand how Mapviewer can receive external data with the help of its nsdp library. For this purpose, you can read this article : Mapviewer - Creation of a dynamic Map (with Nsdp).

The complete integration process is :

  • create an answer with the data that we want to transmit to Mapviewer (generally a 2 columns answer : the area and the value)
  • add a javascript in a static text view from the same answer in order to :
    • retrieve the Sid and the nqid with a javascript
    • pass them to a Mapviewer webpage which use this information to retrieve the Xml file and to render the map
    • include this Mapviewer page in a iframe
  • show in the dashboard only the static view

And we will get a map where the colour depend on the result of an answer :


The Go Url to retrieve the Xml data from the answer

The first step in the integration process is to create and to test the Go Url with all parameters :

  • the SID to retrieve the data asked from the dashboard
  • and the Nqid to transmit the credential

The code below give you two functions :

  • GetSid to retrieve the Sid and for this purpose, the script need a first node to go up in order to searh an sid attribute. It's why we have in first place the node print and that we transmit it when we use the function.
  • GetNqid. This function read the cookie and retrieve Nqid.

And an the end, we print the Go Url with the retrieved data.

<div id="print"></div>
<div id="obiee_anchor_map"></div>
<script language="javascript">
function GetSid(nodeId) {
        var container = document.getElementById(nodeId);
	var sid = null;
	// Code to capture SID
	var x = container;
	do {
		if (x.nodeName == 'TD' || x.nodeName == 'DIV') {
			sid = x.getAttribute('sid');
			if (sid != null && sid != '')
		x = x.parentNode;
	} while (x != null);
       return sid;
function GetNqid() {
	var nameEQ = 'nQuireID=';
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	return null;
function PrintInElement(VarToPrint) {
    var myElementField = document.getElementById('print');
    myElementField.innerHTML = myElementField.innerHTML + '<BR>' + VarToPrint;
var UrlXmlObiee = 'http://' +'/analytics/saw.dll?Go&searchid='+GetSid('obiee_anchor_map')+
'&format=xml&nqid=' + GetNqid();

Example of URL :


Then if you copy it in your webbrowser, you will retrieve an xml in the OBIEE format as :

<?xml version="1.0" encoding="utf-8"?>
<RS xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" >
<xsd:schema xmlns:xsd="" xmlns:saw-sql="urn:saw-sql" 
	<xsd:complexType name="R">
			<xsd:element name="C0" type="xsd:string" minOccurs="1" maxOccurs="1" 
saw-sql:type="varchar" saw-sql:displayFormula="&quot;Customers&quot;.&quot;Cust State Province&quot;" 
saw-sql:aggregationRule="none" saw-sql:aggregationType="nonAgg" saw-sql:tableHeading="Customers" 
saw-sql:columnHeading="Cust State Province" />
			<xsd:element name="C1" type="xsd:int" minOccurs="0" maxOccurs="1" 
saw-sql:type="integer" saw-sql:displayFormula="&quot;Sales Facts&quot;.&quot;Amount Sold&quot;" 
saw-sql:aggregationRule="sum" saw-sql:aggregationType="agg" saw-sql:tableHeading="Sales Facts" 
saw-sql:columnHeading="Amount Sold" />

The Jsp Page to transform the OBIEE XML to a Mapviewer Xml Format

To transform the Obiee xml file in a mapviewer xml format file, the file obiee_nsdp_xml_direct.jsp is used and must be placed in this directory for this example :


In the previous java script placed in the narrative view, add an the end this script :

var UrlXmlMapViewer = "http://""/mapviewer/obiee/obiee_nsdp_xml_direct.jsp?nqid=" + 
GetNqid() + "&sid=" + GetSid('obiee_anchor_map');

It will then give in a dashboard, this type of Url :


And by copying this url, in a webbrowser, you obtain a web page which displays the xml file as :

Column 1	Column 2
AK 	64040
AL 	752195
AR 	1002966
CA 	3902446
CO 	1772606
CT 	344928
FL 	3792323
GE 	433275
HI 	284612

The Html Mapviewer File

In this article Mapviewer - Creation of a dynamic Map (with Nsdp), you will find an example of a script with the Nsdp integration.

For the integration with Obiee, we need to change it to :

  • retrieve the nqid and sid parameter
  • and retrieve the xml from the Obiee Go Url

Retrieve Parameter from the Url

Add this javascript function to the HTML Mapviewer page :

  function getURLParameters() {
	var sURL = window.document.URL.toString();
	if (sURL.indexOf("?") > 0) {
		var arrParams = sURL.split("?");
		var arrURLParams = arrParams[1].split("&");
		var arrParamNames = new Array(arrURLParams.length);
		var arrParamValues = new Array(arrURLParams.length);
		var i = 0;
		for (i=0;i<arrURLParams.length;i++) {
			var sParam =  arrURLParams[i].split("=");
			arrParamNames[i] = sParam[0];
			if (sParam[1] != "") {
				arrParamValues[i] = sParam[1];//unescape(sParam[1]);
			else {
				arrParamValues[i] = "NoValue";
                urlParamSID = arrParamValues[0];
	        urlParamNQID = arrParamValues[1];
	else {
		alert("No parameters.");

Xml Source

This line :

  Parameters["xml_url"] = baseURL + "/obiee/nsdp.xml";

must be change to retrieve the Obiee data

  Parameters["xml_url"] = baseURL + "/obiee/obiee_nsdp_xml_direct.jsp?nqid=" + urlParamNQID + "&sid=" + urlParamSID;

That you must to add this function in the onload attribute of the body node as :

<body onload=javascript:getURLParameters();javascript:showMap();>

Your page is know ready to receive the parameters from OBIEE and to render the corresponding map.

You will then end up with this kind of file :

Integration of the Mapviewer HTML page

To integrate the web page, just add to the initial script in the static view this function and play with the height and width to fill in the dashoboard design.

function obiee_mapint_doTheDeed(nodeId) {
	// accepts name of div
	// answers assigned unique ID to result set assoc w/ answers request (called SID)
	// need nQuireID/SID to grab results
	// ie look at page source for results, will show SID
	// mechanism to get at SID new in 10.1.3
	// developed for Office integration, we’re piggybacking
	var container = document.getElementById(nodeId);
	var sid = GetSid(nodeId);
	if (sid != null && sid != '') {
		// create the iframe for content
		var nid = GetNqid()
		if (nid !=null && nid!='' ) {
			// create iframe and call the mapviewer page
			var iframe = document.createElement('iframe');
			iframe.src = 'http://' + + 
'/mapviewer/obiee/showDynamicMapWithObieeData.html?sid='+ encodeURIComponent(sid) + '&nqid=' + nid;
			// following nsdp is subsequently called from Mapviewer page
			// passing sid and nqid to get results to serve as nsdp data as xml
			iframe.height = 700;
			iframe.width = 1000;
			iframe.frameBorder = 0;
			iframe.marginHeight = 1;
			iframe.marginWidth = 1;

Don't forget to add outside the javascript a div node with an id attribute of a value of “obiee_anchor_map” as :

<div id="obiee_anchor_map"></div>

In this way the script will retrieve this node and add in the content of the mapviewer html page.

Dashboard Integration

Just add the answer in the dashboard, a prompt in our case for the year and show only the narrative view.

The Result

Year 1998 :

Year 2000 :

To continue : OBIEE 10G - How to drill from a map created with Mapviewer ?


Documentation / Reference

  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Digg
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Ask
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Google
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at StumbleUpon
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Technorati
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Live Bookmarks
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Yahoo! Myweb
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Facebook
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Yahoo! Bookmarks
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at Twitter
  • Bookmark "OBIEE 10G - Integration of a heat-map with Mapviewer" at myAOL
dat/obiee/presentation_service/obiee_dynamic_integration_oracle_map_nsdp.txt · Last modified: 2013/04/11 12:23 by gerardnico