Avik Dutta, Author at Perficient Blogs https://blogs.perficient.com/author/adutta/ Expert Digital Insights Thu, 13 Dec 2018 20:29:09 +0000 en-US hourly 1 https://blogs.perficient.com/files/favicon-194x194-1-150x150.png Avik Dutta, Author at Perficient Blogs https://blogs.perficient.com/author/adutta/ 32 32 30508587 Oracle BI vs Tableau vs Microsoft BI https://blogs.perficient.com/2018/12/20/oracle-bi-vs-tableau-vs-microsoft-bi/ https://blogs.perficient.com/2018/12/20/oracle-bi-vs-tableau-vs-microsoft-bi/#respond Thu, 20 Dec 2018 18:00:13 +0000 https://blogs.perficient.com/?p=233190

Introduction

OBIEE: Oracle Business Intelligence Enterprise Edition Plus, also termed as theOBI EE Plus, is Oracle Corporation’s set of business intelligence tools consisting of former Siebel Systems business intelligence and Hyperion Solutions business intelligence offerings.

Tableau: Tableau Software is a software that produces interactive data visualization products focused on business intelligence.

MSBI (SSRS): This powerful suite is composed of tools which helps in providing best solutions for Business Intelligence and Data Mining Queries. This tool uses Visual studio along with SQL server.

When to choose what

OBIEE is primarily used when analytical use is required by an organization. Slice and dice of data in complex dashboards, through prompts, filters navigation, comparison etc. are primary features of OBIEE. OBIEE is also one of best tools to enable adhoc reporting among the business users. OBIEE was designed for the web and had from the beginning an excellent scalability. So if the customers want to run reports and dashboards for a very large number of users they will be better of with OBIEE. Data visualization options are available in latest versions of OBIEE as well as it’s cloud counterpart.

Tableau: Select Tableau when data visualization is the primary and probably the only aspect for a customer hands down. Data Visualization Tools are the software tools through which the raw and unstructured data can be used as informative data to increase the Business insights and sales. Tableau offers you to make rapid business strategy and decision according to your huge data but with a simple data modelling approach. Anything complex in design will NOT work with Tableau.

MSBI: It should be used when there is a need to report large volume of data. But with the introduction of Power BI, a data visualization tool and it’s integration with the cloud as well as shared point, (SQL Server 2016) it has spread its hand into visualization as well.

 

Comparative Study

 

1. OBIEE Pros and Cons:

2. Tableau Pros and Cons:

3. MSBI Pros and Cons:

 

 

]]>
https://blogs.perficient.com/2018/12/20/oracle-bi-vs-tableau-vs-microsoft-bi/feed/ 0 233190
Configuring Windows Services for OBIEE 11g https://blogs.perficient.com/2018/12/13/configuring-windows-services-for-obiee-11g/ https://blogs.perficient.com/2018/12/13/configuring-windows-services-for-obiee-11g/#respond Thu, 13 Dec 2018 21:00:05 +0000 https://blogs.perficient.com/?p=233328

Introduction

When Oracle Business Intelligence is started, few services will start. These are Node Manager, Admin Server, Managed Server. Starting all these services require manual effort. So these components will start once the server is restarted by a Developer or Admin person. To overcome this dependency on manual intervention, all the OBIEE services are created as windows services and will start automatically in the background. If the main server where BI in installed is restarted the entire OBIEE application will start automatically.

we are going to create windows services for:

  • Admin Server
  • Managed BI Server

Step 1: Creating Windows Services script for Admin server

  • Create a command  script with name installAdminServerService.cmd and save it under “<OBI_HOME>\wlserver_10.3\server\bin. The content of the file will be:

SETLOCAL

set DOMAIN_NAME=bifoundation_domain

set USERDOMAIN_HOME=<OBI_HOME>\user_projects\domains\bifoundation_domain

set SERVER_NAME=AdminServer

set PRODUCTION_MODE=true

cd %USERDOMAIN_HOME%

call %USERDOMAIN_HOME%\bin\setDomainEnv.cmd

call <OBI_HOME>\wlserver_10.3\server\bin\installSvc.cmd”

ENDLOCAL

Step 2: Creating Windows Services script for Managed server

  • Create a command  script with name installAdminServerService.cmd and save it under “<OBI_HOME>\wlserver_10.3\server\bin. The content will be:

SETLOCAL

set DOMAIN_NAME=bifoundation_domain

set USERDOMAIN_HOME=<OBI_HOME>\user_projects\domains\bifoundation_domain

set SERVER_NAME=bi_server1

set PRODUCTION_MODE=true

set ADMIN_URL=http://localhost:7001

cd %USERDOMAIN_HOME%

call %USERDOMAIN_HOME%\bin\setDomainEnv.cmd

call “<OBI_HOME>\wlserver_10.3\server\bin\installSvc.cmd”

ENDLOCAL

Step 3: Creating of uninstall script for Admin Server

  • Create a command script with name UninstallAdminServerService.cmd and save it under the same path mentioned above with the content:

@echo off

SETLOCAL

set WL_HOME=<OBI_HOME>\wlserver_10.3

rem *** Uninstall the service

“%WL_HOME%\server\bin\beasvc” -remove -svcname:”<Admin windows Service Name>”

ENDLOCAL

Step 4: Creation of uninstall script for Managed Server

  • Create a command script with name UninstallBIServer_Service.cmd and save it under same path as mentioned earlier and with the content:

@echo off

SETLOCAL

set WL_HOME=<OBI_HOME>\wlserver_10.3

rem *** Uninstall the service

“%WL_HOME%\server\bin\beasvc” -remove -svcname:”<Manage windows Service Name>”

ENDLOCAL

Step 5: Creation of Admin Services in Windows

  • Create BI_OBIEE_HOME system environment variable

Step 6: Creation of Admin Services in Windows

  • Go to start-> program-> Accessories-> open Command prompt and right click to-> “Run as Administrator”
  • Go to <OBI_HOME>\ wlserver_10.3\server\bin
  • Call installAdminServerService.cmd .
  • The Service should be installed, it will have a name like: “beasvc %DOMAIN_NAME%_%SERVER_NAME% “
  • The Service “Startup Type” will be ‘Automatic’. Start the Service. The Service will come back fairly quickly to say it is started. The actual time taken for AdminServer to start and reach a state of ‘RUNNING’ will be longer. Check status of Adminserver by checking the Adminserver_diagnostic files.

Step 7: Creation of Managed Services in windows

  • Go to start-> program-> Accessories-> open Command prompt and “Run as Administrator”
  • Go to <OBI_HOME>\ wlserver_10.3\server\bin
  • Call InstallManagedServerService.cmd.
  • The Service should be installed, it will have a name like “beasvc %DOMAIN_NAME%_%SERVER_NAME% “ 
  • The Service “Startup Type” will be ‘Automatic’. Start the Service. The Service will come back fairly quickly to say it is started. The actual time taken for AdminServer to start and reach a state of ‘RUNNING’ will be longer.

Please be noted that, the processes set the services in the way mentioned below. Renaming these services from registry, can be done from registry:  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\beasvc <your domain>_<managed server name>\Parameters

  • Admin server
  • Managed Server
  • Process Manager

Troubleshooting:

Due to java heap size the Admin Server or the Managed Server services may generate error. All services will be shown in start status but still console\EM\analytics will be down. Java will generate and error “:java.lang.OutOfMemoryError: PermGen space”  error in the Adminserver_diagnostic file. 

Solution:

  • Explore path “<OBI_HOME>/user_projects/domains/bifoundation_domain/bin” and backup the below two Files.
  1. setDomainEnv.cmd
  2. setOBIDomainEnvcmd
  • Modify  setDomainEnv.cmd file as below, to increase the PermGen space:

set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m  —> set MEM_PERM_SIZE_64BIT=-XX:PermSize=512m

set MEM_PERM_SIZE_32BIT=-XX:PermSize=128m  —> set MEM_PERM_SIZE_32BIT=-XX:PermSize=512m

set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=512m  –> set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=1024m

set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=512m  –> set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=1024m

set USER_MEM_ARGS=”-Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -xx:PermSize=128m -XX:MaxPermSize=512m” –> set USER_MEM_ARGS=”-Xms1024m -Xmx2048m -XX:CompileThreshold=8000 -xx:PermSize=512m -XX:MaxPermSize=1024m”

  • Modify setOBIDomainEnv.cmd file as below

Hope using SUN JAVA

if “%JAVA_VENDOR%”==”Sun” (

@REM -UseSSE42Intrinsics required for server running EM

if “%JAVA_USE_64BIT%”==”true” (

@REM memory args for 64-bit Sun JVM

set SERVER_MEM_ARGS=-Xms1024m -Xmx4096m -XX:MaxPermSize=2048m -XX:-UseSSE42Intrinsics

) else (

@REM memory args for 32-bit Sun JVM

set SERVER_MEM_ARGS=-Xms256m -Xmx2048m -XX:MaxPermSize=2048m -XX:-UseSSE42Intrinsics

  • Run Command Prompt as “Run As Administrator” and Uninstall Admin windows services through “UninstallAdminServerService.cmd” 
  • Run Command Prompt as “Run As Administrator” and Uninstall manage windows services through “UninstallBIServerService.cmd” 
  • Explore <OBI_HOME>\ wlserver_10.3/common/bin and backup CommEnv.cmd file. 
  • Edit CommEnv.cmd with below details

:sun

if “%PRODUCTION_MODE%” == “true” goto sun_prod_mode

set JAVA_VM=-client

set MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m -XX:+UseSpinning

set JAVA_OPTIONS=%JAVA_OPTIONS% -Xverify:none

goto continue

:sun_prod_mode

set JAVA_VM=-server

set MEM_ARGS=-Xms256m -Xmx512m -XX:MaxPermSize=512m -XX:-UseSSE42Intrinsics

goto continue

  • Again follow similar steps to create Admin Server and Managed Server services.
]]>
https://blogs.perficient.com/2018/12/13/configuring-windows-services-for-obiee-11g/feed/ 0 233328
OBIEE 12.2.1.2.0 Installation and Configuration (Win 2012R2) https://blogs.perficient.com/2018/11/30/obiee-12-2-1-2-0-installation-and-configuration-win-2012r2/ https://blogs.perficient.com/2018/11/30/obiee-12-2-1-2-0-installation-and-configuration-win-2012r2/#comments Fri, 30 Nov 2018 19:00:50 +0000 https://blogs.perficient.com/?p=232311

System Requirements

The system requirements for Oracle BI Applications installation:

  • Oracle Fusion Middleware requires a minimum 1-GHz CPU
  • Windows minimum physical memory required – 4 GB.
  • Windows minimum available memory required – 8 GB.

Additional System Requirements and Supported Platforms for Oracle Business Intelligence EE Release 12.2.1 can be found in Oracle Fusion Middleware 12c (12.2.1.0.0) Certification Matrix placed at:

https://www.oracle.com/technetwork/middleware/fusion-middleware/documentation/fmw-122110certmatrix-3050412.xlsx

Downloading Files

A lot of files need to be downloaded for the installation to complete. The links to these files are given under the individual components. Downloading all the files for this version of OBIEE installation can be done from:

http://www.oracle.com/technetwork/middleware/bi/downloads/default-3237328.html

Installation Steps – Summary

