<?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; Oracle EPM</title>
	<atom:link href="http://www.rittmanmead.com/category/oracle-epm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rittmanmead.com</link>
	<description>Delivered Intelligence</description>
	<lastBuildDate>Fri, 30 Jul 2010 12:58:37 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle EPM 11.1.2 &#8211; Allocations in Essbase ASO Cubes &#8211; Using MaxL scripts</title>
		<link>http://www.rittmanmead.com/2010/05/05/oracle-epm-11-1-2-allocations-in-essbase-aso-cubes-using-maxl-scripts/</link>
		<comments>http://www.rittmanmead.com/2010/05/05/oracle-epm-11-1-2-allocations-in-essbase-aso-cubes-using-maxl-scripts/#comments</comments>
		<pubDate>Wed, 05 May 2010 11:55:10 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4787</guid>
		<description><![CDATA[In the last 2 blog entries, i showed how the calculations in ASO work. Today lets look at another new feature in ASO cubes i.e the ability to run allocations directly. In a BSO cube, Allocations and Calculations are all driven through a set of calculation commands. Some Allocation features in BSO can actually be [...]]]></description>
			<content:encoded><![CDATA[<p>In the last 2 blog entries, i showed how the calculations in ASO work. Today lets look at another new feature in ASO cubes i.e the ability to run allocations directly. In a BSO cube, Allocations and Calculations are all driven through a set of calculation commands. Some Allocation features in BSO can actually be implemented using normal calculation commands (without using ALLOCATE and MDALLOCATE functions). But in the case of ASO, calculations and allocations are treated separately. So, there are 2 important aspects that we need to remember while running calculations/allocations in a ASO cube</p>
<p>1. Dynamic References using CurrentMember, CurrentTupule etc are not supported currently (necessary if we want to run multiple allocations within the same dimension)<br />
2. Hierarchical references like PARENT etc are not allowed in both calculations &amp; allocations. These references are allowed for the parameters but not for the assignment scripts/allocation amounts.</p>
<p>The above 2 are significant drawbacks which i hope will be supported in future releases. Lets now look at a very simple example for allocation. I will be using the ASO version of the Demo-&gt;Basic cube for demonstrating this. The screenshot below shows the data that has been loaded into the cube.</p>
<p align="center"><img class="aligncenter size-full wp-image-4786" title="Picture 1" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/05/Picture-1.png" alt="Picture 1" width="500" height="306" /></p>
<p>If you notice, we have data for the Sales measure for all Regions except South. The idea is to allocate data into the South Region (both Sales &amp; Cogs equally) based on the Total Expense values of the East Region. This is a very simple allocation example where our input data is at Level-0 but we are allocating from non Level-0. One good thing about this example is the fact that this shows that though ASO does not support input to non level-0 members, it supports allocation from them.</p>
<p>An Allocation in a ASO cube does not require a separate calculation script. All allocations are done through MaxLs directly. An allocation MaxL contains four main parts (in addition to other parameters which i shall not cover here).</p>
<p>1. POV &#8211; POV or a Point of View provides execution context to an allocation. A POV allows only reference to level-0 members. For every combination in the POV, the allocation will be executed once. POV is specified in the form of a MDX-Set.</p>
<p>2. Amount &#8211; This can contain a static member, Tupule or a constant. This does not support MDX expressions. In our example above, the amount will the (Total Expenses,East) Tupule. Ideally, Amount &amp; POV should have all the dimensions in the cube.</p>
<p>3. Target &#8211; Target is specified in the form of a MDX Tupule. Basically it represents the region that will act as a target for the allocation. In our case, this will be empty.</p>
<p>4. Region &#8211; Region is a MDX set expression. This represents the target region where the data will be allocated. The dimensions specified in POV, Target and Region should be mutually exclusive as they all combine to form the target region. In the example above, Children(Total Expenses) &amp; the Children (South) will form the Region.</p>
<p>5. Basis &#8211; This is commonly used when we are doing member based allocations. In our case, since we are using dividing the values equally (Spread allocation), this is optional.</p>
<p>So the final formula that i shall be using for achieving this is given below</p>
<pre>execute allocation process on database DemoASO.Basic with
pov "Crossjoin(Descendants([Year],[Year].levels(0)),
Crossjoin(Descendants([Product],[Product].levels(0)),
Descendants([Scenario],[Scenario].levels(0))))"
amount    "([East],[Total_Expenses])"
target    ""
range        "CrossJoin({[Sales],[Cost_of_Goods_Sold]},
Descendants([South],[Market].levels(0)))"
spread;</pre>
<p align="center"><img class="aligncenter size-full wp-image-4785" title="Picture 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/05/Picture-2.png" alt="Picture 2" width="500" height="198" /></p>
<p>As you see, Essbase has generated the necessary cells to accomplish this. As i mentioned last time in the Calculation blog post, the allocations/calculations are done separately and then the updated cells are pushed through external data load buffers. So, you would start noticing cells being loaded into incremental slices.</p>
<p align="center"><img class="aligncenter size-full wp-image-4784" title="Picture 3" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/05/Picture-3.png" alt="Picture 3" width="365" height="348" /></p>
<p>And if you look at the data, the South region would now have data with the values uniformly distributed.</p>
<p align="center"><img class="aligncenter size-full wp-image-4783" title="Picture 4" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/05/Picture-4.png" alt="Picture 4" width="451" height="305" /></p>
<p>Though this does work there are some inherent drawbacks. As ASO does not accept data at non level-0 members, the way allocation maxL&#8217;s are designed it makes it very tough(though possible) to do hierarchical allocations within the same dimension. Hopefully the introduction of dynamic member references and member functions should enable that in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/05/05/oracle-epm-11-1-2-allocations-in-essbase-aso-cubes-using-maxl-scripts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.2 &#8211; Essbase Calculations on ASO Cubes &#8211; Part 2 &#8211; Maxl scripts and EAS</title>
		<link>http://www.rittmanmead.com/2010/04/29/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-2-maxl-scripts-and-eas/</link>
		<comments>http://www.rittmanmead.com/2010/04/29/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-2-maxl-scripts-and-eas/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 10:22:59 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4750</guid>
		<description><![CDATA[In the last blog post, i covered the new calculation manager feature to run calculations on an ASO cube. But to be honest, i somehow felt it was an overkill atleast for running ASO specific calculations alone. The advantage of calc manager can become apparent if you are using Planning or HFM and if you [...]]]></description>
			<content:encoded><![CDATA[<p>In the last blog post, i covered the new calculation manager feature to run calculations on an ASO cube. But to be honest, i somehow felt it was an overkill atleast for running ASO specific calculations alone. The advantage of calc manager can become apparent if you are using Planning or HFM and if you would like to have a common place for creating, executing &amp; scheduling scripts. But for standalone essbase installations, i always like the MaxL approach since that provides a lot of flexibility.</p>
<p>In this release, as i mentioned yesterday, the calculation scripts will have to be written in a separate text editor or the BSO calc script editor. There is no syntax validation available. So, ensure that you get the syntax correct atleast for the POV part.</p>
<p>Lets look at the various aspects that are involved in the creation of an ASO Calculation through MaxL.</p>
<p>1. Calc Script &#8211; This basically is a file (like the BSO .csc file) that will contain the actual calculation. The calculation currently does not support MDX member commands like Descendants etc. Only constant Tuples are supported. An example script is given below</p>
<pre>([Bud Var],[Jan]) := 100;</pre>
<p>In the above example, the calculation script basically assigns a value of 100 to all the cells with the matching Tupule.</p>
<p>2. POV &#8211; This basically is used during the execution of a calculation script. This determines the context of the calculation. For example, we can determine the combination of other dimensions not specified in the Tupule above. It is expressed as an MDX Set (not a Tupule). There is a very important difference between an ASO and a BSO calculation. If the POV includes the same dimension as the Tupule members in the calc script, then all the same dimensionality members in the POV will add themselves(can be controlled through Debit &amp; credit members) and overwrite into the Calc Script Tupule Member combination. I will cover it in the examples below.</p>
<p>3. SourceRegion &#8211; A calc script can potentially have more than one calculation. For example, if you look at the calculation script below</p>
<pre>([Bud Var],[Jan]) := ([Budget],[Jan]) - ([Actual],[Jan]);
([Bud Var],[East]) := ([Actual],[East]) - ([Budget],[East]);</pre>
<p>This contains 2 separate calculations. Each tupule contains a different set of the dimensions. A source region basically is a MDX set which superset of all the tupules specified in the calculation script. This is needed as each line in the script is executed in parallel.</p>
<p>There are 3 other optional parameters like CreditMember, DebitMember &amp; Offset. For today&#8217;s blog post, i will just cover the above 3.</p>
<p>Lets first start with creating a simple calculation script shown below</p>
<p align="center"><img class="aligncenter size-medium wp-image-4762" title="Picture 1" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-12-300x161.png" alt="Picture 1" width="300" height="161" /></p>
<p>Basically all this script does is, it tries to assign a value of 100 to the ([Bud Var],[Jan]) tupule. After creating the calc script, save the script in the {ESSBASE_HOME}/app/DemoASO/BasicASO folder where DemoASO-&gt;BasicASO is my application &amp; database respectively. Before running this script lets look at the statistics of the ASO cube.</p>
<p align="center"><img class="aligncenter size-full wp-image-4761" title="Picture 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-22.png" alt="Picture 2" width="353" height="344" /></p>
<p>As you see, this cube basically has no incremental slices. All the data is in the main slice. In the case of Block Storage cubes, when we assign a constant value to a member then the constant value gets assigned to all the existing blocks or will create new blocks depending on the CREATEBLOCKONEQ setting in the calculation script. But in the case of Aggregate Storage cubes, we do not have blocks. So it will be interesting to see what happens when we run the above calculation. To find out, lets run this script using the MaxL shown below</p>
<pre>execute calculation on database DemoASO.BasicASO with
local script_file "/u01/app/Middleware/user_projects/epmsystem1/EssbaseServer/essbaseserver1/app/DemoASO/BasicASO/BudVar.csc"
POV "Crossjoin({[Jan]},Crossjoin({[New_York]},Crossjoin({[Stereo]},Crossjoin({[Sales]},Descendants(Scenario,Scenario.Levels(0))))))"
SourceRegion "Crossjoin({[Bud Var]},{[Jan]})";</pre>
<p>As you see, all we are doing is we are running the calculation script against a POV context containing 4 cells.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4758" title="Picture 4" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-42-300x36.png" alt="Picture 4" width="300" height="36" /></p>
<p>The outline of the DemoASO cube is shown below for reference.</p>
<p align="center"><img class="aligncenter size-full wp-image-4760" title="Picture 3" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-32.png" alt="Picture 3" width="321" height="363" /></p>
<p>If you notice, in the POV we have 4 members from the same dimension (Scenario). And in the calc script we are assigning a value of 100 to a member in the Scenario dimension. Also, if you look at the data(before calculation) in the cube, we have cells populated for 3 of the Scenario members and not for the 4th one (Bud Var)</p>
<p align="center"><img class="aligncenter size-full wp-image-4759" title="Picture 5" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-52.png" alt="Picture 5" width="425" height="118" /></p>
<p>Now lets look at the data after running the calculation.</p>
<p align="center"><img class="aligncenter size-full wp-image-4757" title="Picture 6" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-62.png" alt="Picture 6" width="427" height="98" /></p>
<p>Though we assigned a value of only 100 to the Bud Var member, we now have a value of 400. The reason why this is happening is in our POV we have 4 scenario members included. Since we are assigning to value to only one scenario member, all the values of the 4 members get added and will be stored in the Bud Var intersection. Lets take a look at cube statistics again after running this calculation.</p>
<p align="center"><img class="aligncenter size-full wp-image-4756" title="Picture 7" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-72.png" alt="Picture 7" width="369" height="343" /></p>
<p>This is interesting. What we have now is 1 incremental cell in the incremental slice and the remaining 3 generated cells are in the main slice. So what has happened is, Essbase looks at the POV context and determines the number of cells to be generated. Out of these cells, it looks at the source of these 4 cells. Out of these 4, 3 already exist in the main slice. But 1 cell does not exist at all. So, it generates the new cell in the incremental slice. To validate this theory, lets change the MaxL as shown below and execute it</p>
<pre>execute calculation on database DemoASO.BasicASO with
local script_file "/u01/app/Middleware/user_projects/epmsystem1/EssbaseServer/essbaseserver1/app/DemoASO/BasicASO/BudVar.csc"
POV "Crossjoin({[Jan]},Crossjoin({[New_York],[Boston]},Crossjoin({[Stereo]},Crossjoin({[Sales]},Descendants(Scenario,Scenario.Levels(0))))))"
SourceRegion "Crossjoin({[Bud Var]},{[Jan]})";</pre>
<p align="center"><img class="aligncenter size-medium wp-image-4755" title="Picture 8" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-82-300x34.png" alt="Picture 8" width="300" height="34" /></p>
<p>What we have basically done is, we have added one more member called Boston to the MaxL. Again, if we look at the Cube stats, we will see that there are 2 incremental cells and each cell will be in its own slice.</p>
<p align="center"><img class="aligncenter size-full wp-image-4754" title="Picture 9" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-91.png" alt="Picture 9" width="329" height="347" /></p>
<p>These 2 incremental cells are for New_York-&gt;Bud Var and Boston-&gt;Bud Var members which do not exist in the cube at all. The data in the cube will now have spread the value of 400 across both New York and Boston as shown below</p>
<p align="center"><img class="aligncenter size-full wp-image-4753" title="Picture 10" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-101.png" alt="Picture 10" width="427" height="117" /></p>
<p>In the case of BSO calculations, the calculations are generally driven through the existing blocks &amp; the FIX&#8217;ed members (though we can alter this in different ways). In the case of ASO cube though, the control happens through the POV (and also Offset which i have not covered here) &amp; the calc script. ASO generates new cells depending on whether that cell exists or not in the main slice. Of course, i have not tested this when all the input data in an incremental slice, but i would assume the behavior will more or less be the same. So far, i will have to say the performance is really good. I will be putting this through further test with a larger data set. It would be interesting to see if this can replace level-0 currency conversions that are quite common in implementations. So far, the only way to do that in ASO was either by using BSO as a partition source or by using Dynamic MDX hierarchies. I have covered both of them <a href="http://oraclebizint.wordpress.com/2008/12/31/hyperion-essbase-931-currency-conversion-in-aso-cubes-using-mdx-and-dynamic-hierarchies-approach-1/">here</a> and <a href="http://oraclebizint.wordpress.com/2009/01/05/hyperion-essbase-931-currency-conversion-in-aso-cubes-using-level0-export-from-bso-aso-aggregation-approach-2/">here</a>. My first impression is, this can quite easily be used for currency conversions as well. I will hopefully cover my findings in a future blog post on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/04/29/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-2-maxl-scripts-and-eas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.2 &#8211; Essbase Calculations on ASO Cubes &#8211; Part 1 &#8211; Using Calc Manager</title>
		<link>http://www.rittmanmead.com/2010/04/28/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-1-using-calc-manager/</link>
		<comments>http://www.rittmanmead.com/2010/04/28/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-1-using-calc-manager/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 11:02:50 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4736</guid>
		<description><![CDATA[One of the significant new features of EPM 11.1.2 release, is the ability to write custom calculation scripts for calculating &#38; allocating data to level-0 members in an ASO Cube. Till now, in many cases/implementations, BSO option had to be used in some form or the other due to the fact that ASO did not [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">One of the significant new features of EPM 11.1.2 release, is the ability to write custom calculation scripts for calculating &amp; allocating data to level-0 members in an ASO Cube. Till now, in many cases/implementations, BSO option had to be used in some form or the other due to the fact that ASO did not support custom calculations. Now with EPM 11.1.2, we can do these calculations even on a ASO cube (but only for level-0 members). There are 2 ways of writing &amp; executing calculations</p>
<p>1. Using Calculation Manager to design the calcs and executing from there<br />
2. Using MaxL and executing the scripts through MaxL</p>
<p>The second option above is actually more flexible since it allows to write custom MDX Tuples, sets easily within the calc scripts. I somehow felt that the calc manager has undergone a significant UI change primarily due to the introduction of ADF based UI. Though it does work, there still are some UI bugs which crept up here and there especially while trying to enter the calculations manually. One significant difference between calculation manager and MaxL is the fact that Calculation Manager follows more of a BSO based member set entries. It does not support MDX, atleast as far as i have tested. MDX is supported only within the calc scripts that run through EAS.</p>
<p>Lets look at a very simple example using both the above options. I shall be using an ASO version of the Demo-&gt;Basic cube to demonstrate this</p>
<p align="center"><img class="aligncenter size-full wp-image-4737" title="Picture 1" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-11.png" alt="Picture 1" width="320" height="319" /></p>
<p>Essbase ASO calculation execution now follows more of a HBR/Calc Manager syntax. That is, we start with defining a calculation script and then during execution time, we can specify the Point Of View of Execution, Member Offset, Credit/Debit members etc. A single calculation script can be executed in different point of views thereby providing different results. ASO calc scripts cannot be executed in isolation directly within EAS. They will have to be executed from within the maxL script editor. Also, the calculation script editor in EAS, does not support MDX. So for now, we will have to ensure that the scripts are absolutely correct as there is no way we can check the syntax validity from within the UI. I believe there is a bug in the EAS console, wherein if you get the MDX set scripts wrong, it will bring down the EAS server (atleast on my 64 bit console).</p>
<p>Lets start with logging into the calculation manager. Though IE 8 is supported, the latest version of Firefox is not supported for any of the ADF based EPM UI(similar to EPM 11.1.1.3). I had to downgrade my Mac firefox to a lower version to get this working.</p>
<p align="center"><img class="aligncenter size-full wp-image-4738" title="Picture 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-21.png" alt="Picture 2" width="337" height="399" /></p>
<p>I will start with creating a very simple rule called Budget Variance.</p>
<p align="center"><img class="aligncenter size-full wp-image-4739" title="Picture 3" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-31.png" alt="Picture 3" width="431" height="216" /></p>
<p>You will see that now the calc manager has ASO specific icons like Allocation, Calculation, Point Of View etc for executing ASO calculations. As with any calc manager calculation, we can specify a global range and then execute calculations.</p>
<p align="center"><img class="aligncenter size-full wp-image-4740" title="Picture 4" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-41.png" alt="Picture 4" width="300" height="191" /></p>
<p>With the introduction of ADF components, we can now drag and drop the individual components into the main palette. I will start with defining the Point of View first. I want the calculation to execute for the entire level-0 member combinations of the cube.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4741" title="Picture 5" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-51-300x122.png" alt="Picture 5" width="300" height="122" /></p>
<p align="center"><img class="aligncenter size-medium wp-image-4742" title="Picture 6" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-61-300x150.png" alt="Picture 6" width="300" height="150" /></p>
<p>After defining the Point of View, lets drag and drop the calculation(Formula) on to the main palette. The calculation will be defined after the Point of View(or before depending on how we want the POV to be applied).</p>
<p align="center"><img class="aligncenter size-full wp-image-4743" title="Picture 7" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-71.png" alt="Picture 7" width="371" height="182" /></p>
<p>In the formula, lets define a simple calculation where we would like the Bud Var member to be having a value of 100.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4744" title="Picture 8" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-81-300x99.png" alt="Picture 8" width="300" height="99" /></p>
<p>We can have more than one formula defined in a calculation. But the difference between a ASO and a BSO calc script is the fact that the formulas are executed in parallel in ASO. We can serialize them by defining a proper flow within the calc manager. Lets now deploy this rule and execute it.</p>
<p align="center"><img class="aligncenter size-full wp-image-4745" title="Picture 9" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-9.png" alt="Picture 9" width="331" height="349" /></p>
<p>After execution, the cells within the ASO cube will be updated as shown below.</p>
<p align="center"><img class="aligncenter size-full wp-image-4746" title="Picture 10" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-10.png" alt="Picture 10" width="433" height="195" /></p>
<p>So, this does work &amp; seems to work even for some complex cases within the calc manager. Lets put this to test further by using EAS &amp; MaxL in the next blog entry. I have not tested what happens to the load buffers, data slices etc when we run these calcs. I will hopefully cover those as well as part of the EAS/MaxL based ASO calculation execution blog entry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/04/28/oracle-epm-11-1-2-essbase-calculations-on-aso-cubes-part-1-using-calc-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EPM 11.1.2 &#8211; Getting Started and Installation</title>
		<link>http://www.rittmanmead.com/2010/04/22/epm-11-1-2-getting-started-and-installation/</link>
		<comments>http://www.rittmanmead.com/2010/04/22/epm-11-1-2-getting-started-and-installation/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 20:49:02 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4683</guid>
		<description><![CDATA[I have finally managed to download &#38; install the necessary binaries for the EPM 11.1.2 Essbase installation. When i started the download, i was actually wary of downloading the 64 bit Essbase since 11.1.2 is a significant rewrite when compared with the previous 11.1.1.3 version. But i still went ahead and i have to say [...]]]></description>
			<content:encoded><![CDATA[<p>I have finally managed to download &amp; install the necessary binaries for the EPM 11.1.2 Essbase installation. When i started the download, i was actually wary of downloading the 64 bit Essbase since 11.1.2 is a significant rewrite when compared with the previous 11.1.1.3 version. But i still went ahead and i have to say that the installation went through successfully in the first attempt itself. There are certain things that one need to be aware of as some people seem to get stuck at a certain point in the installation. The install binaries in OTN and E-Delivery seem to be different. So do not mix and match the binaries. In my case, i downloaded all my binaries from OTN as E-Delivery was too slow to download. Following are the components that one would have to download for installing Essbase</p>
<p>1. EPM System Installer<br />
2. EPM Foundation Services (All the 4 parts are needed. 3 Parts are OS specific and the last part is OS generic)<br />
3. EPM Essbase Server (both the parts are needed. The first part is OS generic and 2nd part is OS specific)<br />
4. EPM Essbase Client (OS generic)<br />
5. EPM Static Content (OS generic)</p>
<p>When you unzip the contents there are 2 things that you need to be aware of</p>
<p>1. The file size requirements have significantly increased in this release. So, if you are installing this on a VM, then make sure that you atleast have 30 to 40 GB of free space.<br />
2. In EPM 11.1.1.3, we can just fire the unzip commands (in linux) and overwrite the files. But in the case of 11.1.2, one has to be extremely careful while doing the unzip. Since there are some binaries that are OS generic and some binaries that are OS specific, ensure that you unzip the Essbase Server, Essbase Client and Essbase Static Content files in separate directories. And then copy the assembly files to the main assemblies directory. Any mistake here, the installer will not recognize Essbase.</p>
<p>The folder structure within your assemblies install folder should have the following folders</p>
<p align="center"><img class="aligncenter size-full wp-image-4686" title="Picture 6" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-6.png" alt="Picture 6" width="305" height="452" /></p>
<p>There are some significant changes to the entire EPM framework. So direct upgrades are not possible. The main changes are</p>
<p>1. Shared Services does not use OpenLDAP anymore. Instead it uses a local database that is part of the Weblogic framework.<br />
2. Apache Web Server has been replaced by Oracle HTTP Server and the Tomcat application server has been replaced by Weblogic server.<br />
3. The base memory footprint required (RAM) has increased significantly due to the introduction of HTTP Server and Weblogic server.<br />
4. There are some ADF based components that are used widely within the workspace. You can actually see how the entire Oracle product is converging using the common ADF framework.<br />
5. The directory structure of the entire EPM 11.1.2 is completely different from the previous EPM 11.1.1.3 release. Essbase base folders have been pushed into the weblogic Middleware home directory.<br />
6. Essbase clustering can be done directly during the installation process itself. There are significant changes in the Essbase ASO functionality as well.<br />
7. Not a significant one, but the admin passwords can be changed as part of the install itself.<br />
8. Data Direct drivers are not used anymore. EPM 11.1.2 now supports OCI by default.</p>
<p>The screenshot below shows the weblogic domain that gets created during the installation. This is the base of the entire EPM release now (Default install, other application servers are still supported)</p>
<p align="center"><img class="aligncenter size-full wp-image-4684" title="Picture 1" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-1.png" alt="Picture 1" width="450" height="189" /></p>
<p>As part of Essbase integration with Oracle SSO and Oracle Enterprise Manager, Oracle HTTP server is mandatory and should be installed prior to Essbase installation.</p>
<p align="center"><img class="aligncenter size-full wp-image-4687" title="Picture 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-2.png" alt="Picture 2" width="450" height="435" /></p>
<p>As i said above, Essbase by default is installed within the Middleware folder structure. This can be customized. Also, you can see the cluster setup can be done as part of the install process (i will cover this in a later blog entry)</p>
<p align="center"><img class="aligncenter size-medium wp-image-4688" title="Picture 3" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-3-300x249.png" alt="Picture 3" width="300" height="249" /></p>
<p>And finally, workspace will be deployed &amp; rendered through the Oracle HTTP server. All the other applications like APS, Planning, EPMA will be accessibly within the workspace through the Oracle HTTP server instead of apache.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4689" title="Picture 4" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-4-300x247.png" alt="Picture 4" width="300" height="247" /></p>
<p align="center"><img class="aligncenter size-full wp-image-4690" title="Picture 5" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-5.png" alt="Picture 5" width="500" height="342" /></p>
<p>You can notice that the entire shared services &amp; workspace UI now have more of a ADF feel to it.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4692" title="Picture 7" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-7-300x147.png" alt="Picture 7" width="300" height="147" /></p>
<p>From an Essbase Administration services standpoint, the Java Web Start based console has undergone a small UI change. And of course, the features that have been added in EAS directly correspond to the features added in Essbase. I will cover them in the coming blog entries.</p>
<p align="center"><img class="aligncenter size-medium wp-image-4693" title="Picture 8" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture-8-262x300.png" alt="Picture 8" width="262" height="300" /></p>
<p>From my standpoint, the amount of changes in this release are so significant that this does not seem to be a .X release. I am just wondering how the EPM team managed to bring in so many changes within a short period of time (after the EPM 11.1.1.3 release) considering the fact that we have been waiting for BI EE 11g for almost a couple of years now. I am guessing this has been in the works for quite a while and i will have to say that the EPM team has done an extraordinary job in bringing this together. Atleast these are my first impressions. I will blog about some of the new features over the course of next week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/04/22/epm-11-1-2-getting-started-and-installation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.2 &#8211; Finally released and available on E-Delivery</title>
		<link>http://www.rittmanmead.com/2010/04/21/oracle-epm-11-1-2-finally-released-and-available-on-e-delivery/</link>
		<comments>http://www.rittmanmead.com/2010/04/21/oracle-epm-11-1-2-finally-released-and-available-on-e-delivery/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 13:53:30 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2010/04/21/oracle-epm-11-1-2-finally-released-and-available-on-e-delivery/</guid>
		<description><![CDATA[After checking non-stop for the last couple of weeks, finally managed to start the download of EPM 11.1.2. Yes, its officially released for download now and is available in E-Delivery. 
 
Some of the significant new features in this release are
1. Oracle Financial Close Manager    2. Oracle Essbase Analytics Link in HFM [...]]]></description>
			<content:encoded><![CDATA[<p>After checking non-stop for the last couple of weeks, finally managed to start the download of EPM 11.1.2. Yes, its officially released for download now and is available in <a href="http://edelivery.oracle.com" target="_blank">E-Delivery</a>. </p>
<p align="center"><img title="Picture 2" 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" height="315" alt="Picture 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/Picture21.png" width="364" border="0" /> </p>
<p>Some of the significant new features in this release are</p>
<p>1. Oracle Financial Close Manager    <br />2. Oracle Essbase Analytics Link in HFM (was available in 11.1.1.3 itself but enhanced now)     <br />3. Oracle Hierarchy/Dimension Management from within Oracle Applications     <br />4. New Planning Modules &#8211; For Public Sector     <br />5. Smart-View Enhanced &#8211; Lot more powerful now like closer Planning forms integration etc     <br />6. Tasks integration with Outlook     <br />7. Hyperion DRM &#8211; Completely Web based now     <br />8. Clustering of Essbase     <br />9. SSO with Oracle SSO in Essbase     <br />10. Mgmt packs for Essbase     <br />11. Footnotes &amp; XBRL tagging in HFR     <br />12. Enhancements to Hyperion Planning – Web Based Form Conditional Formatting etc</p>
<p>Not all the features are covered in the list above. But i will start covering them hopefully in the coming weeks. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/04/21/oracle-epm-11-1-2-finally-released-and-available-on-e-delivery/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hyperion Financial Reporting (HFR) 11.1.1.3 &#8211; Reporting on Relational Sources &#8211; XOLAP</title>
		<link>http://www.rittmanmead.com/2010/04/07/hyperion-financial-reporting-hfr-11-1-1-3-reporting-on-relational-sources-xolap/</link>
		<comments>http://www.rittmanmead.com/2010/04/07/hyperion-financial-reporting-hfr-11-1-1-3-reporting-on-relational-sources-xolap/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 06:26:39 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4620</guid>
		<description><![CDATA[Hyperion Financial Reporting (HFR) is one of the simplest and very robust reporting tools that is currently part of the Oracle BI EE Plus bundle. It has excellent multi-dimensional reporting capabilities and scales very well unlike Web Analysis. Part of the reason for this is, there is not much metadata management that is required for [...]]]></description>
			<content:encoded><![CDATA[<p>Hyperion Financial Reporting (HFR) is one of the simplest and very robust reporting tools that is currently part of the Oracle BI EE Plus bundle. It has excellent multi-dimensional reporting capabilities and scales very well unlike Web Analysis. Part of the reason for this is, there is not much metadata management that is required for HFR(only reporting metadata). Its also probably one of the tools that Oracle has which supports XBRL report publishing natively. It has extensive formatting capabilities (similar to BI Publisher) and also supports multi-dimensional hierarchical drills, hierarchical prompts etc. The major drawback of HFR up until 9.3 release was the fact that it supported only 3 main data sources i.e Essbase, Planning and HFM. It did not support reporting directly on relational sources. But in the EPM 11 release, the introduction of XOLAP makes it possible to report on relational sources directly using HFR. In fact, based on my testing so far this works much better than the existing BI EE – Essbase connectivity.</p>
<p>The major advantage of using XOLAP and HFR (when compared with BI EE 10g) is this provides 3 main distinct advantages</p>
<p>1. HFR provides contextual drills as opposed to normal drills that BI EE 10g provides.<br />
2. HFR provides and supports hierarchical prompts which BI EE does<br />
3. HFR provides extensive formatting capabilities (like conditional formatting on Pivot tables etc) which BI EE itself natively lacks</p>
<p>Of course, BI EE 11g would provide all of these capabilities. But until then, for customers who absolutely need the 3 points mentioned above, HFR can be used to supplement BI EE as it is part of the BI EE Plus bundle.</p>
<p>To get this to work, lets start with a simple XOLAP cube. If you are not sure about what XOLAP offers and its advantages, refer my previous blog entry on this <a href="http://www.rittmanmead.com/2009/07/01/hyperion-essbase-11112-xolap-reporting-on-relational-and-essbase-sources-together-transparent-partitions/" target="_blank">here</a>. For this i shall be using the GLOBAL schema that can be downloaded <a href="http://www.oracle.com/technology/products/bi/olap/doc_sample_schemas/globalschemawithocm.html" target="_blank">here</a>.</p>
<p>XOLAP basically is based on a ASO cube format. All the design considerations in terms of outline structure etc would have to be adhered to even in XOLAP. So we start with importing the required database tables from within Essbase studio</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image.png" border="0" alt="image" width="260" height="161" /></p>
<p>After importing the required tables, we establish the relationship across the tables using the normal SQL Joins</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image1.png" border="0" alt="image" width="388" height="315" /></p>
<p>After establishing the relationships, we need to define the Hierarchies and Measure Hierarchies in Essbase Studio. In the XOLAP cube that i will be building, we will have 3 normal dimensions Time, Product and Channel. There will be one Accounts dimension which will have all the relational measures.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image2.png" border="0" alt="image" width="182" height="98" /></p>
<p>After defining the hierarchies, we need to create a Cube Schema and Essbase Model so that we can designate the target cube to be deployed as a XOLAP cube.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image3.png" border="0" alt="image" width="504" height="225" /></p>
<p>Deploying this to Essbase should create a new application and database. The only difference is, this cube will always return data from relational sources at run-time. There will not be any pre-aggregated data stored in this cube.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image4.png" border="0" alt="image" width="336" height="307" /></p>
<p>So, we basically have an outline that is directly dependent on relational source. Any MDX query fired to this cube will be converted to the corresponding SQLs by Essbase. So, all the complex multi-dimensional reporting MDX that we use on normal ASO/BSO cubes can be used on this as well. Of course, not every MDX function is supported (As there is no corresponding equivalents ones in the relational source).</p>
<p>Now that the XOLAP cube is built, lets see how we can use this from Hyperion Financial Reporting. To begin with i start with defining this XOLAP cube as the source for HFR.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image5.png" border="0" alt="image" width="247" height="315" /></p>
<p>Then i create a very simple grid in HFR with the following layout.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image6.png" border="0" alt="image" width="504" height="280" /></p>
<p>The idea is, i will enable the drills on the Product and Time dimensions. Both Channel and Measure dimensions will act as USER POVs. The POVs will act as hierarchical prompts just for this example.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image7.png" border="0" alt="image" width="166" height="315" /></p>
<p>If you notice, we can now leverage XBRL directly here. After defining this report, if you look at the report from EPM Workspace, you will notice that the HFR provides more capabilities (at-least in some aspects) than BI EE 10g.</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image8.png" border="0" alt="image" width="504" height="246" /></p>
<p>In the report, you can see that the drills are context sensitive. Also, if we click on a User POV, we will see that the prompts show the hierarchy 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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image9.png" border="0" alt="image" width="430" height="278" /></p>
<p>For multi-selects we can use USER PROMPTs of HFR. Even they are hierarchy aware. Now that we have demonstrated the basic advantage of using HFR on XOLAP, lets try some complex reporting functionality on this. For example, lets add a calculation which will basically show the value of  “Hardware” &#8211; “Deluxe Mouse”. Hardware is one level above the Deluxe Mouse member. But this kind of calculations are quite common when dealing with Essbase sources</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="image" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/04/image10.png" border="0" alt="image" width="501" height="315" /></p>
<p>As you see, custom financial reporting functions work quite well. This is actually quite exciting (Atleast for me) to see a web based reporting solution(which is in the strategic direction of Oracle) from Oracle that can do multi-dimensional aware reporting on relational sources. All the complex formatting that we are so used in HFR will all work here as well.</p>
<p>From my perspective, part of the reason why XOLAP was introduced is to make HFR work with relational sources. Now, we can make Horizontal &amp; Vertical Fragmentation &amp; Federation work easily with XOLAP by using Essbase transparent partitions on XOLAP. Atleast until 11g comes out this can quite easily serve the reporting needs of multi-dimension aware reporting on relational sources. And of course, we can use HFR as a sort of comparison to see how 11g behaves when compared with features of HFR.</p>
<p>Next in line is in comparing how XOLAP converts MDX to SQL. I will cover that as a separate blog entry. The first part of the XOLAP MDX to SQL conversion is available <a href="http://www.rittmanmead.com/2009/07/06/hyperion-essbase-11112-xolap-mdx-to-sql-conversion-part-1/" target="_blank">here</a>. The 2nd part will cover what SQL queries get fired for multi-level MDX reporting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/04/07/hyperion-financial-reporting-hfr-11-1-1-3-reporting-on-relational-sources-xolap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.1.3 &#8211; Deploying EPM reporting Portlets in Weblogic Portal 10g</title>
		<link>http://www.rittmanmead.com/2010/01/13/oracle-epm-11-1-1-3-deploying-epm-reporting-portlets-in-weblogic-portal-10g/</link>
		<comments>http://www.rittmanmead.com/2010/01/13/oracle-epm-11-1-1-3-deploying-epm-reporting-portlets-in-weblogic-portal-10g/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 11:50:50 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4073</guid>
		<description><![CDATA[There are multiple ways of integrating reporting tools(oracle or non-oracle) to external portals. The most commonly used ones are the URL based integration, Web Service calls and calling native portlets directly from the portals. I have covered the details of the techniques some time back here. Out of these 3, URL based integration is the [...]]]></description>
			<content:encoded><![CDATA[<p>There are multiple ways of integrating reporting tools(oracle or non-oracle) to external portals. The most commonly used ones are the URL based integration, Web Service calls and calling native portlets directly from the portals. I have covered the details of the techniques some time back <a href="http://oraclebizint.wordpress.com/2009/01/26/integration-of-all-oracle-and-non-oracle-reporting-toolsets-url-parameters-an-introduction/" target="_blank">here</a>. Out of these 3, URL based integration is the easiest and the widely used method. Web Service integrations are commonly used by various product development teams when an acquisition happens (for example, BI EE &#8211; BI Publisher integration, EPM Workspace &#8211; BI EE Integration, BOBJ &amp; XCelcius Integration etc) though these can be leveraged by us as well. Portlet based integration is not that widely used due to the lack of extensibility/customization of the portlets exposed. Though the portlet based integration is not widely used, it can actually be put into very good use when the requirement is to have an efficient method of integration without compromising on security (URL based integrations can sometimes be insecure as some tools require the username/passwords to be passed in the URL. But these days most tools support POST method which is a secure method and hence this is not applicable anymore). Today i will be covering the EPM Portlet integration with an External Portal (in my case Weblogic Portal).</p>
<p>To demonstrate how the integration works, i will be using a simple report built in Web Analysis and expose that in Weblogic Portal. The procedure remains the same for HFR &amp; IR as well. I chose Web Analysis for a couple of reasons</p>
<p>1. Its one of the most under-rated tools in the Hyperion Stack. Its one of the best tools in Oracle that provides excellent multi-dimensional analysis even on relational data. There are so many features that makes BI EE 10g look like a very simple analysis tool in comparison, atleast from a multi-dimensional analysis standpoint. Its major downside though is it does not scale very well &amp; lacks a slick UI like BI EE.</p>
<p>2. HFR &amp; IR both require windows clients. In my case, both my VM&#8217;s (one running EPM Workspace and the other running Weblogic portal) were on Oracle Enterprise Linux.</p>
<p>From a portal standpoint, i believe Weblogic Portal 10.3 is now superseded by the Webcenter Suite portal framework. I had to choose Weblogic to reduce the memory footprint on my VM&#8217;s. Somehow the SOA Suite 11g portal along with JDeveloper on OEL seemed to bring my VM&#8217;s to a grinding halt. The procedure for portlet integration with Webcenter Suite is a bit different from Weblogic Portal which i do hope to cover in future(after sorting out the memory issue). One point to note is, while installing Weblogic Portal ensure that you are installing the Portal Samples as well. These samples contain a sample DVT application which provides a login portlet for the portal.</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 30" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture30.png" border="0" alt="Picture 30" width="413" height="315" /></p>
<p>Having used Weblogic Portal, i can surely say that it is much better than the Oracle Portal 10g. Portlet development/deployment is a lot easier in Weblogic as it is purely java based. I still remember i had to get 2/3 patches applied on Oracle Portal 10.2.0.x to 10.2.0.4 just to make the Oracle Portal WSRP compliant so that it can consume JSR-168 compliant BI EE portlets. In the case of Weblogic, it supports WSRP by default. One downside though is Weblogic Portal 10.3 does not provide login portlets out of the box. This is essential to render EPM 11 portlets. I will demonstrate how we can enable a login portlet in the Weblogic Portal later here. One other good thing about Weblogic portal is it supports Portal deployment directly from the Eclipse IDE. This is so essential during the development cycles and i thought that is the biggest differentiating factor between Oracle portal 10g and Weblogic Portal 10g. Oracle Portal 10g supported only web based development and lacked a true IDE integration.</p>
<p>When you install EPM Workspace or Web Analysis, the Workspace portlets get installed automatically. There is nothing extra that we will have to do to use the portlets.</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/wp2/wp-content/uploads/2010/01/Picture151.png" border="0" alt="Picture 15" width="504" height="291" /></p>
<p>We will start with creating a very simple report in Web Analysis as shown below. This a report based on the SH schema.</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 16" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture16.png" border="0" alt="Picture 16" width="504" height="178" /></p>
<p>Once the report is created, login to the machine where the portlets are installed. Navigate to the directory {HYPERION_HOME}\products\Foundation\workspace\InstallableApps\portlets</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/wp2/wp-content/uploads/2010/01/Picture171.png" border="0" alt="Picture 17" width="492" height="250" /></p>
<p>In this directory, you would find all the portlet files for various portals. In our case, since we are using Weblogic Portal, we will have to copy the bea-avaproxy.zip to a temporary directory and decompress it.</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/wp2/wp-content/uploads/2010/01/Picture181.png" border="0" alt="Picture 18" width="258" height="71" /></p>
<p>The next step is to navigate to the Weblogic Portal and open up the eclipse IDE (workshop). If you are new to Weblogic Portal, the following steps will basically highlight what you need to do to quickly create a portal. Start with creating a simple Portal EAR Project directly from the Eclipse IDE.</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/wp2/wp-content/uploads/2010/01/Picture191.png" border="0" alt="Picture 19" width="294" height="315" /></p>
<p>Once you have created the EAR Project created, associate the project with a Weblogic domain. If you do not have a domain, you can create it as part of the EAR creation process.</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/wp2/wp-content/uploads/2010/01/Picture201.png" border="0" alt="Picture 20" width="274" 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 21" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture21.png" border="0" alt="Picture 21" width="275" 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 22" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture22.png" border="0" alt="Picture 22" width="374" height="315" /></p>
<p>Once the EARProject is created, we will have to create the Portal Web Project. While creating the Portal Web Project ensure that you are assigning the Samples DVT application as part of the project facets. This is very important for the portlet integration to work. This DVT application provides a login portlet that we can use within the portal. Remember that EPM portlets cannot be used by autonomous(non-authenticated) users.</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/wp2/wp-content/uploads/2010/01/Picture23.png" border="0" alt="Picture 23" width="338" height="315" /></p>
<p>Once the Portal Web Project is created, we need to deploy the portlets that we decompressed before. Portlet deployment in weblogic is done by copying the portlet.xml from the decompressed portlets folder to <strong>{BEA_HOME}\{Workspace_Home}\{PortalWebDirectory}\WEB-INF</strong> folder. In my case i had to copy the portlet.xml from <strong>/home/oracle/portlets/WEB-INF</strong> to <strong>/u01/app/bea/user_projects/workspaces/default/EPMPortalWebProject/WebContent/WEB-INF</strong>. Remember while copying on linux, the portlet.xml will contain Ctrl characters like ^M. Ensure that you do a dos2unix on this file before copying.</p>
<p>After copying the portlet.xml, merge the contents web.xml in <strong>/home/oracle/portlets/WEB-INF</strong> with web.xml in <strong>/u01/app/bea/user_projects/workspaces/default/EPMPortalWebProject/WebContent/WEB-INF</strong> folder.  For reference i have attached the web.xml and portlet.xml files <a href="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/portlet.xml" target="_blank">here</a> and <a href="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/web.xml" target="_blank">here</a>. Then ensure that every other file/folder (from decompressed portlet directory) is copied within the Portal Web applications portlets directory as is.  This will enable us to use the EPM portlets within the workshop framework. After the deployment, the eclipse IDE will recognize the portlets and will list it in the Design Palette 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 24" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture24.png" border="0" alt="Picture 24" width="272" height="207" /></p>
<p>To use the portlets, lets create a page in the Workshop portal and include the following portlets</p>
<p>1. DVT Enabler &#8211; Login portlet<br />
2. Hyperion Reporting and Analysis Portlet<br />
3. Hyperion Reporting and Analysis credentials Manger Portlet</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/wp2/wp-content/uploads/2010/01/Picture25.png" border="0" alt="Picture 25" width="345" height="315" /></p>
<p>Now run this portal directly from Workshop. Remember to alter the name of the portal to remove the .portal extension. Else deploy the portal from Portal Web Admin console. If you deploy it with the portal extension, the portlets will not render properly.</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 31" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture31.png" border="0" alt="Picture 31" width="190" 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 26" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture26.png" border="0" alt="Picture 26" width="504" height="142" /></p>
<p>As you see, since we have not logged in, both the portlets will throw an error. Lets login as the admin user. After logging in, we customize the portlets by entering the EPM username/password. The report portlet basically has 2 options. One is to specify the path of the report. And the other is any parameters that we would like to pass. When i tried this, the portlet seemed to be very fast, much faster than workspace itself.</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 27" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture27.png" border="0" alt="Picture 27" width="504" height="297" /></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/wp2/wp-content/uploads/2010/01/Picture28.png" border="0" alt="Picture 28" width="504" height="297" /></p>
<p>Not all the functionality available in the EPM workspace will be available in the portlets like Drill up, Keep/Remove etc. Basic drill functionality will work though.</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 29" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture29.png" border="0" alt="Picture 29" width="504" height="214" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/01/13/oracle-epm-11-1-1-3-deploying-epm-reporting-portlets-in-weblogic-portal-10g/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.1.3 &#8211; Life Cycle Management &#8211; Part1 &#8211; Essbase Migration</title>
		<link>http://www.rittmanmead.com/2010/01/05/oracle-epm-11-1-1-3-life-cycle-management-part1-essbase-migration/</link>
		<comments>http://www.rittmanmead.com/2010/01/05/oracle-epm-11-1-1-3-life-cycle-management-part1-essbase-migration/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 11:06:24 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=4017</guid>
		<description><![CDATA[One of the major issues that i commonly encountered while doing 9.3 based essbase implementations was the fact that there was no built in utility within the Hyperion stack that could migrate various applications from a Development to a Test/Production machine(not essbase alone but also other related components like Shared Services etc). I still remember [...]]]></description>
			<content:encoded><![CDATA[<p>One of the major issues that i commonly encountered while doing 9.3 based essbase implementations was the fact that there was no built in utility within the Hyperion stack that could migrate various applications from a Development to a Test/Production machine(not essbase alone but also other related components like Shared Services etc). I still remember a big rollout almost a year back, wherein we had to document a whole list of steps (manual as well as automated ones) just to migrate a set of BSO &amp; ASO cubes (along with some HFR reports) from one machine to another.</p>
<p>The biggest compelling feature, in my opinion to upgrade from 9.3 to the EPM 11 release is the inclusion of the new Life Cycle Management utility which makes the process of migration from one machine to another all the more smoother. Not that this utility works perfectly or isnt without bugs, it is nevertheless a significant leap from the older 9.3 release and can drastically reduce migration times/effort involved.</p>
<p>The 2 common issues in the 9.3 release was</p>
<p>1. There was no automated way of migrating shared services users/groups/provisioning information from one machine to the other. There did exist a CSV/XML import-export utility but it was never straight forward to use. Just to work around this we had to build a custom JAPI based User/Group extractor.</p>
<p>2. There was no automated way of migrating Essbase artifacts without doing copying from the file system (Outlines, rule files, calc scripts etc). EAS does provide an option to copy applications across multiple servers but unfortunately cannot be automated out of the box. Even if we can somehow automate it by reusing the EAS Jars, we cannot reuse the same scripts without modification across environments.</p>
<p>Now only if we could have a similar such utility in BI EE, it will make the process of migration all the more smoother. Anyway i am digressing. Today, i will demonstrate how this utility can be used to migrate Essbase applications from one environment to another.</p>
<p>LCM Utility supports 2 kinds of migration</p>
<p>1. Application to Application Migration &#8211; If you have multiple instances of Essbase registered in a single shared services instance, then this migration automatically migrates the Essbase Application &amp; Database Artifacts to the other Essbase instance through the common Shared Services CSS.</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture19.png" border="0" alt="Picture 19" width="504" height="241" /></p>
<p>2. Application to File System Migration &#8211; This is the most common case. If you have multiple instances of Essbase registered in different shared services instances then this utility migrates all the necessary artifacts on to the file system. Then we need to move the extracted artifacts to the target machine and then run the utility again which will reimport the application in the target machine.</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture20.png" border="0" alt="Picture 20" width="504" height="182" /></p>
<p>I will demonstrate the 2nd type of migration for Essbase as that is the most commonly used one. We start with migrating a very simple database Sample-&gt;Basic. The migration can be executed directly from shared services or can be remotely executed using the LCM utility. But for either of them to work, we will need something called as a Migration XML. This XML basically defines the source and target artifacts that we will be migrating from/to. This XML is created from Shared Services by navigating to the corresponding Application Group that we would like to migrate</p>
<p><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 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2010/01/Picture2.png" border="0" alt="Picture 2" width="504" height="227" /></p>
<p>In the screenshot above, we have basically chosen all the artifacts corresponding to the Sample-&gt;Basic database. One very good thing about this is, it migrates the security &amp; Substitution variables(which are not stored as separate files but are created through MaxL) as well. All the major artifacts are identified using the file extensions. This does not support data migration i.e if your cube has data in development, the LCM utility will not migrate the data to the test/prod machine. We will have to do that manually. Also, Partitions will have to be recreated manually in the target instance using MaxL. Once the artifacts are chosen, we need to click on &#8220;Define Migration&#8221; to specify how we would like to migrate the Sample-&gt;Basic database artifacts.</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture13.png" border="0" alt="Picture 13" width="449" height="315" /></p>
<p><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/wp2/wp-content/uploads/2010/01/Picture14.png" border="0" alt="Picture 14" width="504" height="225" /></p>
<p>We shall choose the file system migration for the Destination as shown above. We can specify any folder name here. This will in turn create a folder under {HYPERION_HOME}\common\import_export\&lt;user&gt;@&lt;Directory&gt;\&lt;foldername&gt;. The folder will be created only when we execute the migration. Currently we are just defining the XML for the migration. Once we have defined the destination options we need to save the MigrationDefinition XML</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture15.png" border="0" alt="Picture 15" width="450" height="315" /></p>
<pre>&lt;Package name="web-migration" description="Migrating Product to File System"&gt;
    &lt;LOCALE&gt;en_US&lt;/LOCALE&gt;
    &lt;Connections&gt;
        &lt;ConnectionInfo name="MyHSS-Connection1" type="HSS" description="Hyperion Shared Service connection" user="" password=""/&gt;
        &lt;ConnectionInfo name="FileSystem-Connection1" type="FileSystem" description="File system connection" HSSConnection="MyHSS-Connection1" filePath="/SampBasic"/&gt;
        &lt;ConnectionInfo name="AppConnection2" type="Application" product="ESBAPP" project="Essbase:oraepm2.venkatlap.com:1" application="Sample" HSSConnection="MyHSS-Connection1" description="Source Application"/&gt;
    &lt;/Connections&gt;
    &lt;Tasks&gt;
        &lt;Task seqID="1"&gt;
            &lt;Source connection="AppConnection2"&gt;
                &lt;Options/&gt;
                &lt;Artifact recursive="true" parentPath="/Databases/Basic" pattern="*"/&gt;
            &lt;/Source&gt;
            &lt;Target connection="FileSystem-Connection1"&gt;
                &lt;Options/&gt;
            &lt;/Target&gt;
        &lt;/Task&gt;
    &lt;/Tasks&gt;
&lt;/Package&gt;</pre>
<p>If you notice we have defined our XML for doing the migration which is from Shared Services to File System. After defining the XML, we need to execute the Migration. This will extract the necessary artifacts from Essbase to the folder that we specified. Shared Services has a nice console view to look at the status of all the migrations.This can come in very handy if you have a lot of applications and you are migrating all or most of them.</p>
<p>Once the migration is complete you will notice that all the Essbase artifacts will now have been copied over to the File System directory we specified before</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture17.png" border="0" alt="Picture 17" width="475" height="240" /></p>
<p>To migrate this to another Essbase instance, we can zip the entire File System folder that was created and then move it over to the target machine. We also will have to copy the Migration XML as well. To complete the migration we will have to modify the XML a bit to cater to File System to Essbase migration. The modified XML is given below</p>
<pre>&lt;Package name="web-migration" description="Migrating File System to Essbase"&gt;
    &lt;LOCALE&gt;en_US&lt;/LOCALE&gt;
    &lt;Connections&gt;
        &lt;ConnectionInfo name="MyHSS-Connection1" type="HSS" description="Hyperion Shared Service connection" user="" password=""/&gt;
        &lt;ConnectionInfo name="FileSystem-Connection1" type="FileSystem" description="File system connection" HSSConnection="MyHSS-Connection1" filePath="file:/u01/app/SampBasic"/&gt;
        &lt;ConnectionInfo name="AppConnection2" type="Application" product="ESBAPP" project="Essbase:oraepm2.venkatlap.com:1" application="SampLCM" HSSConnection="MyHSS-Connection1" description="Source Application"/&gt;
    &lt;/Connections&gt;
    &lt;Tasks&gt;
        &lt;Task seqID="1"&gt;
            &lt;Source connection="FileSystem-Connection1"&gt;
                &lt;Options/&gt;
                &lt;Artifact recursive="true" parentPath="/Databases/Basic" pattern="*"/&gt;
            &lt;/Source&gt;
            &lt;Target connection="AppConnection2"&gt;
                &lt;Options/&gt;
            &lt;/Target&gt;
        &lt;/Task&gt;
    &lt;/Tasks&gt;
&lt;/Package&gt;</pre>
<p>Remember you will have to modify some of the config files(sourceInfo.xml etc) in the extracted files to support target updates. To import the Sample-&gt;Basic application we just have to call the LCM utility directly from command line. This facilitates integration with external schedulers so that we can do the migrations at regular intervals. Also supported is a Java API, so that external applications like ODI etc can call this.</p>
<p><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/wp2/wp-content/uploads/2010/01/Picture18.png" border="0" alt="Picture 18" width="408" height="315" /></p>
<p>This is pretty straight forward and works pretty well too. But the actual interesting part is in migrating shared services users/groups. This is where it can become tricky. In a couple of my installs, the exports worked absolutely fine but the import process corrupted the entire shared service instance. I observed this on a couple of my OEL-EPM-Weblogic instances. I might have to log this as a LCM bug. But i will cover a workaround in my next blog entry and show how users/groups can be migrated from one instance to the other.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2010/01/05/oracle-epm-11-1-1-3-life-cycle-management-part1-essbase-migration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.1.3 &#8211; Customizing EPM Workspace</title>
		<link>http://www.rittmanmead.com/2009/12/22/oracle-epm-11-1-1-3-customizing-epm-workspace/</link>
		<comments>http://www.rittmanmead.com/2009/12/22/oracle-epm-11-1-1-3-customizing-epm-workspace/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 09:41:37 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=3953</guid>
		<description><![CDATA[A common requirement that always comes up as part of an Organization wide EPM rollout, is in customizing the look and feel of the products to match the company logo, style etc. In the case of BI EE, the customization is quite straight forward, as BI EE segregates the look and feel into 2 parts
1. [...]]]></description>
			<content:encoded><![CDATA[<p>A common requirement that always comes up as part of an Organization wide EPM rollout, is in customizing the look and feel of the products to match the company logo, style etc. In the case of BI EE, the customization is quite straight forward, as BI EE segregates the look and feel into 2 parts</p>
<p>1. Styles<br />
2. Skins</p>
<p>I have blogged about the method for customizing the BI EE UI using both Styles and Skins almost 2 years back <a href="http://oraclebizint.wordpress.com/2007/09/12/oracle-bi-ee-10133-customizing-look-and-feel-styles-and-skins/" target="_blank">here</a> and <a href="http://oraclebizint.wordpress.com/2007/10/05/oracle-bi-ee-101332-customizing-look-and-feel-styles-and-skins-phase-2/" target="_blank">here</a>. In the case of EPM Workspace, the terminology used is a little bit different. Also, Oracle has an agreement with <a href="http://www.bindows.net/" target="_blank">Bindows</a>, a third party vendor which basically provides the entire framework for customizing EPM Workspace. The full agreement is available on Bindows website <a href="http://mb.bindows.net/news/MB_Hyperion_PR_7JUN05.pdf" target="_blank">here</a>.  I am not sure how the agreement works, but i believe it does allow for change in the UI styles implemented as part of the Bindows framework. In fact Bindows has a nice set of themes on their website(for download) which can effectively be retrofitted back to EPM workspace with some amount of work.</p>
<p>In the EPM 11 release, a new feature was added to support high contrast themes. This can be invoked directly from within the EPM workspace by pressing Ctrl+Shift+H.</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 7" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture74.png" border="0" alt="Picture 7" width="485" height="315" /></p>
<p>Though a third party framework is used, there are also some internal themes that Oracle EPM uses. To understand how this all work together, we need to start with understanding how EPM workspace renders all the themes, styles, images etc. Whenever we deploy the Workspace war manually or do an automated deployment into an application server, the deployment process manually copies certain part of the installed Workspace(or different application) files to the App Server accessible area (within its relative URL reach). This is very similar to what happens in BI EE. When we deploy Presentation Services Plug-in to an app server, all the themes, images etc are copied to the context accessible area of the application server.</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 2" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture26.png" border="0" alt="Picture 2" width="504" height="129" /></p>
<p>As you see in the above screenshot, i have deployed Workspace into Tomcat and hence we have a multitude of workspace related files in the deployed directory. You can see a couple of folders here. <strong>themes</strong> and <strong>thirdparty/bindows/html/themes</strong>.</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 3" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture32.png" border="0" alt="Picture 3" width="345" height="64" /></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 4" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture41.png" border="0" alt="Picture 4" width="504" height="117" /></p>
<p>If you notice, we have completely different set of folders under both the theme folders. My initial impression was that only the bindows one was used (not the workspace native one). But on further analysis i realized that both the folders above are required to make the themes to work. Bindows themes are just for Workspace alone(bringing all the components together while using 19000 workspace port). But the individual themes can vary for different products. In the above screenshot we basically had theme_tadpole and theme_tadpole_hc as native workspace themes(workspace as a product). Also, the Bindows specific themes Bpmtadpole and BpmtadpoleHc. Similarly lets look at the ui_themes folder of Hyperion Scorecards</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 6" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture63.png" border="0" alt="Picture 6" width="504" height="73" /></p>
<p>As you see we only have the product specific ones theme_tadpole and theme_tadpole_hc. So, there are a couple of conclusions that we can derive out of this.</p>
<p>1. When customizing the UI of EPM components, the bindows theme as well as the individual product themes should be in sync with each other<br />
2. Ensure that when you have EPM components deployed in multiple machines, all of them get a common ui through the same default theme theme_tadpole. The _hc version of the themes are the high contrast variants of the original themes.</p>
<p>In BI EE, we typically start off with creating new themes(styles) as a copy of existing themes(styles). But in the case of EPM workspace, due to the nature of interaction (or lack of it) between the bindows and the product themes, i would recommend not to create new themes but to modify the existing ones(Its better to backup the older themes so that we have something to revert back on).</p>
<p>To start with lets look at a way of customizing the login screen of EPM workspace.<br />
The login screen basically has 2 parts. One is the background color. And the other is the Oracle EPM logo. Remember, whenever you are customizing the EPM workspace, the same customization will have to be done across all the other product component themes as well. The primary reason is each product can be invoked either through the workspace or directly. In either case, we need to ensure that the UI remains the same. Once you start thinking in those lines, you will actually realize that the customization is actually pretty easy. To customize the logo, navigate to</p>
<p><strong>{HYPERION_HOME}/deployments/&lt;appserver&gt;/&lt;application&gt;/webapps/&lt;application&gt;/(ui_)themes/(theme_)tadpole/images_global/ </strong></p>
<p>In my case, since i am customizing the login of workspace alone, i had to navigate to <strong>/u01/app/oracle/hyperion/deployments/Tomcat5/Workspace/webapps/workspace/themes</strong><strong>/theme_tadpole/images_global </strong>folder. Here you would find a file called logon_panel.gif. This is the image that actually gets rendered in the logon screen. Replace this image with you corporate logo. Ensure that the image size is 298*367 (pixels).</p>
<p>Copy the same image over to</p>
<p><strong>{HYPERION_HOME}/products/&lt;product&gt;/AppServer/InstalledApps/&lt;application&gt;/(ui_)themes/(theme_)tadpole/images_global </strong></p>
<p>In my case the actual product folder was <strong>/u01/app/oracle/hyperion/products/Foundation/AppServer/InstalledApps/workspace_static/themes /theme_tadpole/images_global</strong>.</p>
<p>This is very similar to BI EE customization where we need to have the modified style in both the product directory as well as the installed app server directory. Once we have changed the image, the next step is to change the background color. It can be a little bit difficult to do understand this part as there are 4 places that we need to modify the settings. I will just list them down here</p>
<p>1. Global.css file in <strong>{HYPERION_HOME}/products/Foundation/AppServer/InstalledApps/workspace_static/themes/theme_tadpole/ </strong>- Product Customization<br />
2. Global.css file in <strong>{HYPERION_HOME}/deployments/Tomcat5/Workspace/webapps/workspace/themes/theme_tadpole/</strong> &#8211; Product Customization<br />
3. theme.css file in <strong>{HYPERION_HOME}/deployments/Tomcat5/Workspace/webapps/workspace/thirdparty/bindows/thirdparty/ themes/Bpmtadpole<br />
</strong>4. theme.css file in <strong>{HYPERION_HOME}/products/Foundation/AppServer/InstalledApps/workspace_static/thirdparty/bindows/ thirdparty/themes/Bpmtadpole </strong></p>
<p>Just edit the css files and modify the necessary property (in our case the background color property). The above changes will ensure that you have customized your workspace application as well as the overall workspace. If you have deployed more applications like Planning, Shared Services etc to be accessible through the workspace, the same customizations will have to be done in those components 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 11" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture113.png" border="0" alt="Picture 11" width="475" height="315" /></p>
<p style="text-align: left;"><em>Update: Though theoretically we can customize the entire look and feel of EPM Workspace, you might want to check the licensing agreements to see what can be and cannot be customized.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2009/12/22/oracle-epm-11-1-1-3-customizing-epm-workspace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle EPM 11.1.1.3 &#8211; Installing Hyperion Components on Multiple Machines</title>
		<link>http://www.rittmanmead.com/2009/12/11/oracle-epm-11-1-1-3-installing-hyperion-components-on-multiple-machines/</link>
		<comments>http://www.rittmanmead.com/2009/12/11/oracle-epm-11-1-1-3-installing-hyperion-components-on-multiple-machines/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 20:06:47 +0000</pubDate>
		<dc:creator>Venkatakrishnan J</dc:creator>
				<category><![CDATA[Hyperion]]></category>
		<category><![CDATA[Hyperion Essbase]]></category>
		<category><![CDATA[Oracle BI Suite EE]]></category>
		<category><![CDATA[Oracle EPM]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/?p=3840</guid>
		<description><![CDATA[In any EPM deployment, rarely do all the components get installed on a single machine. In majority of the cases, you will see that each component is actually installed on separate machines with their own application and web servers. So, how does this all work and how do we go about installing various EPM components [...]]]></description>
			<content:encoded><![CDATA[<p>In any EPM deployment, rarely do all the components get installed on a single machine. In majority of the cases, you will see that each component is actually installed on separate machines with their own application and web servers. So, how does this all work and how do we go about installing various EPM components across multiple machines? I plan to cover this today and will try to compare the architecture of EPM deployment along with BI EE deployment.</p>
<p>One major problem with an Oracle EPM installation is in the number of components involved and the dependencies among them. Immediately after the Hyperion Acquisition (with the EPM 11 release), Oracle has done significant improvements to the end to end install. The entire installation/configuration is now more or seamless through the EPM system configurator. Though it is much easier to deploy an EPM system now, there still are quite a few components that we need to be aware of while doing a distributed deployment. It would always help if we can understand how they interact with each other. Oracle EPM system has the following products</p>
<p>1. Oracle Shared Services &#8211; Grouped under Foundation Services<br />
2. Oracle Workspace &#8211; Grouped under Foundation Services<br />
3. Oracle Planning<br />
4. Oracle Essbase, Essbase Admin Console, Provider Services, Studio<br />
5. Oracle Enterprise Performance Management Architect<br />
6. Oracle Financial Reporting, Web Analysis, Interactive Reporting &amp; Production Reporting<br />
7. Oracle Financial Management<br />
8. Oracle Scorecards<br />
9. Oracle Data Integration Management (DIM with its adapters)</p>
<p>There are other components as well(like CMC etc). But above 9 are the most commonly used ones. If you consider the number of products and how they can all work together you can imagine that we can never get the full performance out of them if we install all the components in a single machine. So, to get the maximum performance out of them we need to identify an architecture where each component can be clustered separately but at the same time work in tandem with the other components. At a high level from a deployment standpoint i have depicted the entire Oracle EPM architecture 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 16" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture161.png" border="0" alt="Picture 16" width="504" height="310" /></p>
<p>The actual deployment can (web &amp; app servers can be swapped, reused, added etc) vary but the above will give a high level conceptual overview of what components we will need in every machine in a distributed installation. Every component can work in isolation or can be brought together through a common workspace.</p>
<p>The above architecture will also provide an overview of how we need to go about adding new components to an existing installation. Every component, for example hyperion planning, has its own web interface (<a href="http://machineA:8300/HyperionPlannig)">http://machineA:8300/HyperionPlannig)</a>. So in a distributed environment, every machine requires an application server, a web server and the component itself. There are some components like Essbase that do not require application servers and web servers. But for the sake of this discussion lets club Essbase installation with EAS, Provider Services and Essbase Studio. But remember most of these web enabled components are brought together in a single interface through Workspace (For ex. <a href="http://machineC:19000/workspace)">http://machineC:19000/workspace)</a>. How does that work? Also, Workspace has its own Application Server and Web Server (<a href="http://machineC:45000/workspace)">http://machineC:45000/workspace)</a> which works in a standalone mode without any component integration.</p>
<p>For security reasons, all the web enabled components do not talk to each other directly since they can typically reside in multiple hostnames (possibility of cross domain scripting). So, Oracle EPM combines all the components together into a single web enabled workspace (<a href="http://machineC:19000/workspace)">http://machineC:19000/workspace)</a> either using an Apache HTTP Server or an IIS Server. One distinctive advantage of this is it provides a means of complete security where there is a need to expose the components over the web. In such cases, we can just put the web server alone to be internet facing and everything else inside a DMZ and then put a firewall (on both sides of the DMZ) to protect the corporate intranet. There can be other variations like multiple firewalls across multiple layers but the point is it provides flexibility</p>
<p>I think Oracle/Hyperion also did this for a couple of other reasons</p>
<p>1. Workspace was a product that was introduced, much after Planning and Essbase, EAS etc to bring them all together. So, they had to find an architecture where every component will be in a different machine but at the same time should be able to work together through a common console<br />
2. Incremental product/component purchase. If someone purchases Planning along with Shared Services today, they can add more components like BI EE etc later and will still be in a position to bring them all together.</p>
<p>One more point to note is, multiple components can be installed on a single machine and then deployed on to the same application and web servers. So, depending on the usage, performance required, an optimal number of servers required etc can be arrived at before doing a deployment. Lets look at a very simple distributed deployment scenario today. We will start with the first component which is shared services. The application server i will be using is Weblogic Server 9.3. Other app servers are supported as well. But ensure that, for the workspace integration to work the application server used for workspace deployment will have to be used for other components 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 17" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture171.png" border="0" alt="Picture 17" width="301" height="394" /></p>
<p>The order of installation of various components can be different. But the configuration should be done in a certain order. In our case, on MachineA we will start with shared services installation. Once the installation is done, install Weblogic Server on that machine as well. Ensure that while installing weblogic server, you choose the servlets option. This is what will enable the Apache redirects between the main workspace http server and individual Weblogic embedded http servers through mod_so.</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 10" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture101.png" border="0" alt="Picture 10" width="438" height="315" /></p>
<p>After the installation, install an Oracle Database or use a new database schema from an existing database instance. The Oracle client installation on any of the machines is not necessary as the connections happen through JDBC with pre-bundled drivers. Start the configurator and then point to a database schema specific to sharedservices. It is a standard practice to have one schema for each component.</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 11" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture111.png" border="0" alt="Picture 11" width="504" height="170" /></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 7" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture71.png" border="0" alt="Picture 7" width="411" height="315" /></p>
<p>Choose the automatic deployment for Oracle Weblogic 9. Also enter the Weblogic home. During deployment, a weblogic domain for Hyperion is automatically created(no need to create before hand). If multiple components are deployed at the same time, all the components will be deployed onto the same domain. Once the deployment is successful, ensure that shared services is up and running. Shared Services has to be up and running for other components to be configured from other machines.</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/wp2/wp-content/uploads/2009/12/Picture142.png" border="0" alt="Picture 14" width="409" height="315" /></p>
<p>Once the shared services is installed and configured, we can move on to other components. In my case, i will install Workspace &amp; Planning together in another machine.</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/wp2/wp-content/uploads/2009/12/Picture192.png" border="0" alt="Picture 19" width="353" height="484" /></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 6" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2009/12/Picture6.png" border="0" alt="Picture 6" width="411" height="315" /></p>
<p>Once the install is done, install Weblogic server again in this machine (i believe using weblogic node manager it is possible to use a single em managing multiple instances of weblogic, but i will leave that for now). While installing ensure that the Servlet Plugins option is enabled as well. In this we will configure 2 components(Planning &amp; Workspace) on to a single weblogic domain. Start the EPM configurator.</p>
<p>If you have other components installed on other machines, while in the system configurator, do not check the &#8220;Configure Web Server&#8221; option. This is always done at the end once every component is registered with shared services. This option basically configures the URL redirects from the main HTTP Server to the individual component http servers. In our case, since we do not have any other component to install, we shall choose every option available for Workspace and Planning (Except clustering). Every other configuration remains the same. The only addition is in the Web Server configuration. You will notice that all the web enabled registered components will be listed in the web server configuration screen</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/wp2/wp-content/uploads/2009/12/Picture151.png" border="0" alt="Picture 15" width="411" height="315" /></p>
<p>You will also see components along with their machine names as well. This will ensure that Workspace can automatically make redirects to other applications using its http.</p>
<p>If you notice this is very different from a BI EE deployment. BI EE has only one web facing component which is through the http server and the presentation services Plugin(deployed in the Java Container). Every other component like Presentation Services, BI Server talk to each other through specific ports but are not web enabled by themselves. The main reason is, BI EE itself is a single product. Presentation Services alone will not make sense without the BI Server. BI Scheduler cannot work in isolation. So, in effect, this comparison itself is not valid since we are comparing a multiple product deployment (EPM) with a single product deployment i.e BI EE. But if you look at the whole architecture in the first figure, it blends overall with the entire Oracle EPM universe story. The integration of BI EE with Oracle EPM is very similar to the integration of Hyperion Planning with Workspace. End users connect to the Workspace http server. When BI Presentation Services is chosen, Apache does a redirect to the local apache of the app server on which BI EE is deployed. But what is not seamless yet is the security integration. In the case of Planning, Workspace etc, since Hyperion itself developed it, all of them more or less followed the same security model. But in the case of BI EE, the security model is completely different. Hence Oracle i believe, had to come up in some way to pass the SSO tokens from EPM to BI EE and then make BI EE to recognize them. Hopefully this integration will become more seamless with future releases of EPM and BI EE. I can envision BI EE becoming the core of reporting in the EPM architecture replacing Web Analysis.</p>
<p>Lets look at the list of steps that we typically go through while integrating BI EE with EPM Workspace.</p>
<p>1. We start with Registering the BI EE into Hyperion Shared Services Registry (using BI EE Administration-&gt;Manage EPM Connection tab). This step enables the configurator to recognize BI EE as another EPM product. This will basically enable apache redirects between the EPM Workspace HTTP Server and the BI EE http server.</p>
<p>2. Once the registration is done, we enable BI EE to recognize the Oracle EPM SSO tokens (as the security model is different). This is done by adding the the following configuration tags to instanceconfig.xml</p>
<pre>&lt;Auth&gt;
 &lt;ExternalLogon enabled="true" logonPageAllowed=”true”&gt;
   &lt;ParamList&gt;
      &lt;Param name="UID" source="url" nameInSource="sso_token"/&gt;
      &lt;Param name="PWD" source="constant" value="obips.hss.ssotoken"/&gt;
   &lt;/ParamList&gt;
 &lt;/ExternalLogon&gt;
&lt;/Auth&gt;</pre>
<p>3. There are a couple of ways in which the EPM SSO tokens can be recognized by the Javahost. One is through the cssURL method wherein the CSS values are derived from the cssURL. The cssURL can be verified using the URL <a href="http://machineA:28080/interop/framework/getCSSConfigFile">http://machineA:28080/interop/framework/getCSSConfigFile</a>. If you query this, it will generate an XML as shown below</p>
<pre>&lt;css&gt;
	&lt;hub location="http://esscluster1.venkatlap.com:28080"&gt;
		&lt;dirPort&gt;28089&lt;/dirPort&gt;
	&lt;/hub&gt;
	&lt;spi&gt;
		&lt;provider&gt;
			&lt;native name="Native Directory"&gt;
			&lt;/native&gt;
		&lt;/provider&gt;
	&lt;/spi&gt;
	&lt;searchOrder&gt;
		&lt;el&gt;Native Directory&lt;/el&gt;
	&lt;/searchOrder&gt;
	&lt;token&gt;
		&lt;timeout&gt;480&lt;/timeout&gt;
	&lt;/token&gt;
	&lt;logger&gt;
		&lt;priority&gt;WARN&lt;/priority&gt;
	&lt;/logger&gt;
	&lt;delegatedUserManagement&gt;
		&lt;enabled&gt;false&lt;/enabled&gt;
	&lt;/delegatedUserManagement&gt;
&lt;/css&gt;</pre>
<p>Javahost can extract the required values out of this config XML itself. But in many cases, since this can be extracted directly from sharedservices registry, there is an option to specify the HYPERION_HOME registry property file within Javahost so that it can communicate with sharedservices and authenticate accordingly.</p>
<p>4. The next step is to make sure BI Server authenticates against shared services using the custom authenticator.</p>
<p>5. Once all the above are done, we need to enable the apache from Workspace through the EPM configurator to redirect requests for BI EE to the app server on which Presentation Services plugin is deployed.</p>
<p>If you look at it from an overall perspective the only complicated piece is in the enabling the EPM to BI EE security. But hopefully in 11g, BI EE would have the same authentication model like Oracle EPM. If that is the case, the only configuration that we probably would have to do is the first and the last steps i.e register with shared services and then enable apache redirect. Now, how about bundling BI EE along with the EPM installer(i think we might even see this in the coming future). Even that will become straightforward like other Hyperion Components once the security model is straightened out hopefully in 11g(again based on rumours in the public domain). Now we can realize why Oracle is planning on moving BI EE towards a common security framework. Its all for seamless integration with Oracle EPM. But again from a shared services perspective, i think there need to be significant improvements there. From a provisioning standpoint, shared services does not have a good integration with Essbase or with BI EE currently. Now, only if they can revamp shared services with more Essbase &amp; BI EE specific provisioning capabilities, it will become all the more interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2009/12/11/oracle-epm-11-1-1-3-installing-hyperion-components-on-multiple-machines/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
