Business Intelligence - Oracle

Archive for the 'OBI EE Plus' Category


Oracle BI EE 10.1.3.3.3/2 - Hyperion Essbase Connectivity - Handling Measures and Account Dimension

Posted by Venkatakrishnan J on May 12, 2008

I was working with the BI EE and Essbase connectivity today and came across another important feature that would let an user to analyze any dimension members as Type 1 or Type 2. If you had gone through my previous blog entry here, i would have briefly explained what Type 1 and Type 2 actually mean. By default, when you import an Essbase cube, all the measures within an Account dimension would be imported as flat-list (with no hierarchy). This kind of an import is called as Type 1. For example, consider that we have a cube/database containing 2 dimensions LOB and YEAR. And we have a third dimension ACCOUNT containing the AMOUNT measure, then the TYPE 1 Essbase cube would be treated as shown below

DIMENSION LOB                     DIMENSION YEAR                     AMOUNT

    

As you see, in Type 1 we are losing out on the measure hierarchy if any. One of the very good advantages of Essbase is that it treats all the dimensions(including an ACCOUNT dimension) as the same i.e one can use any dimension as a scenario dimension from a reporting standpoint. Now, the question is how do we leverage that from within BI EE. i.e Basically we would like to use the months in the YEAR dimension as a scenario dimension and keep the account dimension intact. If you are not sure what i mean, below screenshot is what i need. The idea is to have the months in the reporting as a column header for all the analysis that i would be doing. In such a case, it is as though we are having as many AMOUNT measures as the number of MONTHS.

    

In order to achieve the above, there are a couple of changes that we would have to do in the physical layer of the Admin tool. Double click on the cube and navigate to hierarchies. Double click on the Accounts Dimension and change the dimension type to Other (instead of Measure Dimension).

    

Similarly, change the Year Dimension type from Other to Measure Dimension.

    

This will flatten out the Year Dimension. Now, remove the AMOUNT measure column from the cube and manually create 3 columns (each matching the attribute value names of the dimension members) as shown below

    

Now, recreate the BM and physical layer. Now you would be able to create reports as shown above in the 2nd screenshot

    

The above should give you an idea of how to go about converting your hierarchical members into flattened measure columns.

Posted in All Posts, Hyperion Essbase, OBI EE Plus | No Comments »

Oracle BI EE 10.1.3.3.3 - Released and Out for Download

Posted by Venkatakrishnan J on May 10, 2008

Well, it looks like the wait is over and 10.1.3.3.3 version of BI EE has been released. You can download it from here and the documentation is here. Unfortunately, there is not even one new major feature that has been added to BI EE. But BI Publisher has some good new features. Below is the quote from the New Features guide.

Oracle BI Enterprise Edition Version 10.1.3.3.3 contains no new features.

However, Oracle BI Publisher Version 10.1.3.3.3 contains new features. For more information about the new Oracle BI Publisher features, refer to the Oracle Business Intelligence New Features Guide Version 10.1.3.3.3.

Tim has already blogged about the new features of BI Publisher here. On a high level, below are the new features that have been added to BI Publisher.

1. JDBC DataDirect drivers for DB2 (v8.1,v9.1), MS SQL Server (2000,2005), Oracle (9i, 10g) are now bundled in BI Publisher 10.1.3.3.3

2. New option to enable/disable the “Link to this Report” link in every report.

3. Support for Pagination in RTF Output and more

4. Support for multiple cascading parameters.

5. Support for vertical alignment of external graphics

6. Support for multiple currency symbol display in reports

I have a hunch that 10.1.3.3.3 might have some critical bug fixes especially surrounding BI EE - Essbase connectivity. Let me play around more with this release to find out what more has been added/fixed.

Posted in All Posts, OBI EE Plus | No Comments »

Hyperion Data Integration Management 9.3.1 - Loading Data into Essbase Cubes using Type1

Posted by Venkatakrishnan J on May 8, 2008