The following installation steps are required in order during the installation and configuration of standalone OBIEE 12c in Windows environments.

  • Database Installation for RCU (MS SQL Server 2014 – in this case)
  • Java Installation on OBIEE Server (JDK 8u112)
  • Weblogic 12.2.1.2.0 Installation
  • OBIEE 12.2.1.2.0 Installation
  • OBIEE 12.2.1.2.0 Repository Creation
  • OBIEE 12.2.1.2.0 Configuration
  • OBIEE Client Installation – Developer’s Box (OBIEE 12.2.1.2.0)

 

RCU Database Installation (MS SQL Server 2014)

MS SQL Server 2014 is used in this example as the RCU database for OBIEE 12.2.1.2.0. The DBA team must already install the database in the Windows server before start of this installation and one should have the sys admin user credentials. So this is one of the pre-conditions. How the RCU is installed will be covered later in the article.

JDK 8u112 Installation on OBIEE Server 

  • Click on the highlighted section as shown.

  • Click on the download button as shown.

  • Move to Java SE Development Kit 8u112, accept license agreement and download the highlighted version into the server.

  • Keep the file into the following location.

  • Right click on the file and Run as administrator as shown below.

  • Click Next.

  • The default installation folder would be under C:\Program Files\Java. We need to make sure that there is no SPACE in the java installation path. So let’s click on Change.

  • Create the following folder structure. C:\JAVA\JDK8u112. Click OK.

  • Click Next.

  • Progress Bar would be displayed.

  • For JRE set up as well the default Program Files path would be displayed. Click on change.

  • Make another folder for JRE in the same JAVA folder just like we did for JDK and click Next.

  • Progress Bar would be displayed.

  • Once the installation is complete click Close.

  • Go to control panel as shown and check that the correct version of JAVA has been installed.

  • JDK installation is complete. Next Step is Weblogic Server Installation.


Weblogic Server 12.2.1.2.0 Installation

  • Download the marked file after accepting the license agreement.

  • Place it into the server, unzip it as shown below. One can keep or delete the readme file.

  • Go to Windows Start Menu -> Type cmd -> Run as administrator as shown.

  • Go to the path (change directory) where the .jar file is located.

  • Enter the command as shown below and press enter. The format would be JDKLocation\bin\java.exe –jar jarfilename.extension

  • It would say Extracting the installer.

  • The Oracle FMW installer would open. Click Next.

  • Skip Auto Updates and click Next.

  • Put the location as shown below and click Next. Please note that this location would be the same during Oracle BI installation.

  • Click on Fusion Middleware Infrastructure and click Next.

  • Pre-requisites checks must be passed. Click Next.

  • Uncheck the security updates checkbox and click Next.

  • The following pop up will arrive. Click Yes.

  • The installation summary page would be displayed. Click in Install.

  • Installation progress would be displayed and the individual components would be ticket off green as it proceeds. Might take some amount of time.

  • Once it is complete click Next.

  • The completion page would be displayed. Click Finish.

  • The following message in the command prompt would be displayed. Exit CMD.

  • Oracle Fusion Middleware Weblogic server has been successfully installed. Next step is OBIEE software installation.

OBIEE 12.2.1.2.0 Installation 

  • Accept license agreement and download File 1 and 2. Place the two files in a single folder in the server as shown. Unzip both the files.

  • Right click on the first file and Run as administrator.

  • Oracle Universal Installer will prepare itself.

  • In the welcome page click Next.

  • Skip Auto Updates and click Next.

  • Select the same home location selected during weblogic installation. Click Next.

  • Click the selected Radio Button and click Next.

  • Pre-requisites check is successful. Click Next.

  • In the summary page click Install.

  • Wait till the progress bar shows 100% on every time.

  • Once this is done, automatically a page would appear to repair/remove MS Visual C++. Select Repair and click Next.

  • Repair Complete. Click Finish.

  • Coming back to the installation progress page click Next.

  • Click Finish on the complete page.

  • Oracle BI 12c has been installed successfully. Next step to install the RCU in the already installed RCU Database i.e. SQL Server 2014.

OBIEE 12.2.1.2.0 RCU Creation

  • Run the following two commands as sys admin user in SQL server database where the RCU is going to be installed. Here obirep is the database in the SQL Server.

ALTER DATABASE obirep COLLATE SQL_Latin1_General_CP1_CS_AS;
ALTER DATABASE obirep SET READ_COMMITTED_SNAPSHOT ON;

  • Go to the location: C:\Oracle\Middleware\oracle_common\bin and right click on the windows batch file named rcu and run as administrator.

  • RCU welcome page would be displayed. Click Next.

  • Select the following option and click Next.

  • In the database connection details enter Database Type, Unicode Support Option, Server IP, Port, database name (obirep), Username (sys admin user) and its password. Click Next.

  • Pre-requisites check should pass. Click OK.

  • Select a prefix (APDEV here, for prod it would be APPROD). Select all the components and click Next.

  • Again a pre-requisites page would appear with all passed results. Click Ok.

 

  • Select Use Same passwords for all schemas (i.e. RCU schemas created under database obirep). Click Next. Note down the password somewhere.

  • In the summary page it shows all the components names, their schema names and the owners. Click Create.

  • In the completion summary page all the details would be displayed. Like Host, Port, Database, execution time. The log files would be saved under the locations highlighted in red. If required, one can move to those locations in the server and check the log files. Click Close.

  • Log into the database server using SQL Server Management Studio and check that all the schemas have been created after the installation. Next is to configure the OBIEE.

 

OBIEE 12.2.1.2.0 Configuration

  • Go to C:\Oracle\Middleware\bi\bin and do the following to the config file.

  • On the arrival page of OBI Configuration assistance uncheck the Essbase and click Next.

  • After passing the prerequisites check click Next.

  • Keep the Domains Directory, Domain Name and Domain Home as default selected. Enter the weblogic password for DEV environment. Confirm the same. Click Next.

  • Click Use Existing Schemas. Enter the database type, connection string in the given format, Prefix (APDEV for development, APPROD for production) and the schema password we set in our RCU installation step.

  • Keep the port as default (9500-9999). Click Next.

  • Next is selecting Initial Application. Select sample application (SampleAppLite) and click Next.

  • Summary page would have all the details such as analytics URL, enterprise manager, console URL etc. One can save the response file for later use. Click Configure.

  • Configuration would be under progress. Wait for all the tools to be configures completely. Might take 20-30 minutes in total.

  • Once done click Next.

  • Save the response file again if needed and click Finish.

  • Press enter to exit installer.

  • Open a browser (I have used Chrome) and put the analytics portal URL in the address bar. One can get it from the response file saved. Here it is http://OracleBi.phillyshipyard.com:9502/analytics

  • Login using the weblogic credentials. The following items would be displayed upon login.

  • Move to Dashboard -> Quickstart.to view one of the default dashboards which comes with OBIEE 12c (Sample Lite install). This is only for a demo purpose and would be removed/hidden at a later stage once development activity starts. These dashboards give a brief overview of how OBIEE 12c dashboards and visualization actually works.

  • To start, stop and check status of the BI Services (at a later stage) move to C:\Oracle\Middleware\user_projects\domains\bi\bitools\bin location. There would be 3 files alongside many other in the directory.

Start Script: It starts all the BI services associated with the OBIEE server.
Stop Script: It stops all the BI services.
Status Script: Shows the current status of the BI services.

Right click on the status script and run as administrator. Will show all the services/servers within the main OBIEE server at running state. So there is no need to stop or start any of them. During development phase or anytime the server being down one might need to execute these scripts accordingly.

  • Thus OBIEE 12 installation and configuration is completed successfully. The final step (only for developers box, not for the server) is to install OBIEE client.

OBIEE 12.2.1.2.0 Client Installation in Developer’s system

  • OBIEE Client tool is required when Developer’s do offline/online development connecting to the server instead of directly logging onto the Windows server. If the Developer is connected to the VPN then he/she can make changes to code in online mode in BI environments. Or they can simply take the code from the server, work offline, make changes to the code in their local system using this client tool and then deploy the changes onto the server again. To download this client tool, go to the URL:
    http://www.oracle.com/technetwork/middleware/bi/downloads/default-3237328.html
    Accept license agreement and then click download the file shown below to your own system.

  • After downloading the zipped file, unzip the setup file and place it under a folder in your Windows system as shown below.

  • Right click on it and Run as administrator.

  • Preparing the installer screen will load.

  • After few moments, welcome screen will appear. Click Next.

  • Put the installation path as shown below (no spaces in the path remember) and click Next.

  • Arrive at Installation Summary page and click Install.

  • Installation progress bar would be displayed. Wait for every option to be green checked. Might take few minutes. Do NOT click Next instantly.

  • After a few moments MS Visual C++ 2010 set up screen would appear. Click Install after checking the box I have ready and accept the license term.

  • After few moments it would say that the installation is complete. Click Finish.

  • Now, coming back to the Installation progress page click Next. Installation Complete message would be displayed. Click on Finish.

  • Go to start menu -> Oracle Business Intelligence Client folder and one can see the installed client.

  • Oracle BI 12c client has now been installed successfully.
]]>
https://blogs.perficient.com/2018/11/30/obiee-12-2-1-2-0-installation-and-configuration-win-2012r2/feed/ 1 232311
OBIEE Design and Development Best Practices https://blogs.perficient.com/2018/11/21/obiee-design-and-development-best-practices/ https://blogs.perficient.com/2018/11/21/obiee-design-and-development-best-practices/#respond Wed, 21 Nov 2018 19:00:47 +0000 https://blogs.perficient.com/?p=232554

Introduction

This document is for Oracle Business Intelligence Enterprise Edition (OBIEE) Developers and Designers. These standard guidelines may vary from project to project. Below mentioned OBIEE Standards are more in generic form & developers can follow these guidelines to standardize their code & minimize post development defects.

 

Repository – Physical Layer best practices

  • Database specific best practices
  1. Proper naming convention of Database objects and Connection Pools.
  2. Optimum number of connection pools should be used.
  3. Enable connection pooling option with proper timeout details.

  • Separate Connection Pools should be used for initializations blocks for better performance.
  • Proper keys & Joining conditions should be defined in the Physical Layer.
  • Foreign keys should NOT be imported from database.
  • Number to Number join conditions works faster than Varchar to Varchar joins.
  • For any table in the physical layer of OBIEE RPD, set the cache persistence time properly for better performance. Screen shot given below. This will depend on the actual table refresh time in the database.

  • For self join, create Alias tables in the Physical Layer and rename the table name properly. Like W_DAY_D becomes W_DAY_D_transaction_date and W_DAY_D_order_date.
  • Minimize the use of Opaque Views in the physical layer. Tables or Materialized views in Database will improve the performance.
  • Same tables should only be imported once into the physical layer. Create multiple aliases for using the same table for different purposes.
  • Fact to Fact join is not advised
  • Circular joins should not be used by the use of alias tables.
  • After creating the physical model, database connectivity should be checked & confirmed with Update All Rows Count option.

