<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Business Intelligence - Oracle</title>
	<atom:link href="http://oraclebizint.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://oraclebizint.wordpress.com</link>
	<description></description>
	<lastBuildDate>Mon, 15 Jun 2009 17:42:16 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/468b1e9215e7bc728760659dd5ed0dcd?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Business Intelligence - Oracle</title>
		<link>http://oraclebizint.wordpress.com</link>
	</image>
			<item>
		<title>Time for a Change &#8211; Upcoming Announcements &#8211; Millionth Hit</title>
		<link>http://oraclebizint.wordpress.com/2009/06/15/time-for-a-change-upcoming-announcements-millionth-hit/</link>
		<comments>http://oraclebizint.wordpress.com/2009/06/15/time-for-a-change-upcoming-announcements-millionth-hit/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 17:35:39 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=662</guid>
		<description><![CDATA[Well, as the saying goes “Change is the only Constant”, there are quite a few changes that are coming up on this blog(well not blog alone!!!) in the near future. I would be in a position to make an announcement in a week or so. And i am very much looking forward to that. One [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=662&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, as the saying goes “Change is the only Constant”, there are quite a few changes that are coming up on this blog(well not blog alone!!!) in the near future. I would be in a position to make an announcement in a week or so. And i am very much looking forward to that. One thing that i can say for sure is the fact that you can expect more of my blog entries in the future <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':-)' class='wp-smiley' /> . More on that next week.</p>
<p>And as luck would have it, while i was writing this, the blog registered its first Millionth hit (of a total of 302 blog entries). I would have to express and extend my thanks to anyone and everyone who have been visiting this blog ever since its inception on 18th of July 2007. I believe the blog has come a long way since then. I have written at least two blog entries every week since i started, barring a couple of months when i did not even write a single one. When i started to write on BI EE there were only a couple of people writing about it like <a href="http://www.rittmanmead.com/author/mark-rittman/" target="_blank">Mark</a>(who was very well known in the Oracle BI Community even at that time) and <a href="http://majendi.blogspot.com/" target="_blank">Adrian</a>(actually myself and Adrian were discussing this in the BI Forum). Then came along <a href="http://obiee101.blogspot.com/" target="_blank">John</a> who was also very active on the BI Forums. And then came people like <a href="http://siebel-essentials.blogspot.com/" target="_blank">Alex</a>(Siebel + BI EE) , <a href="http://hekatonkheires.blogspot.com/" target="_blank">Christian</a> (BI EE + Essbase) and others who have been working on these products for long but just now started to blog about them.</p>
<p>In the coming future, i would be primarily focusing on Hyperion Essbase(i would say this has been a tool that has been really close to my heart that i have not blogged much about), EPM Integration, Hyperion Planning/EPMA integration, BI EE – Essbase Integration (more use cases). Hopefully you have found this blog useful and thanks for stopping by.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/662/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/662/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/662/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=662&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/06/15/time-for-a-change-upcoming-announcements-millionth-hit/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Data Integrator 10.1.3.5 &#8211; Connectivity to Open LDAP of Shared Services</title>
		<link>http://oraclebizint.wordpress.com/2009/06/09/oracle-data-integrator-10-1-3-5-connectivity-to-open-ldap-of-shared-services/</link>
		<comments>http://oraclebizint.wordpress.com/2009/06/09/oracle-data-integrator-10-1-3-5-connectivity-to-open-ldap-of-shared-services/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:32:23 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Shared Services]]></category>
		<category><![CDATA[OBI EE Plus]]></category>
		<category><![CDATA[Oracle Data Integrator]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=652</guid>
		<description><![CDATA[One of the features of Oracle Data Integrator is its ability to connect to a lot of disparate data sources using JDBC. One such feature is its ability to expose any LDAP directory as a relational source. If you are on earlier releases of Hyperion EPM like 9.3, where there is no out of the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=652&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the features of Oracle Data Integrator is its ability to connect to a lot of disparate data sources using JDBC. One such feature is its ability to expose any LDAP directory as a relational source. If you are on earlier releases of Hyperion EPM like 9.3, where there is no out of the box SSO and authentication/authorization capability to BI EE with open LDAP, one approach is to configure BI EE to authenticate against OpenLDAP and then get the user-group information from some other custom table(or by using the DBMS_LDAP package). I had shown how to configure BI EE to authenticate against OpenLDAP <a href="http://oraclebizint.wordpress.com/2008/07/07/oracle-bi-ee-1013332-shared-services-integration-part-1-connecting-to-shared-services-openldap/" target="_blank">here</a>. Since BI EE cannot automatically pick up the groups directly from OpenLDAP in prior releases, one way is to get the user-group related information from OpenLDAP and then populate that into a set of custom tables. Then BI EE can be used to get these groups from the custom tables. The architecture would look something like this</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image36.png?w=554&#038;h=372" border="0" alt="image" width="554" height="372" /></p>
<p>Lets look at what it takes to setup the OpenLDAP connectivity from ODI. As a first step lets first log into Topology Manager and create a new LDAP connection. Choose the “Sunopsis JDBC Driver for LDAP” as the JDBC driver</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image37.png?w=404&#038;h=274" border="0" alt="image" width="404" height="274" /></p>
<p>And then choose the JDBC URL.</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image38.png?w=404&#038;h=224" border="0" alt="image" width="404" height="224" /></p>
<p>To enable the connectivity to any LDAP directory, the password would have to be passed in an encoded format. To encode the password, run the below command from a command prompt.</p>
<pre name="code" class="cpp">

java -cp {OracleDI}\oracledi\drivers\snpsldapo.jar
com.sunopsis.ldap.jdbc.driver.SnpsLdapEncoder
&lt;the of password root openldap&gt;
</pre>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image39.png?w=544&#038;h=84" border="0" alt="image" width="544" height="84" /></p>
<p>Copy the above encoded password. In the JDBC URL, enter the below URL</p>
<pre name="code" class="cpp">

jdbc:snps:ldap?ldap_url=ldap://localhost:28089/ &amp;amp;ldap_password=KILAKMNJKKLHKJJJDDGPGPDB
&amp;amp;ldap_basedn=dc=css,dc=Hyperion,dc=com
</pre>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image40.png?w=644&#038;h=131" border="0" alt="image" width="644" height="131" /></p>
<p>The basedn above is what would be used for searching all the users, groups, roles etc. In the Data Server definition, enter the username as root user who has traversing access to the entire OpenLDAP directory</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image41.png?w=326&#038;h=325" border="0" alt="image" width="326" height="325" /></p>
<p>You should be able to test the connection to the LDAP from here. The root user of OpenLDAP is different from the admin user. In fact, the admin user’s original cn is not admin. It is 911. admin is the givenName attribute of the 911 user. The root user password is by default root. One behavior that i noticed across the releases, was the fact that in 9.3 release admin user had the traverse directory privilege. But in EPM 11, 911 user does not have the traverse directory privilege. In my case, the default root password did not work. So, i had to reset the root user password from shared services.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image42.png?w=313&#038;h=185" border="0" alt="image" width="313" height="185" /></p>
<p>As a side note, if you feel that shared services web console does not give you the actual LDAP directory structure, i would recommend a free LDAP client like <a href="http://www.jxplorer.org/" target="_blank">JXplorer</a>. The screenshot of shared services OpenLDAP using this free client is given below</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image43.png?w=358&#038;h=535" border="0" alt="image" width="358" height="535" /></p>
<p>Now, if you go to the Designer and reverse engineer this data source using selective reverse.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image44.png?w=526&#038;h=413" border="0" alt="image" width="526" height="413" /></p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image45.png?w=644&#038;h=284" border="0" alt="image" width="644" height="284" /></p>
<p>This should convert the entire directory structure to a relational format. From this point onwards, its a matter of building the interfaces and loading the custom user-group tables. Though the setup of the above is pretty straight forward, this can come in very handy especially when you are trying to consolidate/report against multiple user sources.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/652/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/652/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/652/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/652/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/652/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/652/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/652/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/652/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/652/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/652/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=652&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/06/09/oracle-data-integrator-10-1-3-5-connectivity-to-open-ldap-of-shared-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image36.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image37.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image38.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image39.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image40.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image41.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image42.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image43.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image44.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image45.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Data Integrator 10.1.3.5 &#8211; Using OBI EE as a Data Source &#8211; Using BI EE JDBC Driver</title>
		<link>http://oraclebizint.wordpress.com/2009/06/07/oracle-data-integrator-10-1-3-5-using-obi-ee-as-a-data-source-using-bi-ee-jdbc-driver/</link>
		<comments>http://oraclebizint.wordpress.com/2009/06/07/oracle-data-integrator-10-1-3-5-using-obi-ee-as-a-data-source-using-bi-ee-jdbc-driver/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 11:33:04 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>
		<category><![CDATA[Oracle Data Integrator]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=640</guid>
		<description><![CDATA[In a prior blog entry here, i had shown how to use BI Server as a data source for loading data from Essbase into custom tables. That approach basically used the Sun ODBC-JDBC bridge which in most cases has bad performance. Today we shall see how to use the native BI Server JDBC driver to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=640&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In a prior blog entry <a href="http://oraclebizint.wordpress.com/2009/06/02/oracle-data-integrator-10-1-3-5-using-oracle-bi-ee-as-a-data-source-loading-essbase-data-into-custom-tables-using-jdbc-odbc-bridge/" target="_blank">here</a>, i had shown how to use BI Server as a data source for loading data from Essbase into custom tables. That approach basically used the Sun ODBC-JDBC bridge which in most cases has bad performance. Today we shall see how to use the native BI Server JDBC driver to connect to BI Server and in-turn use that for loading Essbase Data into a custom table.</p>
<p>One of the major advantages of ODI is the fact that it can be used to connect to any data source that has a valid jdbc driver. In order to make ODI to use the BI EE JDBC driver, we need to make the JDBC driver (jar file) of the BI Server to be accessible by ODI. The jar file(bijdbc14.jar) of BI Server can be obtained from the BI Publisher web server installation folder {OracleBI}\oc4j_bi\j2ee\home\applications\xmlpserver\xmlpserver\WEB-INF\lib. The main reason why we are going to the BIP folder structure is because BIP uses the JDBC driver of BI Server to do reporting on BI EE metadata.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image25.png?w=555&#038;h=239" border="0" alt="image" width="555" height="239" /></p>
<p>The above screenshot basically provides the database driver class and the connection string of the JDBC driver of BI EE. Now copy this driver jar file to {OracleDI}\oracledi\drivers directory.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image26.png?w=644&#038;h=299" border="0" alt="image" width="644" height="299" /></p>
<p>Now open up Topology Manager and create a new Universal Data Server. Use the above driver class and connection in the JDBC URLs.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image27.png?w=459&#038;h=191" border="0" alt="image" width="459" height="191" /></p>
<p>Ensure that you are able to test the connection using Administrator username and password.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image28.png?w=558&#038;h=480" border="0" alt="image" width="558" height="480" /></p>
<p>Now, in the physical schema choose any subject area in the Presentation Layer.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image29.png?w=450&#038;h=204" border="0" alt="image" width="450" height="204" /></p>
<p>Now once this is done, go to the Designer and create a Project. And import the necessary Knowledge Modules that i had shown in the last blog entry. Since we are using JDBC, we can do a selective reverse of all the necessary tables.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image30.png?w=470&#038;h=484" border="0" alt="image" width="470" height="484" /></p>
<p>But be aware that, BI EE supports multiple presentation tables with the same name across subject areas. But ODI currently does not support multiple table import with the same name (as there is no BI EE specific RKM. This can be resolved if you build a separate RKM. Also, though you might be able to reverse objects with special characters, they would not work within an Interface. So, its better to create aliases with proper ODI supported naming conventions. ). Lets choose just 4 such tables, Basic, Market, Scenario and Year.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image31.png?w=538&#038;h=185" border="0" alt="image" width="538" height="185" /></p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image32.png?w=243&#038;h=165" border="0" alt="image" width="243" height="165" /></p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image33.png?w=393&#038;h=301" border="0" alt="image" width="393" height="301" /></p>
<p>Now lets build a very simple interface wherein we would be inserting Gen2, Market and the Measure value into a dummy table. Remember in BI EE, whenever you are bringing in multiple tables from a single presentation subject area, no joins are needed i.e. a cross join would have to be configured across multiple tables.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image34.png?w=644&#038;h=410" border="0" alt="image" width="644" height="410" /></p>
<p>If you execute this interface you would notice that BI Server would generate the MDX accordingly and would then insert the output of the MDX to the database table.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image35.png?w=244&#038;h=82" border="0" alt="image" width="244" height="82" /> </p>
<p>This should give you an idea of how to go about using multiple BI EE subject area tables in an ODI interface and then using that interface to load data into a database table. Also, this method should typically be as fast as your BI Server is since it uses the JDBC connectivity as opposed to the JDBC-ODBC bridge.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/640/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=640&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/06/07/oracle-data-integrator-10-1-3-5-using-obi-ee-as-a-data-source-using-bi-ee-jdbc-driver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image25.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image26.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image27.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image28.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image29.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image30.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image31.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image32.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image33.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image34.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image35.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle BI EE 10.1.3.4.1 &#8211; Handling Complex String Manipulations &#8211; Using Regular Expressions (RegEx) and Evaluate</title>
		<link>http://oraclebizint.wordpress.com/2009/06/04/oracle-bi-ee-10-1-3-4-1-handling-complex-string-manipulations-using-regular-expressions-regex-and-evaluate/</link>
		<comments>http://oraclebizint.wordpress.com/2009/06/04/oracle-bi-ee-10-1-3-4-1-handling-complex-string-manipulations-using-regular-expressions-regex-and-evaluate/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 10:05:46 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[OBI EE Plus]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=627</guid>
		<description><![CDATA[One of the requirements that i recently came across involved some complex string manipulations that cannot be solved easily by using BI EE specific functions. Just to illustrate the requirement, take a look at the screenshot below

As you see, the above is a simple BI EE report containing the customer related details. But the major [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=627&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the requirements that i recently came across involved some complex string manipulations that cannot be solved easily by using BI EE specific functions. Just to illustrate the requirement, take a look at the screenshot below</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image16.png?w=644&#038;h=315" border="0" alt="image" width="644" height="315" /></p>
<p>As you see, the above is a simple BI EE report containing the customer related details. But the major problem with this report is that, it contains all the details of a customer in a comma separated  format. Basically the source application has inserted the data into this table in such a fashion. One key aspect to this is the fact that the comma delimited customer details follow a specific pattern. That is the details column is nothing but a concatenation of the below customer attributes in the same order</p>
<p>1. Customer First Name<br />
2. Customer Last Name<br />
3. Customer Gender<br />
4. Customer Email Address<br />
5. Customer Phone Number<br />
6. Customer Street Address<br />
7. Customer City<br />
8. Customer State<br />
9. Customer Country</p>
<p>The requirement is to get a report containing the Customer ID, Country ID, Customer Phone Number and the Customer Email address. Normally the best place for handling this would be in the ETL stage wherein individual attributes can be split into multiple columns and then used for reporting. Unfortunately in most cases we would have to work with what we have. To do this in the reporting layer requires some complex INSTR, SUBSTR logic. Today we shall another approach for handling such requirements. Instead of using normal string manipulation functions, we shall be using a new feature of Oracle 10g called as the Regular Expressions.</p>
<p>Regular Expressions or RegEx make string manipulations easy and in fact provides quite a few advanced formatting, filtering options. The regular expressions come as 4 different types of functions</p>
<p>1. REGEXP_SUBSTR – Advanced Sub-String function<br />
2. REGEXP_INSTR – Advanced String position evaluation function<br />
3. REGEXP_LIKE – For doing advanced filtering on a result set<br />
4. REGEXP_REPLACE – For doing advanced multiple-iterative string replace</p>
<p>In order to achieve the above requirement, we need to use these database functions. And of course, we need to use EVALUATE to call these database functions. To split the above comma separate customer attributes, we need to use RegEx functions given below</p>
<p>1. Customer Phone – REGEXP_REPLACE(CUSTOMER_DETAILS,&#8217;(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*)&#8217;,'\4&#8242;)<br />
2. Customer Email &#8211; REGEXP_REPLACE(CUSTOMER_DETAILS,&#8217;(.*),(.*),(.*),(.*),(.*),(.*),(.*),(.*)&#8217;,'\3&#8242;)</p>
<p>Now use EVALUATE and pass down the above RegEx functions back to the database.</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image17.png?w=644&#038;h=439" border="0" alt="image" width="644" height="439" /></p>
<p>If you look at the report now, you should basically have the individual attributes in a separate column as shown below.</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image18.png?w=365&#038;h=484" border="0" alt="image" width="365" height="484" /></p>
<p>The above was one requirement. Lets look at another requirement now. In some cases, when you are reporting against transactional applications, you would have columns which get entered as free flowing text. The requirement is to classify these columns into 3 types. One is numeric, the other is free text without numbers and the third is alphanumeric. The requirement is to basically give a provision to the end users to choose a specific type and then that column should only the corresponding text i.e. for example if numeric is chosen only the text where numbers were entered should be displayed. In normal sql terms, filtering for numerals and alpha-numerals require separate logic and is complicated as well. We shall see how we can achieve this using RegEx.</p>
<p>Lets first take a look at the report</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image19.png?w=210&#038;h=372" border="0" alt="image" width="210" height="372" /></p>
<p>Now, lets create a prompt which will produce just 3 values (Numeric, Alphabets, Alpha-Numeric).</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image20.png?w=320&#038;h=162" border="0" alt="image" width="320" height="162" /></p>
<pre name="code" class="cpp">

SELECT &#039;Numeric&#039; FROM RegEx WHERE CUSTOMERS_DETAILS.COMMENTS IS NOT NULL
UNION ALL
SELECT &#039;Alphabets&#039; FROM RegEx WHERE CUSTOMERS_DETAILS.COMMENTS IS NOT NULL
UNION ALL
SELECT &#039;Alpha-Numeric&#039; FROM RegEx WHERE CUSTOMERS_DETAILS.COMMENTS IS NOT NULL 
</pre>
<p>Make this prompt to set a presentation variable called AlphaNum.</p>
<p><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image21.png?w=644&#038;h=129" border="0" alt="image" width="644" height="129" /></p>
<p>Now go to the original report and create a filter as shown below</p>
<pre name="code" class="cpp">

CASE WHEN &#039;@{AlphaNum}{Numeric}&#039; = &#039;Numeric&#039;
THEN EVALUATE(&#039;REGEXP_SUBSTR(%1,&#039;&#039;^\d+$&#039;&#039;)&#039;,CUSTOMERS_DETAILS.COMMENTS)
WHEN &#039;@{AlphaNum}{Numeric}&#039; = &#039;Alphabets&#039;
THEN EVALUATE(&#039;REGEXP_SUBSTR(%1,&#039;&#039;^[a-zA-Z]+$&#039;&#039;)&#039;,CUSTOMERS_DETAILS.COMMENTS)
ELSE EVALUATE(&#039;REGEXP_SUBSTR(%1,&#039;&#039;^[a-zA-Z0-9]+$&#039;&#039;)&#039;,CUSTOMERS_DETAILS.COMMENTS) END IS NOT NULL 
</pre>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image22.png?w=644&#038;h=151" border="0" alt="image" width="644" height="151" /></p>
<p>Now include this report in the main dashboard along with the prompt.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image23.png?w=366&#038;h=289" border="0" alt="image" width="366" height="289" /></p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image24.png?w=289&#038;h=234" border="0" alt="image" width="289" height="234" /></p>
<p>As you see, the RegEx functions are pretty powerful. And of course, with the advent of EVALUATE, we now have the capability to leverage them from BI EE itself. This saves time and effort in implementing complex string based logics.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/627/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/627/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/627/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=627&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/06/04/oracle-bi-ee-10-1-3-4-1-handling-complex-string-manipulations-using-regular-expressions-regex-and-evaluate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image16.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image17.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image18.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image19.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image20.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image21.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image22.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image23.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image24.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Data Integrator 10.1.3.5 &#8211; Using Oracle BI EE as a Data Source &#8211; Loading Essbase data into custom tables &#8211; Using JDBC-ODBC Bridge</title>
		<link>http://oraclebizint.wordpress.com/2009/06/02/oracle-data-integrator-10-1-3-5-using-oracle-bi-ee-as-a-data-source-loading-essbase-data-into-custom-tables-using-jdbc-odbc-bridge/</link>
		<comments>http://oraclebizint.wordpress.com/2009/06/02/oracle-data-integrator-10-1-3-5-using-oracle-bi-ee-as-a-data-source-loading-essbase-data-into-custom-tables-using-jdbc-odbc-bridge/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 08:23:14 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>
		<category><![CDATA[Oracle Data Integrator]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=616</guid>
		<description><![CDATA[In the blog entry here, i had basically shown multiple ways of loading data into Essbase. Today we shall see an approach wherein one can extract data from Oracle BI Server using the JDBC-ODBC bridge. The idea is to use BI Server to import Essbase metadata. Then Oracle Data Integrator would be used to extract [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=616&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In the blog entry <a href="http://oraclebizint.wordpress.com/2009/05/27/oracle-enterprise-performance-management-architect-epma-administering-essbase-planning-and-hfm-setup/" target="_blank">here</a>, i had basically shown multiple ways of loading data into Essbase. Today we shall see an approach wherein one can extract data from Oracle BI Server using the JDBC-ODBC bridge. The idea is to use BI Server to import Essbase metadata. Then Oracle Data Integrator would be used to extract the Essbase metadata through MDX via the BI Server and then load into a custom table. Though there are no out of the box RKM’s to reverse engineer BI Server metadata, we can work around them using some other functionality. If you want to extend this, you can create your own custom RKM to reverse-engineer BI Server metadata tables.</p>
<p>To start with lets first import a sample Demo-&gt;Basic cube into our BI EE repository. While creating the subject area of this cube, ensure that you do not have spaces/special characters in the column names. If you need the special characters for Answers, then add aliases with new no space/special characters name. For example, if you have Gen1, Year as one of your column names, add an alias as Year.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb.png?w=244&#038;h=117" border="0" alt="image" width="244" height="117" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image1.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb1.png?w=244&#038;h=99" border="0" alt="image" width="244" height="99" /></a></p>
<p>The idea behind doing this is to ensure that we can treat these tables as normal tables using the AnalyticsWeb ODBC connection. Of course, we can make ODI to append double quotes if special characters are present in a column or a table name. But for now lets go with this approach.</p>
<p>Once the aliases have been added, go to the Topology Manager and create a universal Data Server using the SUN JDBC-ODBC bridge.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image2.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb2.png?w=244&#038;h=88" border="0" alt="image" width="244" height="88" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image3.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb3.png?w=244&#038;h=170" border="0" alt="image" width="244" height="170" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image4.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb4.png?w=244&#038;h=99" border="0" alt="image" width="244" height="99" /></a></p>
<p>Create a physical schema. Ensure that you are entering the correct subject area name in the schema.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image5.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb5.png?w=244&#038;h=242" border="0" alt="image" width="244" height="242" /></a></p>
<p>Ensure that you are able to test the connection. Once this is done, create a logical schema and assign it to the Physical Data Server through the Global Context.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image6.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb6.png?w=244&#038;h=132" border="0" alt="image" width="244" height="132" /></a></p>
<p>After this go to the designer and create a project. Import the the following Knowledge Modules in to the Project.</p>
<p>1. LKM SQL to SQL<br />
2. CKM SQL</p>
<p>Then create a model. Since we do not have a RKM to reverse engineer the data sources automatically (though you can actually extend other RKM’s for this purpose). So, for now lets manually enter the tables and columns in the Model as shown below</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image7.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb7.png?w=165&#038;h=244" border="0" alt="image" width="165" height="244" /></a></p>
<p>Use the Aliases as the column names.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image8.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb8.png?w=244&#038;h=199" border="0" alt="image" width="244" height="199" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image9.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb9.png?w=171&#038;h=244" border="0" alt="image" width="171" height="244" /></a></p>
<p>Now ensure that you are able view the data directly from Essbase using this.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image10.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb10.png?w=147&#038;h=244" border="0" alt="image" width="147" height="244" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image11.png"><img style="display:inline;border-width:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb11.png?w=336&#038;h=174" border="0" alt="image" width="336" height="174" /></a></p>
<p>If you look at the screenshot above, BI Server would be showing the data against the actual names (Gen1, Year etc). So, you can be sure now that the aliases can be accessed even outside of BI EE using the ODBC connection. Now, to make this simple lets create a straight forward table called YEAR_DIM_ESS in any database schema (this will act as our target)</p>
<pre name="code" class="cpp">

CREATE TABLE
YEAR_DIM_ESS (
YEAR VARCHAR2(100),
QUARTER VARCHAR2(20),
MONTH VARCHAR2(20)); 
</pre>
<p>Import this table to another Model. And then create an interface mapping the columns from the source to the target. Ensure that you are using the SUNOPSIS_MEMORY_ENGINE as the staging area.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image12.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb12.png?w=243&#038;h=172" border="0" alt="image" width="243" height="172" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image13.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb13.png?w=244&#038;h=91" border="0" alt="image" width="244" height="91" /></a></p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image14.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb14.png?w=244&#038;h=137" border="0" alt="image" width="244" height="137" /></a></p>
<p>Now, if you execute the interface, you would have essbase data loaded inside the database table.</p>
<p><a href="http://oraclebizint.files.wordpress.com/2009/06/image15.png"><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/06/image_thumb15.png?w=244&#038;h=135" border="0" alt="image" width="244" height="135" /></a></p>
<p>This is one other good option to consider if you have full set of end to end oracle tools like ODI, Essbase, BI EE etc. In this case today, i have used the JDBC-ODBC bridge. Later i would be covering how we can use the JDBC jar of BI Server directly within ODI.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/616/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=616&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/06/02/oracle-data-integrator-10-1-3-5-using-oracle-bi-ee-as-a-data-source-loading-essbase-data-into-custom-tables-using-jdbc-odbc-bridge/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb11.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb12.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb13.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb14.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/06/image_thumb15.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle BI EE 10.1.3.4.1 &amp; Essbase Connectivity &#8211; Displaying Member Intrinsic &amp; Custom Properties &#8211; Aliases and UDAs</title>
		<link>http://oraclebizint.wordpress.com/2009/05/31/oracle-bi-ee-10-1-3-4-1-essbase-connectivity-displaying-member-intrinsic-custom-properties-aliases-and-udas/</link>
		<comments>http://oraclebizint.wordpress.com/2009/05/31/oracle-bi-ee-10-1-3-4-1-essbase-connectivity-displaying-member-intrinsic-custom-properties-aliases-and-udas/#comments</comments>
		<pubDate>Sun, 31 May 2009 21:10:47 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=581</guid>
		<description><![CDATA[One of the common questions asked in the existing BI EE to Essbase connectivity is the ability to display member names in a report instead of the alias names. Currently BI EE does not support displaying the member names(if default alias exist already) in a direct way. So, lets take a look at an approach [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=581&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the common questions asked in the existing BI EE to Essbase connectivity is the ability to display member names in a report instead of the alias names. Currently BI EE does not support displaying the member names(if default alias exist already) in a direct way. So, lets take a look at an approach today which basically extends on the method described <a href="http://www.oracle.com/technology/products/bi/pdf/obiee-essbase-modeling-guide.pdf" target="_blank">here</a> in the modeling guide. Actually,. the method described there is correct but the explanation is partly wrong(in a different context it is right though). It is described there that Member Names are supported for only Level-0 members. It is actually supported for all the generations. But when a drill happens the alias names will return. Lets look at why this happens and of course understand the capability of BI EE in displaying other member intrinsic properties.</p>
<p>The most common question that generally comes up with regard to member names is, why not EVALUATE can be used to display them directly. The main reason why this is not possible is, Member Name is an intrinsic property of a member. There are no MDX functions which can actually be used to display a member name. An essbase member has many intrinsic properties. The intrinsic properties are listed below</p>
<p>1. MEMBER_NAME<br />
2. MEMBER_ALIAS<br />
3. LEVEL_NUMBER<br />
4. GEN_NUMBER<br />
5. IS_EXPENSE<br />
6. COMMENTS<br />
7. RELATIONAL_DESCENDANTS<br />
8. MEMBER_UNIQUE_NAME<br />
9. ANCESTOR_NAME</p>
<p>Apart from the above there are other properties like custom UDA properties etc. Now lets take the example of the Demo Basic cube. If you look at the outline of this cube, it has aliases at the Time dimension level and also for the quarters(not for the level-0 though). Now, our aim is that, whenever we include these levels in the report, the report should automatically display the member names instead of the alias names.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image.png?w=244&#038;h=153" border="0" alt="image" width="244" height="153" /></p>
<p>The intrinsic properties are typically referred directly in the repository as the External Name.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image1.png?w=244&#038;h=200" border="0" alt="image" width="244" height="200" /></p>
<p>So, in order to refer the alias, lets create a custom physical cube column as shown below.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image2.png?w=244&#038;h=229" border="0" alt="image" width="244" height="229" /></p>
<p>The name for the column can be anything. Basically we are creating an Member Name column for the level that has aliases. In our case it is the quarter level.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image3.png?w=244&#038;h=185" border="0" alt="image" width="244" height="185" /></p>
<p>Assign this new column to the Gen2, Year of the year dimension.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image4.png?w=244&#038;h=139" border="0" alt="image" width="244" height="139" /></p>
<p>Also, make this column to be part of the BMM and the presentation layer. Now, if you create a report on this column and a measure, you would get a report only with the member names for the Quarter Level.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image5.png?w=244&#038;h=178" border="0" alt="image" width="244" height="178" /></p>
<p>But the problem with this approach is that, once you drill on this column, the drills would return. That can be manipulated by re-arranging the level keys accordingly. The main reason why i introduced this was to show a very good feature that can be derived using this approach. In many cases, you would have a report containing 2 or 3 dimension levels and a fact measure. In the same report, you might want to know which dimension member has a specific UDA assigned. For example, consider the outline below</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image6.png?w=244&#038;h=107" border="0" alt="image" width="244" height="107" /></p>
<p>If you look at the Market dimension, the 2nd generation has multiple UDAs assigned. Assume that we have a report like the one shown below</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image7.png?w=237&#038;h=219" border="0" alt="image" width="237" height="219" /></p>
<p>In the above report, we need one more column stating whether that member has a “Major Market” UDA assigned or not. This is not possible using MDX as the UDA based MDX functions will filter the members based on a UDA (which is not our requirement). So, to start with lets create a custom Physical cube column. In the External name of the column enter Major Market as the External Name. UDA is a custom property of a member. Hence it can be referenced directly as an External name as shown below</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image8.png?w=244&#038;h=185" border="0" alt="image" width="244" height="185" /></p>
<p>Now, include this UDA in the Gen2, Region level of the Market Dimension.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image9.png?w=244&#038;h=154" border="0" alt="image" width="244" height="154" /></p>
<p>Once this extra column is included, just include this in the BMM and the presentation layer. Now in the above report, pull in this column. This would basically show all the members having the Major Market UDA as 1. Remaining members that do not have this UDA assigned will be shown as 0.</p>
<p><img style="border-right:0;border-top:0;display:inline;border-left:0;border-bottom:0;" title="image" src="http://oraclebizint.files.wordpress.com/2009/05/image10.png?w=244&#038;h=195" border="0" alt="image" width="244" height="195" /></p>
<p>The above technique can be used for other solving other interesting reporting requirements as well. Its heartening to see every aspect of MDX being available in some form or other for customization.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/581/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/581/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/581/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=581&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/05/31/oracle-bi-ee-10-1-3-4-1-essbase-connectivity-displaying-member-intrinsic-custom-properties-aliases-and-udas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image9.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://oraclebizint.files.wordpress.com/2009/05/image10.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle Enterprise Performance Management Architect (EPMA) &#8211; Administering Essbase, Planning and HFM &#8211; Setup</title>
		<link>http://oraclebizint.wordpress.com/2009/05/27/oracle-enterprise-performance-management-architect-epma-administering-essbase-planning-and-hfm-setup/</link>
		<comments>http://oraclebizint.wordpress.com/2009/05/27/oracle-enterprise-performance-management-architect-epma-administering-essbase-planning-and-hfm-setup/#comments</comments>
		<pubDate>Wed, 27 May 2009 17:37:13 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPMA]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=568</guid>
		<description><![CDATA[One of the major advantages of Oracle acquiring so many companies is the fact that it integrates all the products in some fashion or the other, that too quickly. For example, if you look at the different possible ways of loading data into Essbase, the list of options available is sometimes absolutely daunting(to an extent [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=568&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>One of the major advantages of Oracle acquiring so many companies is the fact that it integrates all the products in some fashion or the other, that too quickly. For example, if you look at the different possible ways of loading data into Essbase, the list of options available is sometimes absolutely daunting(to an extent flexibility as well) especially for users who are new to the product stack. The following list gives all the possible ways that i can think of for loading data into Essbase</p>
<p>1. Using Essbase Administration Services or EAS<br />
2. Using Essbase Studio (from EPM 11 version)<br />
3. Using Oracle Data Integrator (uses JAPI)<br />
4. Using Hyperion DIM or Data Integration Management<br />
5. Using custom Java, C &amp; VB APIs<br />
6. Using MaxL Scripts through an unix shell or batch script<br />
7. Using Essbase Integration Services (Superceded now by Essbase Studio)<br />
8. Using Oracle Hyperion Enterprise Performance Management Architect</p>
<p>I have covered 7 of the above 8 in prior blog entries. Today we shall see another important tool that is quite commonly used for managing the metadata of Oracle EPM products like Planning, Financial Management &amp; Profitability and Cost Management. This tool called as Enterprise Performance Management Architect or EPMA provides a uniform platform for metadata management across most of the Hyperion components. Apart from its capabilities, one strange aspect to this product is the fact that it depends on IIS to web enable itself. So, you would need a mandatory windows server to host this. When i started using this a couple of months back, my initial impressions were far from impressive. I am not sure whether it was because of my environment or because of the product itself. Whenever EPMA was started, it seemed to be consuming the entire memory(more than the memory occupied by SGA of Oracle and the Essbase Kernel). Having said that, its features(and also the concept of common metadata management) are really good and of course with more usage i am starting to like this more and more.</p>
<p>Today we shall see what it takes to setup EPMA to manage Essbase Applications/Outlines. Just remember the fact that EPMA was never designed to do individual application(Essbase, Planning etc) level administration. That is meant for the respective product administration tools. EPMA is meant for managing the metadata like dimensions, hierarchies, data loads across product sets etc. So, in effect it is like ODI or Hyperion DIM but with more product specific multi-dimensional features thrown in. So, if you are managing Planning, Essbase and HFM (or any of these 2) in your organization EPMA could be a good fit when you want to use a single tool for managing the common dimensions, data loads etc.</p>
<p>To use EPMA for managing Essbase specific application outline members, ensure that you are using Essbase in external mode i.e shared services security should be used. By default when you install EPM in windows, Essbase will be installed with SSO configured against shared services.  SSO is not sufficient to use EPMA against Essbase. Ensure that you convert Essbase from local authentication to External authentication. That is done by externalizing the users from Essbase Administration Services.</p>
<p><a href="http://picasaweb.google.com/lh/photo/mQN1sBT3rasmKtWf_-6SoQ?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16RCvNDYI/AAAAAAAAGu0/7_MqXjOBbB8/s400/Snap1.jpg" alt="" /></a></p>
<p>Once that is done, the next step is to create a data source for the interface tables using the EPM Configurator.</p>
<p><a href="http://picasaweb.google.com/lh/photo/9t7FXEDIMtMNpmhX4I5zfg?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16Rq70K8I/AAAAAAAAGu4/YGsBFPKvO3E/s400/Snap2.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/AHOgCV4UyUnuhlHU58LOCA?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16SUgoBSI/AAAAAAAAGu8/-4T7rMHgVWM/s400/Snap4.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/4tDyvofrjMJPDjRDGmIWYg?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16SrZvRXI/AAAAAAAAGvA/5yaMU78ItWM/s400/Snap5.jpg" alt="" /></a></p>
<p>These interface tables are used for importing the pre-defined common dimension types that are available across EPMA. The idea is to have custom members defined in these interface tables and then import them into EPMA. This step is needed only if you have pre-defined members defined in the interface tables. If you are starting from scratch then this is not needed. Once the data source is created, log into EPMA and go to Application Library.</p>
<p><a href="http://picasaweb.google.com/lh/photo/K_BFS0-eLZgz4rcXMuDkiA?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16S6bB_oI/AAAAAAAAGvE/Z0O0Rk-tBYc/s400/Snap6.jpg" alt="" /></a></p>
<p>Then create a new Essbase (ASO) application.</p>
<p><a href="http://picasaweb.google.com/lh/photo/7nF9zaVGkrJsHGf7IpoPAQ?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16TSNHnlI/AAAAAAAAGvI/AbVi-wRHvCk/s400/Snap7.jpg" alt="" /></a></p>
<p>Then edit this ASO application and create the dimensions and the corresponding members as shown below</p>
<p><a href="http://picasaweb.google.com/lh/photo/3NmltyGNS_Np9qiEhFhP5g?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16Tk06MsI/AAAAAAAAGvM/W5yW-4cbdCg/s400/Snap8.jpg" alt="" /></a></p>
<p>After this step, go to shared services and ensure that the user with which you have logged in as has the necessary privileges to access Essbase. Basically one would need application and database administrator privileges.</p>
<p><a href="http://picasaweb.google.com/lh/photo/VxWPGQCuj6LxsZdmrNb4ng?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16UIQYXoI/AAAAAAAAGvQ/z1_El5qjobk/s400/Snap9.jpg" alt="" /></a></p>
<p>Then you can deploy this application directly from EPMA to Essbase.</p>
<p><a href="http://picasaweb.google.com/lh/photo/r-oAf0tufkzrqc-m40uhCA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16Uf799HI/AAAAAAAAGvU/tPkGbNm1E6I/s400/Snap11.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/m0DUcx_hD2_SCptlVDIDvw?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/Sh16Ul59rFI/AAAAAAAAGvY/4mL5bRRCVzU/s400/Snap12.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/IjlgK03isezbx9L5wr90AA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16VHb-LgI/AAAAAAAAGvc/43q61PiX0GA/s400/Snap13.jpg" alt="" /></a></p>
<p>The major drawback with this is that this does not provide any restructuring options when data is loaded into a deployed cube. Also, one should not be changing the application directly within Essbase using EAS. Then the sync between EPMA and Essbase would be lost and all changes would be over-written when the sync is done from EPMA again. Typically EPMA is not recommended for Essbase applications. It is very good for managing Planning and HFM metadata. One can use shared dimensions wherein the same dimension can be reused across applications.This should give you an idea of how EPMA works. I would go into details of how one can do data synchronization across applications using EPMA in the coming blog entries.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/568/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/568/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/568/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/568/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/568/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/568/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/568/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/568/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/568/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/568/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=568&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/05/27/oracle-enterprise-performance-management-architect-epma-administering-essbase-planning-and-hfm-setup/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16RCvNDYI/AAAAAAAAGu0/7_MqXjOBbB8/s400/Snap1.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16Rq70K8I/AAAAAAAAGu4/YGsBFPKvO3E/s400/Snap2.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16SUgoBSI/AAAAAAAAGu8/-4T7rMHgVWM/s400/Snap4.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Sh16SrZvRXI/AAAAAAAAGvA/5yaMU78ItWM/s400/Snap5.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16S6bB_oI/AAAAAAAAGvE/Z0O0Rk-tBYc/s400/Snap6.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16TSNHnlI/AAAAAAAAGvI/AbVi-wRHvCk/s400/Snap7.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16Tk06MsI/AAAAAAAAGvM/W5yW-4cbdCg/s400/Snap8.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/Sh16UIQYXoI/AAAAAAAAGvQ/z1_El5qjobk/s400/Snap9.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16Uf799HI/AAAAAAAAGvU/tPkGbNm1E6I/s400/Snap11.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/Sh16Ul59rFI/AAAAAAAAGvY/4mL5bRRCVzU/s400/Snap12.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Sh16VHb-LgI/AAAAAAAAGvc/43q61PiX0GA/s400/Snap13.jpg" medium="image" />
	</item>
		<item>
		<title>Oracle BI EE 10.1.3.4.1 &#8211; Writebacks to Essbase &#8211; Using JAPI and Custom HTML &#8211; Part 1</title>
		<link>http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/</link>
		<comments>http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/#comments</comments>
		<pubDate>Mon, 25 May 2009 19:10:06 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=565</guid>
		<description><![CDATA[Considering the amount of expectations surrounding the BI EE and Essbase connectivity, i thought it would make a lot of sense to blog about another interesting piece of the Essbase and BI EE integration i.e Writebacks to Essbase from BI EE. Actually i have seen this question being asked by customers/users in quite a few [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=565&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Considering the amount of expectations surrounding the BI EE and Essbase connectivity, i thought it would make a lot of sense to blog about another interesting piece of the Essbase and BI EE integration i.e Writebacks to Essbase from BI EE. Actually i have seen this question being asked by customers/users in quite a few internal presentations that i have been involved recently. Writebacks to Essbase from BI EE is not supported by default. Having said that one can create a custom solution to enable a writeback to an Essbase cell. We shall see one approach of doing this today.</p>
<p>As you would probably know, Writebacks to a relational source from BI EE is supported through custom XML messages. Unfortunately, as of this release, this method cannot be reused for non-relational sources. Basically our requirement is pretty simple. In a BI EE report (reporting against an Essbase source), the end user should have the ability to enter custom values and update the corresponding intersections back in Essbase. The below screenshot explains the requirement pretty clearly.</p>
<p><a href="http://picasaweb.google.com/lh/photo/SlVCAy9nOfFapW-lvxJZfw?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtafy7VNI/AAAAAAAAGtE/UjQgILO4U_8/s400/Snap1.jpg" alt="" /></a></p>
<p>The high level architecture diagram to enable these writebacks is given below</p>
<p><a href="http://picasaweb.google.com/lh/photo/BKMrSjF_lDk48DEUcbvB7g?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrta-9WEII/AAAAAAAAGtI/dCpvqgvD1jk/s400/Snap2.jpg" alt="" /></a></p>
<p>The high level flow is, for every cell update, the end user will enter the new value and then will click on the update button. That will pass on the parameters to a JSP page using the HTML Form GET method. The JSP will accept the parameters and will in turn pass on the values to the JAPI. The JAPI will then update the Essbase cell. To illustrate this, we shall use the default Demo-&gt;Basic cube. Remember the fact that one cannot use the write backs textboxes directly as currently BI EE does not provide a means of referencing the updated/entered value in a cell outside of the XML template. So, we would need to write our own custom HTML to generate textbox and the update buttons.</p>
<p>Import the Demo Basic cube into the repository and create the BMM and presentation layers by drag and drop. Change the physical and the BMM layer aggregations(of the all the measures for which you want to enable writebacks) to SUM instead of Aggr_External. The main reason for doing this is to ensure that we can use string manipulation functions like concatenation from Answers. For more details on each of these aggregations check my blog entries <a href="http://oraclebizint.wordpress.com/2009/04/06/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-1/">here</a>, <a href="http://oraclebizint.wordpress.com/2009/04/07/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-2/">here</a>, <a href="http://oraclebizint.wordpress.com/2009/04/09/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-3/">here</a> and <a href="http://oraclebizint.wordpress.com/2009/04/13/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-4/">here</a>.</p>
<p><a href="http://picasaweb.google.com/lh/photo/NLAzq5AO5IxU1JRI7jtg4w?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtbDpirYI/AAAAAAAAGtM/7KvH1VgmzOQ/s400/Snap3.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/_Qb3W15t-Xhr0yG03Ul0Ig?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtb4XlmsI/AAAAAAAAGtQ/s7rKBsflfnw/s288/Snap4.jpg" alt="" /></a></p>
<p>Now, lets go to JDeveloper and create a simple JSP page. Use the below code in the JSP. You can customize this to your needs.</p>
<pre name="code" class="cpp">

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;
&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
&lt;%@ page contentType=&quot;text/html;charset=windows-1252&quot;%&gt;
&lt;%@ page import=&quot;java.io.*&quot; %&gt;
&lt;%@ page import=&quot;java.util.Map&quot; %&gt;
&lt;%@ page import=&quot;java.util.Map.Entry&quot; %&gt;
&lt;%@ page import=&quot;java.util.jar.Attributes&quot; %&gt;
&lt;%@ page import=&quot;java.util.Iterator&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.base.*&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.dataquery.*&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.session.*&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.datasource.*&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.domain.*&quot; %&gt;
&lt;%@ page import=&quot;com.essbase.api.metadata.*&quot; %&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=windows-1252&quot;/&gt;
    &lt;title&gt;WriteBackEssbase&lt;/title&gt;
  &lt;/head&gt;
    &lt;body&gt;
		&lt;font size=&quot;5&quot;&gt;&lt;%=&quot;WriteBack Started&quot; %&gt;&lt;/font&gt;

&lt;%

        String s_userName = &quot;admin&quot;;
        String s_password = &quot;password&quot;;
        String s_olapSvrName = &quot;localhost&quot;;
        String s_provider = &quot;http://localhost:13080/aps/JAPI&quot;;

        try
        {
        IEssbase ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);
        IEssDomain dom = ess.signOn(s_userName, s_password, false, null, s_provider);
        IEssOlapServer olapSvr = (IEssOlapServer)dom.getOlapServer(s_olapSvrName);
        olapSvr.connect();
        IEssCubeView cv = dom.openCubeView(&quot;Data Update Example&quot;,s_olapSvrName, &quot;Demo&quot;, &quot;Basic&quot;);

        String v_Market = request.getParameter(&quot;p_Market&quot;);
        String v_Product = request.getParameter(&quot;p_Product&quot;);
        String v_Accounts = request.getParameter(&quot;p_Accounts&quot;);
        String v_Scenario = request.getParameter(&quot;p_Scenario&quot;);
        String v_Year = request.getParameter(&quot;p_Year&quot;);
        String v_Value = request.getParameter(&quot;p_Value&quot;);

        IEssGridView grid = cv.getGridView();
        grid.setSize(2, 5);
        grid.setValue(0, 1, v_Market);
        grid.setValue(0, 2, v_Product);
        grid.setValue(0, 3, v_Accounts); ;
        grid.setValue(0, 4, v_Scenario);
        grid.setValue(1, 0, v_Year);

        cv.performOperation(cv.createIEssOpRetrieve());
        System.out.println(&quot;\nData Cell at 2nd-row, 2nd-column: &quot; + grid.getValue(1,1).toString());
        System.out.println (&quot;Market: &quot;+v_Market+&quot; Product: &quot;+v_Product+&quot; Accounts: &quot;+v_Accounts+&quot; Scenario: &quot;+v_Scenario+&quot; Year: &quot;+v_Year+&quot; Value: &quot;+v_Value);

        int row = 1, col = 1;
        if (grid.getCellContentType(row, col) ==
                IEssGridView.CELL_CONTENT_TYPE_DOUBLE) {
            IEssValueAny val = grid.getValue(row, col);
            double dblVal = val.getDouble();

            grid.setValue(row, col, Double.valueOf(v_Value).doubleValue());
        } else if (grid.getCellContentType(row, col) ==
                IEssGridView.CELL_CONTENT_TYPE_MISSING) {
            grid.setValue(row, col, Double.valueOf(v_Value).doubleValue());
        }

        IEssOpUpdate opUpd = cv.createIEssOpUpdate();
        cv.performOperation(opUpd);

        }catch (EssException x){
            System.out.println(&quot;ERROR: &quot; + x.getMessage());
        }
%&gt;
&lt;font size=&quot;5&quot;&gt;&lt;%=&quot;WriteBack Ended&quot; %&gt;&lt;/font&gt;
		&lt;font size=&quot;5&quot;&gt;&lt;%=&quot;WriteBack Ended&quot; %&gt;&lt;/font&gt;
        &lt;/body&gt;
&lt;/html&gt;
&lt;%
    //response.sendRedirect(&quot;http://localhost:9704/analytics&quot;);
%&gt;
</pre>
<p>I would not explain this in detail as the JSP is self-explanatory. But there is one aspect to writebacks using JAPI that one would have to be aware of. Whenever JAPI is used for writebacks ensure that you have a IEssGridView which basically visualizes your output as an Excel add-in grid. The rows and columns are numbered in an increasing order from zero.</p>
<p><a href="http://picasaweb.google.com/lh/photo/RIZ6U1-3z7DzbFhlFP9nHw?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtcjSkDdI/AAAAAAAAGts/F_PTxQ70OdU/s288/Snap5.jpg" alt="" /></a></p>
<p>The code snippet that actually does the writeback is given below</p>
<p><a href="http://picasaweb.google.com/lh/photo/QApZ9VgyIzEX0HRj063BPQ?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtdlFEIiI/AAAAAAAAGtw/tyZ05MFpuCA/s400/Snap6.jpg" alt="" /></a></p>
<p>Once this is done, this JSP would have to be deployed on a web server that is accessible to BI EE. In order to accomplish that, create a custom WAR profile which would basically contain all the dependent jar files and also the manifest related information.</p>
<p><a href="http://picasaweb.google.com/lh/photo/ZmFvXxvHoZ6dvnf0LYnhpg?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrteeNQ3uI/AAAAAAAAGt0/e1kUj_-MtVw/s400/Snap7.jpg" alt="" /></a></p>
<p>Then deploy this WAR file on the same application server as BI EE (or OC4J).</p>
<p><a href="http://picasaweb.google.com/lh/photo/NoNwKxFPBZ37hh0LN5HVGA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrtfmrv-nI/AAAAAAAAGt4/XCuz3M6BR7k/s400/Snap8.jpg" alt="" /></a></p>
<p>Once the deployment is done, test the jsp page by passing the url as shown below</p>
<pre name="code" class="cpp">

http://localhost:9704/WriteBack/WriteBack.jsp?&amp;p_Value=2000&amp;p_Market=Market&amp;p_Product=Product&amp;p_Accounts=Accounts&amp;p_Scenario=Actual&amp;p_Year=Qtr1
</pre>
<p><a href="http://picasaweb.google.com/lh/photo/EJ8Vn3hzHpOI93zi8hiWfA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrtf6gWYEI/AAAAAAAAGt8/SAB7hEJgbRk/s400/Snap9.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/CiOg7gABU8YWZ6CozZ7IfQ?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtgtM7F0I/AAAAAAAAGuA/8kNodFftqEI/s288/Snap10.jpg" alt="" /></a></p>
<p>Once this is done, lets create a BI EE report containing all the dimensions. Remember that for writebacks to work in Essbase, we would need a value/member from every dimension. Create a custom column and in the custom colum enter the formula as shown below</p>
<p><a href="http://picasaweb.google.com/lh/photo/vyISFN8G5LcQEYxe3sz4Tw?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtg8MpbtI/AAAAAAAAGuE/BL1TIAOkxBg/s400/Snap11.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/R_DpG6y3lWyWBjdg3UbKyA?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/Shrthkt0gfI/AAAAAAAAGuI/DAumeYCZtmk/s400/Snap12.jpg" alt="" /></a></p>
<pre name="code" class="cpp">

&#039;&lt;form name=&quot;input&quot; action=&quot;http://localhost:9704/WriteBack/WriteBack.jsp&quot;&gt;
&lt;input type=&quot;text&quot; name=&quot;p_Value&quot; size=&quot;10&quot;/&gt;
&lt;input type=&quot;submit&quot; value=&quot;Update&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;p_Accounts&quot; value=&quot;Sales&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;p_Year&quot; value=&quot;&#039;||&quot;Year&quot;.&quot;Gen2,Year&quot;||&#039;&quot;/&gt;
&lt;input type=&quot;hidden&quot; name=&quot;p_Market&quot; value=&quot;&#039;||Market.&quot;Gen2,Market&quot;||&#039;&quot;/&gt;
&lt;input type=&quot;hidden&quot; name=&quot;p_Product&quot; value=&quot;&#039;||Product.&quot;Gen1,Product&quot;||&#039;&quot;/&gt;
&lt;input type=&quot;hidden&quot; name=&quot;p_Scenario&quot; value=&quot;&#039;||Scenario.&quot;Gen2,Scenario&quot;||&#039;&quot;/&gt;
&lt;/form&gt;&#039;
</pre>
<p>And change the column format to HTML.</p>
<p><a href="http://picasaweb.google.com/lh/photo/AXBF8i54g0TUDK-9JgL_JA?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtiD4t-sI/AAAAAAAAGuM/FLfG2idVPW8/s400/Snap13.jpg" alt="" /></a></p>
<p>Basically what the formula above does is, it create an HTML input field in the report itself. One parameter p_Value would be obtained from the value of the textbox and the remaining hidden form parameters will be used for passing the dimension member attributes to the url.</p>
<p>If you go to the report now, you can alter the existing values and on submit, these values would be submitted back to Essbase.</p>
<p><a href="http://picasaweb.google.com/lh/photo/R5VVwjZPedxnU7bV0OpPwA?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/Shrti0-vvMI/AAAAAAAAGuQ/JroT4NGNZVI/s400/Snap14.jpg" alt="" /></a></p>
<p><a href="http://picasaweb.google.com/lh/photo/qJh3hRH4EXJwat3IKiCLyQ?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtjSy0H7I/AAAAAAAAGuU/T7ezFkX6PGY/s288/Snap15.jpg" alt="" /></a></p>
<p>The same methodology can be used for writing data back into Oracle OLAP as well. This is one method of doing writebacks. There is one more method as well wherein one can use the Writeback template itself. I will discuss that in future. But for now, the above should give an idea of how Writebacks can be enabled in BI EE against Essbase data sources. There are quite a few moving parts. But again these are required due to the nature of the connectivity as of today.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/565/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=565&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/05/25/oracle-bi-ee-10-1-3-4-1-writebacks-to-essbase-using-japi-and-custom-html-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtafy7VNI/AAAAAAAAGtE/UjQgILO4U_8/s400/Snap1.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrta-9WEII/AAAAAAAAGtI/dCpvqgvD1jk/s400/Snap2.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtbDpirYI/AAAAAAAAGtM/7KvH1VgmzOQ/s400/Snap3.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtb4XlmsI/AAAAAAAAGtQ/s7rKBsflfnw/s288/Snap4.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtcjSkDdI/AAAAAAAAGts/F_PTxQ70OdU/s288/Snap5.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShrtdlFEIiI/AAAAAAAAGtw/tyZ05MFpuCA/s400/Snap6.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrteeNQ3uI/AAAAAAAAGt0/e1kUj_-MtVw/s400/Snap7.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrtfmrv-nI/AAAAAAAAGt4/XCuz3M6BR7k/s400/Snap8.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/Shrtf6gWYEI/AAAAAAAAGt8/SAB7hEJgbRk/s400/Snap9.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtgtM7F0I/AAAAAAAAGuA/8kNodFftqEI/s288/Snap10.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/Shrtg8MpbtI/AAAAAAAAGuE/BL1TIAOkxBg/s400/Snap11.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/Shrthkt0gfI/AAAAAAAAGuI/DAumeYCZtmk/s400/Snap12.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtiD4t-sI/AAAAAAAAGuM/FLfG2idVPW8/s400/Snap13.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/Shrti0-vvMI/AAAAAAAAGuQ/JroT4NGNZVI/s400/Snap14.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShrtjSy0H7I/AAAAAAAAGuU/T7ezFkX6PGY/s288/Snap15.jpg" medium="image" />
	</item>
		<item>
		<title>Oracle BI EE 10.1.3.4.1 &#8211; Scheduling Essbase/Planning Calculation Scripts &#8211; Action Framework &amp; Custom Java Remote Procedure calls</title>
		<link>http://oraclebizint.wordpress.com/2009/05/21/oracle-bi-ee-10-1-3-4-1-scheduling-essbaseplanning-calculation-scripts-action-framework-custom-java-remote-procedure-calls/</link>
		<comments>http://oraclebizint.wordpress.com/2009/05/21/oracle-bi-ee-10-1-3-4-1-scheduling-essbaseplanning-calculation-scripts-action-framework-custom-java-remote-procedure-calls/#comments</comments>
		<pubDate>Thu, 21 May 2009 16:48:48 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=561</guid>
		<description><![CDATA[In the blog entry here, i had shown you how to run an essbase calculation script from the BI EE dashboards. To make it even more complete, lets look at a means of calling a calculation script through BI Scheduler. So, our idea is to use BI EE as a scheduler to schedule Essbase/Planning calculations. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=561&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In the blog entry <a href="http://oraclebizint.wordpress.com/2009/04/26/oracle-bi-ee-101341-running-hyperion-essbase-data-loadscalculations-from-bi-ee-using-japi-and-jsps/">here</a>, i had shown you how to run an essbase calculation script from the BI EE dashboards. To make it even more complete, lets look at a means of calling a calculation script through BI Scheduler. So, our idea is to use BI EE as a scheduler to schedule Essbase/Planning calculations. In order to do that there are certain pre-requisites. I have covered this in my blog entry before <a href="http://oraclebizint.wordpress.com/2007/12/17/oracle-bi-ee-101332-calling-java-scripts-and-java-classes-from-ibots/">here</a>. Once the setup is done, lets open the JDeveloper and create a new project. Include the schedulerrpccalls.jar, Ess_japi.jar and Ess_es_server.jar as part of the project properties.</p>
<p><a href="http://picasaweb.google.com/lh/photo/SfkXLZ9BqZhCFd8LTREY9Q?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShWF7PrDAjI/AAAAAAAAGr0/8nfbkRTBnzk/s400/Snap1.jpg" alt="" /></a></p>
<p>The idea is to basically write a custom java program which in turn will run an Essbase calculation script through the Java API. The java program would then be bundled in the form of a jar file and called from an iBot. Use the below code to login to Essbase and then to execute the calculation.</p>
<pre name="code" class="cpp">

package bischeduler;

import java.io.*;

import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJavaExtension;
import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJobInfo;
import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJobException;

import com.essbase.api.base.*;
import com.essbase.api.dataquery.*;
import com.essbase.api.session.*;
import com.essbase.api.datasource.*;
import com.essbase.api.domain.*;
import com.essbase.api.metadata.*;

public class BIScheduler implements SchedulerJavaExtension{
    public BIScheduler() {   

        String s_userName = &quot;admin&quot;;
        String s_password = &quot;password&quot;;
        String s_olapSvrName = &quot;localhost&quot;;
        String s_provider = &quot;http://localhost:13080/aps/JAPI&quot;;

        try
        {
        IEssbase ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);
        IEssDomain dom = ess.signOn(s_userName, s_password, false, null, s_provider);
        IEssOlapServer olapSvr = (IEssOlapServer)dom.getOlapServer(s_olapSvrName);
        olapSvr.connect();

        IEssCube cube = olapSvr.getApplication(&quot;Global&quot;).getCube(&quot;Global&quot;);
        String maxLstat = &quot;import database &#039;Global&#039;.&#039;Global&#039; data connect as &#039;global&#039; identified by &#039;global&#039; using server rules_file &#039;UnitsLd&#039; on error abort;&quot;;
        //cube.loadData(IEssOlapFileObject.TYPE_RULES,&quot;UnitsLd&quot;,0,&quot;SH&quot;,false,&quot;global&quot;,&quot;global&quot;);
        cube.calculate(false,&quot;CalcAll&quot;);
        //cube.beginDataload(&quot;UnitsLd&quot;,IEssOlapFileObject.TYPE_RULES,&quot;global&quot;,&quot;global&quot;,0);
        //IEssMaxlSession maxLsess = (IEssMaxlSession)dom.getOlapServer(s_olapSvrName);
        //maxLsess.execute(maxLstat);
        }catch (EssException x){
            System.out.println(&quot;ERROR: &quot; + x.getMessage());
        }

    }
    public void run(SchedulerJobInfo jobInfo) throws SchedulerJobException{
        new BIScheduler();
        System.out.println(&quot;JobID is:&quot; + jobInfo.jobID());
        System.out.println(&quot;Instance ID is:&quot; + jobInfo.instanceID());
        System.out.println(&quot;JobInfo to string is:&quot; + jobInfo.toString());
    }
    public void cancel(){};

        public static void main(String[] args) {
        new BIScheduler();

    }
}
</pre>
<p><a href="http://picasaweb.google.com/lh/photo/2-Pi43gVr3EJ1iPqr9K3Gg?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/ShWF7lFbeBI/AAAAAAAAGr4/DO_Lf9nW0-4/s400/Snap2.jpg" alt="" /></a></p>
<p>Once this is done, create a deployment profile to bundle the code as a jar file. Ensure that the deployment also bundles the 3 jar files mentioned above. Then deploy the jar file.</p>
<p><a href="http://picasaweb.google.com/lh/photo/9xfkd31SrbtYrU3bhR8G8Q?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShWF8M1o_fI/AAAAAAAAGr8/fGVmQP445F4/s400/Snap3.jpg" alt="" /></a></p>
<p>Now copy the deployed jar file to the {OracleBI}\web\javahost\lib directory (or a directory that you have mentioned as the lib path in the Java host config.xml). Now create an ibot and then in the advanced tab call the deployed jar file as shown below.</p>
<p><a href="http://picasaweb.google.com/lh/photo/5LtSeQFIA3hQmYfkBjVY9g?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShWF8SP6kDI/AAAAAAAAGsE/zCG-7Ze7lCI/s288/Snap4.jpg" alt="" /></a></p>
<p>You can create ibots in such a way that once the java class run is completed, it would trigger another ibot to deliver a report based on an Essbase cube. This will ensure that the administrator is sure of the fact that the calculation has run successfully.</p>
<p><a href="http://picasaweb.google.com/lh/photo/e7gtcaxyVdsOFN6vhi5Kng?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShWF8k7ireI/AAAAAAAAGsI/S66X8NScb9g/s400/Snap5.jpg" alt="" /></a></p>
<p>Now you should be able to run essbase calculations from BI Scheduler directly.  One can even run ODI packages using BI EE. I would cover that as well in future. Keep watching this space next week for a method to do write backs into Essbase. I would present a couple of methods and both of them can be used effectively in a prod like environment.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/561/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/561/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/561/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=561&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/05/21/oracle-bi-ee-10-1-3-4-1-scheduling-essbaseplanning-calculation-scripts-action-framework-custom-java-remote-procedure-calls/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShWF7PrDAjI/AAAAAAAAGr0/8nfbkRTBnzk/s400/Snap1.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/ShWF7lFbeBI/AAAAAAAAGr4/DO_Lf9nW0-4/s400/Snap2.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShWF8M1o_fI/AAAAAAAAGr8/fGVmQP445F4/s400/Snap3.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShWF8SP6kDI/AAAAAAAAGsE/zCG-7Ze7lCI/s288/Snap4.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShWF8k7ireI/AAAAAAAAGsI/S66X8NScb9g/s400/Snap5.jpg" medium="image" />
	</item>
		<item>
		<title>Oracle BI EE 10.1.3.4.1 and Essbase Connectivity &#8211; Report Based and Essbase based Grand Totals &#8211; Answers Based Aggregation</title>
		<link>http://oraclebizint.wordpress.com/2009/05/20/oracle-bi-ee-10-1-3-4-1-and-essbase-connectivity-report-based-and-essbase-based-grand-totals-answers-based-aggregation/</link>
		<comments>http://oraclebizint.wordpress.com/2009/05/20/oracle-bi-ee-10-1-3-4-1-and-essbase-connectivity-report-based-and-essbase-based-grand-totals-answers-based-aggregation/#comments</comments>
		<pubDate>Wed, 20 May 2009 10:13:12 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[All Posts]]></category>
		<category><![CDATA[EPM]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[OBI EE Plus]]></category>

		<guid isPermaLink="false">http://oraclebizint.wordpress.com/?p=559</guid>
		<description><![CDATA[This post here by Christian prodded me to write about another interesting feature in the BI EE and Essbase Connectivity. As you would probably know BI EE supports report based grand totals/sub-totals in a table view. There are 2 types of totals. One is BI Server based totals wherein BI Server would do the totalling [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=559&subd=oraclebizint&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post <a href="http://hekatonkheires.blogspot.com/2009/05/grand-totals-in-essbase-sourced.html">here </a>by Christian prodded me to write about another interesting feature in the BI EE and Essbase Connectivity. As you would probably know BI EE supports report based grand totals/sub-totals in a table view. There are 2 types of totals. One is BI Server based totals wherein BI Server would do the totalling on a result set. The other is data source specific totalling wherein the query is fired back to the underlying data source to obtain the totals. For example, lets just quickly import the Demo-&gt;Basic cube in to the repository and build a very simple report as shown below.</p>
<p><a href="http://picasaweb.google.com/lh/photo/zcRpanxLCS0JIk0sCSLNwQ?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXuVIBM0I/AAAAAAAAGq4/12zWBAowCjU/s288/Snap1.jpg" alt="" /></a></p>
<p>As you see, it is a very simple report containing a report based total and a sub-total at the market level. Before going further, lets look at the outline of the Basic cube first. As you see, every dimension top member is set as a stored only member.</p>
<p><a href="http://picasaweb.google.com/lh/photo/vKKgVRLxeoJ7xtejpx3qyw?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShPXu6WyjcI/AAAAAAAAGq8/tlv_kUsuoTY/s288/Snap2.jpg" alt="" /></a></p>
<p>If you look at the MDX of the above report, you would notice that 3 MDX queries would be fired. One for the base report , one for the grand total and the other for the market sub-total.</p>
<p><a href="http://picasaweb.google.com/lh/photo/IjgJUBY6KIgzF_Ylm1F29g?feat=embedwebsite"><img src="http://lh3.ggpht.com/_Z7VpyEq12Zc/ShPXvvZx_ZI/AAAAAAAAGrA/Vb7l0MrpYcU/s400/Snap3.jpg" alt="" /></a></p>
<p>The aggregation for the Measure Sales is Aggr_External in both the physical and logical layer. In Answers, the aggregation is set as default. Now, lets go to the outline and convert the Year Dimension top member to be a label only member as shown below.</p>
<p><a href="http://picasaweb.google.com/lh/photo/kEJcVoAg4ssWdHnAdvmrvQ?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShPXwRgvgiI/AAAAAAAAGrE/ojCPbdQk8bU/s400/Snap4.jpg" alt="" /></a></p>
<p>Now, try running the same report above. You would notice that the report level totals and sub-totals are totally wrong as shown below.</p>
<p><a href="http://picasaweb.google.com/lh/photo/QvT4tRDApbt66xmrSVejpQ?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXw4bjfCI/AAAAAAAAGrI/4V7G1oSqX-g/s400/Snap5.jpg" alt="" /></a></p>
<p>The main reason for this is the fact that since we have converted the topmost member of the outline to be label-only. So for the Year dimension, it will always pick the Qtr1 value instead of totalling all the quarters. For report developers, this would turn out to be an absolute nightmare considering the fact a report based total is created under the assumption that, the totalling is done on the report and not at the data source level. Now, from Answers lets change the aggregation os the sales measure to SUM.</p>
<p><a href="http://picasaweb.google.com/lh/photo/szgqOhfgUFV4_PIDMIHI7Q?feat=embedwebsite"><img src="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXxh7IjLI/AAAAAAAAGrM/YgaQle2RskA/s400/Snap6.jpg" alt="" /></a></p>
<p>And look at the report.</p>
<p><a href="http://picasaweb.google.com/lh/photo/G7xHNFzByBUtBwJV_8pi6g?feat=embedwebsite"><img src="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShPXyBFgnzI/AAAAAAAAGrQ/64uVdjwSM84/s400/Snap7.jpg" alt="" /></a></p>
<p>Basically, a report level SUM ensures that all the custom aggregations/totalling occuring in a pivot table/table are done at the report level instead of at the Essbase layer. So by default, ensure that you always have SUM at the report level to ensure that you do not get wrong answers especially for totals and sub-totals.</p>
<p><a href="http://picasaweb.google.com/lh/photo/3kufHJoX0Bj3B7nVyg7WOg?feat=embedwebsite"><img src="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShPXy_4ai-I/AAAAAAAAGrU/87NIOV2CHTs/s400/Snap8.jpg" alt="" /></a></p>
<p>This should have given you an idea of how the aggregations at 3 layers (Physical, BMM and the Answers) can affect a report. I would cover the usage of Report Aggregations across different BMM and Physical Layer aggregations in the future.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/oraclebizint.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/oraclebizint.wordpress.com/559/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/oraclebizint.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/oraclebizint.wordpress.com/559/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/oraclebizint.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/oraclebizint.wordpress.com/559/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/oraclebizint.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/oraclebizint.wordpress.com/559/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/oraclebizint.wordpress.com/559/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/oraclebizint.wordpress.com/559/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=oraclebizint.wordpress.com&blog=1386373&post=559&subd=oraclebizint&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://oraclebizint.wordpress.com/2009/05/20/oracle-bi-ee-10-1-3-4-1-and-essbase-connectivity-report-based-and-essbase-based-grand-totals-answers-based-aggregation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/35fbb3d2df86e2add1ee1d25ccde5f55?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">krisvenkat</media:title>
		</media:content>

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXuVIBM0I/AAAAAAAAGq4/12zWBAowCjU/s288/Snap1.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShPXu6WyjcI/AAAAAAAAGq8/tlv_kUsuoTY/s288/Snap2.jpg" medium="image" />

		<media:content url="http://lh3.ggpht.com/_Z7VpyEq12Zc/ShPXvvZx_ZI/AAAAAAAAGrA/Vb7l0MrpYcU/s400/Snap3.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShPXwRgvgiI/AAAAAAAAGrE/ojCPbdQk8bU/s400/Snap4.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXw4bjfCI/AAAAAAAAGrI/4V7G1oSqX-g/s400/Snap5.jpg" medium="image" />

		<media:content url="http://lh6.ggpht.com/_Z7VpyEq12Zc/ShPXxh7IjLI/AAAAAAAAGrM/YgaQle2RskA/s400/Snap6.jpg" medium="image" />

		<media:content url="http://lh4.ggpht.com/_Z7VpyEq12Zc/ShPXyBFgnzI/AAAAAAAAGrQ/64uVdjwSM84/s400/Snap7.jpg" medium="image" />

		<media:content url="http://lh5.ggpht.com/_Z7VpyEq12Zc/ShPXy_4ai-I/AAAAAAAAGrU/87NIOV2CHTs/s400/Snap8.jpg" medium="image" />
	</item>
	</channel>
</rss>