As i had written previously here, one of the methods of loading Essbase cubes is by using the Hyperion Data Integration Management and its corresponding Essbase Adapter. In that blog entry i had written about the capabilities of Hyperion DIM product (which is nothing but Informatica underneath). Today, lets see how we can go about loading a simple Essbase Cube using the Essbase Adapter. In order to load an Essbase Cube(using the Essbase Adapter) we would have to be aware of 3 different loading mechanisms that are specific to Hyperion DIM. They are

1. Type 1 - Here, all the dimensions are treated normally and the measures are treated as different columns. One would have to have a seperate column populating the lowest level for each dimension and a seperate column for each of the measures. For example, our source should table should look like this

    

In this case, our fact table has 3 dimension keys CITY, PRODUCT and MONTH. And, we also have 2 more columns SALES and COGS where both of them correspond to measures. If you have data in this format then use this load technique to load the data into the Essbase Cube/Database.

2. Type 2 - Here all the dimensions are treated normally and the measures are populated in a single column. And the different measures are identified by another column. For example, our source table populating the cube should look like this.

    

As you see above, our fact table has 4 dimension keys CITY, PRODUCT, MONTH and ACCOUNT. We have only one measure and the type of measure is identified by the ACCOUNT column. So, if you have source data in this fashion, use Type 2 method to load your Essbase cubes.

3. Type 3 - This is for handling value based hierarchies in the source data. So, if your source data contains data with parent child columns (hierarchy is obtained by traversing the parent child columns) then use the Type 3 method to load your essbase cubes.

In our example, lets start with loading a simple Essbase cube/database using the Type1 data load method. Our sample cube contains 2 dimensions LOB and YEAR. There is also another ACCOUNT dimension with only one measure AMOUNT. Our fact table contains data in the below shown format

    

So, import this table into the source. Then import our target Essbase cube (in our case, the dimensions of the cube have already been loaded i.e the essbase cube already has an outline). When you import an Essbase Cube ensure that you are importing it as Type1.

    

    

And finally, this is how your final cube would look like within Hyperion DIM.

    

Now, create a direct one to one mapping between your fact table and your Essbase Cube

    

Once this is done, just execute the above mapping using the Workflow Manager.

    

In the session log you can find out how many rows have been loaded and applied. Now, the question is how does this work. Since, we already have the outline defined, what Essbase Adapter does is it checks the lowest levels of each dimension hierarchy and loads the corresponding data from the fact table. And then it builds up the other summaries based on what summarization has been defined for each of the levels.

    

Posted in All Posts, Hyperion DIM, Hyperion Essbase, Informatica, OBI EE Plus | 1 Comment »

Oracle BI EE 10.1.3.3/2 - APEX Integration using Web Services - Triggering Ibots

Posted by Venkatakrishnan J on May 7, 2008

As you might probably be aware, APEX (Application Express) has support for web services. One can call web services and can create several sequential processes out of them. There can be lots of use cases for these web service calls. One of them is to have a custom integration of BI EE within APEX environment. If you had worked on APEX and BI Publisher integration (using Web Services) as documented here excellently by Tyler Muth you would have noticed that APEX can identify BI Publisher web services out of the box since APEX web services have only a single binding i.e all the methods can be identified by using a single root service. But in the case of BI EE, it produces a multiple binding WSDL. APEX does not support multiple binding web services currently. So, the question is how do we go about calling BI EE methods from within APEX? Thats where a tool called SOAP UI comes to our rescue. I came across this tool while going through Tyler’s blog entry above and found this free tool to be very useful to identify end points of SOAP requests. Till now, i was using another tool called Mindreef SOAPScope. Though mindreef is also good, the major drawback was that they did not give a free version. They only provide you an evaluation copy. Use the SOAP UI tool and create a project using the BI EE WSDL below.

http://localhost:9704/analytics/saw.dll?WSDL

If you want you can also include the BI Publisher WSDL to know the difference between a single binding and Multi binding web services.

    

Now, just to get us started, lets try to authenticate into BI EE using the Logon Method of the SAWSession service and then use that session to execute an ibot by using the excuteIBotnow method of the IBotService from within Application Express. Since APEX, does not support multi binding web services, we would have to treat each and every service (different bindings) of the BI EE WSDL as a seperate WSDL in itself. So, go to an APEX application and click on Shared Components -> Logic -> Web Service References. Now click on create and do not search for the WSDL in the UDDI. In the next step, instead of entering the WSDL click on create Web Service Reference Manually. Remember, we would have to create one reference for each and every web service. Following are the URLs that you would have to use for each service


