<?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/"
	>

<channel>
	<title>Rittman Mead Consulting &#187; FMW</title>
	<atom:link href="http://www.rittmanmead.com/category/fmw/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rittmanmead.com</link>
	<description>Delivering Oracle Business Intelligence</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:18:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Configuring OBI 11g to use port 80</title>
		<link>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/</link>
		<comments>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 21:16:54 +0000</pubDate>
		<dc:creator>Robin Moffatt</dc:creator>
				<category><![CDATA[Application Server]]></category>
		<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[80]]></category>
		<category><![CDATA[admin server]]></category>
		<category><![CDATA[bi_server1]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[fmw]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[simple]]></category>
		<category><![CDATA[sudo]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=9786</guid>
		<description><![CDATA[Introduction By default, OBI 11g will listen for connections on port 7001 or port 9704 depending on your installation type. There are several reasons you may want to change this, and one of them would be to make it use port 80, the default http port. If you use port 80, then you don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[<h2>Introduction</h2>
<p>By default, OBI 11g will listen for connections on port 7001 or port 9704 depending on your installation type. There are several reasons you may want to change this, and one of them would be to make it use port 80, the default http port. If you use port 80, then you don&#8217;t have to specify it in the URL, so you can use <em>http://biserver/analytics/</em> as your URL instead of <em>http://biserver<strong>:9704</strong>/analytics/</em>. </p>
<p>The port configuration is a simple change to be made to the Server configuration in Web Logic Console. However, if you want to use port 80 and are running Linux/Unix there is an additional consideration. On Linux/Unix (hereafter, I&#8217;ll just refer to Linux), any port < 1024 is considered privileged and you must run the program binding to it as root. </p>
<p>At this point, if you don't have root access on your box already and are beholden to a sysadmin team, I would suggest validating your reasons for wanting to run on port 80, since you are going to have to go begging for some kind of privileged access. If you're up for that, then read on. If not, then why not stick with 9704, it's a nice number anyway....</p>
<h2>Overview of the change to listen on port 80</h2>
<p>The configuration changes are actually very simple. They are just within Web Logic Server, we don&#8217;t touch the BI components at all.</p>
<p>We change the <b>Listen Port</b> property of the <b>Server</b> to port 80.</p>
<p>Since we are using port 80, we will have to start the server process as root. But, we can get Web Logic to revert back to the OBI user&#038;group once the port has been bound to (since running a process as root is generally a Bad Idea)</p>
<p>To do this, we configure <b>Post-Bind UID</b> in the <b>Machine</b> properties.</p>
<h2>WLS &#8211; Server configuration</h2>
<p>Depending on whether you have a <b>Enterprise</b> or <b>Simple</b> OBI installation, the configuration will differ slightly. See <a href="http://www.rittmanmead.com/2011/10/oow2011-obiee-11g-architecture-internals/">Mark&#8217;s post here</a> for explanation of the difference between the two installation types. In an <b>Enterprise</b> installation, you need to modify the properties of the <b>bi_server1</b> <em>Managed Server</em>, whereas a <b>Simple</b> installation has all the bits within <b>AdminServer</b>.</p>
<p>For both however, you need to login to Web Logic Admin Console, and locate the <b>Servers</b> screen. Click on either <b>AdminServer</b> (Simple installation) or <b>bi_server1</b> (Enterprise installation) to view the Server settings.</p>
<p>Click on <b>Lock &#038; Edit</b><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-27.png" alt="" title="rm-oel02-27" width="559" height="267" class="alignnone size-full wp-image-9805" /></p>
<p>Locate <b>Listen Port</b> on the Server configuration (Configuration -> General, if not already displayed). Change this to 80.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-2.png" alt="" title="rm-oel02-2" width="598" height="338" class="alignnone size-full wp-image-9804" /></p>
<p>Click on <b>Save</b>.</p>
<h2>WLS &#8211; Machine configuration</h2>
<p>Still logged into Web Logic Admin Console, with the above Listen Port change pending, click on the <b>Machines</b> link under <b>Environment</b> in the <b>Domain Structure</b> menu. Click on your server name.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/skitched-20120104-155829.png" alt="" title="skitched-20120104-155829" width="568" height="347" class="alignnone size-full wp-image-9806" /></p>
<p>Now, tick the two items <b>Enable Post-Bind UID</b> and <b>Enable Post-Bind GID</b>.</p>
<p>To determine your userid and group, login with your normal OBI user, and type <b>id</b></p>
<pre class="brush: bash; highlight: [2]; light: true; title: ; notranslate">
$ id
uid=300(oracle) gid=301(oinstall)
</pre>
<p>Enter these values in <b>Post-Bind UID</b> and <b>Post-Bind GID</b><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-6.png" alt="" title="rm-oel02-6" width="443" height="479" class="alignnone size-full wp-image-9807" /></p>
<p>Click on <b>Save</b>.</p>
<h2>Activate the changes</h2>
<p>In Web Logic Admin Console, click on <b>Activate Changes</b>.<br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-8.png" alt="" title="rm-oel02-8" width="542" height="280" class="alignnone size-full wp-image-9810" /></p>
<p>When this has completed successfully, shutdown the stack and then see below for how to start it back up.</p>
<h2>Starting up the stack to listen on port 80</h2>
<p>You don&#8217;t need to run all of the components with root privilege, only those that are binding to port 80. In addition, in an Enterprise installation you have the <b>Node Manager</b> component which is responsible for invoking Managed Servers, and since we need the Managed Server bi_server1 to be run with root privileges, <b>Node Manager</b> must be too. </p>
<h3>&#8216;Simple&#8217; installation</h3>
<ol>
<li>Start WebLogic, <b>as root</b></li>
<li>Start OPMN and BI Components (not as root)</li>
</ol>
<h3>&#8216;Enterprise&#8217; installation</h3>
<ol>
<li>Start NodeManager, <b>as root</b>
<ul>
<li>If you don&#8217;t start this as root, you won&#8217;t be able to start up the Managed Server bi_server1 from within Web Logic Admin Console</li>
</ul>
</li>
<li>Start WebLogic (AdminServer) (not as root)</li>
<li>Start WebLogic Managed Server (bi_server1), <b>as root</b></li>
<li>Start OPMN and BI Components (not as root)</li>
</ol>
<h2>Validate the changes</h2>
<p>You should now be able to access OBI at port 80, which as the default HTTP port doesn&#8217;t need specifying in your URL. So if previously it was <strong>http://localhost:9704/analytics/</strong> you should now be able to see it at <strong>http://localhost/analytics</strong><br />
<img src="http://www.rittmanmead.com/wp-content/uploads/2012/01/rm-oel02-9.png" alt="" title="rm-oel02-9" width="641" height="295" class="alignnone size-full wp-image-9811" /></p>
<p>If you look in the Web Logic server log (AdminServer.log / bi_server1.log respectively), you should see this kind of entry:</p>
<pre class="brush: plain; light: true; title: ; notranslate">
&lt;Notice&gt; &lt;Server&gt; &lt;BEA-002613&gt; &lt;Channel &quot;Default[1]&quot; is now listening on 192.168.69.0:80 for protocols iiop, t3, ldap, snmp, http.&gt;
&lt;Notice&gt; &lt;Server&gt; &lt;BEA-002613&gt; &lt;Channel &quot;Default[2]&quot; is now listening on 127.0.0.1:80 for protocols iiop, t3, ldap, snmp, http.&gt;
</pre>
<p>And <a href="http://en.wikipedia.org/wiki/Netstat">netstat</a> should show something like:</p>
<pre class="brush: bash; light: true; title: ; notranslate">
$ netstat -a|grep LISTEN|grep 80
[…]
biserver01.80             *.*                0      0 49152      0 LISTEN
localhost.80               *.*                0      0 49152      0 LISTEN
[…]
</pre>
<p>or you might see the port named instead of numbered, thus:</p>
<pre class="brush: bash; light: true; title: ; notranslate">
$ netstat -a|grep LISTEN|grep http
tcp        0      0 rm-oel02.localdomain:http   *:*                         LISTEN
tcp        0      0 localhost.localdomain:http  *:*                         LISTEN
</pre>
<h2>Possible errors</h2>
<p>If you don&#8217;t start the process as root, then it will fail to bind to port 80, and you&#8217;ll see this error in the log:</p>
<pre class="brush: plain; title: ; notranslate">
 &lt;Error&gt; &lt;Server&gt; &lt;BEA-002606&gt; &lt;Unable to create a server socket for listening on channel &quot;Default[1]&quot;. The address 127.0.0.1 might be incorrect or another process is using port 80: java.net.BindException: Permission denied.&gt;
</pre>
<h2>sudo</h2>
<p>What is sudo? Well, any chance to quote this xkcd cartoon is a good one: </p>
<p align=center><img src="http://imgs.xkcd.com/comics/sandwich.png" alt="xkcd - sudo make me a sandwich" title="xkcd - sudo make me a sandwich"></p>
<p>What sudo does is let you run a command under root (superuser) privileges, without actually being root. This is very useful in two ways: (1) your sysadmins don&#8217;t have kittens when you ask for root access, because they can give it in a very granular way which is logged every time it is used (2) you&#8217;re not let loose on a server with unfettered root access where a simple slip of the keyboard can serious knacker things up (hence your sysadmin&#8217;s kittens). </p>
<p>sudo can be granted globally for a user, that is, any command the user wants to run as root can be done so. Alternatively, sudo can be allowed for one or many pre-specified commands. This means that in this case your sysadmins can give you the right to run the required WLS processes as root, and absolutely nothing else. </p>
<p>This is an example of such an entry in the sudo configuration file, /etc/sudoers :</p>
<pre class="brush: bash; title: ; notranslate">
Cmnd_Alias BISERVER = /app/fmw11115/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1, /app/fmw11115/wlserver_10.3/server/bin/startNodeManager.sh
# This defines a command alias, BISERVER, with the web logic startup script and arguments to call, and the command to start Node Manager
oracle     localhost=NOPASSWD BISERVER
# user oracle, on machine localhost, can run BISERVER command alias, without being re-prompted for their password
</pre>
<p>Whenever you invoke sudo, it&#8217;ll be logged in /var/log/secure, eg: </p>
<pre class="brush: plain; title: ; notranslate">
Jan  3 17:07:19 rm-oel02 sudo:      rnm : TTY=pts/2 ; PWD=/home/rnm ; USER=root ; COMMAND=/app/fmw11115/user_projects/domains/bifoundation_domain/bin/startManagedWebLogic.sh bi_server1
</pre>
<h2>Alternative to running root/sudo</h2>
<p>An interesting alternative is to leave OBI listening on its default port, and configure the server to forward requests on port 80 to it, for example using iptables. I found this suggestion <a href="http://serverfault.com/questions/84360/regular-user-using-ports-below-1024">here</a>, amongst other places. This way you&#8217;d only need a one-time privileged change made on the server, instead of needing privileged rights continually (however limited they may be)</p>
<p>I&#8217;ve not had chance to try it, and in keeping to the <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS principle</a> would probably only consider it if all other options were exhausted. Thinking of someone coming to the server after me, would their first thought around OBI port configuration really be to look at iptables? Whereas <b>Listen Port</b> is a standard configuration item within WLS.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2012/01/configuring-obi-11g-to-use-port-80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing your password in OBIEE 11G.</title>
		<link>http://www.rittmanmead.com/2011/10/changing-your-password-in-obiee-11g/</link>
		<comments>http://www.rittmanmead.com/2011/10/changing-your-password-in-obiee-11g/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 14:13:37 +0000</pubDate>
		<dc:creator>Ragnar Wessels</dc:creator>
				<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=8895</guid>
		<description><![CDATA[Since the release of OBIEE 11G, one of the questions asked relates to what most people consider a fairly basic bit of functionality: how can a user change his/her own password ? The simple answer is that, out of the box, this is not (yet) supported in the 11G release, unless the user has administrative [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify">Since  the release of OBIEE 11G, one of the questions asked relates to what  most people consider a fairly basic bit of functionality: how can a user  change his/her own password ?</p>
<p style="text-align: justify">The  simple answer is that, out of the box, this is not (yet)  supported in the 11G release, unless the user has administrative  privileges on the weblogic server.<br />
This leaves :</p>
<ol style="text-align: justify">
<li>Asking an administrator to do it.</li>
<li>Granting more privileges on the BI stack, allowing them to log into the weblogic console and modifying the password there.</li>
</ol>
<p style="text-align: justify">Neither of these methods is very flexible since it requires 3rd party intervention on some level to make it happen. Worse,  administrative access would have to be granted to those users,  defeating in large part the purpose of the security infrastructure.</p>
<p style="text-align: justify">One  option would be to create a set of WLST scripts that, to some degree,  hide the administrator credentials, but that option requires users to  run scripts outside of the web front-end. It works but it&#8217;s hardly  intuitive or user-friendly.</p>
<p style="text-align: justify">This  post will explore a method that would enable users to do this  themselves, directly from within Analytics, without the need to  divulge any higher privileged credentials.</p>
<p style="text-align: justify">Since the introduction of OBIEE 11G running on weblogic an extensive API is available containing the functionality that is  already present in the enterprise manager and weblogic console. Part of this is the Mbean tree that OBIEE uses to manage its configuration. This Mbean tree can be browsed using the Enterprise Manager. Each of the Mbeans in this  tree relates a part of the stack and exposes methods to either get or  set bits of the configuration. Of  interest in this case are the Mbeans relating to the Authenticators.  More specifically, in the case of a default installation, the  DefaultAuthenticator linked to the myRealm security provider.</p>
<p style="text-align: justify">Logging into the enterprise manager gives us its exact name and exposed methods:</p>
<p style="text-align: justify"><img class="aligncenter size-full wp-image-8977" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_01.png" alt="" width="597" height="364" /></p>
<p>From here we can invoke the ChangeUserPassword method and change the password for a user.</p>
<p style="text-align: justify">In  order to leverage these Mbean methods outside of the Enterprise Manager  a simple java class can be built, using the aforementioned API.</p>
<p>The steps to be taken in this class are:</p>
<ol style="text-align: justify">
<li>create a connection to the Mbean server</li>
<li>call the password change method in the appropriate Mbean</li>
</ol>
<p style="text-align: justify">I used Jdeveloper 11G R1 for this.</p>
<p style="text-align: justify"><img class="aligncenter size-full wp-image-8978" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_02.png" alt="" width="598" height="302" /></p>
<p style="text-align: justify">So  far so good. I can now change the weblogic password by calling  the java class and verifying success by logging into Analytics with the  new password.</p>
<p style="text-align: justify">In  order to make this class available from within the OBIEE dashboards  I&#8217;ll use a feature that was introduced in OBIEE 11G: the ability to  consume web services. This is possible in 10G as well but some  jiggery pokery is required to get this to work. OBIEE 11G on  the other hand has this functionality by default.</p>
<p style="text-align: justify">First  I have to expose the class as a Web Service. In order to do so I have to  create a Web Service out of it and deploy it to an application server  in the form of a war file. The good thing is that no additional  installation or configuration is required since I already have a full  fledged application server at my fingertips viz. weblogic.<br />
A few clicks in JDeveloper later and it is deployed to the Admin server where it’s visible under the deployments:</p>
<p style="text-align: justify"><img class="aligncenter size-full wp-image-8979" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_03.png" alt="" width="406" height="428" /></p>
<p style="text-align: justify">A quick test in Jdeveloper verifies that it&#8217;s working as advertised.</p>
<p style="text-align: justify"><img class="aligncenter size-full wp-image-9002" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_05a.bmp" alt="" /></p>
<p style="text-align: justify">Now all that remains is to create an action item, call the webservice and place it on a dashboard somewhere.</p>
<p style="text-align: justify">1. Create a new action item in Answers</p>
<p style="text-align: justify">2. Point it to the WSDL descibing my ChangePassword web service</p>
<p style="text-align: justify"><img class="aligncenter size-full wp-image-8982" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_06.png" alt="" width="439" height="405" /></p>
<p>3. Make it prettier by setting prompts, messages and a few of the other options</p>
<p><img class="aligncenter size-full wp-image-8983" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_07.png" alt="" width="660" height="304" /><img class="aligncenter size-full wp-image-8984" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_08.png" alt="" width="660" height="417" /><img class="aligncenter size-full wp-image-8985" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_09.png" alt="" width="660" height="416" /></p>
<p>4. Put in on a dashboard.</p>
<p><img class="aligncenter size-full wp-image-8987" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_11.png" alt="" width="626" height="150" /></p>
<p>And  there we are. Any user can now change their password from the within  Analytics, without being exposed to any administrative credentials.</p>
<p><img class="aligncenter size-full wp-image-8988" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_12.png" alt="" width="366" height="201" /><img class="aligncenter size-full wp-image-8989" src="http://www.rittmanmead.com/wp-content/uploads/2011/10/blog_obiee_pwd_13.png" alt="" width="198" height="115" /></p>
<p>To finish, this consideration:</p>
<p style="text-align: justify">The Web Service can hardcode the weblogic password to connect to the Mbean server. Obviously this is not  ideal since, should it be used to change the weblogic password itself,  the  webservice would stop working. This means that the weblogic user has  to be treated as the exception.</p>
<p>One  way of dealing with this is to not use username/password  authentication but rather use config- and key files to authenticate the  weblogic user. The Web Service in that case would have to regenerate these files each time it&#8217;s used to change the weblogic password.</p>
<p style="text-align: justify">But there&#8217;s an <del>app</del> API call for that.</p>
<p style="text-align: justify">Ragnar</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr />
<em>Unfortunately we can’t send the code or make it available as it’s for a client project. But all that you need is actually in the screenshots, and it’s also documented well in the WLS docs. Sorry about this.</em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2011/10/changing-your-password-in-obiee-11g/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Oracle BI EE 11.1.1.5 &#8211; New JDeveloper Extensions</title>
		<link>http://www.rittmanmead.com/2011/05/oracle-bi-ee-11-1-1-5-new-jdeveloper-extensions/</link>
		<comments>http://www.rittmanmead.com/2011/05/oracle-bi-ee-11-1-1-5-new-jdeveloper-extensions/#comments</comments>
		<pubDate>Fri, 13 May 2011 09:38:30 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=8208</guid>
		<description><![CDATA[As covered by Mark earlier, BI EE 11.1.1.5 has some significant new features and is a definite upgrade for customers using BI EE 11.1.1.3(even for 10g customers). I know the release is only a week old, hence calling it a definite upgrade requires some justification. One of the main reasons for calling it a definite [...]]]></description>
			<content:encoded><![CDATA[<p>As covered by Mark <a href="http://www.rittmanmead.com/2011/05/whats-new-in-obiee-11-1-1-5-ps1/">earlier</a>, BI EE 11.1.1.5 has some significant new features and is a definite upgrade for customers using BI EE 11.1.1.3(even for 10g customers). I know the release is only a week old, hence calling it a definite upgrade requires some justification. One of the main reasons for calling it a definite upgrade is because of the certification of BI Apps 7.9.6.3. BI Apps 7.9.6.3 is a significant upgrade (which i hope to cover in a future posting) and majority of the development of this release has happened using the BI EE 11.1.1.5 (as per the certification). Considering the size of BI Apps modules, i am pretty sure that most of the common bugs that we saw in BI EE 11.1.1.3 would have been ironed out with this release. In addition to the features mentioned in the earlier posting, there are 2 more significant features that have been added to this release. They are</p>
<p>1. <strong>Ability to modify BI EE Metadata through WebService Calls </strong>- So far the only way to modify BI EE RPD was through UDML &amp; XUDML utilities like xudmlgen.exe/sh etc. But with this release we can do these through native Java Web Service Calls. How has this been enabled? Well, now the JDBC/ODBC drivers of BI EE have methods that can update as well in addition to returning results (which in itself is a topic for a future post).</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage8.png" border="0" alt="NewImage" width="492" height="518" /></p>
<p>2. <strong>4 new BI EE JDeveloper Extensions</strong> &#8211; Oracle has added 4 new extensions for JDeveloper. Each extension enables native access to BI EE and its objects. This is a feature that Oracle enabled when JDeveloper 11g TP4 was released. That was even before the BEA acquisition. Refer my post <a href="http://oraclebizint.wordpress.com/2008/05/05/oracle-bi-ee-101332-and-jdeveloper-11g-tech-preview-34-new-integration-features-public-bi-ee-pages-without-authentication-noauthgo-parameter/">here</a> to find how this feature worked in that tech preview. The extensions are</p>
<p>a. <strong>BI EE ADF Extension</strong> &#8211; With this we can extract BI EE objects directly into an ADF application and apply our own visualizations on the data.</p>
<p>b. <strong>BI EE ADF Logical SQL View Object</strong> &#8211; With this we can now fire Logical SQL directly from ADF applications thereby leveraging the capability of BI Server right within our custom BI Apps.</p>
<p>c. <strong>BI EE Soap API extension</strong> &#8211; With this we can make native BI SOAP calls. Custom web catalog services, metadata services etc can be accessed through this extension.</p>
<p>d. <strong>BI EE ADF Task Flow extension (Composer) </strong>- With this we can now create ADF Task Flows using BI EE. This enabled integration right into webcenter.</p>
<p>The extensions can be downloaded from <a href="http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/131167.xml">here</a>.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage9.png" border="0" alt="NewImage" width="500" height="275" /></p>
<p>In this post, i shall be covering the first 2 extensions i.e. the ADF extension and the Logical SQL View Object Extension. For extensions to work we need JDeveloper 11.1.1.5. Earlier releases will not work.</p>
<p><strong>BI EE ADF Extension:</strong></p>
<p>We start off with creating a simple Fusion application as shown below.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage10.png" border="0" alt="NewImage" width="481" height="365" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage11.png" border="0" alt="NewImage" width="495" height="377" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage12.png" border="0" alt="NewImage" width="490" height="371" /></p>
<p>While creating the View Controller choose the Business Intelligence View Component. You will see this entry only after you have loaded the BI Extensions.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage13.png" border="0" alt="NewImage" width="498" height="380" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage14.png" border="0" alt="NewImage" width="491" height="376" /></p>
<p>As you as you have created the application, you will notice that the in the list of the Application Resources, BI Presentation Services will be listed as one of the connectors. Lets make a connection to BI EE (11.1.1.5).</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage15.png" border="0" alt="NewImage" width="423" height="182" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage16.png" border="0" alt="NewImage" width="501" height="379" /></p>
<p>In the next step, you will have an option to choose static resources. Again, this is a new feature of BI EE 11.1.1.5 i.e. we can configure BI EE to use static resources from an external HTTP server there by making the application render images etc faster.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage17.png" border="0" alt="NewImage" width="498" height="376" /></p>
<p>In terms of security, impersonation can be chosen there by allowing multiple user contexts to be passed down to the application natively.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage18.png" border="0" alt="NewImage" width="488" height="371" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage19.png" border="0" alt="NewImage" width="449" height="344" /></p>
<p>As soon as you establish the connection, you can notice that all the BI EE Web Catalog objects are exposed natively to ADF.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage20.png" border="0" alt="NewImage" width="275" height="333" /></p>
<p>From here on it is just a matter of dragging and dropping these objects into the application (as these are now native ADF objects). To test this, lets first create a sample JSF page and then drag and drop one of the dashboards on to the page.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage21.png" border="0" alt="NewImage" width="496" height="361" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage22.png" border="0" alt="NewImage" width="488" height="416" /></p>
<p>When we drag and drop the dashboard, all the filters of each report within the dashboard and the corresponding prompts are shown as parameters. To have control on the page display we can set these parameters right within the ADF app or we can choose them during runtime. This gives us a lot of control on how BI EE objects are handled within ADF.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage23.png" border="0" alt="NewImage" width="468" height="378" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage24.png" border="0" alt="NewImage" width="277" height="260" /></p>
<p>Let&#8217;s now run this application. You can see that BI EE now runs as a native ADF application.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage25.png" border="0" alt="NewImage" width="496" height="377" /></p>
<p>&nbsp;</p>
<p><strong>BI EE logical SQL View Object:</strong></p>
<p>Another important feature that i had shown here to some extent is the ability to make Logical SQL calls directly and then apply custom ADF visualizations (which are not available in BI EE yet). Its now easily possible through the Logical SQL View Object. To demonstrate, lets create a new Logical SQL View Object within our ADF application</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage26.png" border="0" alt="NewImage" width="493" height="357" /></p>
<p>To use the extension we need to create a native JDBC connection to the BI Server.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage27.png" border="0" alt="NewImage" width="468" height="472" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage28.png" border="0" alt="NewImage" width="482" height="311" /></p>
<p>Let&#8217;s now create a new View Object and then apply a custom Logical SQL as shown below.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage29.png" border="0" alt="NewImage" width="484" height="367" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage30.png" border="0" alt="NewImage" width="466" height="351" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage31.png" border="0" alt="NewImage" width="477" height="328" /></p>
<p>Using the View Object, create an application module and then import that app module into a custom JSF page.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage32.png" border="0" alt="NewImage" width="478" height="325" /></p>
<p>As mentioned in my last BI Forum <a href="http://www.rittmanmead.com/2010/01/oracle-fusion-middleware-11g-bi-adf-components-first-impressions/">presentation</a>, ADF now supplies a lot more visualizations than that is packaged with BI EE. So, just to demonstrate, let&#8217;s use a Pivot visualization not available in BI EE i.e. Ring Bar Pivot.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage33.png" border="0" alt="NewImage" width="499" height="389" /></p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage34.png" border="0" alt="NewImage" width="492" height="419" /></p>
<p>If we now render the page, you can see that ADF extracts the data through the BI Server JDBC (using the logical SQL) and then applies its own visualization on the data.</p>
<p style="text-align: center"><img style="margin-left: auto;margin-right: auto" src="http://www.rittmanmead.com/wp-content/uploads/2011/05/NewImage35.png" border="0" alt="NewImage" width="504" height="301" /></p>
<p>Can you imagine the possible integration possibilities this now has opened up? BI EE no more is a black box which is too good for System Integrators like us.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2011/05/oracle-bi-ee-11-1-1-5-new-jdeveloper-extensions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle BI EE 11g and Oracle ADF &#8211; Part 2 &#8211; Real Time reporting using View Objects</title>
		<link>http://www.rittmanmead.com/2011/02/oracle-bi-ee-11g-and-oracle-adf-part-2-real-time-reporting-using-view-objects/</link>
		<comments>http://www.rittmanmead.com/2011/02/oracle-bi-ee-11g-and-oracle-adf-part-2-real-time-reporting-using-view-objects/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 08:37:53 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=7422</guid>
		<description><![CDATA[In the last part i showed how BI EE 11g and Oracle ADF are integrated through the same Security Framework. In this part, we shall look into another reporting innovation (by use of the common ADF Framework) i.e. real time reporting using BI EE by directly reversing metadata from a transactional application. I call it [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both">In the last part i showed how BI EE 11g and Oracle ADF are integrated through the same Security Framework. In this part, we shall look into another reporting innovation (by use of the common ADF Framework) i.e. real time reporting using BI EE by directly reversing metadata from a transactional application. I call it an innovation as i haven&#8217;t seen similar such capability in any other reporting tool(i could be wrong). So far, most major BI tools in the market have been doing reporting in 2 ways(including BI EE)</p>
<p style="clear: both">1. Reporting from a set of database(relational, multi-dimensional, flat-files etc) tables<br />2. Reporting from a set of pre-defined data services</p>
<p style="clear: both">The problem with these approaches (even in BI EE) is that one has to spend time doing the data modeling. Data Modeling from a BI Perspective is good as it helps in visualizing the data from an end-user standpoint. But in some cases, for example, when reporting out of transactional databases we might already have some pre-defined reporting screens available (real time reporting as part of the transactional system). E-Business Suite, Peoplesoft etc all come with pre-defined reporting or updatable forms/screens. Each of these screens will be firing some sort of SQL to get the data and display it to the end user(which might span multiple tables). Screenshot of an expense reporting application screen in EBS is given below</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_1-thumb2.png" alt="" width="454" height="370" /></p>
<p style="clear: both"> </p>
<p style="clear: both">This itself contains 2 SQL queries(minimum) for displaying the data. To fire the same report in another reporting tool, requires the following tasks</p>
<p style="clear: both">1. Identify the source tables<br />2. Model them in the reporting tool<br />3. Develop and then match the results with the EBS screen (testing)</p>
<p style="clear: both">In effect, this requires a person who knows EBS source systems, a BI Developer and then atleast 2 to 3 days of time in modeling, reporting and testing. All of this is needed for a single report, what if the requirement is to mimic the reporting available in 50 or 100 such EBS screens. In such cases, the reporting can grow quite complex and requires careful balancing of resources who know EBS and resources who know BI EE (or any other reporting tool for that matter).</p>
<p style="clear: both">BI EE &#8211; ADF View Objects integration alleviates the above said problem by completely bypassing the need to do initial source table identification (and sometimes modeling). Its advantage is it can understand the transactional system and convert the ADF metadata into BI EE specific metadata. So, all a BI EE developer has to know is what application module View object provides the data for a specific screen. That way rather than importing the metadata from the database, BI EE will reverse the source tables/columns from the transactional system and then import them accordingly. This is not only applicable for EBS, PSFT etc but also applicable for any application built out of the ADF framework.</p>
<p style="clear: both">The fundamental goal of Oracle Fusion Applications is to make everything interoperable thereby reducing implementation/go live times. You can sort of start seeing how BI EE will eventually merge into the Fusion Stack with this capability. This feature will also provide the ability for BI EE to do true real-time reporting. The diagram below explains how this integration works</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_2-thumb1.png" alt="" width="500" height="268" /></p>
<p style="clear: both"> </p>
<p style="clear: both">To demonstrate how this works, we will be creating an application(Order Entry for example) which will contain 2 View Objects. One for getting the Orders and the other for getting the Order Items as shown below</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_3-thumb1.png" alt="" width="242" height="354" /></p>
<p style="clear: both"> </p>
<p style="clear: both">To create these AM&#8217;s/View Objects follow the instructions in my previous post. In an ADF application, generally all business logic, business rules etc get applied in a View Object/Application Module. So, during the BI EE import/reporting all of these business rules/business logic will be honored as well. To set this up there are 3 steps we need to follow</p>
<p style="clear: both">1. Have a Weblogic application server with a domain that will contain the JRF, Oracle Appl Core binaries &#8211; While creating a domain, weblogic will not show the option of Application Core libraries. If that is the case, get the Appl Core binary from Oracle BI EE 11g instance and deploy it to your weblogic instance. This is key to get the integration working.</p>
<p style="clear: both">2. BI EE and the application can be in completely different boxes. To enable the communication, a BI EE broker needs to be deployed in the application weblogic instance.</p>
<p style="clear: both">3. A SQL Bypass database can be specified for improving performance. Another good feature wherein one can persist aggregation to a physical database rather than performing in the BI Server memory. Now, only if we could have this feature for cross database joins.</p>
<p style="clear: both">In my example, i will be deploying the application in the same weblogic instance as BI EE. To check whether the Application Core libraries exist, lets go to the weblogic console and check for applcore library.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_4-thumb1.png" alt="" width="494" height="87" /></p>
<p style="clear: both"> </p>
<p style="clear: both">As mentioned before, if this does not exist in your weblogic domain, copy the applcore library files from BI EE instance and then deploy them in your weblogic instance. In the same way, a BI EE broker needs to be deployed in your application weblogic instance. This broker is a war file that is present under {Middleware_Home}\Oracle_BI1\bifoundation\javahost\lib\obisintegration\adf folder of the BI EE 11g instance. Copy the ear file oracle.bi.integration.adf.ear under this folder and then deploy it in the application weblogic instance.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_5-thumb1.png" alt="" width="411" height="108" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_6-thumb1.png" alt="" width="404" height="118" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Now the next step is to prepare our application for deployment. To do that we need to make sure that the database connection that we are using as part of the application (OE schema) exists as a JNDI in weblogic(details of why we need to do this is given in the last blog post). Also, we need to enable the configuration of the application module to use the JNDI instead of going through the Credential Framework.</p>
<p style="clear: both">So, we go to the configuration of the Application Module and then enable a new configuration to use the JNDI as shown below</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_7-thumb1.png" alt="" width="463" height="501" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Ensure that this configuration is the default configuration of the application.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_8-thumb1.png" alt="" width="494" height="315" /></p>
<p style="clear: both"> </p>
<p style="clear: both">After enabling this, create a New Business Components Archive in the Model Project (click on New from the Project) and give it a name</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_9-thumb.png" alt="" width="444" height="329" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_10-thumb1.png" alt="" width="426" height="253" /></p>
<p style="clear: both"> </p>
<p style="clear: both">You should now see 2 jars that will be deployed as part of the Archive.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_11-thumb1.png" alt="" width="414" height="268" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Deploy the model using this deployment profile (use the default options of deploying to a file)</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_12-thumb1.png" alt="" width="488" height="246" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Right click on the application and create a new Web Project as shown below (adapt the names as necessary for your application)</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_13-thumb1.png" alt="" width="418" height="328" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_14-thumb1.png" alt="" width="308" height="231" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_15-thumb1.png" alt="" width="240" height="150" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_16-thumb1.png" alt="" width="310" height="293" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_17-thumb1.png" alt="" width="313" height="224" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Go to the project properties of the OBIEEBroker application and then ensure that the jar files that we created before are included as dependent libraries for this application war file (default profile webapp).</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_18-thumb1.png" alt="" width="408" height="345" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Expand the web.xml of this project and add the following entries</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_19-thumb1.png" alt="" width="486" height="458" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Now create a new EAR deployment profile for the whole application. Ensure that the webapp.war that was created for the webproject is included in the EAR.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_20-thumb1.png" alt="" width="426" height="293" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_21-thumb1.png" alt="" width="428" height="353" /></p>
<p style="clear: both"> </p>
<p style="clear: both">In the application resources task pane, open up the weblogic-application.xml and add the following entries to the xml file.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_22-thumb1.png" alt="" width="299" height="247" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_23-thumb1.png" alt="" width="500" height="248" /></p>
<p style="clear: both"> </p>
<p style="clear: both">This is needed for referencing the broker and applcore libraries. Login to the weblogic console and then add a JDBC data source with the same name &amp; JNDI as the one we specified in the Application module (without the java:comp/env in the name).</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_25-thumb1.png" alt="" width="433" height="401" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_26-thumb1.png" alt="" width="500" height="380" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Deploy this to the BI EE 11g cluster as shown below</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_27-thumb1.png" alt="" width="264" height="376" /></p>
<p style="clear: both"> </p>
<p style="clear: both">Deploy the application now directly to the BI EE 11g instance from JDeveloper.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_28-thumb1.png" alt="" width="438" height="436" /></p>
<p style="clear: both"> </p>
<p style="clear: both">After this the URL for the broker should be accessible from a browser (http://172.16.62.131:9704/BIEEOrders/obieebroker in my case). Now the application is ready for import into BI EE. Lets now open up BI Administrator and choose the OracleADF_HTTP as the database type. In the database source, enter the same JNDI name as we entered in weblogic. Enter Model Name.Application Module name as the Application Module definition (model.orders). Enter the name that we gave for the Application Module config(ordersAM). Also enter a valid weblogic username and password</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_29-thumb1.png" alt="" width="500" height="324" /></p>
<p style="clear: both"> </p>
<p style="clear: both">We should now be seeing both the View Objects that we created before. Lets now import both of them.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_30-thumb1.png" alt="" width="469" height="478" /></p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_31-thumb1.png" alt="" width="219" height="362" /></p>
<p style="clear: both"> </p>
<p style="clear: both">If we now look in the connection pool, there is an option to set the SQL Bypass Database which we can use for pushing aggregation/sorting etc to a physical database rather than doing them in the BI Server layer.</p>
<p style="clear: both"> </p>
<p style="clear: both;text-align: center"><img class="aligncenter" style="text-align: center;margin: 0 auto 10px" src="http://www.rittmanmead.com/wp-content/uploads/2011/02/Picture_32-thumb1.png" alt="" width="443" height="305" /></p>
<p style="clear: both"> </p>
<p style="clear: both">In the next part, i will cover how to use the SQL Bypass Database and see how that influences the queries etc.</p>
<p><br class="final-break" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2011/02/oracle-bi-ee-11g-and-oracle-adf-part-2-real-time-reporting-using-view-objects/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Fusion Middleware 11g &#8211; BI ADF Components &#8211; First impressions</title>
		<link>http://www.rittmanmead.com/2010/01/oracle-fusion-middleware-11g-bi-adf-components-first-impressions/</link>
		<comments>http://www.rittmanmead.com/2010/01/oracle-fusion-middleware-11g-bi-adf-components-first-impressions/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:23:51 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[FMW]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4235</guid>
		<description><![CDATA[One of the few things that i have been working on this week is in understanding how the recently released Fusion Middleware 11g will influence Oracle BI EE in the near future. As was demonstrated &#38; presented in the last Open World by Oracle, the strategic direction of Oracle is to use Fusion Middleware 11g [...]]]></description>
			<content:encoded><![CDATA[<p>One of the few things that i have been working on this week is in understanding how the recently released Fusion Middleware 11g will influence Oracle BI EE in the near future. As was demonstrated &amp; presented in the last Open World by Oracle, the strategic direction of Oracle is to use Fusion Middleware 11g as the base for all Oracle products including Business Intelligence going forward. FMW 11g has an excellent set of components like Visualizations, Custom Graphs, Table &amp; Pivot View Components, Hierarchy Viewer etc which can all add value to the existing feature set of BI EE. If Oracle can somehow make them as pluggable components in future releases, it will make it a lot easier to extend BI EE.</p>
<p>One of the first integrations that i noticed between Fusion Middleware and BI EE was when JDeveloper 11g Tech Preview 4 was released almost 2 years back. I had blogged about it sometime back <a href="http://oraclebizint.wordpress.com/2008/05/05/oracle-bi-ee-101332-and-jdeveloper-11g-tech-preview-34-new-integration-features-public-bi-ee-pages-without-authentication-noauthgo-parameter/" target="_blank">here</a>. This integration was very promising wherein every report in BI EE Web Catalog was exposed as a view object. So in effect, from within JDeveloper one can easily apply ADF visualizations to an existing BI EE report/dashboard. This integration was very similar to the BI Publisher &#8211; BI EE integration where instead of a template, ADF visualization is applied. Unfortunately, this feature does not exist anymore in the production release of JDeveloper 11g. Though it does not exist as a feature now, there are ways to still expose them within JDeveloper. I will cover them in future blog entries.</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 12" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture12.png" border="0" alt="Picture 12" width="170" height="315" /></p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 13" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture131.png" border="0" alt="Picture 13" width="330" height="315" /></p>
<p>In the current release of Fusion Middleware 11g, there are quite a few BI specific visualizations that have been made available. All of these can be used even on existing BI EE 10g installations. But the only downside is, there will be quite a bit of coding involved to tie BI EE 10g with the FMW 11g graphs. Hopefully this should be made easier with BI EE 11g.</p>
<p>I will basically highlight some of the interesting ADF Visualization components specific to Business Intelligence in this blog entry here. Many of the graphs shown below are available as part of a sample application that needs to be obtained from OTN. All these(base components for the charts/graphs) are available out of the box with the FMW 11g installation.</p>
<p><strong>Custom Gauges:</strong></p>
<p>FMW 11g adds some significant number of Gauge components. I have listed the important ones below. All these are very interactive like the Corda Charts that we are used to seeing in BI EE. ADF Gauges are based on SVG and hence the drills are supported here as well.</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 14" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture141.png" border="0" alt="Picture 14" width="347" height="315" /></p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 15" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture152.png" border="0" alt="Picture 15" width="504" height="179" /></p>
<p><strong>Graph Visualizations:</strong></p>
<p>FMW 11g supports 2 main features in any graph</p>
<p>1. Custom Annotations can be added<br />
2. Individual data points can be moved (drag and drop) for better visualization</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 17" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture172.png" border="0" alt="Picture 17" width="504" height="230" /></p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 17" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture173.png" border="0" alt="Picture 17" width="504" height="201" /></p>
<p>Custom panel splitters are supported as well. One can essentially have 4 graphs in a page and then hide/unhide them in a pane layout as shown below</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 18" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture182.png" border="0" alt="Picture 18" width="390" height="315" /></p>
<p>Its very interesting to note that time based interactivity in the graphs have been added. For example, one can choose a time period within a master graph, the child graphs will change automatically.</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 19" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture192.png" border="0" alt="Picture 19" width="504" height="193" /></p>
<p>There is also an inline graph component called Spark Charts. These are charts that are embedded as a cell object in a table/pivot view.</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 20" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture202.png" border="0" alt="Picture 20" width="206" height="156" /></p>
<p><strong>Pivot Tables: </strong></p>
<p>This is one area where i am seeing significant changes to the way BI EE 10g pivot table and FMW11g Pivots. Some interesting features of FMW11g pivot tables are</p>
<p>1. Pivot Table Heat Maps &amp; Conditional Formatting</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 21" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture211.png" border="0" alt="Picture 21" width="253" height="167" /></p>
<p>2. Ability to embed charts (Spark Charts &amp; Gauges) in the pivot tables</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 22" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture221.png" border="0" alt="Picture 22" width="439" height="304" /></p>
<p>3. Ability to drag and drop the columns outside of the edit layout. Also ability to edit cells (potential for writebacks)</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 24" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture241.png" border="0" alt="Picture 24" width="504" height="108" /></p>
<p><strong>Gantt Charts:</strong></p>
<p>This is a significant addition to the list of supported graphs in the FMW 11g. Quite a lot of visualizations are supported on the Gantt Charts</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 23" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture231.png" border="0" alt="Picture 23" width="504" height="133" /></p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 24" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture242.png" border="0" alt="Picture 24" width="504" height="176" /></p>
<p>There is another nice add-on to the normal Gantt charts i.e one can track Resource utilization as a stacked bar against Time as the base.</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 25" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture251.png" border="0" alt="Picture 25" width="504" height="125" /></p>
<p><strong>Hierarchy Viewer:</strong></p>
<p>This visualization is probably one of the highlights of FMW 11g. Instead of a normal hierarchy drills from Pivots/tables, this visualization can provide visual hierarchical drills as shown below</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 26" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture261.png" border="0" alt="Picture 26" width="504" height="314" /></p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 28" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture281.png" border="0" alt="Picture 28" width="504" height="216" /></p>
<p><strong>Mapviewer Integration:</strong></p>
<p>This is another area where FMW 11g adds a lot of value. It is now possible to directly reuse Maps built out of Mapviewer and render them along with BI components within the FMW framework</p>
<p align="center"><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Picture 28" src="http://www.rittmanmead.com/wp-content/uploads/2010/01/Picture282.png" border="0" alt="Picture 28" width="504" height="306" /></p>
<p>There are other areas as well where every graph/chart has improved. For example, now FMW 11g supports a set of attributes that can be modified uniformly for all the graphs. It also provides Master-Detail forms/reports. On a whole, to me, it looks like Oracle has indeed spent quite a bit of time and effort to get the BI framework in FMW ready. Now if only these can be reused out of the box directly from within the BI EE in future releases, then it could add significant dimension to the way we do BI reporting. I guess only time will tell on how these components eventually get into BI EE.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/01/oracle-fusion-middleware-11g-bi-adf-components-first-impressions/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

