Thursday, 21 July 2016

java.lang.RuntimeException: Missing resource: USER_NOT_PROVISIONED_MSG

This can be useful tip to many people who deal with FCM .

Administrator or a developer will receive null pointer exception in the FCM/ARM/SDM in EPM 11.1.2.4.

Null pointer can be of many reasons but the log will give us more information on this .

[2016-07-21T02:10:23.044-05:00] [FinancialClose0] [ERROR] [] [oracle.apps.epm.sdm.ui] [tid: 11] [userId: hypadmin] [ecid: 00i_fPBLomEFw00Fzzw0w00001m00000nN,0:1] [APP: SDM#11.1.2.0] [SRC_CLASS: oracle.apps.epm.fcm.common.ui.bean.common.CommonDialogBean] [SRC_METHOD: invokeErrorMessagebox] Missing resource: USER_NOT_PROVISIONED_MSG[[

java.lang.RuntimeException: Missing resource: USER_NOT_PROVISIONED_MSG

just some provisions were missing for the user to access the application .

Provide the necessary provisions to the user to make this work .




Wednesday, 18 May 2016

Oracle Data Visualization Desktop (DvD) - For Visual Lovers

Oracle Data Visualization Desktop Tool
 By introducing Visual Analyzer (VA) first into BICS, followed by OBIEE 12c, Oracle DVCS and now in Oracle Data Visualization Desktop (DvD) which was much talked about tool in Oracle’s Open World (2015); Oracle has made it abundantly clear that it is aggressively pushing VA for their cloud apps and for their premise tools. VA has an advantage of capturing data from wider range of sources and has a strong community to provide support when compared to Tableau.
Few points when comparing Tableau with Oracle DvD:
  • Tableau as a tool is heavy (and in a way advantageous since reports/work can be published online, but as of now no publish-to-online feature in Oracle DvD.
  • Registration not required in case of Oracle DVD.
  • Compared to Tableau there are limited support resources available for Oracle DvD however this scenario will gradually change.

So who can use Oracle DvD’s VA:-
  • Existing OBI 11g customers:
Can upgrade to OBIEE 11.1.1.9.0 and above to use VA (as a separate licensed tool with Oracle Data Visualization Desktop)
  • New/Existing OBI 12c customers:
VA is included with OBI 12c installation (however licensing cost will be extra if it’s upgraded version)
  • SME’s:
Can opt for cloud based Oracle BICS (if data storage is an issue), or Oracle Data Visualization Desktop having features like data mashups and ability to connect to several big data providers)
  • Banks/Public Sector Units:
As usual they traditionally implement the on-premise version of OBI (security being the only reason). However top business users can get quick visualizations using the VA

Check out the reasons below and know more of its benefits:-
 -->For a beginner it’s very easy to use this tool, some key features here are:
  • Easy installation
   When compared with on premise OBIEE tools the Installation of Oracle DV Desktop takes hardly () few minutes (6 steps only).

  • No major hardware needed
    Can be downloaded, installed, and uninstalled any time. (Needs Win-7 SP1, Win-8.1, Win-10)
  • No admin tasks required
   There is no post installation configuration steps required, once installed it’s easy to create Visual Analyzer project. (If R functionality is needed then an additional step of installing R and downloading packages is required)

--> For an experienced analytics user, some key features here are:
  • Stories can be shared
    Business users can present their stories/work using the import/export feature (exports the projects as .dva)

  • Connection to wide range of data sources
    Users can easily connect to wide range of data sources including existing OBIEE on premise (11.1.1.9.0 or above)

  • Usage of custom R scripts is possible
    Similar to 'Embedded R' feature in OBIEE 12c (on premise) it allows for real time analysis, a possibility due to R integration feature (requires additional installation of 'Advanced Analytics')
(Oracle Endeca, users watch out for it)


  • ‘rintnstall.log’ provides info if any issues occurring during installing Oracle R Distribution
Ex:
  • Log files available
    BI Server log and query logs are available on same lines of that for on premise OBIEE.
   (Location:  \Users\<user_name>\AppData\Local\Temp\DVDesktop\logs\OBIS)
Exploring Oracle Data Visualization Desktop
Creating some visualization using the tool was pretty straightforward.
A hint to new users –
It is necessary to have the END RESULT / FINAL PICTURE in mind regarding the sort of visualizations required to correctly depict the organizations current scenario.
Using sample data (create data of my own), I have created an analytics report related to back-end office (call center), having information like incidents/events and recorded/resolved, feedback.

Feature like ‘Insights’ provide easy navigation like ability which enables users to click and move to next step/page in the visualization. Menu provides edit feature to add the name of insight and allows mentioning any textual data for explanatory purpose.

Users can add all the insights under one Step for providing multiple visualizations under one page.
Installing Advance Analytics allows using of features like ‘Adding Clusters’ and ‘Adding Outliers’.  Users can also export the data to excel.

Post installation of R packages, one can use custom R functions to create some sentiment/text-frequency analysis.
Sample scripts for creating Sentimental Analysis
The functions used are enclosed in xml based contents and can be found in location /OracleBI/advanced_analytics/script_repository folder

  • Some basic Visual Analyzer styled reports created using the dummy data prepared by me.


Quick advice (‘el av’iso):
There is no easy answer available as to which tool should organizations opt for, since business requirements may differ, however you can follow some of these steps to reach a conclusion –
  1. Its best to first battle out for the answers by having frequent brainstorming sessions in your meeting rooms.
  2. Analyze the data internally, in order to determine as to what level of information the end users need from the existing system.
  3. Keep room for flexibility. Remember to always keep your current environment open to any sort of enhancements for future.
The industry is currently flooded with wide range of visual analysis tools (and several are still in beta mode).  Analytics field is a highly dynamic industry, with new features being added frequently to empower the tools. Also do watch out for tools like Power BI and Domo which has already created a lot of buzz.

- Aniket Handoo
(These opinions are my own and not the views of my company)

Friday, 29 April 2016

Querying AppRoles for a user/member in OBIEE 11g

I have been always asked by many clients to get the list of application roles for a member in the OBIEE application .

WLST doesnt have this facility , it can returns only the members for a specific application roles passed to the getAppRoleMemebers() but it doesn't have any funciton/definition (in jython terms) to get the application roles assigned to a user/member

I dont know how OBIEE administrators handle this issue , may be they have already written some code either in java, python, jython,VB, shell, etc....

on a large scale OBIEE application if the environment contains 100 roles with more than 500 users distributed to those 100 roles, it would be a pain to see the relation between a member to his/her app roles .

As i said we could have many techniques in achieving this .....well  i have only one for now :-)