XMLViewService - http://localhost:9704/analytics/saw.dll?SoapImpl=xmlViewService
SecurityService - http://localhost:9704/analytics/saw.dll?SoapImpl=securityService
WebCatalogService - http://localhost:9704/analytics/saw.dll?SoapImpl=webCatalogService
SAWSessionService - http://localhost:9704/analytics/saw.dll?SoapImpl=nQSessionService
JobManagementService - http://localhost:9704/analytics/saw.dll?SoapImpl=jobManagementService
ReplicationService - http://localhost:9704/analytics/saw.dll?SoapImpl=replicationService
ReportEditingService - http://localhost:9704/analytics/saw.dll?SoapImpl=reportService
IBotService - http://localhost:9704/analytics/saw.dll?SoapImpl=ibotService
HTMLViewService - http://localhost:9704/analytics/saw.dll?SoapImpl=htmlViewService
MetadataService - http://localhost:9704/analytics/saw.dll?SoapImpl=metadataService

In our case since we want to authenticate and trigger an ibot, we would have to use 2 services. They are SAWSession service and IBotService. While creating a web service reference for the saw session service, use the below XML (you can obtain this from the SOAP UI tool).


<soapenv:Envelope xmlns:soapenv="<a href="http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap.org/soap/envelope/</a>" xmlns:v5="com.siebel.analytics.web/soap/v5">
   <soapenv:Header/>
   <soapenv:Body>
      <v5:logon>
         <v5:name>Administrator</v5:name>
         <v5:password>welcome1</v5:password>
      </v5:logon>
   </soapenv:Body>
</soapenv:Envelope>

In the above XML, Administrator and welcome1 are the username/passwords for my BI EE instance. If you want you can replace the actual values with #ITEMNAME# to populate them dynamically based on page/application items.

    

Remember, to enter a collection name for storing the reponse. This is very important since we would have to extract the session id and pass it on to another service. In my case, i had used WSDL_COLLECTION as the name of the collection (Dont worry about creating these collections. These are automatically created. All you need to do is to enter the name. you can get what is stored in the collection by querying the APEX_COLLECTIONS view). Similarly use the below XML for the executeiBotnow method of the IBotService.

 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v5="com.siebel.analytics.web/soap/v5">
<soapenv:Header/>
<soapenv:Body>
<v5:executeIBotNow>
<v5:path>/users/administrator/_ibots/Test</v5:path>
<v5:sessionID>#F101_SESSIONID#</v5:sessionID>
</v5:executeIBotNow>
</soapenv:Body>
</soapenv:Envelope>

Here, replace the v5:path tag value with the ibot path that you need to execute. Since session ids are dynamic, we would have to reference an application level item (F101_SESSIONID) which would be populated by the SAWSession service. Again, enter a collection name like WSDL_COLLECTIONSCHED for storing the result. Once these 2 web service references have been created, create a page process to call the Logon Method of the SAWSession service.

    

Make this service to be conditionally called on the submit of a button (Login Button). Whenever each of the service is called from within APEX, the result is stored in a collection. Since this stores the result of a web service response, it would be stored as a CLOB in the CLOB001 column of the APEX_COLLECTIONS view. Typically the response of the 1st service would be like the one shown below.


<?xml version="1.0" encoding="UTF-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:sawsoap="com.siebel.analytics.web/soap/v5">
<soap:Body>
<sawsoap:logonResult>
<sawsoap:sessionID xsi:type="xsd:string">ihdcqbtmm8q06ii2opb7qhh44npfqh5v0liad5izOr07UFe9W00</sawsoap:sessionID>
</sawsoap:logonResult>
</soap:Body>
</soap:Envelope>

As you see the sessionid would be embedded in the SOAP response. The most common method to extract the session id is to write a simple XPath query with the corresponding namespaces. But in our case, we would not be doing that since the resultant SOAP response is a constant. So, let write a simple query as shown below to extract the session id from the above XML.


