Thursday, August 20, 2015

WORKING THROUGH RPD PATCH FILES

Most of us work in RPD through Admin Tool only – Changes, BMM layer changes, Creation of Variables, Updating variables, etc and what not.
However, there is one thing very interesting which can expedite making small incremental changes in RPD and that is – Patching.
A Patch file is xml file generated from RPD. This xml file can be either of whole Repository or can be a small file of differences between two RPDs.
The second option entice me very much as I think this can be used in multiple scenarios.
Let me illustrate how to work on Patch files by giving one example. There can be multiple applications of this but that I would leave to my readers as food for though for now.
Imagine you have a RPD (BiCoach.RPD) that has variables which define the connection pool details.
Patch1

Patch2
Here we have created three static Repository variables that are used in connection pool physical layer.
Now the value of connection pools change very frequently as per your OBIEE Environment. i.e Different database name, userid, password for integration environment or production environment or so on. We are taking here example of small number of variables but this list can be huge depending on your RPD.
Lets create a quick small patch file that has only details of these variables.
1. Copy the same RPD and rename it as BiCoach_Dev.rpd
2. Modify the values of those 3 variables.
Patch3
3. Compare both the RPDs.
4. Create the Patch as mentioned. Save the file as ‘RPDDifference.xml
Patch4
5. This is how the created Patch file looks
Patch5
6. You might notice that for each element, there is specific id and uid is generated. This remains constant. However, for our exercise, we can delete id and uid for each of the variables but lets retain this.
7. Now, I am making change in this xml file and updating values as per my Integration Environment.
Patch6
8. Next Lets apply this patch in our original RPD – BiCoach.RPD.
Patch7
Patch8
9. Click Next. New RPD ‘BiCoach(1).RPD’ is created. Lets see our updated variables.
Patch9

This really offer multiple avenue for its application: be it for Support team or Others. I will let this for readers to explore.
Please continue to drop your emails/ suggestions. Till next time,
Happy Exploring!

RPD NOT OPENING IN ONLINE MODE

Opening RPD in online mode is the fastest way to make incremental changes in the already running OBIEE server. Though Oracle always recommend to deploy the RPD from EM, whenever there are large changes in the RPD, users can always resort to make online changes should the scope of change is less.
RPDNot1
However, it should be noted that making change online affects performance intermittently.
In this post, I will explain to troubleshoot scenarios when RPD is not opening in online mode. The error message says Repository can only be opened as Read-Only
RPDNot2
To resolve this:
RPDNot3
Open EM
  • Go to Capacity Management
  • Select the Performance Tab
  • Uncheck the “Disallow RPD Updates” checkbox
  • Apply the change and Restart the server
You are ready to make changes again in RPD in online mode

REFRESH GUIDS

In Oracle Business Intelligence 11g Release 1 (11.1.1), users are recognized by their global unique identifiers (GUIDs), not by their names. GUIDs are identifiers that are completely unique for a given user. Using GUIDs to identify users provides a higher level of security because it ensures that data and metadata is uniquely secured for a specific user, independent of the user name.
Wherever possible, secure access to data and metadata using application roles rather than individual users.
Refreshing GUIDs/ GUID Synchronization/ GUID regeneration
GUID refresh updates any metadata references to user GUIDs in the Oracle BI repository and Oracle BI Presentation Catalog. During the GUID refresh process, each user name is looked up in the identity store. Then, all metadata references to the GUID associated with that user name are replaced with the GUID in the identity store.
When?? If Oracle best practices are not observed and Oracle Business Intelligence repository data is migrated between systems that have different GUIDs for the same users, GUID refresh is required for the system to function. This is not a recommended practice, because it raises the risk that data and metadata secured to one user (for example, John Smith, who left the company two weeks ago) becomes accessible to another user (for example, John Smith, who joined last week). Using application roles wherever possible and using GUIDs consistently across the full development production lifecycle prevents this problem from occurring.

Refreshing User GUIDs

To refresh user GUIDs, perform the following steps on APPHOST1 and APPHOST2. Note that GUID refresh must occur with only one node operating at a time.
1.    Stop Oracle BI Server and Presentation Services on all nodes except where you are refreshing the user GUIDs. For example:
cd ORACLE_BASE/admin/instancen/bin
./opmnctl stopproc ias-component=coreapplication_obips1
./opmnctl stopproc ias-component=coreapplication_obis1
2.    Update the FMW_UPDATE_ROLE_AND_USER_REF_GUIDS parameter in NQSConfig.INI:
Open NQSConfig.INI for editing at:
ORACLE_INSTANCE/config/OracleBIServerComponent/coreapplication_obisn
3.    Locate the FMW_UPDATE_ROLE_AND_USER_REF_GUIDS parameter and set it to YES, as follows:
4.    FMW_UPDATE_ROLE_AND_USER_REF_GUIDS = YES;
5.    Save and close the file.
6.    Update the Catalog element in the instanceconfig.xml file:
Open instanceconfig.xml for editing at:
ORACLE_INSTANCE/config/OracleBIPresentationServicesComponent/coreapplication_obipsn
Locate the Catalog element and update it as follows:
<Catalog>
<UpgradeAndExit>false</UpgradeAndExit>
<UpdateAccountGUIDs>UpdateAndExit</UpdateAccountGUIDs>
</Catalog>
Save and close the file.
7.    On the node where you are refreshing the GUIDs, start the Oracle BI Server and Presentation Services using opmnctl:
cd ORACLE_BASE/admin/instancen/bin
./opmnctl startproc ias-component=coreapplication_obis1
8.     After you confirm that the Oracle BI Server is running, then start Presentation Services:
./opmnctl startproc ias-component=coreapplication_obips1
9.    Set the FMW_UPDATE_ROLE_AND_USER_REF_GUIDS parameter in NQSConfig.INI back to NO.
Important: You must perform this step to ensure that your system is secure.
10.    Update the Catalog element in instanceconfig.xml to remove the UpdateAccount GUIDs entry.
11.    Restart the Oracle Business Intelligence system components using opmnctl:
cd ORACLE_BASE/admin/instancen/bin
./opmnctl stopall
./opmnctl startall