I use a simple python script, i hate detailing with huge set of libs and jars, my bet is with python

All the modern linux machines will accompany python . just type python --verion in the shell prompt and you will have the verison . Windows wont have python by default and has to be downloaded from http://Python.org

The below script will work on the standard version Python 2.7 , i have not tested it on 3.5.

# Query AppRoles for Members
# Written by Naga 
# Works only with Python 2.7 version
# Uses system-jazn-data.xml file in the weblogic domain.

from xml.dom.minidom import parse
import xml.dom.minidom
import sys

# Main class definition
def main():
  print "%-20s %-20s" % ( "MEMBERS", "ROLES")
  # Arguments to be looped
  for c in sys.argv:  # use the parse() function to load and parse an XML file
    # Parsing the jazn file
    doc = xml.dom.minidom.parse("C:\Users\Administrator\workspace\Python\src\system-jazn-data.xml");
    collection = doc.documentElement
    # Getting only the app-roles
    for roles in collection.getElementsByTagName("app-role"):
     # Getting the role names
     rolename = roles.getElementsByTagName('name')[0]
     # Getting the role members
     members = roles.getElementsByTagName("member")
     for n in members:
       membername = n.getElementsByTagName('name')[0]
       # Validating the condition
       if membername.childNodes[0].data == c :
         print "%-20s %-20s \n" % (membername.childNodes[0].data , rolename.childNodes[0].data)  