SELECT SUBSTR(DBMS_LOB.SUBSTR(CLOB001,4000,1),392,INSTR(DBMS_LOB.SUBSTR(CLOB001,4000,1),'</sawsoap:sessionID>')-392) FROM APEX_COLLECTIONS WHERE COLLECTION_NAME = 'WSDL_COLLECTION'

Use the above query to populate the F101_SESSIONID application level item. Once this is done, create another page process to call the executeIBot method of the IBotservice. Make this process to be executed after the execution of SAWSessionservice page process. Now this would automatically trigger the ibot.

    

This should give you an idea of how to go about calling BI EE web services from APEX. Lets look at more complex scenarios lin future blog entries.

Posted in APEX, All Posts, OBI EE Plus | No Comments »

Oracle BI EE 10.1.3.3.2 and JDeveloper 11g Tech Preview 3/4 - New Integration Features - Public BI EE pages without Authentication - NoAuthGo Parameter

Posted by Venkatakrishnan J on May 5, 2008

As you might probably be aware, JDeveloper 11g Tech Preview 4 is already out for everyone to download. I am not sure how many of you actually noticed this, but in Tech Preview 3 of JDeveloper a new integration between JDeveloper and BI EE was added(Strange that this was not announced anywhere since i found this out by chance) But the problem with that release(not a release per se since it is only a Tech Preview) was it was still buggy at best since the ADF components and BI EE somehow did not work together well (atleast on the instances that i tried). But now that TP4 is out, i thought i would try out the integration again. Alas, this did not work out again!!! There are still some issues with the integration. This blog entry is a compilation of my findings. This integration should give you an idea of how BI EE is going to be integrated into a majority of Oracle’s other suite of products. One can now drag and drop BI EE components like reports, dashboards etc directly into ADF-JSP pages to generate custom pages. For example look at the screenshot below,

    

As you see above, one can add connections directly to a Jdeveloper instance. That connection can automatically recognize the web catalog components of BI EE. One other very interesting feature is that one can model business components with BI EE as a data source. For example, if you are aware of the BI EE and BIP integration, you can query a report and add a template to that report. On the same lines one can use a BI EE report as a base and then one can add multiple views on top of it. These views will use the JDBC driver of BI EE.

    

    

One other very important feature that i noticed was the use of “no authentication” for BI EE reports. If you have worked with BI Publisher or Oracle Portal, you would be aware of the fact that one can expose individual reports/webpages to external users without authentication. Till now BI EE did not have this feature. I was under the impression that this is not available in 10.1.3.3.2 version of BI EE too. But when i looked closely at the integration between BI EE and JDeveloper, i noticed that while rendering BI EE reports there was an usage of a special URL parameter called NoAuthGo for all the reports. This i believe would give the Public Pages/Guest folder feature of Oracle Portal/BI Publisher to BI EE. But when i tried using it directly as below

 http://localhost:9704/analytics/saw.dll?NoAuthGo&path=/shared/Paint%20Demo/Prompts%20Across%20SAs/Report%201

and it gave me the below page

    

What struck me was the error message.

“If you would like to use this powerful capability, please contact this site’s administrator”

I believe there has to be an undocumented parameter in instanceconfig.xml (most probably under the AUTH tags) to enable this feature. If anyone knows what that parameter is, feel free to share it in the comments section. As far as i see, the integration is based on using the URL parameters which is well in line with my observations here. Excellent piece of integration and still more to come in the coming releases!!!.

Posted in All Posts, OBI EE Plus | No Comments »

Oracle BI EE 10.1.3.3/2 - Automating Password Updates of Connection Pools and Users - Command Line Options

Posted by Venkatakrishnan J on May 2, 2008

If you had gone through my blog entry here, i would have talked about using UDML as a way for automating migration from dev to test/prod environments. But the major problem with UDML is that one cannot update the passwords of Connection Pools, Users etc since the UDML expects them to be encoded. In such a case, for updating passwords alone we can use an undocumented command line switch option for the AdminTool. For example, look at the screenshot below.

    