CHANGING COMMA SEPARATOR

Let’s explore today something related to Locale settings in OBIEE 11g.
We have thousand separators in OBIEE:
Comma1
What if this comma(,) is to be replaced with underscore ( _ ) or any other symbol:
Open localedefinitions.xml. Usual path (\Middleware\Oracle_BI1\bifoundation\web\display)
Locate the below tag
<property name=”thousandsSeparator”>,</property>
Comma2
Replace comma with underscore
Comma3
Save the localedefinitions.xml and restart the services.
Run the same analysis.
Comma4
We are now having _ as separator.
Continue Exploring !

GROUPING VALUES IN PROMPT

Hi Friends,
Recently, we got a requirement to have grouping in the Dashboard prompts. I remember doing that few years back but thought to blog it as not many details are available. This is pretty easy stuff and should not take long for you to incorporate in your BI kitty.
Let’s say we have a Column ‘Day Name’. We would like to categorize our weekend (Saturday and Sunday) as Holiday so that if user selects ‘Holiday’, prompt will pass both Saturday and Sunday to the Report.
Now since we don’t have ‘Holiday’ included in our database, we are going to create a Group to achieve the same.
  • Create an analysis on that subject area and go to the Results tab. Click the icon with 3 blue dots and a star in the menu bar.
Group1
  • Create your group by choosing a Display Label (“Holiday“) and selecting the column and the value you want to put inside (Saturday and Sunday)
Group2
Group3
  • Expand the Selection Steps pane at the bottom of the screen and click on your group (Holiday) –>Save Group As… and save it under the subject area content folder.
Group4
  • In your Dashboard prompt add the same column, expend the Options and for Choice List Values select Specific Column Values, then click the Plus sign.
  • Add all the possible column values (all 7 days of the week in our case) from Column Values pane and add our group (Holiday) from Catalog pane.
Bi Coach Remarks: The usage of Groups in Prompts is only limited “Specific Custom Value” option only. Thus, the demerit of this option or the best place where Groups should be used is where the prompt values are supposed to remain static over the period of time. Else, all those changing values would have to be included in Selection. (Not the option that I would recommend)
Group5
We are done. You can see all the days of the week and our created group in the prompt
Group6
Till next time, Happy Exploring!

DISABLE CACHE FOR A PARTICULAR REPORT

Hi Friends,
This will be a quick post – Let’s say we have a requirement where we want to disable caching only at the Report Level, i.e to say – for a specific Report, we don’t want to refer to Cache.
Simply,
  • Go to advance tab,
  • In the prefix section, paste SET VARIABLE DISABLE_CACHE_HIT=1;
DisableCacheForParticularReport
  • click on apply button,
  • save your report.
Didn’t I say – this is going to be a quick post  :)

IMPLEMENTING SSL IN OBIEE 11G

Follow the below steps to enable HTTPS secure connection in the OBIEE 11g URL:
1. Login to the Weblogic Console with the Admin credentials.
2. Navigate to the path: Environment > Servers.
SSL1
3. Click on the AdminServer(admin) and open the General tab under Configuration.
4. Lock and Edit the configuration.
5. Check the box for ‘SSL Listen Port Enabled’ and enter the value for ‘SSL Listen Port’ as 7002.
SSL2
Note: We can uncheck the ‘Listen Port Enabled’ checkbox if we do not want anyone to be able to connect to the Console and EM via HTTP.
6. Go back to the Servers and navigate to the bi_server1. Open the General tab under Configuration.
7. Check the box for ‘SSL Listen Port Enabled’ and enter the value for ‘SSL Listen Port’ as 443.
SSL3
Note: We can uncheck the ‘Listen Port Enabled’ checkbox if we do not want anyone to be able to connect to the application via HTTP.
8. Activate the Changes and restart all the services.
9. Now the services should be available over a secure HTTPS connection. The URL to the Weblogic Console and EM will be as follows:
https://machineName:7002/console
https://machineName:7002/em
and the new application URL will be:
https://machineName/analytics
The port number 443 can also be written in the application URL, but it will be automatically hidden once we connect to the URL.