Repository- BMM Layer best practices

  • Rename the columns in the BMM layer with removal of _ (under scores), also use Init-Caps naming convention for the columns and table names. So column CUSTOMER_ID becomes Customer ID.
  • Avoid dimensional columns in Logical Fact tables & Measure column in Dimension tables. So split a table into a logical dimension and a logical fact if required.
  • Related all attributes that describe a single entity should be combined into a single Logical Table with multiple logical table sources.
  • Specific short forms and symbols used should be in CAPS in both column and Logical table name (Like FTE or RAM or ORG).
  • Complex joins should be used in BMM Layer so that BI server can make the best decision about the physical SQL to be generated.
  • The Content tab of each of the LTSs in Fact should be set to the related Dimension’s Logical Level.

  • We can use the where clause LTS Content tab to limit the number of records returned.

  • Proper Column Mappings of the Logical columns to the Physical Table should be done in LTS Column Mapping tab. One logical column MUST be mapped to at least one physical column or some formula expression.

  • While creating a Logical Column in the BMM Layer expression builder, one needs to make sure that all the columns should be from same logical table or the logical tables MUST be directly related to each other.
  • It’s a good practice to create Dimension Hierarchies for every dimension in the Business Model even if it is not used anywhere. Keys should be defined at each level of the hierarchy.
  • “Number of elements at this level” Criteria should be defined properly at the each level of the Dimensional Hierarchy. This value should increase from 1 at Grand total to the subsequent levels.

Repository- Presentation Layer best practices

  • Using of Parent & Sub-folders is recommended to group Fact & Dimensions.
  • Presentation Columns should not have the same name as presentation Tables.
  • To convey information about the objects in the Presentation Layer, fill the Object Description shown below so that whenever user hover the mouse in a Answers they will get information about the object.

  • Whenever we are importing new table don’t bring columns in the Presentation layer which are not required. Keys, ETL Load Date, Update Date, INSERT Date etc.
  • Logical grouping of the columns in the Presentation Layer table is important like we should always place the measure columns in the Fact table of the Presentation catalog folder.
  • Alphabetical re-ordering should be done on the presentation layer columns present under one table. This can be done by click on the Name sections under Columns section of the presentation table.

OBIEE Report Design

  • Prompt section should be placed in the top of the page grouped by function or by dimension.
  • Consistent Color and Style coding should be maintained throughout the report.
  • In the OBIEE Answers while creating report, create and set the No Results View. As an example, below mentioned definition can be used:

<b><font color=’Black’><h4>There is no data for the selected criteria. Please change your parameters and try again.</h4></font></b>

  • Report Prompt data clear button should be present in the report.
  • It’s a good practice that Report should contain the Title as Report Name and also Report Run Time and date, set the Started Time in the title section as Display date and time.
  • Newly Created report present under the dashboard should have the Report Links as Refresh, Download and Printer Friendly (PDF).

  • While placing a link in the existing dashboard, it’s a good practice to make the target set as New Window as report can open in new window after clicking the link.

  • In report use of Filters with some default values will avoid high response while running the report from Dashboard for the first time.
]]>
https://blogs.perficient.com/2018/11/21/obiee-design-and-development-best-practices/feed/ 0 232554
OBIEE 11g Portal Customization https://blogs.perficient.com/2018/11/15/obiee-11g-portal-customization/ https://blogs.perficient.com/2018/11/15/obiee-11g-portal-customization/#comments Thu, 15 Nov 2018 16:00:47 +0000 https://blogs.perficient.com/?p=232216

In order to best deliver an intuitive and interactive end-user experience, architecture and UI elements have been redesigned from the ground-up in Oracle Business Intelligence Enterprise Edition 11g Release (Oracle BIEE). The 11g UI is dynamically generated using scripts which makes it highly customizable as per client’s needs and standards. This blog post illustrates the methodology and steps used to deploy custom styles, skins and messages in Oracle BIEE 11g.

The look and feel of Oracle BIEE are controlled by Skins, Styles and Messages. Skins define the UI chrome outside the home and dashboard area (e.g. toolbar). Styles control the appearance of a dashboard and various views (e.g. font in a pivot table view). Messages store the text for various UI elements (e.g. brand name). So for changing the login page, home page and dashboard page of OBIEE portal we need to make changes to the following locations/files:

Changes to be Made to the Login Screen

By default the OBIEE login screen looks like:

Let as assume, as per requirement we have to:

  • Replace the Oracle logo at top left with Client logo
  • Change the ‘Business Intelligence’ text beside the logo to black in color from blue
  • Change the ‘Sign In’ text to black in color from blue
  • Change the background shades from blue to grey

Step 1: Replace the Oracle logo at top left with Client logo

a. Go to the directory /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login in the BI server and replace the oracle_logo.png image with the client logo in same format. Make sure the dimension of the new logo is identical to that of the original logo (119*25 pixels).

b. Also go the directory /u01/mw/Oracle_BI1/bifoundation/web/msgdb/messages, take the back up of logoncontrolmessages.xml file and update the same as:

<td id=”logoCell” class=”logo” width=”125” valign=”middle” height=”30“><img alt=”@{system.productVersion}” title=

“@{system.productVersion}” src=”fmap:login/oracle_logo.png” width=”125” border=”0″ height=”30“/></td>

From

<td id=”logoCell” class=”logo” width=”119” valign=”middle” height=”25“><img alt=”@{system.productVersion}” title=”@{system.productVersion}”

src=”fmap:login/oracle_logo.png” width=”119” border=”0″ height=”25“/></td>

c. Make sure to place the updated xml to the custom messages directory:

/u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/customMessages/l_en/messages

Step 2: Change the ‘Business Intelligence’ text beside the logo to black in color from blue

Go to the directory /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login open the login.css file and replace