This is nothing but the connection Pool property of the ORCL database. Here, we would like to change the schema names and its corresponding passwords. For example, we would like to change the schema to SH and also would like to change the password. In order to do that, open a text editor and enter the below command. Save the file in the same directory as the Admin Tool ({OracleBI}\Server\Bin). If not, then you would have to give the full path of the file.

Open Dev_Machine.rpd Administrator Administrator
SetProperty "Connection Pool" "orcl"."Connection Pool" "User" "sh"
SetProperty "Connection Pool" "orcl"."Connection Pool" "Password" "welcome1"
Save
Exit

Now, open up a command prompt and navigate to {OracleBI}\Server\Bin. Typein in the below command,

 admintool /command commandlineswitch.txt

    

This would automatically update the connection pool values.

    

You can use the above to update many objects within the repository. For updating passwords for users, just use the nqschangepassword.exe tool. For more details on this, check my blog entry here. So, on a high level your entire migration process would look as shown below

    

Thanks to Phil for sharing this.

Posted in All Posts, OBI EE Plus | 2 Comments »

Oracle BI EE 10.1.3.3/2 - Understanding Dashboard Prompts - Passing Prompts to multiple Subject Areas - Aliases

Posted by Venkatakrishnan J on April 30, 2008

I got a question the other day with regard to passing dashboard prompt values to multiple reports from different Subject Area’s. The user’s questions was “If i have a dashboard prompt on a column from one subject area, will i be able to restrict the data on a report from another subject area?”. Thought the question is pretty straight forward, i thought this warrants a detailed explanation of how the dashboard prompts work. As always, lets understand this through an example. We shall be using the default Paint and Paint Exec subject areas. Also, as we move along we will build more subject areas to see the impact of a dashboard prompt on 4 different reports from 4 different subject areas. Lets first start with creating a simple dashboard prompt on the year column of the Paint subject area.

    

Note down the Presentation Table Name and Presentation Column Name of the above prompt. It is “Periods”.”Year”. Now, lets go to the Paint Subject area and create a simple report containing Year and Sales. Ensure that you have a “is prompted” clause filter on the Year column.

    

Similarly, create the same report using “Periods”.”Year” column and the sales measure column on the Paint Exec subject area. Also add the is prompted clause filter on the year column. Now, put the dashboard prompt and both of the reports in a dashboard page. Now, if you change the year value in the prompt, both the reports would get affected.

    

Now, you have noticed that both the reports get filtered because the Presentation Table and Presentation Column names for both Paint and Paint Exec Subject areas for the Year column are the same. Now, lets create a copy of the Paint Subject area and rename the Presentation Table of the Year column to something like “Periods New”.

    

Now, create the same report as shown above i.e Year and Sales report with an “is prompted” clause on the Year column. Add this report to the dashboard. Now, if you notice, the filter would not be applied to the third report.

    

This would be the typical use case. One would have different subject areas with different names and we would like to apply filter from a dashboard prompt on one column to a report on another column in another subject area. So, in order for the filter to be applicable without changing presentation Table and column names, we have something called as “Aliases”. In our case, add an alias to the Periods New presentation Table with same Presentation Table name of the column that was used in the prompt. In our case it is Periods.

    

Just by adding the filters, the filters would not be applied. Go back to the 3rd report we created. In the column formula of the year column (this is important. Aliases would not be resolved internally. We would have to put their names in the formula explicitly), change it from “Periods New” to “Periods”. Now you would notice that the filter would be applied on the 3rd report also.

    

    

In our example, all our subject areas come from a single BM. What if we have completely 2 different subject areas from 2 different Business Models? The above would work even in that case too. Ensure that your reports refer to the aliased columns instead of their original column names. The below screenshot shows a 4th report (SA from a different BM) filtered using the same technique.

    

So, in a nut shell, if you want a dashboard prompt filter to be applied to reports sourcing different BM or SA’s you basically would have to add an alias of the dashboard promt column’s Presentation Table name and the Presentation Column name to the report columns. This is not applicable if you are using presentation variables. Aliases are not required if you are filtering reports by presentation variables.

Posted in All Posts, OBI EE Plus | No Comments »