if __name__ == "__main__":
  main();

The key for this script to run or to function properly is the system-jazn-data.xml which holds the information for the app-stripe , roles , members etc....

The script will only query the xml file but will not do any changes to it . 

Lets save it as appmembers.py in the scripts folder. now run the script in the command line .



So if you see the script will parse the xml file and give us the valid roles of the user name prodney .

Please note that this is a case sensitive query . Prodney and prodney both are different .

You can use this same script both on Linux and Windows without changing anything.

You can customize the script to extract the whole user for roles and push them to database for better maintenance and control on your security roles .

If you guys feel there is a more better way to show the roles for a member then please let me know . I am open to learn new things :-)








Wednesday, 30 March 2016

HFM 11.1.2.4.200 Copy Application in a new way

In 11.1.2.3 HFM  we have the great copy application which always saved us from the HFM migrations . but in 11.1.2.4 to remove the dependency of the Windows O.S , Oracle has removed the utility for copying the applications .

but in the 11.1.2.4.200 patch oracle has provided a DB with GUI utility which will do the copy application very easily .

Let see how can we do this .

For this demo purpose we will have two VM's HFM1 and HFM2 running on same OS verion and same Database/EPM version .

Windows 2008 R2 OS
Oracle DB 11.2.0.4
EPM verison 11.1.2.4
Patchset 21225611

Just for the reference below are the screenshots for the EPM 11.1.2.4 HFM module.



















After the installation go ahead and apply the 21225611 patch as well . Please check the README document which has additional ADF patches , these are mandatory and need to be applied before this patch .


Start the services after all the configuration and patching is successful . Verify the version in the workspace .



Let utilize the sample apps that we get when we install the HFM client . go to the below directory 

for this exercise we will use the application COMM4DIM and COMM7DIM . copy the LCM files of these applications and place them in the import_export folder and unzip them .

Import the applications now suing shared services console through LCM 






So at this point our HFM1 server is ready with the application . 

Following all the steps to create the HFM2 server but don't create the application

Our goal is to migrate the HFM application from HFM1 to HFM2 server . 

Lets use the Import application utility in the Consolidation Administration provided in this version.



To activate the above feature we need to utilize a Package which we get as part of patch .


This DB package will be used to create DBLINK in the Destination DB pointing to the Source DB . 

Also this package needs to be executed in the HFM2 Database using the DB user used for HFM configuration.

HFM db user need to have the create database link grant to do the following.



Lets create the package in the destination database using the hfm user.


Once the package is created . Lets run the procedure to create the DBLINK.



Format:
begin
hfmutil_pkg.CreateDBLink('SRC_IP','SRC_PORT','SRC_USR','SRC_PWD','SRC_SID','DBLINKNAME');
end;

Example:
begin
hfmutil_pkg.CreateDBLink('10.0.2.15','1522','hyp','hyp','ORCL','HFM1_HFM2');
end;



As the DB Link is created , we are good to go with the import application.

launch the Consolidation Administration in the HFM2 server . If the DBlink is created properly then the  below screen should appear .


Click on import application after giving all the necessary parameters and check the status . 



Look for the status , it should be COMPLETED . Check the log (blue ribbon)

Go back to applications screens where you should see the COMM4DIM . Register the application to the cluster 



Open the application in the destination server . 


Some things to note:

  • If you are using filters in the import application phase , Make sure you dont give everything at once . If you have a lot of scenarios and years , all will not fit in and the import will fail . So choose the filters properly.
  • If the source application is a EPMA application , still the same process will apply but the application should be upgraded to EPMA after the process.
  • The import process fails if there is no free disk space or proper permissions . The log file will be giving all the required errors and warnings.
  • The HFMUTIL package is used for the import application process . So don't delete the Package after creating the DBLINK.



Please comment if you are having any issues while following the above process.