Wednesday, March 1, 2017

OBIEE 12C RPD Merge

Problem statement:

How to do rpd merging for existing Bi-Apps modules with the new module?
Eg: If we have an existing environment dashboards/reports with Bi-Apps modules like Finance, Proc & Spend, and if we have to add new module dashboard/report like Manufacturing Analytics.
As the environment is the existing environment we already have the rpd with Finance, Proc&Spend metadata in the rpd. If we want to add Manufacturing metadata to the existing rpd follow the below solution.
For merging the rpd we can follow the below processes.
1. Using the Merge option available in Admin Tool.
2. Manually doing the rpd merging

Solution:

We have the below 3 rpd’s available.
RPD-1: This is the OOTB RPD which will come after installation/configuration of BI-Apps.
RPD-2: This is the RPD which contains only the metadata for Manufacturing Analytics which is extracted from RPD-1.
RPD-3: This is the existing RPD which has Finance, Proc &Spend metadata.
For merging we have to add/merge the RPD-2 metadata with the RPD-3. As an output we will have the RPD with Finance , Proc & spend and Manufacturing modules metadata in single RPD.

1. Using the Merge option available in Admin Tool:

As a general scenario to merge two rpd we have use the merge option.
To use the merge option we have to create one new empty/dummy rpd as shown below.
obiee 12c rpd merge option
oracle bi admin tool
oracle bi administration tool
rpd merge repository wizard
When we use the merge option we will face below issues
It will take time to open next step
rpd merge not responding screen
There is a long list to define the merge strategy
define merge strategy
Once we gave the merge strategy the rpd is failing with below error.
merge rpd error
The merge option most of the times does not working for the rpd which is of bigger size. So we can follow the manual process to merge. This is not a oracle standard but it’s just a work around.

Manually doing the rpd merging.

If we are doing it manually we need to follow the steps below.
1. Physical layer changes
2. BMM layer changes
3. Presentation layer changes
4. Adding required variables/initialization blocks.
Step-1: Working in Physical Layer
In this below is the steps followed.
1. Finding the new tables which is only related to Manufacturing and not presented in existing Finance and P&S modules.
manual rpd merge physical layer
Create joins between the facts and dimension
joints between facts and dimensions
2. If the table is common to Finance, P&S and Manufacturing analytics then we need to check the joins between facts and dimensions.
joints in facts and dimensions
Steps-2 : Working in BMM layer.
After completing the merging in the Physical layer we need to merge the Object in BMM layer. So to do that we have manually find out the logical tables and Hierarchies which is there for the manufacturing. After copying the logical tables we need to check the LTS and Hierarchy for the logical dimension table.
Copying the dimension tables:
dimension table
Checking related LTS/joins:
LTS joints table
Copying the related Hierarchies for the dimensions:
dimensions
Step-3:
After completing the changes in Physical and BMM layer we need to add the subject areas related to Manufacturing module to Finance , P&S Modules merged RPD.
Copying related subject areas for Manufacturing Module:
Step-4
If any of the dependent variables are there we need to create that variables in merging RPD.
dependent variables
Once this is done we need to check the consistency for error. This will show the error if any of the table or column is not mapped or joined properly.
Once every thing is done we need to deploy the rpd and the check the data in the reports/dashboards.

Thursday, February 23, 2017

OBIEE 12 Admin tool OCI Connectivity

















Connecting to the Admin tool Online : Find the Port

netstat -plnt

Find the nqsserver ports --- 9514 was the candidate for OBIEE RPD Connectivty online

tcp        0      0 :::9514                     :::*                        LISTEN      24868/nqsserver
tcp        0      0 :::9515                     :::*                        LISTEN      24868/nqsserver


Anyway Moving on TNS Setup.......

12c is using a local TNS in Online Mode and Offline Mode and not using the TNS_ADMIN on a windows machine.

However you can view the data in the tables within the RPD( Weird huh) as it using the network tnsnames.ora


Anyway goto the OBIEE Administration tool installation location and paste a tnsnames.ora file.

Steps: goto the OBIEE Administration tool installation location

[OBIEE Installation Directory]\Oracle_Home\network

Create a Directory called admin

Then within that paste a valid tnsnames.ora file.

Restart the BI Administration tool and everything works as it should ie creating tables from DB.

ODI 12C and OBIEE 12C Integration with SOAP WSDL

I have attached a link to the step by step instructions at the end of this post on how to integrate SOAP WSDL from ODI to OBIEE so you can start ibots or do various other tasks within OBIEE from ODI without the need of a dedicated ODI agent on the OBIEE Server. This solution was developed in 12c.




Business Case

One of our customers wanted OBIEE reports to be mailed after the completion of a data load in ODI. We know there are different methods of achieving this. But we did not want to deploy an ODI Agent onto the OBIEE Server in the Corporate Environment.
That is the need and here is the solution we came up with – Using WSDL & SOAP approach to build bridge between the two most popular Oracle technologies in Data Warehousing world.

Solution Technology


We used the two following technologies that are made available as part of ODI and OBIEE while building the solution
WSDL (Web Service Definition Language) is often used in combination with SOAP and an XML Schema to provide Web services over the Internet. A client program connecting to a Web service can read the WSDL file to determine what operations are available on the server. Any special datatypes used are embedded in the WSDL file in the form of XML Schema. 
SOAP (Simple Object Access Protocol) is a protocol specification for exchanging structured information in the implementation of web services in computer networks. It uses XML Information Set for its message format, and relies on application layer protocols, most often Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission

Solution Overview