Oracle BI EE 10.1.3.3.2 - Handling Sort Order in Hyperion Essbase 9.3.1 - EVALUATE and MDX

Posted by Venkatakrishnan J on April 28, 2008

Another common question that one would get while working with BI EE and Hyperion Essbase is “How to have the default sort order specified in an Essbase Cube to be available in BI EE reports?”. This is a very valid question since by default BI EE sorts the dimension attributes alphabetically. For example look at the screenshot below,

    

As you see above, BI EE by default has alphabetically sorted the channels report. But if we look at the outline of the channels dimension, the sorting order would be completely different. In most cases, we would like to have the same sort order as the cube (not an alphabetical sort).

    

In order to overcome this, there are 2 approaches. Both of them would involve the use of EVALUATE function and then passing an MDX function to the cube to fetch the rank of each dimensional attribute. So, lets look at the first approach. In this approach we shall be adding a new column and in the formula enter the below formula

EVALUATE(’RANK(%1.dimension.currentmember,%2.members)’ AS INTEGER,CHANNELS.”Gen4,CHANNELS”,CHANNELS.”Gen4,CHANNELS”)

What this basically does is, it passes the member of the dimension to the MDX function RANK and retrieves the position of the member in the particular level.

    

    

Now hide this new column and apply sorting on it. This will give the default sort order as available in the Essbase Cube.

    

The problem with the above approach is that the sort order would have to be created for each and every report. In order to overcome that, create another logical column in the repository with the evaluate function and then apply sort order on the 4th level based on this column.

    

    

Also, ensure that you have assigned an hierarchy level to the new column.

    

    

Thanks to Alan Lee for sharing this. One can extend this to provide lot of different functionalites that BI EE does not offer out of the box.

Posted in All Posts, Hyperion Essbase, OBI EE Plus | No Comments »

Oracle BI EE 10.1.3.3/2 - SA System Subject Area - Autoloading Profiles and Bursting

Posted by Venkatakrishnan J on April 25, 2008

Those users who have worked with Siebel Analytics 7.7 or above, they would be aware of a special subject area called SA System subject area that was necessary to set up Delivers. But with the advent of new releases(10.1.3.3 and above), SA System subject area is not mandatory any more. But still SA System Subject area can be very useful in a lot of scenarios. One of the major uses of this special subject area is that, by setting this up one can automatically populate the Delivery Profiles of all the users. If this is not setup, one would have to manually go into My Account section of each and every user and then set it up. For example, a typical use case is, you would be having the list of users and their corresponding email ids in an excel file. You do not want the users to manually go and enter their email ids. In such a case, just setup the SA System subject area, then all the users would automatically get their email ids, phone, pagers etc automatically assigned to their profiles. Today, we shall see how to go about setting this subject area. Lets start with a simple table script that would help us to store all the Users, their corresponding Groups and also their email ids, pager and phones. Remember, SA System subject expects you to specify all the shown columns below.


CREATE TABLE SA_SYSTEM
(
EMAIL VARCHAR2(100),
EMAIL_PRIORITY VARCHAR2(10) DEFAULT 'HNL',
EMAIL_TYPE VARCHAR2(50) DEFAULT 'html',
CELL_PHONE VARCHAR2(40),
CELL_PHONE_PRIORITY VARCHAR2(20),
PAGER VARCHAR2(20),
PAGER_PRIORITY VARCHAR2(30),
HANDHELD VARCHAR2(20),
HANDHELD_PRIORITY VARCHAR2(30),
TIMEZONE VARCHAR2(100),
GROUP_NAME VARCHAR2(20),
LOGON VARCHAR2(50) NOT NULL,
DISPLAY_NAME VARCHAR2(100),
LOCALE VARCHAR2(20) DEFAULT 'en',
LANGUAGE VARCHAR2(20) DEFAULT 'en'
)

    

Assume that we have 2 users <b>Administrator and Sample</b> in our repository. So, lets enter all their relevant details into the above table.