.appname{font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:17px;font-weight:bold;color:#093E7D

by

.appname{font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:17px;font-weight:bold;color:#000000

Step 3: Change the ‘Sign In’ text to black in color from blue

Go to the directory /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login open the login.css file and replace

loginlabel{margin:0;padding:0 0 10px 0;font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:14px;font-weight:bold;color:#093E7D;}

by

loginlabel{margin:0;padding:0 0 10px 0;font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:14px;font-weight:bold;color:#000000;}

Step 4: Change the background shades from blue to grey

Go to directory /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login and edit the image file named background_blue_whitegradient_.png (edit the image and change the color of the image from blue-white to shades of grey)

Once these changes are done RESTART THE PRESENTATION SERVICES and CLEAR THE INTERNET CACHED. See the changes being applied.

 

Changes to the Signing in Screen

When the user logs in to the portal after entering his/her credentials the screen momentarily looks like this:

Here couple of changes are to be made

  • Replace the Oracle logo ‘O’ with Client logo
  • Change the ‘Signing in…’ text beside the logo to black in color from blue.

 

Step 1: Replace the Oracle logo ‘O’ with Client logo

Go to directory /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login and replace the signing_in.gif image with the new Client image (with identical dimension of course).

 

Step 2: Change the ‘Signing in…’ text beside the logo to black in color from light blue

Go the same directory i.e. /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/login, open login.css and replace the part:

.signingin{margin:0;padding:15px 15px 15px 15px;font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:16px;font-weight:bold;color:#9cacc9;}

by

.signingin{margin:0;padding:15px 15px 15px 15px;font-family:tahoma,verdana,geneva,arial,helvetica,sans-serif;font-size:16px;font-weight:bold;color:#000000;}

Again restart the presentation services and clear the internet cache and try logging into the portal, the screen will look like:

Changes to be Made to the Home Page After Logging in

By default the OBIEE home page looks like:

Let’s say we have to:

  • Replace the Oracle logo at top left with Client logo
  • Change the ‘Business Intelligence’ text beside the logo to black in color from blue
  • Change of background color in the homepage header from blue and white to black and white.
  • Change the Header Separator color to grey from light blue
  • Change the Header Spacer Background color from light blue to grey
  • Replace the oracle status logo at top right beside sign out button disappear.

Step 1: Change the ‘Signing in…’ text beside the logo to black in color from light blue.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/b_mozilla_4 and replace the Oracle_logo.png image with the new Client logo. Sizes and dimension must remain the same.

 

Step 2: Change the ‘Business Intelligence’ text beside the logo to black in color from blue.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/b_mozilla_4, open the common.css file and put

.HeaderBrandName{font-size:14px;font-weight:bold;font-family:Tahoma;position:absolute;left:130px;top:2px;color:#000000

in place of

.HeaderBrandName{font-size:14px;font-weight:bold;font-family:Tahoma;position:absolute;left:130px;top:2px;color:# 093E7D

 

Step 3: Change of background color in the homepage header from blue and white to black and white.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/b_mozilla_4, open the common.css file and change the background color for, “.HeaderContainer”. Note the beginning period in the string.  Change the background color to black which is:  #000000. Also search and find “.HeaderMenuBarText”, below that find, “.HeaderSearchGo and change color to white which is:  #FFFFFF

 

Step 4: Change the Header Separator color to grey from light blue.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/b_mozilla_4, open the common.css file and replace

.HeaderBarSeparator{font-size:1px;height:1px;margin-bottom:2px;text-align:right;border-top:1px solid #61A1EF;margin-left:-5px;}

by

.HeaderBarSeparator{font-size:1px;height:1px;margin-bottom:2px;text-align:right;border-top:1px solid #A0A0A0;margin-left:-5px;}

 

Step 5: Change the Header Spacer Background color from light blue to grey.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/common, create a back up file of header_spacer_bg.gif and change the color of the image from blue to grey

Step 6: Replace the Oracle status logo at top right beside sign out button disappear.

Go to /u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes/sk_****/common and replace the page_lev_connected.gif with an image filled up with black color.

 

 

]]>
https://blogs.perficient.com/2018/11/15/obiee-11g-portal-customization/feed/ 1 232216
OBIEE 11g – Deployment of Custom Skins and Styles https://blogs.perficient.com/2018/11/01/obiee-11g-deployment-of-custom-skins-and-styles/ https://blogs.perficient.com/2018/11/01/obiee-11g-deployment-of-custom-skins-and-styles/#respond Thu, 01 Nov 2018 16:00:55 +0000 https://blogs.perficient.com/?p=232023

Introduction

OBIEE has a set of styles and skins to make the displaying of data visually appealing. This gives the user the ability to select styles as per their need. Generally, in OBIEE 12c, the default UI Skin and Style is called ‘Alta’. In 11g, it is ‘blafp’. Customers most often want to see their organization’s BI data with their company logo, colours, styles etc. Not surprisingly, customizing the OBIEE user interface is one of the most common activities. Now, modifying any existing skins and styles is not suggested as it might run into problem at a later stage for recovery if something gets corrupted after customization. So it is always advisable to deploy a different set of skin and style first, make it customized as per needs and in case it gets corrupted sometime later, one can always go back and point the OBIEE to the old existing skins and styles. This article talks only about the deployments steps of custom skins and styles from one environment to another.

So this skins and styles are to be stored under OBIEE 11g analyticsRes directory. This directory will be where custom modifications will be made to the skins and styles. Changes are not to be made to the base skins and styles. If modifications were made to the base res directory, they would be overwritten during any future upgrades. Below shows the custom directories where skins and styles are and will be kept:

Type of Directory Directory Skin/Styles Stored
Custom Skin/Style Directory $MIDDLEWAREHOME/$OBbifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes
Where:
$MIDDLEWAREHOME– Represents the location to the OBIEE Middleware directory

To setup to be able to use this custom directory, do the following:
A. Copy the base skins and styles directories beneath the analyticsRes directories
B. Deploy the analyticsRes directory within the weblogic server
C. Deploy custom skin/styles.

These steps are highlighted in details below.

Deployment Steps

A. COPY Base Skins/Styles directories from analyticsRes directory

This section describes copying the oracle released styles and skins to a custom target directory.  In this case, analyticsRes is being chosen.  However, this can really be any shared directory that is available on the filesystem.

  • Let us assume, all customization was made to the OBIEE development environment. A zip file was created in DEV which contains the skins and styles for the custom deployment.
  • In the Current environment, there is an analyticsRes directory that already exist. However, there are no skins and styles beneath it.
  • Copy the following directories from the Dev environment analyticsRes directory. See the name of the Custom Skin/Style Directory directory where analyticsRes dir is located:

sty_skins.zip

See the file and the location where stored on DEV environment.

Copy the zip file over to the demo environment under the custom directory of analyticsRes.

  • Log on to the target obiee environment (i.e. QA).
  • Navigate to the analyticsRes directory according to the location designated above as, Custom Skin/Style Directory.
  • Place the copied files into the customskins/styles directory (analyticsRes) on the target server.
  • It shows on the aix server as:

  • See above of this article where the custom directory is identified for the environment.

  • Unzip the file under analyticsRes directory: unzip sty_skin.zip
  • The s_****, sk_**** and some custom directories will be created under analyticsRes directory. This will contain the customizations that were made in DEV.

B. Deploy custom target directory to weblogic server

This section describes the steps to deploy the custom directory to the weblogic server.  This directory will be made available to the OBIEE directory for retrieving custom skins and styles files.  In this case, we are using the analyticsRes directory as the custom target directory.  However, you can use any other directory that is accessible.

  • To expose this directory, you must open the WebLogic Administration Console. Open a browser window and in the address bar, enter http://<hostname>:port/console/login/LoginForm.jsp. For example: http://localhost:7001/console/login/LoginForm.jsp). The WLS Login window appears. Login as a Weblogic administrator.
  • Click Lock and Edit button to modify the deployment directories/applications.

  • Select Deployments under domain structure.
  • If not already showing, click the Control tab in the Summary of Deployments pane and the Deployment tables/applications will be displayed. The Install button is enabled.

  • Click the Install button to create and make available the custom target directory.
  • The Install Application Assistance appears:

/u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1

  • Select the option button for analyticsRes or whichever custom directory that you have chosen to use, if different.
  • Click Next after choosing analyticsRes as the option.
  • The Choose Targeting Style pane displays:

  • Choose option, Install this deployment as an application. Then click Next
  • In the General section of the page, you can choose a different name for the deployment. Such as: ****_bi:

  • Scroll down to the “Optional Settings – Source accessibility” section of the same pane. Select the radio button for I will make the deployment accessible from the following location and accept the default path.

  • Click Next. The Review your choices screen displays.

  • Click Finish when no further changes are needed.
  • Click Save.

  • Message displays of, “Settings updated successfully”.

  • In the Change Center pane on the left, click Activate Changes.

  • A confirmation message displays indicating that all changes were activated.

  • Click the Control tab and then select the check box for the analyticsRes application. Notice that the state for analyticsRes appears as Prepared. You need to start the application.

  • Click Start and then select Servicing all requests

  • Click Yes in the Start Application Assistant pane.

  • The “Summary of Deployments” pane reappears with a confirmation message. Note that analyticsRes now shows a state of Active.

C. Deploying a Custom Skin

After exposing the analyticsRes file to WLS successfully, you can now use this directory to develop custom skins.  To customize the skin for Oracle BI EE, perform the following steps:

Backup the instanceconfig.xml file.  The file is located in the bi config directory.  Such as:

/u01/mw/instances/instance1/config/OracleBIPresentationServicesComponent/coreapplication_obips1

cp instanceconfig.xml instanceconfig.xml_mmddyyyy

The next step is to basically let Presentation Services know that the new Styles/Skins are available from the new biee11g directory.

This is done by adding the following tags to the instanceconfig.xml file after the xml tag, </Authentication> and before the tag, </ServerInstance>.

<URL>

<CustomerResourcePhysicalPath>/u01/mw/instances/instance1/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/analyticsRes</CustomerResourcePhysicalPath>

<CustomerResourceVirtualPath>/****_bi</CustomerResourceVirtualPath>

</URL>

<UI>

<DefaultSkin>****</DefaultSkin>

<DefaultStyle>****</DefaultStyle>

</UI>

CustomerResourcePhysicalPath is a tag that specifies the actual target directory name. CustomerResourceVirtualPath provides the URLPrefix that will be added for sourcing all the files. For example, “/****_bi”.  After updating, it will look similar to the following:

Restart BI Presentation Services

Make all of your custom changes and restart the Presentation Services in Enterprise Manager.  After the restart, the customizations will have taken affect.

  • Step 1: Login to Demo environment’s Weblogic Console.

  • Step 2: Click on Lock and Edit in Change Center Pane and then click on Deployments in Domain Structure Pane

  • Step 3: In the Summary of Deployment Section -> Control Tab click on Install button.

  • Step 4: Put the following path and press Enter. Select analyticsRes directory radio button and proceed to Next.

  • Step 5: Select the “Install this deployment as an application” option and click on Next.

  • Step 6: Select bi_server1 option from Clusters Section and click on Next.

  • Step 7: In the Install Application Assistant pane -> General Section name the deployment as ****_bi. Also select the DD only option for Security section

In the source accessibility section select “I will make the deployment….” Option and click on Next.

  • Step 8: In the next page select “Yes, take me to the deployment’s configuration screen” option, check if the target component is analyticsRes or not, check the Deployment path and Name and click on Finish.

  • Step 9: In the overview tab check for the Context Root and Name and if they seem to be correct then click on Save.

  • Step 10: The page will show a message “Settings updated successfully”. Then click on Activate Changes on top left.

  • Step 11: Another message “All changes have been activated. No restarts are necessary” will be displayed.

  • Step 12: Click on Control tab, select ****_bi module and click on Start-> Servicing all requests. Before this the state should be prepared.

  • Step 13: Click on Yes in the Start Application Assistant Pane.

  • Step 14: After the message “Start requests have been sent to the selected Deployments” has been shown the state would change to Active from Prepared.

]]>
https://blogs.perficient.com/2018/11/01/obiee-11g-deployment-of-custom-skins-and-styles/feed/ 0 232023
Configure OBIEE Cache Purge with Event Polling Table https://blogs.perficient.com/2018/10/24/configure-obiee-cache-purge-with-event-polling-table/ https://blogs.perficient.com/2018/10/24/configure-obiee-cache-purge-with-event-polling-table/#respond Wed, 24 Oct 2018 15:00:56 +0000 https://blogs.perficient.com/?p=232004

Introduction

An event polling table (S_NQ_EPT) is a way to identify for the Oracle BI Server that one or more physical tables have been updated. Each row that is added to an event table highlights a single update on a single table. The cache system reads from this table, extracts the information from these rows, and flushes the entries based on those information.

After this process is in place and the event table is configured in the Oracle BI repository, cache flushing occurs by itself. Old cache entries are purged automatically at the specified polling intervals, given that ETL is writing records to this polling table correctly. In this article we will see the process of setting up OBIEE (11g) cache purge. This does NOT include the ETL steps need to be taken to load the polling table. That has to be done by the ETL development team.

Polling Table Structure

We can set up an event polling table in each physical database (Development, UAT, PROD etc.) to monitor changes in the database. The event table should be updated every time a table in the database changes – should be taken care by the ETL process. This also depends on the fact that which tables are supposed to be cache maintained (or purge needs to be done). Other tables that do NOT fall in this category are not needed to be present in the rows of this Event Polling Table. The event table should have the structure shown below. The column names for the event table are only suggested; one can use any other logical naming convention. However, the order of the columns has to be the same in the physical layer of the repository (then by alphabetic ascendant order).

Column Name
(by alphabetic ascendant order) 
Data Type  Null-able  Description  Comments
Catalog_Name VARCHAR Yes The name of the catalog where the physical table that was updated resides. Populate the Catalog_Name column only if the event table does not reside in the same database as the physical tables that were updated. Otherwise, set it to the NULL.
DB_Name VARCHAR Yes The name of the database where the physical table that was updated resides. Populate the DB_Name column only if the event table does not reside in the same database as the physical tables that were updated. Otherwise, set it to the NULL.
Other VARCHAR Yes Reserved for future modifications. This column must be set to a NULL value.
Schema_Name VARCHAR Yes The name of the schema where the physical table that was updated resides. Populate the Schema_Name column only if the event table does not reside in the same database as the physical tables being updated. Otherwise, set it to the NULL.
Table_Name VARCHAR No The name of the physical table that was updated. The name has to match the name defined for the table in the Physical layer of the Administration Tool.
Update_Time DATE or TIMESTAMP No The time when the update to the event table has happened. This is a unique valued key that changes for each row added to the table. current timestamp as the default value.
Update_Type INT No Specify a value of 1 in the update script to indicate a standard update. Other values are reserved for future use.

Event Polling Table Set Up

Create User in the Database:

CREATE user OBIEE_USER IDENTIFIED BY OBIEE_USER;GRANT connect, resource TO OBIEE_USER;

Creating Event polling table:

  • Go to the path “<MiddlewareHome>\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\schema”.
  • Open SAEPT.Oracle file and copy the DDL.  Create the table under the BIPlatform schema by running the DDL in the database.

Cache Purging Using the Event Polling Table

To make sure that the Oracle BI Server has write access to the event polling table but not to any other tables in a database, perform the following:

  • Create a separate physical database in the Physical layer of the RPD with a privileged connection pool.
  • Assign a user to that particular connection pool that has delete privileges.
  • Populate the privileged database with the event table.

Importing the physical table:

  • Import the table S_NQ_EPT into the Repository from the Database where we have created the table.
  • Open the RPD in offline Mode ,Go to File -> import metadata and import the table (S_NQ_EPT) into the Physical Layer.

  • Go to Tools -> Utilities and select the option Oracle BI Event Tables from the list of options as shown below. Click on Execute.

  • Select the S_NQ_EPT table as the Event Polling table and select >> button. Set the Polling frequency to some value more than 10 minutes. Ideally it should be 12-24 hours because generally tables are loaded once or twice everyday at most. Click OK.

  • After registering this table as an Oracle BI Server event table, one can not make this table cache-able, which is self explanatory.

Validate Cache Flushing

There are a number of ways to implement Event Polling Table loading (update or insert or both) once the daily job of ETL is complete.

1. Editing every Informatica Workflow for each and every warehouse target table to include post-ETL SQL insert statements.
2. Configuration of new tasks to handle inserts once the main ETL load is finished.
3. Triggers in the Oracle database for inserts.

Option 3 is the easiest to configure and should be selected for easy maintenance as well. Option 1 is most tedious as it will impact hundreds of workflows. Option 2 requires a lot more configuration than option 3.

For option 3 do the following:

1. A new table is created to hold the names of the target tables in the Warehouse that need to be flushed by this Event Polling mechanism:

CREATE TABLE S_NQ_EPT_TAB (TAB_NAME VARCHAR2 (200 BYTE) NOT NULL ENABLE);

2. Then, add a trigger to the metadata table W_ETL_REFRESH_DT in DAC. This table’s refresh date gets modified once the ETL completes. The trigger will fire every time the table is modified and if the refresh date is not null then it will insert a new row into the polling table:

CREATE OR REPLACE TRIGGER SCHEMA.S_NQ_EPT_NEWROW
AFTER UPDATE ON DACINFA.W_ETL_REFRESH_DT
FOR EACH ROW
BEGIN
IF :NEW.LAST_REFRESH_DT IS NOT NULL THEN
MERGE INTO SCHEMA.S_NQ_EPT P
USING (SELECT TAB_NAME FROM SCHEMA.S_NQ_EPT_TAB WHERE TAB_NAME = :NEW.TABLE_NAME ) T
ON (P.TABLE_NAME = T.TAB_NAME)
WHEN NOT MATCHED THEN INSERT
(P.UPDATE_TYPE, P.UPDATE_TS, P.DB_NAME, P.CATALOG_NAME,
P.SCHEMA_NAME, P.TABLE_NAME, P.OTHER_RESERVED)
VALUES (1, SYSTIMESTAMP, ‘Oracle Data Warehouse’, ‘Catalog’, ‘dbo’, T.TAB_NAME, NULL);
END IF;
END;

Testing Cache Purging

Set Event Polling Frequency to a small value like 15 minutes. Now to validate the mechanism by filling the values into cache Manager, create a simple report with two or three columns in the OBIEE Analytics Answers. Run the Report and cache manager will store the query run in the back end. To purge this cache do a manual insert for testing purpose:

INSERT INTO  S_NQ_EPT (update_type,update_ts,db_name,catalog_name,schema_name,table_name,other_reserved)
VALUES (1, SYSTIMESTAMP, ‘Oracle Data Warehouse’, ‘Catalog’, ‘dbo’, ‘Table Name which is used by the query’, NULL);

Wait the polling interval frequency. The cache entry from the cache manager WILL BE deleted. Once done confirm this from the NQQuery.log file.

Point to Note

The event table is populated by inserting rows into it each time that a table is updated – so by ETL. The process has been explained above. If the table is not updated properly after each load Oracle BI server would NOT take any action on deleting the cache as it would think that the event polling table has been updated properly and no action needs to be taken. So correct update made to the event polling table is the defining factor for the mechanism to work.

Troubleshooting/Debugging

One can find the NQS server and NQS query logs in the following location:

ORACLE_INSTANCE/diagnostics/logs/OracleBIServerComponent/coreapplication_obisn

]]>
https://blogs.perficient.com/2018/10/24/configure-obiee-cache-purge-with-event-polling-table/feed/ 0 232004
OBIEE Automated Cache Purge Using ODI https://blogs.perficient.com/2018/10/03/obiee-automated-cache-purge-using-odi/ https://blogs.perficient.com/2018/10/03/obiee-automated-cache-purge-using-odi/#respond Wed, 03 Oct 2018 20:33:03 +0000 https://blogs.perficient.com/?p=231954

The OBIEE BI Server cache is the most effective way of improving response times of OBIEE dashboards followed by database modifications and tuning. Using data present in the cache limits the load on the database considerably. It is also effective for improving network, BI server and dashboard performance for obvious reasons. However, after a certain interval the same cache needs to be cleared since data in warehouse is ever changing and new cache needs to be built for the reports to pick up updated data and use it in nearest future. The most important decision that needs to be taken while deciding cache purging is: When and how to flush the cache.

There are multiple options for cache purging such as:

  1. Full Cache Purge: If the datamodel is small compared to the database then purge the entire cache.
  2. Flush only database(s): if there are multiple databases used to create subject areas and reports purge cache for ONLY those databases that are not required (to be cached).
  3. Purge by Table: This is much more specific that a particular fact needs to be purged for new cache to be loaded. Can be done through RPD after a certain interval.
  4. Finally, Purge by query. So only purge few rows (new, to be updated or updated rows) and do not make any change to the existing old historical data.

This article will describe the step by step process of we can automate the OBIEE server and web cache purging using shell script and including it in daily ODI load run. The script runs after the load is run daily incremental data load. The script has been made generic to be used in any environment

Requirement:

As we know that OBIEE uses cache (both at server and web level) to store the query results. After daily ETL run we have to purge both the cache manually (using Manage-> Cache in OBIEE Admin Tool & Administrator option in Analytics) so that users can view the latest data in reports and dashboards. To reduce this manual effort a shell script has been designed that would purge both server and web cache without the manual need to access to OBIEE tool. This script is added as the last step of the daily ODI load plan so that as soon the data gets refreshed the cache gets purged.

Purge BI server cache:

Write a shell script by using nqcmd command to clear OracleBIServer cache. The nqcmd utility is available both on Windows and UNIX systems. The syntax of nqcmd command is:

nqcmd –d my_dsn –u my_username [-p my_password] –s sql_input_file –o my_result_file;

Steps:

  1. Create a file called txt ( sql_input file) and place it at following location of BI server: [FMW_HOME]/instances/instance1/bifoundation/OracleBIApplication/coreapplication/setup
  2. Assign the above path to a variable called SETUP_DIR.
  3. Assign the path [FMW_HOME]/ Oracle_BI1/bifoundation/server/bin” to a variable called N
  4. In the file, enter the code “Call SAPurgeAllCache();” (without the quotes), which is a special BI Server command for clearing the entire cache.
  1. Now create a shell script called OBIEE_Cache_Purge.sh to run the nqcmd command and place it in a directory where you store your custom scripts which includes the following commands.
  1. In the script, before running nqcmd, we must first run bi-init.sh to launch a command prompt or shell window that is initialized to your Oracle instance. This utility can be found in the same set up location mentioned in step 1. Put the following command in the script for initialization: source $SETUP_DIR/bi-init.sh;
  2. After the initialization, put the below command in the script which would purge the cache.                                                                    $NQCMD_DIR/nqcmd -d AnalyticsWeb -u weblogic -p manager1 -s $SETUP_DIR/purgecache.txt;

To purge the presentation server cache:

OBIEE 11G has a catalog manager command called “ClearQueryCache” to clear out the Presentation Server cache.

The syntax of ClearQueryCache command is:

./runcat.sh -cmd clearQueryCache  -online <OBIPS URL> -credentials <credentials properties file>

Steps:

1. Create a catalog manager credential properties file. Open a text file and type the following entries.
login=<weblogic_admin_Username>
pwd=<weblogic_Admin_Userpassword>
And save in a directory with the file name as catmancredentials.properties.

2. Assign the catalog manager path of the bi server to a variable called RUNCAT_DIR as shown below:

RUNCAT_DIR

[FMW_HOME]/instances/TGC_BIINSTANCE/bifoundation/OracleBIPresentationServicesComponent/coreapplication_obips1/catalogmanager”

3. Run the command “uname –a” to get the system details .Then extract the system name and assign it to a variable with the following commands var=$(uname -a)

name=${var:6:10}

4. Put the above name to the analytics URL and assign it to another variable.

CAT_URL=http://$name:9704/analytics/saw.dll

The above steps 3 & 4 are designed to make the script a generic one so that it would run in any environment (Dev,Test, Prod etc.) without any alteration to it.

5. Run the following command to purge the Presentation Server cache.

$RUNCAT_DIR/runcat.sh -cmd clearQueryCache -online $CAT_URL -credentials $SETUP_DIR/catmancredentials.properties

Test BI server cache purging:

1. Login to Analytics and click on some reports and dashboards

2. Open the BI Administration tool and open the repository in online mode.

3. Go to Manage -> Query-> Cache .

4. Note the cache entries as shown in figure below.

5. Now run the script to get the following output.

6. Now go to the cache again in the repository and check to see the entries got deleted.

TEST Presentation server purging:

1. Login to Analytics and click on some reports and dashboards.
2. Go to Administration -> Manage session.

3. Check for the cache entries.

4. Now run the script to get the following output.

5. Go back to manage session again and check to see the entries got deleted as shown below.

Add the cache purge process as ETL post load activity:

To ensure the cache purging process automation, we have added a step in our load plan to execute cache purging scripts. This step has been              added at PLP section of load plan. Also we have added this step as a Serial step to ensure this will be last step of PLP process. To achieve this we          have done the below activities:

1. Create custom PLP folder under BI Apps Project  Mappings with proper release tag ‘BIA_11’ and version as shown below:

2. Under Custom_PLP folder create another folder ‘PLP_Custom_OBIEE_Cache_Purge’ with proper version. All the realted code for cache purge will be residing under this folder.

3. Now create a package ‘PLP_Custom_OBIEE_Cache_Purge’.

4. Now Go to Diagram tab of the package and add a tool ‘OdiOSCommand’ in the diagram. Provide the details of the OdiOSCommand as shown         below:

Parameter Details given below:

5. Save the changes. Create a scenario for the above package.

6. Now we need to add this above scenario in the load plan. Open the load plan in which you want to add this cache purging activity. Right click          on the ‘1 PLP Load’ Step present under Start Load Plan Global Variable Refresh Warehouse Load Phase

7. Provide the details for the step as given below:
Step Type : Serial
Step Location: Add a child step to selection

Then Click on Next.
Now Provide th Step Name and click on Finish to create the step.

8. Expand the ‘1 PLP Load’ Step and you will find the new Serial Step created there.

9. Again Right Click on ‘2 PLP Custom Fact Group’ and Add a Serial step ‘Cache Purge’ as shown below:

Set the Restart Type option for this step as ‘Restart from Failure’.

10. Now expand the ‘PLP_Custom_OBIEE_Cache_Purge’ folder present under BI Apps Project  Mappings  Custom PLP. Expand the package                ‘PLP_Custom_OBIEE_Cache_Purge’. Drag and drop the scenario ‘PLP_PLP_CUSTOM_OBIEE_CACHE_PURGE version 001‘ present under the                         ‘PLP_Custom_OBIEE_Cache_Purge’ package on to the ‘Cache Purge’ step created in the load plan. After adding the scenario the load plan should            look like below:

11. Set the property of the newly added scenario in the load plan as shown below:

So now the Cache Purging has been added in your load plan as a step and this process will run as a step in the load plan.

]]>
https://blogs.perficient.com/2018/10/03/obiee-automated-cache-purge-using-odi/feed/ 0 231954
OBIEE 12c Security: LDAP Authentication and DB Authorization https://blogs.perficient.com/2018/10/03/obiee-12c-security-ldap-authentication-and-db-authorization/ https://blogs.perficient.com/2018/10/03/obiee-12c-security-ldap-authentication-and-db-authorization/#comments Wed, 03 Oct 2018 18:02:21 +0000 https://blogs.perficient.com/?p=231914

OBIEE 12c by default uses WebLogic internal user directory for security purposes. This is effective only when the number of the users is very limited and is not expected to grow much over the years. But, in a real world business scenario, almost all implementations require configuring a more robust way to implement authentication and authorization to allow additional users access to OBIEE without changing a lot of things from the OBIEE end.

LDAP is one of the very effective ways to enable users to login with common IDs – that they use across a company network allowing access to OBIEE via the same central active directory as applications. It’s best to implement LDAP active directory in addition to the internal WebLogic user directory so that WebLogic IDs and other administrative IDs remain unaffected due to this change and also if required the default active directory can also be used if required separate to the LDAP directory. It’s best to create a new realm for the new LDAP authentication allowing easy toggling from one realm to another as and when required.

Pre-Requisites

  • Oracle Business Intelligence Enterprise Edition 12c g must be installed and running.
  • LDAP server to be used as the identity store that contains users must already be configured.

Security Settings

This document captures security settings in OBIEE 12c environment.

Authentication: Active Directory Authentication – LDAP

Weblogic Console Modifications

Login in to WelbLogic Manager using weblogic account. Click on bi -> Security Realms in left panel.

http://machine.domain.com:9500/console

Click on ‘myrealm’. Configuration -> General tab would open.

Click on “Providers” tab. Here you will see following three default ‘Authentication Providers’.

Click on “DefaultAuthenticator” provider. Click on Lock and Edit -> Change the Control Flag from Required to Sufficient and then Click Save.

Once the settings updated successfully message is displayed click on Activate Changes.

The ‘All Changes have been Activated. However 2 items must be restarted for the changes to take effect‘ message would be displayed. Wait for the entire process to complete before restarting OBIEE server.

First LDAP Authentication Provider needs to be set up. For that, go to Providers Tab -> Lock and Edit and Click on New.

Name it as “Edir_LDAP”. Select the type as IPlanetAuthenticator. Click OK.

Once done open the Edir_LDAP provider again and change the control flag to Sufficient. Save it.

Enter the following details in the provider specific tab.

Host: hostname.domain.com

Port: 123

Principal: uid=user1,ou=system,ou=users,dc=domain,dc=com

Credential: (Enter the password for the Principal Account listed above)

Confirm Credential: Re-enter the same

User Base DN: dc=domain,dc=com

All Users Filter: (&(uid=*)(objectclass=person))

User From Name Filter: (&(uid=%u)(objectclass=person))

User Search Scope: Subtree

User Name Attribute: uid

User Object Class: person

Group Base DN: dc=statestreet,dc=com

Group From Name Filter: (|(&(cn=%g)(objectclass=groupofUniqueNames))(&(cn=%g)(objectclass=groupOfURLs)))

Group Search Scope: Subtree

Group Membership Searching: unlimited

Max Group Membership Search Level: 0

Group from User Filter for Memberuid: (&(memberuid=%M)(objectclass=groupofuniquenames))

Static Group Name Attribute: cn

Static Group Object Class: groupofuniquenames

Static Member DN Attribute: uniquemember

Static Group DNs from Member DN Filter: (&(uniquemember=%M)(objectclass=groupofuniquenames))

Dynamic Group Name Attribute: cn

Dynamic Group Object Class: groupofURLs

Dynamic Member URL Attribute: memberURL

Connection Pool Size: 6

Connect Timeout: 0

Connection Retry Limit: 1

Parallel Connect Delay: 0

Results Time Limit: 0

Follow Referrals: check

Cache Enabled: check

Cache Size: 32

Cache TTL: 60

Cache Statistics Enabled: check

Guid Attribute: nsuniqueid

Identity Domain: Blank

No need to modify the Performance tab. Keep it default. Click Save and click Activate Changes. The following message in green would be displayed.

Restart the OBIEE servers after running the ./stop.sh and ./start.sh scripts located at $Oracle_Home/user_projects/domains/bi/bitools/bin.

Once it is started to validate if LDAP authentication is correctly setup, search for a particular user id by going back to weblogic console -> ‘mysecurityrealm’ >> Users and Groups >>  Users >> customize this table.

Enter a user id under ‘Criteria’ and hit enter. If LDAP authentication is setup right, you will be able to pull that userid from server:

Enterprise Manager Configuration Changes

The next step is to configure OBIEE to see users from your new LDAP provider in addition to the weblogic internal directory users.  To do this you need to login to the Enterprise Manager with your admin user account

Once logged in, from the Weblogic Domain drop-down menu select Security -> Security Provider Configuration

From the Security Provider Configuration screen expand ‘Security Store Provider’, then expand Identity Store Provider and finally click ‘Configure’

In this screen we need to add a new Custom Property. Click the +Add button.

Then enter a property name of ‘virtualize’ and a value of ‘true’. Then click OK again to save:

Click OK again.

Similarly add one more property of OPTIMIZE_SEARCH = true.

Restart the OBIEE servers after running the ./stop.sh and ./start.sh scripts located at $Oracle_Home/user_projects/domains/bi/bitools/bin.

Object Level Security: Storing Groups in Database

We will look at settings for connecting the system to an external set of database tables that contain the group membership for users authenticated through LDAP.

Pre-Requisites

  • A suitable database schema containing at least one table with the required groups in it, and a mapping table which maps those groups to the names of users authenticated by LDAP must be running and accessible from the WebLogic Server on which Oracle BI EE is running. There is a job which extract User responsibilities which match User Group data from EBS and loads into Data warehouse. Let’s assume that the table name is STT_AUTHORIZATION_GROUPS..
  • Copy the “bi-sql-group-provider.jar” file from the location $ORACLE_HOME/bi/plugins/security to $ORACLE_HOME/wlserver/server/lib/mbeantypes. Stop and Start the entire OBIEE server using the scripts present at $Oracle_Home/user_projects/domains/bi/bitools/bin.

Configure the Data Source

Login into WebLogic Console and click on ‘Services’ >> ‘Data Sources’:

Lock and Edit.

Click New -> generic data source.

Enter the details marked in Red and click Next.

Select the following Driver and click Next.

Click Next.

Enter the following details and click Next.

Check all the details and Test Configuration. It should succeed. Click Next.

Select the target and click Finish.

The datasource will be created.

Next create a BISQLGroupProvider against this JDBC data source.

Configuring the BISQLGroupProvider SQL Authenticator

Go back to Services >> Security Realms >> mysecurityrealms >> Providers. Click New.

Put the name as BIGroups and Type BISQLGroupProvider. Click OK.

Notice ‘control Flag’ under configuration >> common tab for ‘BIGroups’. It should be Optional.

Click on ‘Provider Specific’ tab. This authentication provider is using ‘BIGroupsSource’ as JDBC data source. We will talk about configuring that data source in subsequent screenshots. Please follow pre-requisites for setting ‘BIGroupsSource’ before adding it as data source. Steps are listed in next section.

Data Source JNDIName:JDBC/BIGroupsSource

Group Membership Searching: Unlimited

Max Group Membership Search Level: 0

SQLList Groups:SELECT WEB_GROUP FROM TABLE_NAME WHERE WEB_GROUP LIKE ?

SQLGroup Exists: SELECT WEB_GROUP FROM TABLE_NAME WHERE WEB_GROUP = ?

SQLIs Member: SELECT USERID FROM TABLE_NAME WHERE WEB_GROUP = ? and substr(UPPER(USERID), 2, 6) = substr(UPPER(?), 2, 6)

SQLList Member Groups: SELECT WEB_GROUP FROM TABLE_NAME WHERE SUBSTR (UPPER (USERID), 2, 6) = SUBSTR (UPPER (?), 2, 6)

Descriptions Supported: check

SQLGet Group Description: SELECT WEB_GROUP FROM TABLE_NAME WHERE WEB_GROUP = ?

Save. Go back to Providers List and reorder as below. Activate Changes.

Create custom Application Roles and assign them to Groups using EM

We have three custom groups GPS_AUTHOR, GPS_ADMIN and GPS_CONSUMER. Now we need to assign them application roles.

Login into Oracle Enterprise Manager.

Expand Weblogic Domain tree on left hand side.

Select Security -> Application Roles.

By default we have three application roles that come with the installation and one superuser: weblogic.

Here create three custom application roles ‘GPS_ADMIN’, ‘GPS_AUTHOR’ and ‘GPS_CONSUMER’ and assign them to respective groups.

Screenshots below show how each custom GPS role is assigned to a GPS group:

GPS_ADMIN role should have same rights has BIServiceAdministrator and GPS_AUTHOR should have BIContentAuthor rights. So assign GPS_ADMIN, GPS_AUTHOR role under box BIServiceAdministrator, BIContentAuthor roles respectively.

Restart the entire OBIEE server.

Validate the Custom Application Roles from  Analytics

Login into analytics using one of the userid authenticated against LDAP and navigate to My Account >> Roles and Catalog Groups. You should see your custom application role here.

Assign permissions to Application Roles using Analytics

Login into analytics using weblogic account and navigate to Administration >> Security >> Manage Privileges.

Here you can assign permissions to individual components to each custom Application Role. It is a self-explanatory process.

]]>
https://blogs.perficient.com/2018/10/03/obiee-12c-security-ldap-authentication-and-db-authorization/feed/ 8 231914
Usage Tracking – OBIEE 12c https://blogs.perficient.com/2018/10/03/usage-tracking-obiee-12c/ https://blogs.perficient.com/2018/10/03/usage-tracking-obiee-12c/#comments Wed, 03 Oct 2018 15:29:24 +0000 https://blogs.perficient.com/?p=231907

Usage tracking in OBIEE 12c is very similar to that in 11g, which enables mainly administrative users to track all reports being run and queries fired to the database. It is also very helpful in identifying and analyzing objects that require better query performance. The configuration steps will be mentioned in this blog as well as the tables that need to be set up for triggering Usage Tracking.

System Specifications/Pre-requisites

  • OBIEE 12c (In this example 12.2.1.2.0) has been already installed
  • Data Source (RCU and Warehouse): (In this case Oracle 11.2.0.4.0) have been already set
  • Need file permissions to 12c environments.

Setting up Usage Tracking

Step 1: – Creating Usage Tracking Tables

  1. Create the following tables first in the database schema where usage tracking needs to be set up.
  • S_ETL_DAY
  • S_ETL_TIME_DAY
  • S_NQ_ACCT
  • S_NQ_DB_ACCT
  1. The Table creation scripts are attached below (Here OBIW: Schema where these tables are being created).
  • CREATE TABLE OBIW.S_ETL_DAY
    ( DAY_DT DATE,
    CAL_MONTH NUMBER(*,0),
    DAY_OF_MONTH NUMBER(*,0),
    DAY_NAME CHAR(12 BYTE),
    DAY_OF_YEAR NUMBER(*,0),
    DAY_OF_WEEK NUMBER(*,0),
    CAL_WEEK NUMBER(*,0),
    MONTH_NAME CHAR(15 BYTE),
    CAL_YEAR NUMBER(*,0),
    PER_NAME_MONTH VARCHAR2(50 BYTE),
    PER_NAME_QTR VARCHAR2(20 BYTE),
    FSCL_YEAR NUMBER(*,0),
    FSCL_QTR CHAR(5 BYTE),
    DAY_AGO_DT DATE,
    WEEK_AGO_DT DATE,
    MONTH_AGO_DT DATE,
    QUARTER_AGO_DT DATE,
    YEAR_AGO_DT DATE,
    ROW_WID NUMBER(*,0)
    )
  • CREATE TABLE OBIW.S_ETL_TIME_DAY
    ( TIME_SLICE DATE,
    HOURS NUMBER(*,0),
    MINUTES NUMBER(*,0),
    HAGO DATE,
    MIN_SEQ NUMBER(*,0),
    HOUR_MIN VARCHAR2(5 BYTE)
    );
  • CREATE TABLE OBIW.S_NQ_ACCT
    ( USER_NAME VARCHAR2(128 BYTE),
    REPOSITORY_NAME VARCHAR2(128 BYTE),
    SUBJECT_AREA_NAME VARCHAR2(128 BYTE),
    NODE_ID VARCHAR2(100 BYTE),
    START_TS DATE,
    START_DT DATE,
    START_HOUR_MIN CHAR(5 BYTE),
    END_TS DATE,
    END_DT DATE,
    END_HOUR_MIN CHAR(5 BYTE),
    QUERY_TEXT VARCHAR2(1024 BYTE),
    QUERY_BLOB CLOB,
    QUERY_KEY VARCHAR2(128 BYTE),
    SUCCESS_FLG NUMBER(10,0),
    ROW_COUNT NUMBER(20,0),
    TOTAL_TIME_SEC NUMBER(10,0),
    COMPILE_TIME_SEC NUMBER(10,0),
    NUM_DB_QUERY NUMBER(10,0),
    CUM_DB_TIME_SEC NUMBER(10,0),
    CUM_NUM_DB_ROW NUMBER(20,0),
    CACHE_IND_FLG CHAR(1 BYTE) DEFAULT ‘N’ NOT NULL ENABLE,
    QUERY_SRC_CD VARCHAR2(30 BYTE) DEFAULT ”,
    SAW_SRC_PATH VARCHAR2(250 BYTE) DEFAULT ”,
    SAW_DASHBOARD VARCHAR2(150 BYTE) DEFAULT ”,
    SAW_DASHBOARD_PG VARCHAR2(150 BYTE) DEFAULT ”,
    PRESENTATION_NAME VARCHAR2(128 BYTE) DEFAULT ”,
    ERROR_TEXT VARCHAR2(250 BYTE) DEFAULT ”,
    IMPERSONATOR_USER_NAME VARCHAR2(128 BYTE) DEFAULT ”,
    NUM_CACHE_INSERTED NUMBER(10,0) DEFAULT NULL,
    NUM_CACHE_HITS NUMBER(10,0) DEFAULT NULL,
    ID VARCHAR2(50 BYTE),
    ECID VARCHAR2(1024 BYTE),
    TENANT_ID VARCHAR2(128 BYTE),
    SERVICE_NAME VARCHAR2(128 BYTE),
    SESSION_ID NUMBER(10,0),
    HASH_ID VARCHAR2(128 BYTE);
    CREATE INDEX OBIW.S_NQ_ACCT_M1 ON OBIW.S_NQ_ACCT (START_DT, START_HOUR_MIN, USER_NAME);
    CREATE INDEX OBIW.S_NQ_ACCT_M2 ON OBIW.S_NQ_ACCT (START_HOUR_MIN, USER_NAME);
    CREATE INDEX OBIW.S_NQ_ACCT_M3 ON OBIW.S_NQ_ACCT (USER_NAME) ;
    ALTER TABLE OBIW.S_NQ_ACCT ADD CONSTRAINT S_NQ_ACCT_PK PRIMARY KEY (ID);
  • CREATE TABLE OBIW.S_NQ_DB_ACCT
    ( ID NUMBER(10,0),
    LOGICAL_QUERY_ID VARCHAR2(50 BYTE),
    QUERY_TEXT VARCHAR2(1024 BYTE),
    QUERY_BLOB CLOB,
    TIME_SEC NUMBER(10,0),
    ROW_COUNT NUMBER(20,0),
    START_TS DATE,
    START_DT DATE,
    START_HOUR_MIN CHAR(5 BYTE),
    END_TS DATE,
    END_DT DATE,
    END_HOUR_MIN CHAR(5 BYTE),
    HASH_ID VARCHAR2(128 BYTE),
    PHYSICAL_HASH_ID VARCHAR2(128 BYTE);
    CREATE INDEX OBIW.S_NQ_DB_ACCT_I1 ON OBIW.S_NQ_DB_ACCT (LOGICAL_QUERY_ID);
    ALTER TABLE OBIW.S_NQ_DB_ACCT ADD CONSTRAINT FK_S_NQ_DB_ACCT FOREIGN KEY (LOGICAL_QUERY_ID);

3. Once the tables are created load the S_ETL_DAY and S_ETL_TIME_DAY time dimension tables. One can get the data dump from Oracle Support or Oracle Website.
Step 2: – Configuring Usage Tracking

  1. To set up direct insertion for new (non-upgraded) installations, use a text editor. To set up direct insertion usage tracking on the Oracle BI Server computer, open the NQSConfig.INI file in a text editor. The file is located at: $MW_HOME/user_projects/domains/bi/config/fmwconfig/biconfig/OBIS
  2. Edit the file.

 

 

3. Make the following changes in the file.

[USAGE_TRACKING] section:

ENABLE = YES;

DIRECT_INSERT = YES;

PHYSICAL_TABLE_NAME = “Oracle Analytics Usage”.”Catalog”.”dbo”.”S_NQ_ACCT”;

CONNECTION_POOL = “Oracle Analytics Usage”.”Usage Tracking Writer Connection Pool”;

4. Save the file. Once done, restart BI Services from Enterprise Manager using weblogic credentials.

5. Once done, login to OBIEE Analytics to run a couple of reports and check from either of the following to make sure OBIEE Usage Tracking is working:

6. Run a report from Usage Tracking subject area to check these logs have been updated.

7. Run a simple query in OBIW schema on table S_NQ_ACCT to make sure these logs are being updated.

 

]]>
https://blogs.perficient.com/2018/10/03/usage-tracking-obiee-12c/feed/ 4 231907
Configuring and Integrating Google Maps into OBIEE 11g https://blogs.perficient.com/2017/12/07/configuring-and-integrating-google-maps-into-obiee-11g/ https://blogs.perficient.com/2017/12/07/configuring-and-integrating-google-maps-into-obiee-11g/#respond Thu, 07 Dec 2017 15:05:48 +0000 https://blogs.perficient.com/oracle/?p=10755

Introduction:

When Oracle Business Intelligence is installed, functionality for users to see maps that display data is also installed. Before users can see maps in analyses and dashboards, one must understand the system requirements, specify layers and maps, and configure the metadata. This post will explain the steps to configure mapping and spatial information for map views in Oracle Business Intelligence. This also gives business users a never before experience of analyzing data in spatial format, thus taking the interaction level with OBIEE on a different level, altogether.

Concept(s):

  • Oracle MapViewer is a J2EE service and it serves as an engine for rendering maps using spatial data managed by Oracle Spatial. MapViewer is installed as part of Oracle BI EE and deployed in the same domain as Oracle BI EE on the web application server.
  • MapViewer is designed to integrate with Location-Based services and applications.
  • NAVTEQ is one provider of this spatial data to Oracle customers, which can be downloaded from the Oracle Technology Network. This spatial data and any other spatial metadata, including themes and styles, must be stored in an Oracle Database (10g or later) to be accessed by Oracle MapViewer for display in map views.
  • RCU schema can also be used to store spatial data provided that it is an Oracle DB.
  • Terms and Conditions of Use: http://elocation.oracle.com/elocation/legal.html

Basic Architecture for MAP views:

Applies to:

  • Business Intelligence Server Enterprise Edition – Version 11.1.1.3.0 [1905] and later
  • Business Intelligence Suite Enterprise Edition – Version 11.1.1.3.0 [1905] and later
  • Oracle Fusion Middleware MapViewer – Version 11.1.1.4.0 and later
  • Any platform
  • Only OBIEE Administrators must follow this document

To implement, we need to follow the below mentioned steps in the given order:

Step 1: Creation of World Sample Demo Schema

  1. Download the spatial schema provided by NAVTEQ from the following location (world sample data bundle) : http://www.oracle.com/technetwork/database/options/spatialandgraph/downloads/navteq-data-download-168399.html

 

  1. Log in to the Oracle database as system admin user and create the world_sample database user/schema: CREATE USER world_sample IDENTIFIED BY world_sample DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON USERS.

 

  1. Grant privileges: GRANT CONNECT, RESOURCE, CREATE TABLE, DBA TO world_sample IDENTIFIED BY world_sample.

 

  1. To begin, run the sql script (after unzipping the downloaded file) in Sqlplus session. Exit the Sqlplus session after the script has successfully concluded. Check that file = “filename.dmp” is same in the unzipped folder. If not edit the file as below with correct name. host imp world_sample/world_sample file=world_sample2010.dmp log=world_sample.log full=y

 

  1. From the unzipped folder place the dmp to a location in the server. This is a database dump file exported from an Oracle database.

 

  1. Open a command window, change the directory to the location of world_sample.dmp, and use the following command to import the data into user world_sample: imp world_sample/world_sample file=world_sample2010.dmp full=y ignore=y

 

  1. During import the following messages should be displayed:

 

  1. Make sure the world_sample schema has loaded successfully

NOTE: This world_sample schema is created ONLY for the purpose of storing spatial data. This data is not supposed to be used by answers/analysis for reporting purpose. So for converting data into Maps within reports another database/schema (DWH) must be there from where data is fetched into the reports. DWH schema should be entirely different from world_sample.

Step 2: Creation of Dummy DWH Schema

  1. To create a dummy DWH schema, execute the following script using any Admin user. CREATE USER obieemap IDENTIFIED BY obieemap DEFAULT TABLESPACE USERS. So here OBIEEMAP would be considered as DWH schema.
  2. Grant privileges to the obieemap user. Use the following script for reference: GRANT CONNECT, RESOURCE, CREATE VIEW TO obieemap IDENTIFIED BY obieemap

 

  1. Copy the dump file http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/bi1116/obiee_maps/files/obieemap.dmp to a particular location in the server.

 

  1. Open a command window, change the directory to the location of obieemap.dmp, and use the following command to import the OBI data into user obieemap: imp obieemap/obieemap file=obieemap.dmp full=y ignore=y

 

  1. Confirm that the following tables have been imported with data.

  1. Download the sample rpd from http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/bi1116/obiee_maps/files/OBIEEMAP.rpd and merge with the current rpd deployed to the server. The following physical, BMM and presentation layers will be imported.

NOTE: Remember, creation of OBIEEMAP schema during setting up Map integration is NOT mandatory as a DWH schema would already be in place in an existing environment. Only the data-points (e.g. City or State Code etc) by which spatial data and information from data warehouse are linked should be in SAME format i.e. data-types, format of the values, case sensitivity should be identical. Here in this document, this schema has been created for the sole purpose of providing a demo the developers on how to set up the integration

Step 3: Creation of MAP viewer data source

  1. Open a browser and enter the following URL: http://host:port/mapviewer. Click the Admin link in the upper right corner to open the Login screen.

  1. Log-in as an Administrator.

  1. Select Management > Configuration to open the Map Viewer XML configuration file inside a text area. Scroll all the way down to the end of the file to find the sample Map Viewer data source definition: “map_data_source name=”. Make sure to put the same database credentials as world_sample schema and put a ‘!’ sign prefixed to the password as shown below. Once the entire details have been entered click on Save button and see the confirmation message at the top.

  1. Click on Save & Restart button. Map Viewer will restart, reload this configuration file, and the world_sample data source will be created. If it doesn’t restart after clicking on this button (a message pops op saying it can’t be restarted) then go to EM and restart all BI services.

  1. In existing Data sources Tab within map-viewer an entry with the name “WORLD_MAP” will be added.

 

  1. Go to Create Tile Layer -> Select Google Map from dropdown as the map type -> Give a name of the tile (such as GMAP_WORLD)-> Select WORLD_MAP as Data Source -> enter the following details as shown below and click on submit. Please note that in Key attribute one may enter ‘not needed (v3)’. In that case whenever a map is shown to the user within OBIEE a popup will be thrown asking to get the API code for Google map. One can generate the API following the instructions provided in the URL https://developers.google.com/maps/documentation/javascript/tutorial corresponding to a Google mail id and enter the same API in this Key attribute value. In that case, no popup will be generated.

  1. A new map tile layer will be generated under Manage Tile Layers

  1. Select the map tile, click on ‘View Map/Manage Tiles’ button. The click on ‘Show Map’ button again to see if the map works properly. If the API code is not entered as per mentioned in point number 6, a pop up message will be displayed as said earlier.

  1. Return to the previous page and click on Bring Online button. See for the confirmation message being displayed.

  1. Map viewer data-source is created successfully.

Step 4: Integrating MAP with OBIEE subject area

  1. Login to OBIEE as an administrative user -> go to Administration link at the top right hand corner -> click on Manage Map Data.

  1. Under Layers tab click on Import Layer button at the right.

  1. Select all the necessary Available layers under the WORLD_MAP datasource/ GMAP_WORLD map and click on OK. Here all of the available layers have been selected.

  1. Once all the layers have been imported successfully follow the same steps for importing Background Maps and Images as well.

  1. Once all the layers have been imported select a particular layer (M_STATES_ABRV here) and click on Edit link

  1. Now under Edit Layers click on the ‘+’ i.e. add BI Key Column link as shown.

  1. Select the OBIEE Map subject area (that stores the BIDW data: Step 2 point 6).

  1. Select the State Column as shown. Remember here we are editing M_STATES_ABRV layer and thus we are mapping state column to this. If we would have mapped any layer specific to City code then we would have mapped the City column shown here. Also a very important point needs to be verified: the data type for these matching columns should be identical in both the databases. The DWH and spatial database. Also the data value should be same for lookup as well.

Now, the layer is mapped to a BI column. Like this all the layers could be mapped to BI columns as per requirement.

  1. Click on Sample Data under BI Key and it should return some value such as ‘OK’ or ‘NY’ or something. Shouldn’t be blank. Showing some value indicates that the integration is successful. Click on OK. The layer is now linked to this BI column.

  1. Go back to the Background Maps Tab, select the already imported Map (GMAP_WORLD here) and click on Edit link.

  1. Initially there won’t be any entries under Interactive BI Layers and Feature Layers Click on the ‘+’ sign as shown, select the necessary layers (here M_STATES_ABRV) and select a zoom level. The preview will be shown at the right hand panel. Once happy with the zoom level click on OK.

Step 5: Creating analysis and viewing maps

  1. Create a new analysis using OBIEEMAP subject area as shown. Drag the State and Dollars column as shown.

  1. Go to results tab. Data will be displayed as shown below. Click on Add View link -> Select Map from the dropdown.

  1. A Map featuring states will be displayed. Hovering over the states within the Map will show Dollars data correctly. As shown, within tabular view for State ‘NE’ Dollar amount is: $1862113. In Maps as well we can see the same amount of data when we hover on NE state.

  1. Click on New –> ‘Color Fill’ on the map View and select ‘STATE_ABRV’

  1. Select required color from the window and check the check-box ‘Allow Dashboard users to edit Thresholds’.

  1. The map is now updated with Quartile colors.

Assumption(s)/Note(s):

  • NAVTEQ data dump provided by Oracle has data specific for specific countries. See : http://www.oracle.com/technetwork/database/options/spatialandgraph/downloads/navteq-data-download-168399.html . If any other country is needed to be shown within the report maps then contact Oracle for the same.
  • As of now we have tried this on Oracle (Spatial) to Oracle (DWH) database connectivity. As we know spatial data can only reside in Oracle database, Oracle to Other database (such as SQL Server 2008 R2 etc) hasn’t been tried yet. Once done we will remove this constraint as well.
  • Oracle (Spatial) to SQL Server (DWH) is under progress.
  • On certain WLS domains one may see errors when trying to preview tile layers (500 – internal server error). To fix this issue, modify the weblogic.xml descriptor file found in $BIEEHOME/Oracle_BI1\bifoundation\jee\mapviewer.ear\web.war\WEB-INF folder, and un-comment the entry for the jstl 1.2 library as shown below (note the jsf section should remain commented-out):

<library-ref>

<library-name>jstl</library-name>

<specification-version>1.2</specification-version>

</library-ref>

like:

<!–

<library-ref>

<library-name>jsf</library-name>

<specification-version>2.0</specification-version>

<exact-match>false</exact-match>

</library-ref>

— >

 

]]>
https://blogs.perficient.com/2017/12/07/configuring-and-integrating-google-maps-into-obiee-11g/feed/ 0 206120
Multi-User Development Set Up Using OBIEE Administration Tool https://blogs.perficient.com/2017/12/06/multi-user-development-set-up-using-obiee-administration-tool/ https://blogs.perficient.com/2017/12/06/multi-user-development-set-up-using-obiee-administration-tool/#respond Wed, 06 Dec 2017 22:59:34 +0000 https://blogs.perficient.com/oracle/?p=10667

Introduction

Multi-user development (MUD) provides a mechanism for concurrent development on overlapping code bases. Oracle Business Intelligence provides a MUD environment that manages subsets of metadata, in addition to multiple users, by providing a built-in versioning system for repository development. By default, the Oracle BI repository development environment is not set up for multiple users. However, online editing makes it possible for multiple developers to work simultaneously, though this may not be an efficient methodology, and can result in conflicts, because developers can potentially overwrite each other’s work. That’s when MUD is useful to the developers to work simultaneously on a single RPD.

The Oracle BI repository development process adheres to the merge and reconciliation technique to manage concurrent development. Most of the merging process is automatic, and changes do not conflict. When they do developers need to take decision which change to keep and what to neglect. Developers check out the file and make changes locally. Changes are then merged into a final, merged repository (rpd) file.

Concept:

The MUD environment is done by creating Projects in the repository file in the BI Administration Tool and then copying this repository file to a shared network directory. Developers can check out projects, make changes, and then merge the changes into the master repository. The entire concept of MUD (Multi User Development) revolves around objects called as Projects. Projects are subsets of objects based on logical fact table/ subject areas that can be assigned to individual users. So, the idea is to assign different projects to different users. Also, each of these projects can contain one or more Logical Fact tables. As soon as a logical fact table is included all the other dependent objects would automatically be part of the project. This post will describe the entire process of how to create the projects in a repository, to save the repository file in a shared location, and the remaining steps of working in MUD environment for multiple users/developers. For that let’s assume there is a master repository on which multiple developers will be working.

To set up MUD, we need to follow the below mentioned steps:

Step 1: Open the master RPD offline and go to Manage -> Projects

 

Step 2: As the project manager window pops up click on Action -> New Project.

 

Step 3: Click on ‘Subject Area’ radio button in Group Facts by option and name the project (e.g. HR_WORKFORCE_PROFILE). Double click on the subject area which needs to be included in this project.

 

Step 4: Similarly select necessary Application roles from the left to right panel.

 

Step 5: Similarly add corresponding Users, Variables, Initialization Blocks, Presentation (Subject Areas) to the project and click on OK.

 

Step 6: See the project being created.

Step 7: Create another project HR_COMPENSATION following similar steps. Like this multiple projects can be created for different subject areas. It is best to create projects driven by subject areas rather than anything else.

Step 8: Move the master RPD to a shared drive location in the network.

Step 9: Open Oracle BI Administration Client from a machine within the network and go to Tools -> Options.

Step 10: Put the path of the shared directory (where the master RPD is kept) as shown in the picture below, put full name of the user accessing it and click on OK. MUD set up is now complete.

Step 11: To start working on MUD, click on File -> Multiuser -> Checkout.

Step 12: Enter the repository password and click on OK.

Step 13: It will give you a message Opening Repository “repository name”……Loading Objects.

Step 14: Select the project (one or more) one would be working upon and click on OK.

Step 15: Save the checked out portion of the rpd into the repository directory of the oracle bi client / server as shown.

Note: The rpd has to be saved in repository directory and not any other location (such as desktop etc.). Or else this portion can not be published to the network.

Step 16: The saved part of the rpd opens with only a single subject area and its BMM components.

Step 17: Create a new column in the Time Presentation folder named Date 2.

Step 18: Select Refresh Subset.

Note: This process refreshes a developer’s checked out repository with any changes that have been made and checked in by other developers since the developer checked out his or her own version from the main RPD. This is a very important step in the MUD process. If not performed, there is a possibility that the changes checked in by other developers will be lost.

Step 19: Click Ok on Refresh is not required because no changes have been checked in by any other developer.

Step 20: Click on Multiuser -> Publish to Network.

Step 21: Add some comment describing the changes that the user has made (audit purpose) and click on OK.

Step 22: It gives a message Opening Repository ….. Loading Objects.

Step 23: Once more check out the same project from the master repository and check that the change is available.

Step 24: The above mentioned steps are appropriate only for the cases when two or more users are checking out independent subject areas/ projects. That means when there is no common piece of objects between two or more checked out versions of the same master RPD there will not be any issue while refreshing the subset / publishing to the network. There can be another scenario where Developers Work on the Same Subject Areas. Suppose,

  • Developer 1 checks out HR_WORKFORCE_PROFILE project
  • Developer 2 also checks out HR_WORKFORCE_PROFILE project (before Developer 1 publishes his changes to the network).
  • Developer 1 modifies an object in HR_WORKFORCE_PROFILE subject area.

  • Developer 1 refreshes subset. It shows refresh is not required.

  • Developer 1 publishes to network.

  • In the meantime developer 2 updates an object within the same subject area.

  • Developer 2 selects Refresh Subset and the Merge Repository Wizard window appears. Decisions on which changes to keep have to be made at this point before the developer can proceed.

  • Select “Modified” radio button after selecting ‘By Property’ from the decision column to keep the changes made by Developer2 (Age Band Minimum Months_Updated_By_Developer2)

Note: There are three windows at the bottom of the Merge Repository Wizard Window.

  1. Original Repository: Shows the object name in the repository at the time of check out
  2. Modified Repository: Shows the change made to the repository by this developer
  3. Current Repository: Shows the changes in the current repository after refresh (contains the changes published by Developer 1)
  • For the object modified by Developer 1 select “Current” to keep the changes. Click on Finish and check consistency.

  • Publish to Network.

  • Changes from the two developers will now be available in the Repository. To verify, check out the project one more time and confirm.

Migrating MUD Repository Online: This process should be performed by the Lead Developer or a gate keeper.

  1. Copy the MUD repository to a staging folder.
  2. Rename the MUD RPD to the online RPD name.
  3. Upload the RPD to the online folder using the Enterprise manager.

 

 

 

]]>
https://blogs.perficient.com/2017/12/06/multi-user-development-set-up-using-obiee-administration-tool/feed/ 0 206119