The solution enables us from ODI to remotely login to OBIEE and initiate an iBot and log out. Following are the high level steps

   1.     Use OdiInvokeWebService to login to OBIEE with SOAPImplementation URL  
   2.     The above call creates a response file with the OBIEE Session Id
   3.     Use a Simple mapping to move this file content into a database table
   4.     Create a variable with sub string and in string operations to extract the OBIEE session id
   5.     Use OdiInvokeWebService to initiate an iBot with the above session id and iBot name to        mail the required report to recipients
   6.     Use OdiInvokeWebService with the same session id to log off from OBIEE

We have created an ODI package to orchestrate the above steps which executes the above steps in a seamless chain.

Deploying/upload rpd in OBIEE 12.2.1.0 / 12c server

Unlike in 11g, em does not have any option for deployments of rpd, it is all now uploading repository to a specific service instance. we should be using weblogic scripting command “uploadrpd’ to upload repository to Oracle BI Server.
You execute the utility through a launcher script, data-model-cmd.sh on UNIX and data-model-cmd.cmd on Windows. You can find the launcher script at the following location:
<Oracle_Home>/user_projects/domains/bi/bitools/bin
>wlst.cmd
Syntax:
uploadrpd -I <RPDname> [-W <RPDpwd>] -SI <service_instance> -U <cred_username> [-P <cred_password>] [-S <hostname>] [-N <port_number>] [-SSL] [-H]

  • I specifies the name of the repository that you want to upload.
  • W is the repository’s password. If you do not supply the password, then you will be prompted for the password when the command is run. For security purposes, Oracle recommends that you include a password in the command only if you are using automated scripting to run the command.
  • SI specifies the name of the service instance.
  • U specifies a valid user’s name to be used for Oracle BI EE authentication.
  • P specifies the password corresponding to the user’s name that you specified for U. If you do not supply the password, then you will be prompted for the password when the command is run. For security purposes, Oracle recommends that you include a password in the command only if you are using automated scripting to run the command.
  • S specifies the Oracle BI EE host name. Only include this option when you are running the command from a client installation.
  • N specifies the Oracle BI EE port number. Only include this option when you are running the command from a client installation.
  • SSL specifies to use SSL to connect to the WebLogic Server to run the command. Only include this option when you are running the command from a client installation.
  • H displays the usage information and exits the command.
Example: data-model-cmd.sh uploadrpd -I <RepositoryName.rpd> -SI ssi -U weblogic -S server.example.com -N 9502 -SSL
uploadrpd
Note: Using “uploadrpd”, we can upload an Oracle BI repository in RPD format and cannot upload a repository composed of MDS XML documents.
The online rpd in the server is with name liverpd.rpd_n (n is integer with increased number) and can be found at: <Oracle_Home>\user_projects\domains\bi\bidata\service_instances\ssi\metadata\datamodel\customizations
You can log into analytics and see the subject area contents of new rpd with changes affected.
You can also download current online rpd from server which acts as offline rpd on which you will be developing your changes or for any diagnose purpose
syntax: downloadrpd -O RPDname [-W RPDpwd] -SI service_instance -U cred_username [-P cred_password] [-S hostname] [-N port_number] [-SSL] [-H]
downloadrpd
rpd will be saved under the same location where you executed above command..

Thursday, January 19, 2017

Unable to login as user after LDAP configuration in OBIEE 12c Weblogic Console

Problem Statement:

When creating the Agents in OBIEE 12C, the agents get created successfully but while running the Agents as recipients, they get failed with the message “The user does not have impersonation privilege”.
In OBIEE 11G the LDAP was configured at rpd level and the impersonation and Agents were working fine with no flaws but, when the same was implemented in OBIEE 12c as a part of upgradation from OBIEE 11G to OBIEE 12C we are facing the impersonation problem, which is leading to the Agents failure, nor we can login in as the users apart from Weblogic and Administrator.
Applied Solution: As analyzed, the cause for the above error would be the LDAP configuration in rpd. OBIEE 12c LDAP should be configured in console unlike 11g at rpd level.
Hence, to overcome this we tried implementing LDAP at Console level rather than at rpd level and followed the steps as mentioned in the oracle document to create the LDAP Authentication in weblogic console. The steps followed are as below:
In Providers added a new Provider as ADAuthenticator:
For ADAuthenticator changed the control Flag: SUFFICIENT
Configured Connection details:
Configured the users details:
Configured the group details:
Statics Groups and Dynamic Groups:
In General:

For ‘’Default Authenticator’’ provider ‘’Control Flag’’ changed to OPTIONAL.
After configuring we are able to see the user in ‘Users and Groups’
In EM:
We had configured the Identity store provider:

In EM we are able to see the users to add to the Application roles:
The user’s list was visible in the console and EM. After restarting the server when we tried to login to Analytics page with the users mentioned above we are still facing Authentication error which is avoiding us to login and we are unable to run the Agents as well.
We further tested whether this issue is related to a specific user or to all the users and realized that this was with all the users, and we also checked that the password for the users should not contain any special character.
After checking the logs, we identified that there were some inti blocks for Authorization where user is getting the groups from E-Business Suite DB which were to disable and re-deploy the rpd, but still the issue continues.
Further we assigned the Global Admin role to one of the LDAP user and tried to login to EM which failed again.
We confirmed that all the LDAP configuration and the related variables were disabled from the rpd level. We tried to login by changing the group membership searching to limited and level to 5, but still we are facing the same issue.
As suggested by oracle, the below parameters were misconfigured and we re-configured it but the issue still remains:
principal – cn=jsmith,cn=users,dc=us,dc=xyzcorp,dc=com.
Group Base DN:- DC=vm,DC=oracle,DC=com
User Base DN:- cn=users,DC=vm,DC=oracle,DC=com