INSERT INTO SA_SYSTEM(EMAIL, GROUP_NAME, LOGON, DISPLAY_NAME) VALUES (<a href="mailto:'venkatakrishnan.janakiraman@oracle.com','Administrators','Administrator','Administrator'">'venkatakrishnan.janakiraman@oracle.com','Administrators','Administrator','Administrator'</a>);
INSERT INTO SA_SYSTEM(EMAIL, GROUP_NAME, LOGON, DISPLAY_NAME) VALUES (<a href="mailto:'krisvenky83@gmail.com','Administrators','Sample','Sample'">'krisvenky83@gmail.com','Administrators','Sample','Sample'</a>);
COMMIT;

Lets look at what each of the above columns do

EMAIL - Stores the email addresses of the user.
EMAIL_PRIORITY - Can take 3 values. ‘H’ for High, ‘N’ for Normal, ‘L’ for low. ‘HNL’ means High, Low and Normal. You can use these in any combination.
EMAIL_TYPE - Can take ‘html’ or ‘text’. This primarily tells whether the email client supports html or only text.
CELL_PHONE - Cell phone details
CELL_PHONE_PRIORITY - Same as EMAIL_PRIORITY
PAGER - Pager details
PAGER_PRIORITY - Same as EMAIL_PRIORITY
HANDHELD - Handheld details
HANDHELD_PRIORITY - Same as EMAIL_PRIORITY
TIMEZONE - This can be Null. Basically tells the timezone of the user.
GROUP_NAME - The actual GROUPs to which the Logon user belongs.
LOGON - User Login Name
DISPLAY_NAME - User Display Name
LOCALE - Default it to ‘en. It specifies the user Locale.
LANGUAGE - Default it to ‘en’. It specifies the user Language.

Now, import the above created table into the repository and design your BM and Presentation Layers. You should rename the Presentation Layer columns to the one shown below.

Cell Phone
Cell Phone Priority
Display Name
Email
Email Priority
Email Type
Group Name
Handheld
Handheld Priority
Language
Locale
Logon
Pager
Pager Priority
Time Zone

If you use any other names, SA System subject area would not work.

    

Once this is done restart the presentation services. Now login as Administrator and go to Settings -> My Account. You would notice that the delivery profile would automatically be populated and also the email id would also have been associated to the profile. Same would be the case for the Sample user.

    

    

Sometimes this can be very useful. But always remember, if any user goes and modifies their delivery profile, that would take precedence over the SA System Subject area.. One other advantage of using this SA system subject area is that you can use this to do email bursting of reports. For example, in most cases, not every user would have the delivery profile created. In such a case, just load up the SA System subject area and then assign the email ids to the users. Just create a simple report on the SA System subject area to have a display on the LOGON names.

    

Use this in the conditional request and pass the LOGON field to the list of recipients.

    

This would automatically do the bursting to all the users. This would be very handy while doing mass email deliveries.

 

Posted in All Posts, OBI EE Plus | 2 Comments »

Oracle BI EE 10.1.3.3/2 - Overriding Autogeneration of Dimension Level Names of Hyperion Essbase 9.3.1

Posted by Venkatakrishnan J on April 23, 2008

I got a simple question from an user yesterday who basically wanted to know how to have custom names for different levels while importing an Essbase cube. If you are not sure what i mean, look at the screenshot below.

    

As you see, this is nothing but the sample Demo cube which has been imported into BI EE. If you notice, for the Market Dimension, all the levels have names like Gen1, Market, Gen2, Market etc. The question from the client was how do we make BI EE to extract the names from the cubes themselves rather than manually updating them in BI EE. Hyperion Essbase users would know how to do this very easily since all we would have to do is to update the Generation Names for all the levels in the dimension. But for users who are not aware of what Generation and Levels mean in Essbase, the following screenshot would be useful.

    

As you see, Generations are nothing but the reverse of a Level. So, in order to import user defined level names into BI EE, we would have to open the outline of the specific cube using Essbase Administration Services. Then right click on the Market Dimension and click on Generations.

    

    

Now, specify a name for each level (number for the levels would be in descending order). So, use the names All Markets, Region and City for the 3 Generations.

    

Save the outline. Now, if you import the cube into BI EE, you would see that the names too get automatically imported.

    

Posted in All Posts, Hyperion Essbase, OBI EE Plus | 1 Comment »