<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6575283218005807475</id><updated>2012-01-28T06:13:26.777-08:00</updated><title type='text'>More to life than this...</title><subtitle type='html'>A delve into the disturbing world of the Oracle Hyperion product set, uncovering the mysteries and facts beneath the shiny surface, yawn your way through yet another blog, let's hope this one is interesting...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default?start-index=101&amp;max-results=100'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-63683253760824483</id><published>2012-01-22T10:55:00.000-08:00</published><updated>2012-01-22T10:55:51.239-08:00</updated><title type='text'>Loading to EPMA planning applications using interface tables – Part 8</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Just when you thought the end of the interface series had come about I return with another instalment. Today I thought I would quickly go over loading data from interface tables as it is an area I have not covered and I want the series to be complete.&lt;br /&gt;&lt;br /&gt;Within EPMA there is built in functionality known as data synchronization which allows the synchronizing of data between EPM products, flat files and interface tables which I will be covering.&lt;br /&gt;&lt;br /&gt;The objective of today is as usual to go back to basics and load numeric, date and text data from an interface table into a planning application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-evn_tXBFOLs/TxxVIvuokdI/AAAAAAAAEH0/W1fudrW_4dc/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://1.bp.blogspot.com/-evn_tXBFOLs/TxxVIvuokdI/AAAAAAAAEH0/W1fudrW_4dc/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A simple form was created with three account members, TextMember1 which is a text data type, DateMember1 which is a date member type and a standard account member Acc1. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-hXddODtHzJM/TxxVJIxuiEI/AAAAAAAAEH4/NgsBOxKNQsg/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-hXddODtHzJM/TxxVJIxuiEI/AAAAAAAAEH4/NgsBOxKNQsg/s1600/image002.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A relational interface table was created to hold the data, there are not really any special requirements on the format of the table and the one created basically has column for each dimension and one for the data. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6R6mJmyXzpA/TxxVJTGpsrI/AAAAAAAAEIA/5n7MV4NGsbU/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="32" src="http://3.bp.blogspot.com/-6R6mJmyXzpA/TxxVJTGpsrI/AAAAAAAAEIA/5n7MV4NGsbU/s400/image003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The table was populated with three different data type records, I am not going to be covering populating the table as the data could have come from practically any source and it could have gone through numerous transformations using the tool or method of your choice before being loaded to the interface&amp;nbsp; table.&lt;br /&gt;&lt;br /&gt;To be able to load the data there are a few steps that need to be carried out within the Data Synchronization area accessed through workspace.&lt;br /&gt;&lt;br /&gt;The first step is to create the Interface Area definition which basically means which relational table and columns will be used to load the data from.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7rYaZRdTKLs/TxxVJkywysI/AAAAAAAAEII/AUTmMBaYhSc/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-7rYaZRdTKLs/TxxVJkywysI/AAAAAAAAEII/AUTmMBaYhSc/s1600/image004.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Select Navigate &amp;gt; Administer &amp;gt; Data Synchronization in workspace. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-OcmlSm-klj4/TxxVKZemDkI/AAAAAAAAEIQ/4mFnW0lFNIE/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="156" src="http://3.bp.blogspot.com/-OcmlSm-klj4/TxxVKZemDkI/AAAAAAAAEIQ/4mFnW0lFNIE/s320/image005.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the Data Synchronization area select New &amp;gt; Data Interface Table Definition. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Z_-gl-csed8/TxxVK9z7oWI/AAAAAAAAEIY/NCLZ53LMRIQ/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://4.bp.blogspot.com/-Z_-gl-csed8/TxxVK9z7oWI/AAAAAAAAEIY/NCLZ53LMRIQ/s400/image006.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The interface area that is going to be is selected, if you have followed this blog series you should already know or have set up an interface area, if you are unclear then have a read &lt;a href="http://john-goodwin.blogspot.com/2011/10/loading-to-epma-planning-applications_8223.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The table which holds the data and the data column are selected from the drop down boxes.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-HJjtJRpxsts/TxxVLWjfDyI/AAAAAAAAEIc/Z8FruE4YH3M/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://2.bp.blogspot.com/-HJjtJRpxsts/TxxVLWjfDyI/AAAAAAAAEIc/Z8FruE4YH3M/s400/image007.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The dimension definition section allows you to add the columns that are going to be used in the synchronization and provide a friendly display name for them. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-wntXnxDky1Y/TxxVL9qDfMI/AAAAAAAAEIg/VMK5drtweHk/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://2.bp.blogspot.com/-wntXnxDky1Y/TxxVL9qDfMI/AAAAAAAAEIg/VMK5drtweHk/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Finally a name is provided for the Interface area. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-pSBb2cdnVrc/TxxVML8LajI/AAAAAAAAEIs/znY2cQbaTAQ/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="390" src="http://1.bp.blogspot.com/-pSBb2cdnVrc/TxxVML8LajI/AAAAAAAAEIs/znY2cQbaTAQ/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The interface area now appears in the data synchronizer, you are not confined to just one interface area and can create as many are required.&lt;br /&gt;&lt;br /&gt;The next step is to create the Synchronization which defines which interface area to associate with, the application to load data to and the dimension mappings between the source interface table and the target application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ZpC3WVontIM/TxxVM8aXvGI/AAAAAAAAEIw/jyOzgZux8Cc/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="121" src="http://4.bp.blogspot.com/-ZpC3WVontIM/TxxVM8aXvGI/AAAAAAAAEIw/jyOzgZux8Cc/s320/image010.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;To create the Synchronization select New &amp;gt; Synchronization. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-TXVOe4jH59A/TxxVNVYGz8I/AAAAAAAAEI4/VG6MJgdUDJk/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://4.bp.blogspot.com/-TXVOe4jH59A/TxxVNVYGz8I/AAAAAAAAEI4/VG6MJgdUDJk/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The source type is then defined which can either be a Hyperion application, external source such as a flat file or in my case an interface area. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-l0-DQVPDGe8/TxxVN84dIuI/AAAAAAAAEJE/cJfi3bj8Qcw/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/-l0-DQVPDGe8/TxxVN84dIuI/AAAAAAAAEJE/cJfi3bj8Qcw/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A list of available interface areas will then be displayed. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0Upu0ta-8tE/TxxVO3R2bzI/AAAAAAAAEJM/qIh8uE66IOo/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/-0Upu0ta-8tE/TxxVO3R2bzI/AAAAAAAAEJM/qIh8uE66IOo/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A list of available target applications are then displayed. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Q0GiPyGsaIo/TxxVP4QNd-I/AAAAAAAAEJQ/xyNK9yKXYkQ/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://3.bp.blogspot.com/-Q0GiPyGsaIo/TxxVP4QNd-I/AAAAAAAAEJQ/xyNK9yKXYkQ/s400/image014.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;As the destination is a planning application a list of available plan types to load the data to are displayed and one can be selected. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tJWTxIpTFhA/TxxVQDAbAbI/AAAAAAAAEJc/ZCD87qG4jTA/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="145" src="http://3.bp.blogspot.com/-tJWTxIpTFhA/TxxVQDAbAbI/AAAAAAAAEJc/ZCD87qG4jTA/s320/image015.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The next screen defines the dimension mapping from the source interface columns to the target planning application dimensions, to create a link between source and target then it is as simple as dragging the source to the target.&lt;br /&gt;&lt;br /&gt;There is not always match between source and target and in the example above you can see there is no mapping for the dimension HSP_Rates in the source, in this case you can force the target dimension to a member.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MQVtdhbdzwY/TxxVRPfXEaI/AAAAAAAAEJg/S2bdMZN_TvQ/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="78" src="http://1.bp.blogspot.com/-MQVtdhbdzwY/TxxVRPfXEaI/AAAAAAAAEJg/S2bdMZN_TvQ/s320/image016.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you right click the dimension there is an option “Assign Default Member” &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-vIUmPQ9pRw8/TxxVRZjDK-I/AAAAAAAAEJk/Ooe1UQsKQyE/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/-vIUmPQ9pRw8/TxxVRZjDK-I/AAAAAAAAEJk/Ooe1UQsKQyE/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A member can then selected and the data will be loaded to this member each time the synchronization is run.&lt;br /&gt;&lt;br /&gt;It is also possible to filter the data from the source, so say for example you only wanted to load data for one account then a filter can be applied.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_oFXQX42Zfc/TxxVR9NI9zI/AAAAAAAAEJs/d7vW0y9wK30/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-_oFXQX42Zfc/TxxVR9NI9zI/AAAAAAAAEJs/d7vW0y9wK30/s1600/image018.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you right click the source dimension the option to “Create Filter” will be available. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-M6r3K_Gotic/TxxVSVTgPHI/AAAAAAAAEJ8/UDUVHaQEsZ8/s1600/image019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="101" src="http://3.bp.blogspot.com/-M6r3K_Gotic/TxxVSVTgPHI/AAAAAAAAEJ8/UDUVHaQEsZ8/s400/image019.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;As the source is an interface table then there two types of filter available EQUAL or LIKE, if the source was an application there are also a number of functions available.&lt;br /&gt;&lt;br /&gt;Wildcards such as * and ? are allowed when using the LIKE filter, to be honest it is pretty basic functionality and if you are using interface tables then&amp;nbsp; it is probably best to transform the data into a format ready to be loaded before using the data synchronizer.&lt;br /&gt;&lt;br /&gt;There is also the option to &lt;b&gt;&lt;a href="http://docs.oracle.com/cd/E17236_01/epm.1112/epma_admin/ch08s08.html"&gt;create mapping tables&lt;/a&gt;&lt;/b&gt; if the source is a Hyperion application. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FNK2Ikz_WIE/TxxVSw-oM4I/AAAAAAAAEKE/yOLLb20ooj4/s1600/image020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-FNK2Ikz_WIE/TxxVSw-oM4I/AAAAAAAAEKE/yOLLb20ooj4/s1600/image020.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;If you create a filter an icon will be displayed against the source.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tmgcrbtUvKs/TxxVTSZ-2WI/AAAAAAAAEKI/yRmNofVFqns/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-tmgcrbtUvKs/TxxVTSZ-2WI/AAAAAAAAEKI/yRmNofVFqns/s1600/image021.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once all the mappings are complete the synchronization can be saved. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6bzArCIldKg/TxxVT0SuJbI/AAAAAAAAEKY/WeJdUoXgAHc/s1600/image022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" src="http://3.bp.blogspot.com/-6bzArCIldKg/TxxVT0SuJbI/AAAAAAAAEKY/WeJdUoXgAHc/s400/image022.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The synchronization should now appear in the Data Synchronizer window and then right click “Execute Synchronization” to load the data, check the Job Console to see if the synchronization was successful. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-E0Lv3R7-Zlo/TxxVVXI_bfI/AAAAAAAAEKc/DaaqeakL1lI/s1600/image023.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://4.bp.blogspot.com/-E0Lv3R7-Zlo/TxxVVXI_bfI/AAAAAAAAEKc/DaaqeakL1lI/s400/image023.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The synchronization was successful and the web form displayed the desired results.&lt;br /&gt;&lt;br /&gt;If you don’t want to have to run the synchronization each time from workspace and want to automate the process then you can use the EPMA batch client, I covered the client in &lt;a href="http://john-goodwin.blogspot.com/2011/11/loading-to-epma-planning-applications.html"&gt;&lt;b&gt;part 5 of the series&lt;/b&gt;&lt;/a&gt; so if have not used it then it might be worth having a read. &lt;br /&gt;&lt;br /&gt;The syntax to execute synchronization using the batch client is -&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Execute DataSynchronization Parameters(DataSynchronizationName, DataTransformationOperator,DataTransformationValue, FileName, ValidateOnly, WaitForCompletion, dataSyncLoadOptionHpMode) Values('', '', '', '', '', ‘',’’);&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;DataSynchronizationName&lt;/b&gt;—Name of the Data Synchronization profile to execute.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;DataTransformationOperator&lt;/b&gt;—Valid values are:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; None&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; '*' (Multiply)&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; '/' (Divide)&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; '+' (Add)&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; '-' (Subtract)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;DataTransformationValue&lt;/b&gt;—Value to use in conjunction with the DataTransformationOperator to modify the data values.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;FileName&lt;/b&gt;—If the synchronization uses an external source file for the source of the synchronization, the location of the external source file.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ValidateOnly&lt;/b&gt;—Validates the data synchronization without executing it.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;WaitForCompletion&lt;/b&gt;—If set to true, the Batch Client waits for the job to finish. If set to false, the Batch Client submits the job and continues. Allowed values:&amp;nbsp; True or&amp;nbsp; False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;dataSyncLoadOptionHpMode&lt;/b&gt;. Allowed values: ADD, SUBTRACT, OVERWRITE (which is the default)&lt;br /&gt;&lt;br /&gt;So in the examples I have been using the syntax would be.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Execute DataSynchronization Parameters(DataSynchronizationName, DataTransformationOperator,DataTransformationValue, FileName, ValidateOnly, WaitForCompletion, dataSyncLoadOptionHpMode) Values('INT_2_EPMASAMP', 'None', '', '', 'false', ‘true',OVERWRITE’);&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QqC8z-wZ6ss/TxxVVqWul_I/AAAAAAAAEKk/Pb4GCo9eDUA/s1600/image024.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="38" src="http://2.bp.blogspot.com/-QqC8z-wZ6ss/TxxVVqWul_I/AAAAAAAAEKk/Pb4GCo9eDUA/s400/image024.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This can then be added to a script that can be called from command line, an example of the command line would be&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b style="color: yellow;"&gt;epma-batch-client.bat -C"F:\Scripts\ExcDataSync.txt" -R"F:\Scripts\ExcDataSync.log" -Uadmin –Ppassword&amp;nbsp; &lt;/b&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HWEN1qpEOUo/TxxVWMj4nDI/AAAAAAAAEKs/iKR2sRELDHA/s1600/image026.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" src="http://3.bp.blogspot.com/-HWEN1qpEOUo/TxxVWMj4nDI/AAAAAAAAEKs/iKR2sRELDHA/s400/image026.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The output is written to the command window and if specified to a log file, the output includes a link to the job console to view a summary of the synchronization.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-klyrf6KNzdw/TxxVWgDeckI/AAAAAAAAEKw/DeD1f45kpKI/s1600/image028.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://1.bp.blogspot.com/-klyrf6KNzdw/TxxVWgDeckI/AAAAAAAAEKw/DeD1f45kpKI/s400/image028.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you are interested in using ODI to automate the process of using the batch client then have a read of &lt;a href="http://john-goodwin.blogspot.com/2011/12/loading-to-epma-planning-applications.html"&gt;&lt;b&gt;part 6 of the series&lt;/b&gt;&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;If you are experiencing any issues with the synchronization then it is possible to enable additional logging.&lt;br /&gt;&lt;br /&gt;There is a file called dme.properties located at &lt;br /&gt;&lt;b style="color: yellow;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\&amp;lt;instancename&amp;gt;\config\EPMA\DataSync &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sj83mom8lhs/TxxVXCxTL_I/AAAAAAAAEK8/8Ti2M1XCv4c/s1600/image029.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="317" src="http://4.bp.blogspot.com/-sj83mom8lhs/TxxVXCxTL_I/AAAAAAAAEK8/8Ti2M1XCv4c/s400/image029.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you edit the file and remove the # from the beginning of the following lines.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;preTranslationProcessingClass=com.hyperion.awb.datasync.custom.FileBasedRowLogger&lt;br /&gt;preTranslationProcessingClass.outputFile=preTransOut.txt&lt;br /&gt;&lt;br /&gt;postTranslationProcessingClass=com.hyperion.awb.datasync.custom.FileBasedRowLogger&lt;br /&gt;postTranslationProcessingClass.outputFile=postTransOut.txt&lt;br /&gt;&lt;br /&gt;createDebugFiles=true&lt;br /&gt;debugSampleSize=1000&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Save the file and then restart Data Synchronization web application service web application&lt;br /&gt;&lt;br /&gt;The additional logs will be available from &lt;br /&gt;&lt;b style="color: yellow;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\epmsystem1\tmp\oracle\temp &lt;/b&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6Xdd5oV9BiM/TxxVXjGr4PI/AAAAAAAAELA/UxSPSmvq5_A/s1600/image031.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://4.bp.blogspot.com/-6Xdd5oV9BiM/TxxVXjGr4PI/AAAAAAAAELA/UxSPSmvq5_A/s400/image031.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;There is a log available displaying the data before it is loaded to planning, the filename is prefixed with a unique ID.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TEaSMQLMp9A/TxxVX9SHZ4I/AAAAAAAAELE/LSiBAFfRrkg/s1600/image032.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="42" src="http://1.bp.blogspot.com/-TEaSMQLMp9A/TxxVX9SHZ4I/AAAAAAAAELE/LSiBAFfRrkg/s400/image032.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;and another log with the data has the filters and mappings applied which is the format that is then loaded to the planning application. &lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9KQa4yreEjs/TxxVYOPzIVI/AAAAAAAAELU/yOa14IwYjRg/s1600/image033.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="67" src="http://3.bp.blogspot.com/-9KQa4yreEjs/TxxVYOPzIVI/AAAAAAAAELU/yOa14IwYjRg/s400/image033.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There is also an additional folder created each time a synchronization is executed with the same unique ID and contains further diagnostic logging information to investigate.&lt;br /&gt;&lt;br /&gt;To turn off the addition logging edit dme.properties again and place a hash in front of the lines that were originally edited and restart Data Synchronization web application.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-63683253760824483?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/63683253760824483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=63683253760824483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/63683253760824483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/63683253760824483'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2012/01/loading-to-epma-planning-applications_22.html' title='Loading to EPMA planning applications using interface tables – Part 8'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-evn_tXBFOLs/TxxVIvuokdI/AAAAAAAAEH0/W1fudrW_4dc/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8051116273425553210</id><published>2012-01-08T05:39:00.000-08:00</published><updated>2012-01-08T06:59:16.134-08:00</updated><title type='text'>Loading to EPMA planning applications using interface tables – Part 7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Back once again with another instalment of the EPMA interface series even though I thought the last one would have been the final part, today’s blog is about loading attributes, Smart Lists and UDAs and is mainly due to the number of requests I have had on how to go about it.&lt;br /&gt;&lt;br /&gt;I am going to start off with attributes and run through the steps to load an attribute hierarchy and apply an attribute to a base member using interface tables. Once again I am not going to overcomplicate the matter so I am going manually create the dimension and associations first, it only takes a couple of minutes to do and is probably quicker than trying to achieve it through the interface route and considering the creation of an attribute dimensions don’t happen that often it makes sense to use this method.&lt;br /&gt;&lt;br /&gt;I will also assume you have been following the series and that you are up to speed on the concept of how interface tables work.&lt;br /&gt;&lt;br /&gt;Anyway on to the steps, once in the dimension library select File &amp;gt; New Dimension&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-EPLrj4zEIew/TwmfUp-UjwI/AAAAAAAAEDk/ijjkrMK2Z-w/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://4.bp.blogspot.com/-EPLrj4zEIew/TwmfUp-UjwI/AAAAAAAAEDk/ijjkrMK2Z-w/s320/image001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am going to create an unimaginative attribute dimension called ProductType which will be used to analyze products in the Segments dimension of the sample planning application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ndDKBPaHIe4/TwmfU-KhiwI/AAAAAAAAEDo/tEbehrLd1Y4/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://3.bp.blogspot.com/-ndDKBPaHIe4/TwmfU-KhiwI/AAAAAAAAEDo/tEbehrLd1Y4/s320/image002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once the dimension has been created the association between the segments and the ProductType dimension has to be created, this is achieved by right clicking the Segments dimension in the dimension library and choosing “Create Association”. If I didn’t create this association then I would not be able to apply attribute members against base level members in the Segments dimension.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-A_B72opxK5Y/TwmfVHTgk9I/AAAAAAAAEDw/W7rLLJS-HQo/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://1.bp.blogspot.com/-A_B72opxK5Y/TwmfVHTgk9I/AAAAAAAAEDw/W7rLLJS-HQo/s320/image003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I also created an association between the Alias and ProductType dimension to allow aliases to be added to the attribute member names.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HFFyRZcpZSo/TwmfVgG4_1I/AAAAAAAAED0/EY0w1zwO_5I/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://4.bp.blogspot.com/-HFFyRZcpZSo/TwmfVgG4_1I/AAAAAAAAED0/EY0w1zwO_5I/s320/image004.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The ProductType dimension was added to the sample planning application and all the associations activated.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-jEO33COVvvU/TwmfV1G087I/AAAAAAAAED8/IL7fesFiByQ/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://2.bp.blogspot.com/-jEO33COVvvU/TwmfV1G087I/AAAAAAAAED8/IL7fesFiByQ/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If a member in the Segments dimension is selected then the ProdTypAtt property is now available and members from the ProductType dimension can be assigned to it.&lt;br /&gt;&lt;br /&gt;This is where the interface tables can perform the rest of the work such as loading the attribute dimension hierarchy and assign attribute members to base level members in the Segments dimension.&lt;br /&gt;&lt;br /&gt;The first step is to return the interface table IM_DIMENSION, I went through the details of this table in &lt;b&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/10/loading-to-epma-planning-applications_8223.html"&gt;part 2&lt;/a&gt;&lt;/b&gt; of the series so if you are unsure about the table have another read of that part of the series.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-LB1jPG0kiFM/TwmfWUT_kYI/AAAAAAAAEEE/kAF8rZQuicY/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://4.bp.blogspot.com/-LB1jPG0kiFM/TwmfWUT_kYI/AAAAAAAAEEE/kAF8rZQuicY/s400/image006.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A new record was added to the table with the following details&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_DIMENSION_NAME&lt;/b&gt; – this defines the name of the dimension so ProductType is used.&lt;br /&gt;&lt;b&gt;&lt;span style="color: yellow;"&gt;C_DIMENSION_CLASS_NAME&lt;/span&gt;&lt;/b&gt; – this defines the type of dimension which is Attribute.&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_HIERARCHY_TABLE_NAME&lt;/b&gt; – this provides the table name which holds the attribute dimension hierarchy, the table name is going to be &lt;b&gt;PLAN_PRODUCTTYPE_HIER&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-JCgurTix0Kk/TwmfWx6Cp0I/AAAAAAAAEEU/nWCv8oqwq70/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-JCgurTix0Kk/TwmfWx6Cp0I/AAAAAAAAEEU/nWCv8oqwq70/s1600/image007.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I created the table &lt;b&gt;PLAN_PRODUCTTYPE_HIER &lt;/b&gt;which will hold the hierarchy metadata for the ProductType attribute dimension, the &lt;b&gt;ISPRIMARY &lt;/b&gt;shouldn’t really be necessary but if you don’t include it then warnings are generated in EPMA when an import from the interface tables takes place.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qDqcu8sAJ7c/TwmfYb6kQRI/AAAAAAAAEEY/O5xpk-2qPfM/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="47" src="http://1.bp.blogspot.com/-qDqcu8sAJ7c/TwmfYb6kQRI/AAAAAAAAEEY/O5xpk-2qPfM/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The table was populated with a simple one level attribute hierarchy.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-nz6PNQ-1JtQ/TwmfYgC8kNI/AAAAAAAAEEg/PAWcX17MewE/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://3.bp.blogspot.com/-nz6PNQ-1JtQ/TwmfYgC8kNI/AAAAAAAAEEg/PAWcX17MewE/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As attribute members are going to be assigned to base level members in the Segments dimension a column was added to the Segments hierarchy table “&lt;b&gt;PLAN_SEGMENTS_HIER&lt;/b&gt;”, the column was named the same as the attribute property “&lt;b&gt;PRODTYPEATT&lt;/b&gt;” defined in EPMA.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-7I4zpXhbLn0/TwmfZDMCmUI/AAAAAAAAEEo/7O_VklAyMP8/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="107" src="http://3.bp.blogspot.com/-7I4zpXhbLn0/TwmfZDMCmUI/AAAAAAAAEEo/7O_VklAyMP8/s320/image010.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The import profile requires editing to take account of the new attribute dimension otherwise if an import was run the new information would not be picked up and loaded to EPMA.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dilVQpUb0Jc/TwmfZ-zAx2I/AAAAAAAAEEs/a61O58rCr98/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="117" src="http://2.bp.blogspot.com/-dilVQpUb0Jc/TwmfZ-zAx2I/AAAAAAAAEEs/a61O58rCr98/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the Map Dimensions section the Interface table was mapped to the ProductType dimension in the shared dimension library.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-LEdZXGDTZ6U/TwmfaFTSZEI/AAAAAAAAEE0/lALEmk7iGwE/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="http://2.bp.blogspot.com/-LEdZXGDTZ6U/TwmfaFTSZEI/AAAAAAAAEE0/lALEmk7iGwE/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;In the Dimension mapping section the ProductType dimensionAlias column was mapped to the Alias property in EPMA, an attribute member onlyhas the Alias property to map.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-z15EdFZV5pQ/TwmfaYvKQlI/AAAAAAAAEE8/5OYG_Afu42k/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="108" src="http://2.bp.blogspot.com/-z15EdFZV5pQ/TwmfaYvKQlI/AAAAAAAAEE8/5OYG_Afu42k/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Segments dimension was updated to map the attribute column from the source interface table to the property in EPMA, usually I keep the source/target with the same naming convention so then it is much easier to map.&lt;br /&gt;&lt;br /&gt;The import profile was then executed to load the metadata from the interface tables to EPMA.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZIhxTtHKceI/TwmfayW938I/AAAAAAAAEFM/CqZVFWpsFyw/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://1.bp.blogspot.com/-ZIhxTtHKceI/TwmfayW938I/AAAAAAAAEFM/CqZVFWpsFyw/s400/image014.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The ProductType attribute dimension hierarchy was successfully created and the Segment members were assigned with an attribute member.&lt;br /&gt;&lt;br /&gt;Now say you didn’t create the associations manually as I did in EPMA and you wanted to achieve this using the interface tables, I still think it is just as quick to manually do it but here is how you would go about it. &lt;br /&gt;&lt;br /&gt;When the sample interface tables are first created there is a table available called &lt;b&gt;IM_DIMENSION_ASSOCIATIO&lt;/b&gt;N, the table name basically explains what it is about and it provides the ability to map dimensions and properties.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IM_DIMENSION_ASSOCIATION&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Y_0KSrN4g9w/Twmfb8-ahcI/AAAAAAAAEFQ/BfvAJ4GfmRw/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="33" src="http://3.bp.blogspot.com/-Y_0KSrN4g9w/Twmfb8-ahcI/AAAAAAAAEFQ/BfvAJ4GfmRw/s320/image015.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are four columns to populate&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;I_LOAD_ID&lt;/b&gt; which is the same as the load ID used in pretty much all the interface tables&lt;br /&gt;&lt;b&gt;&lt;span style="color: yellow;"&gt;C_BASE_DIMESION&lt;/span&gt;&lt;/b&gt; - Name of the base dimension whose member property will be associated with another dimension&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_PROPERTY&lt;/b&gt; - The name of the associated property.&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_TARGET_DIMENSION&lt;/b&gt; - Name of the dimension with which the associated property is associated.&lt;br /&gt;&lt;br /&gt;The table has been populated to associate the Segments dimension with the attribute dimension and its property, also the alias property is associated between the attribute and alias dimensions.&lt;br /&gt;If the import profile is run again and the associations did not exist they would be created replicating what I originally did manually.&lt;br /&gt;&lt;br /&gt;If you want to also created the dimension in EPMA from the information in the interface tables then you need to populate an extra column in the &lt;b&gt;IM_DIMENSION&lt;/b&gt; table&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IM_DIMENSION&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bVxq6yIiwUM/TwmfcbxMTbI/AAAAAAAAEFY/926wub8J5pY/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://2.bp.blogspot.com/-bVxq6yIiwUM/TwmfcbxMTbI/AAAAAAAAEFY/926wub8J5pY/s400/image016.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The &lt;b&gt;C_DIM_PROPERTY_TABLE_NAME&lt;/b&gt; column holds a table name to define the properties of the dimension, so in this case the properties for the ProductType attribute dimension will be held in table &lt;b&gt;PLAN_PRODUCTTYPE_PROPERTY&lt;/b&gt;.&lt;/div&gt;&lt;br /&gt;&lt;b&gt;PLAN_PRODUCTTYPE_PROPERTY&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-p5if4GPKBWo/Twmfc3AvPrI/AAAAAAAAEFk/Kf1IX168qDI/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="37" src="http://1.bp.blogspot.com/-p5if4GPKBWo/Twmfc3AvPrI/AAAAAAAAEFk/Kf1IX168qDI/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;For an attribute dimension there are only a few property columns.&lt;br /&gt;&lt;b style="color: yellow;"&gt;DIMENIONALIAS&lt;/b&gt; – Alias of the dimension.&lt;br /&gt;&lt;b&gt;&lt;span style="color: yellow;"&gt;ATTRIBUTEDATATYPE&lt;/span&gt;&lt;/b&gt; – Defines the attribute dimension type which can be Text, Boolean, Date, Numeric&lt;br /&gt;&lt;br /&gt;By populating this information the dimension and its properties will be created when the import profile is executed.&lt;br /&gt;&lt;br /&gt;Let’s move on to UDAs.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-f8kgz6LjpFA/TwmfdymQv7I/AAAAAAAAEFo/mMkiIPunjTE/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://4.bp.blogspot.com/-f8kgz6LjpFA/TwmfdymQv7I/AAAAAAAAEFo/mMkiIPunjTE/s320/image018.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once again I am going to create the dimension first in the EPMA dimension library and set the Type to UDA.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0aT5hd3PIHE/TwmfeIRGgcI/AAAAAAAAEFs/YnIPs0__apc/s1600/image019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-0aT5hd3PIHE/TwmfeIRGgcI/AAAAAAAAEFs/YnIPs0__apc/s1600/image019.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When a UDA dimension is created two members are added by default, these are specific to planning and if you are unclear what HSP_NOLINK and HSP_UDF do then have a read of the documentation &lt;a href="http://docs.oracle.com/cd/E17236_01/epm.1112/epma_admin/ch12s15.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7clQXWKwuHw/TwmfeZogTrI/AAAAAAAAEF0/0fslRDHTLTE/s1600/image020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="91" src="http://1.bp.blogspot.com/-7clQXWKwuHw/TwmfeZogTrI/AAAAAAAAEF0/0fslRDHTLTE/s320/image020.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am going to assign UDAs to the Segments dimension so an association between the two dimensions was created using the existing UDA property.&lt;br /&gt;&lt;br /&gt;Once again the IM_DIMENSION table requires an addition row with the UDA information.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ORQ3nNOaG3Q/Twmfe_NPrbI/AAAAAAAAEGA/5tr-H_yOoVs/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://1.bp.blogspot.com/-ORQ3nNOaG3Q/Twmfe_NPrbI/AAAAAAAAEGA/5tr-H_yOoVs/s400/image021.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Dimension name = UDA_Shared&lt;br /&gt;Dimension class = UDA&lt;br /&gt;&lt;br /&gt;Hierarchy table name will be &lt;b&gt;PLAN_UDA_HIER&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PLAN_UDA_HIER&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-PPNllFVEbCc/TwmffrKeWlI/AAAAAAAAEGE/ze-04Tws4-4/s1600/image022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="77" src="http://2.bp.blogspot.com/-PPNllFVEbCc/TwmffrKeWlI/AAAAAAAAEGE/ze-04Tws4-4/s400/image022.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The table was created and populated with UDA members in the child column.&lt;br /&gt;&lt;br /&gt;As the objective is to apply UDAs to members in the Segments dimension the Segments hierarchy table requires updating.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PLAN_SEGMENTS_HIER&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nFwjRdIB_84/Twmffzc1rFI/AAAAAAAAEGM/lbR00iV2miI/s1600/image023.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="53" src="http://1.bp.blogspot.com/-nFwjRdIB_84/Twmffzc1rFI/AAAAAAAAEGM/lbR00iV2miI/s400/image023.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am going to apply multiple UDAs to one member and to do this you need one column per UDA, so this case an extra UDA column was added.&lt;br /&gt;&lt;br /&gt;The import profile required editing to map the newly added UDA dimension.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Aqiva1lxUCE/Twmfgkn2zKI/AAAAAAAAEGU/YkBBjqYjzrQ/s1600/image024.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="197" src="http://1.bp.blogspot.com/-Aqiva1lxUCE/Twmfgkn2zKI/AAAAAAAAEGU/YkBBjqYjzrQ/s400/image024.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Segments dimension mapping was also updated to map to the new UDA columns from source to target.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bIt1dk1vOWc/Twmfg_2MpXI/AAAAAAAAEGg/9k2r3vaB8y8/s1600/image025.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-bIt1dk1vOWc/Twmfg_2MpXI/AAAAAAAAEGg/9k2r3vaB8y8/s400/image025.png" width="383" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The import profile was executed and the UDA dimension was built and multiple UDAs were assigned to Segment dimension members.&lt;br /&gt;&lt;br /&gt;On to the final topic and that is Smart Lists, this time the objective is to create and build the Smart List dimension and then assign a Smart List to a member in the accounts dimension, the logic is pretty much the same to that of the attribute and UDA dimensions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IM_DIMENSION&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-T1crmt2vvCM/TwmfhnJvglI/AAAAAAAAEGk/kXQ79yUZUEQ/s1600/image026.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" src="http://3.bp.blogspot.com/-T1crmt2vvCM/TwmfhnJvglI/AAAAAAAAEGk/kXQ79yUZUEQ/s400/image026.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A Smart List dimension is going to be created called GradeSL which will basically just define different employee grades.&lt;br /&gt;&lt;br /&gt;A new record is added to the &lt;b&gt;IM_DIMENSION&lt;/b&gt; table, the Smart List members will be in table &lt;b&gt;PLAN_GRADESL_HIER&lt;/b&gt; and the properties for the Smart List dimension will be in table &lt;b&gt;PLAN_GRADESL_PROPERTY&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-hcX-Zdef9LA/TwmfiJcVRoI/AAAAAAAAEGo/ZUwvh9QW_t8/s1600/image027.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="192" src="http://3.bp.blogspot.com/-hcX-Zdef9LA/TwmfiJcVRoI/AAAAAAAAEGo/ZUwvh9QW_t8/s320/image027.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C5DqbztdFck/TwmflPbQHTI/AAAAAAAAEHc/t6x30jumkjM/s1600/image033.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you created a Smart List dimension in EPMA then there are a number of properties than can be set, most of these can be applied from an interface table.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PLAN_GRADESL_PROPERTY&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-LGgomOKhTd8/TwmficVocbI/AAAAAAAAEGs/C69ZzR03P54/s1600/image028.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="20" src="http://4.bp.blogspot.com/-LGgomOKhTd8/TwmficVocbI/AAAAAAAAEGs/C69ZzR03P54/s400/image028.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The table to hold the Smart List dimension property definitions was created and populated, if you don’t understand what the properties mean then it is worth consulting either the EPMA or Planning administrator documentation as they contain detailed information, the above screenshots should provide enough detail to map the EPMA property to the interface table property.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PLAN_GRADESL_HIER&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-QUwoheaIuFE/Twmfiv0RwxI/AAAAAAAAEG0/MevVeFx2I3s/s1600/image029.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="63" src="http://1.bp.blogspot.com/-QUwoheaIuFE/Twmfiv0RwxI/AAAAAAAAEG0/MevVeFx2I3s/s400/image029.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The table to hold the Smart List member information was created and populated.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ITEMVALUE&lt;/b&gt; – when a Smart List member is added it requires an integer value&lt;br /&gt;&lt;b style="color: yellow;"&gt;SMARTLISTENTRYLABEL&lt;/b&gt; – each Smart List member requires a label which will be used to populate a drop down menu in planning.&lt;br /&gt;&lt;br /&gt;As the Smart List is going to be applied to an account member the account hierarchy interface table will require updating.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PLAN_ACCOUNT_HIER&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-LZcwwSg97Os/Twmfi46SgjI/AAAAAAAAEHA/-zuJr8agbs0/s1600/image030.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="26" src="http://1.bp.blogspot.com/-LZcwwSg97Os/Twmfi46SgjI/AAAAAAAAEHA/-zuJr8agbs0/s400/image030.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Smart List GradeSL is applied to account member GradeType and the Data Type is set as a Smart List.&lt;br /&gt;&lt;br /&gt;No associations are required between the Smart List dimension and the dimension the Smart List will be applied to.&lt;br /&gt;&lt;br /&gt;The import profile is edited again to define the new Smart List dimension.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nnDyLL3b3oY/TwmfjFhR8FI/AAAAAAAAEHI/3IjaEluQxGc/s1600/image031.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://2.bp.blogspot.com/-nnDyLL3b3oY/TwmfjFhR8FI/AAAAAAAAEHI/3IjaEluQxGc/s400/image031.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Smart List dimension does not exist yet in the Shared Library so “Create dimensions for the non-mapped dimensions with the source dimension name” is enabled, this creates the dimension in EPMA with the same name as defined in the &lt;b&gt;C_DIMENSION_NAME&lt;/b&gt; column in the &lt;b&gt;IM_DIMENSION &lt;/b&gt;table.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DIeOzNGQf6U/TwmfkA9Oz_I/AAAAAAAAEHY/DfcxjrwSkNU/s1600/image032.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://3.bp.blogspot.com/-DIeOzNGQf6U/TwmfkA9Oz_I/AAAAAAAAEHY/DfcxjrwSkNU/s400/image032.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The interface property columns for the Smart List members are mapped to their corresponding properties in EPMA.&lt;br /&gt;&lt;br /&gt;The import profile was then executed to create and populate the Smart List dimension and assign the Smart List to an account member.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C5DqbztdFck/TwmflPbQHTI/AAAAAAAAEHc/t6x30jumkjM/s1600/image033.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="288" src="http://3.bp.blogspot.com/-C5DqbztdFck/TwmflPbQHTI/AAAAAAAAEHc/t6x30jumkjM/s400/image033.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Smart List dimension has been created and properties set.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-_CYFTuPSmrA/Twmflez014I/AAAAAAAAEHo/K0Zo2AbvlBA/s1600/image034.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="338" src="http://1.bp.blogspot.com/-_CYFTuPSmrA/Twmflez014I/AAAAAAAAEHo/K0Zo2AbvlBA/s400/image034.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Smart List GradeSL has been assigned to account member GradeType.&lt;br /&gt;&lt;br /&gt;Hopefully you should now have a grasp on how to handle Attributes, UDAs and Smart Lists dimensions using EPMA tables.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8051116273425553210?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8051116273425553210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8051116273425553210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8051116273425553210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8051116273425553210'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2012/01/loading-to-epma-planning-applications.html' title='Loading to EPMA planning applications using interface tables – Part 7'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-EPLrj4zEIew/TwmfUp-UjwI/AAAAAAAAEDk/ijjkrMK2Z-w/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8172105010324227313</id><published>2011-12-31T10:47:00.001-08:00</published><updated>2011-12-31T11:11:03.332-08:00</updated><title type='text'>Planning - loading text member data update</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span id="goog_497372939"&gt;A while back there was a post on the planning forum about loading text member data to a planning application using the Outline load utility, there was a reply on the post saying it was not possible in 11.1.2.x and an SR was raised and it had been confirmed as a bug. I knew it was possible in previous versions so I was going to test it out but never got round to it.&lt;br /&gt;&lt;br /&gt;Then recently I received an email asking if it was possible to load text data using ODI to planning 11.1.2.1 as once again an SR had been raised and it had been confirmed as a bug. I knew I had definitely loaded text data when working on a previous project but that was with planning 11.1.1.3&lt;br /&gt;&lt;br /&gt;I did write a &lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-getting-text-data-into-planning.html"&gt;&lt;b&gt;blog &lt;/b&gt;&lt;/a&gt;on using an alternative method to loading text data because that was before it was possible directly with the ODI planning adaptor, I think it wasn’t possible in the first releases of 11 but it certainly was possible in 11.1.1.3&lt;br /&gt;&lt;br /&gt;I thought I had best test out both the Outline load utility and ODI to see if it is possible to load text member data to a 11.1.2.1 planning application.&lt;br /&gt;&lt;br /&gt;I first created an account member called TextMember1 with a data type of text.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ya8bCM02q1M/Tv9ZPOiBF_I/AAAAAAAAD88/qeHAJlDMh0c/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="40" src="http://4.bp.blogspot.com/-ya8bCM02q1M/Tv9ZPOiBF_I/AAAAAAAAD88/qeHAJlDMh0c/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I constructed a simple form so that I could view the results of load text data to the selected POV.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nPecua5CqvE/Tv9ZPo6AvuI/AAAAAAAAD9A/FENoSxYaHXE/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://2.bp.blogspot.com/-nPecua5CqvE/Tv9ZPo6AvuI/AAAAAAAAD9A/FENoSxYaHXE/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I set up the Data Load Settings in planning to match how I had set up the form with the Data Load Dimension as Period, Driver Dimension as Account with the member TextMember1&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-MsDSJdSTxNo/Tv9ZQD1f3vI/AAAAAAAAD9I/guCEiUwRFjg/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="117" src="http://4.bp.blogspot.com/-MsDSJdSTxNo/Tv9ZQD1f3vI/AAAAAAAAD9I/guCEiUwRFjg/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I made sure the Data Load Settings had definitely been correctly saved by running a SQL query against the planning applications relational tables. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fOynTL-Fe_w/Tv9ZQ6U2VpI/AAAAAAAAD9Q/PpnK2KAQmGk/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="37" src="http://4.bp.blogspot.com/-fOynTL-Fe_w/Tv9ZQ6U2VpI/AAAAAAAAD9Q/PpnK2KAQmGk/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I created a CSV file in the format required for the Outline load utility and populated it with the same POV details as the planning web form. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-bjGg-jdwE4Y/Tv9ZRKfr4EI/AAAAAAAAD9U/57w1y-oQAPI/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://4.bp.blogspot.com/-bjGg-jdwE4Y/Tv9ZRKfr4EI/AAAAAAAAD9U/57w1y-oQAPI/s400/image006.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;OutlineLoad /A:PLANSAMP /U:admin /M /I:textload.csv /D:Period /L:dataload.log /X:dataload.exc&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The Outline load utility was run from command line using the load dimension set as Period to match the Data Load settings and CSV file.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-HxN-EcUshik/Tv9ZRu50IyI/AAAAAAAAD9c/3cSjAVINXbM/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="37" src="http://4.bp.blogspot.com/-HxN-EcUshik/Tv9ZRu50IyI/AAAAAAAAD9c/3cSjAVINXbM/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The output log from the utility showed that 1 record was successfully processed and loaded. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-El2Wpuc160I/Tv9ZRxVe1pI/AAAAAAAAD9o/K6Zm75dpA9w/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="40" src="http://2.bp.blogspot.com/-El2Wpuc160I/Tv9ZRxVe1pI/AAAAAAAAD9o/K6Zm75dpA9w/s400/image010.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The planning web form was run again and the text data was displayed successfully.&lt;br /&gt;&lt;br /&gt;I know that you can also use the Outline utility to load data without having to set the Data Load setting in planning and specify the driver information directly in the source file so I thought I would give that a try as well.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FnL7WlaF3yU/Tv9ZS8Au08I/AAAAAAAAD9s/qtxGGs-EwbQ/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="31" src="http://1.bp.blogspot.com/-FnL7WlaF3yU/Tv9ZS8Au08I/AAAAAAAAD9s/qtxGGs-EwbQ/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I created and populated a new file using the Driver Member and Value column headings. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-1sk1OWSsujE/Tv9ZTOOuYWI/AAAAAAAAD90/6kQymXs_Z60/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="52" src="http://2.bp.blogspot.com/-1sk1OWSsujE/Tv9ZTOOuYWI/AAAAAAAAD90/6kQymXs_Z60/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;OutlineLoad /A:PLANSAMP /U:admin /M /I:textload2.csv /TR /L:dataload.log /X:dataload.exc&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I successfully ran the utility again but this time removing the load dimension /D and used /TR which means the driver information is specified in the file.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yUqK93s7ots/Tv9ZTo7licI/AAAAAAAAD98/cTwAKpAJU7U/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="40" src="http://4.bp.blogspot.com/-yUqK93s7ots/Tv9ZTo7licI/AAAAAAAAD98/cTwAKpAJU7U/s400/image014.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The form displayed the newly loaded text data.&lt;br /&gt;&lt;br /&gt;So no problems loading text data using the Outline load utility so time to move on to ODI, the email I received specified ODI 10.1.3.6.x with planning 11.1.2.1 so that is what my first test would be with.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-eclKl5aztSY/Tv9ZT7giyRI/AAAAAAAAD-E/fyj4nxTiEKU/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-eclKl5aztSY/Tv9ZT7giyRI/AAAAAAAAD-E/fyj4nxTiEKU/s320/image015.png" width="152" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I reversed the planning application and checked the columns “Data Load Cube Name”, “TextMember1” and “Point-of-View” had been added to the Period Datastore. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bRgrAm3wUhY/Tv9ZUs732eI/AAAAAAAAD-M/Fubp4q7cnMo/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="65" src="http://1.bp.blogspot.com/-bRgrAm3wUhY/Tv9ZUs732eI/AAAAAAAAD-M/Fubp4q7cnMo/s400/image016.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I created a file Datastore against the CSV file I used with the Outline load utility. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-26Zu-pWAKnI/Tv9ZU47pMGI/AAAAAAAAD-Y/tg2T3l8MQG8/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="88" src="http://2.bp.blogspot.com/-26Zu-pWAKnI/Tv9ZU47pMGI/AAAAAAAAD-Y/tg2T3l8MQG8/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-UUtIWfVTwQk/Tv9ZVlm1WTI/AAAAAAAAD-c/bhgRzjXmO8s/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://3.bp.blogspot.com/-UUtIWfVTwQk/Tv9ZVlm1WTI/AAAAAAAAD-c/bhgRzjXmO8s/s400/image018.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I created a new interface with the CSV file as the source and the Period dimension as the target, the target columns were then mapped to the source.&lt;br /&gt;&lt;br /&gt;The flow was set as LKM File to SQL, the memory engine as the staging area and then “IKM SQL to Hyperion Planning” &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ifdnbcctPyY/Tv9ZV4SU6JI/AAAAAAAAD-s/bqEkAlghdW0/s1600/image019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="42" src="http://1.bp.blogspot.com/-ifdnbcctPyY/Tv9ZV4SU6JI/AAAAAAAAD-s/bqEkAlghdW0/s400/image019.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The interface executed successfully and the web form was reloaded to show the correct text data.&lt;br /&gt;&lt;br /&gt;So no problems using ODI 10g how about ODI 11.1.1.5 &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Hsy3W-MlRoI/Tv9ZW4fS72I/AAAAAAAAD-w/KUl0ypy_zkI/s1600/image020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://2.bp.blogspot.com/-Hsy3W-MlRoI/Tv9ZW4fS72I/AAAAAAAAD-w/KUl0ypy_zkI/s400/image020.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-G8F-ZaDGkkg/Tv9ZXcjHAvI/AAAAAAAAD-4/U5_U3H6DZ7E/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="116" src="http://1.bp.blogspot.com/-G8F-ZaDGkkg/Tv9ZXcjHAvI/AAAAAAAAD-4/U5_U3H6DZ7E/s400/image021.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I replicated everything I had created in ODI 10g but this time used Oracle as the staging area due a bug using the memory engine with planning.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0-Ml-1sEBxw/Tv9ZX0YKpdI/AAAAAAAAD_E/sO2IVgaWM-k/s1600/image022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="40" src="http://4.bp.blogspot.com/-0-Ml-1sEBxw/Tv9ZX0YKpdI/AAAAAAAAD_E/sO2IVgaWM-k/s400/image022.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span id="goog_497372939"&gt;The interface ran with no problems and once again the correct text data was shown in the planning web form.&lt;br /&gt;&lt;br /&gt;All testing was successful so at least I can put my mind at rest on this subject. &lt;/span&gt;&lt;span id="goog_497372940"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8172105010324227313?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8172105010324227313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8172105010324227313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8172105010324227313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8172105010324227313'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/12/planning-loading-text-member-data.html' title='Planning - loading text member data update'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ya8bCM02q1M/Tv9ZPOiBF_I/AAAAAAAAD88/qeHAJlDMh0c/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8649514724963239758</id><published>2011-12-11T02:04:00.001-08:00</published><updated>2011-12-11T02:44:20.538-08:00</updated><title type='text'>Loading to EPMA planning applications using interface tables – Part 6</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the last part of the series I went through the steps using the command line driven EPMA batch client to import from interface tables and then deploy to planning.&lt;br /&gt;&lt;br /&gt;Today I am going to look at using ODI to control running of the batch client and add in some error handling functionality. Unfortunately there are no adaptors or API available to use with ODI and EPMA so I am going to use the OS command tool to run the EPMA batch client.&lt;br /&gt;&lt;br /&gt;If you look back to part 4 of this series I had created a number of interfaces that loaded the planning metadata into the EPMA interface tables.&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DyiwN5watGM/TuSASs56NmI/AAAAAAAAD3Q/6HLsNjbmjVo/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://2.bp.blogspot.com/-DyiwN5watGM/TuSASs56NmI/AAAAAAAAD3Q/6HLsNjbmjVo/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I ended up with the above package which I will expand on to bring in the batch client functionality.&lt;br /&gt;&lt;br /&gt;Usually when designing packages or using tool like the OS command one I would add&amp;nbsp; in control using variables and not really hardcode but for today’s exercise I will just keep it simple which should make it easier to read.&lt;br /&gt;&lt;br /&gt;I must also point out that my methods are not the only way of implementing and you may think to yourself there are better ways of achieving the end result and that is the beauty of using ODI as there are not always a right and wrong method. If you do feel you have come up with a better solution then feel free to get in touch to discuss.&lt;br /&gt;&lt;br /&gt;If you are going to use the OS command with the EPMA batch client then the ODI agent will require access to the client, if you look back at the last part I gave advice on how to install the client on a supported OS so you have the option of either installing the client on a machine with an agent or install an agent on a machine hosting the client.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lvyQA9ok4Aw/TuSATc67fUI/AAAAAAAAD3U/TOZ-E4xbSP0/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="http://3.bp.blogspot.com/-lvyQA9ok4Aw/TuSATc67fUI/AAAAAAAAD3U/TOZ-E4xbSP0/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you drag the OS command tool on the diagram in a package you will see there are a number of parameters to set, the most important parameter is “Command to execute” which is basically what you want ODI to execute at command line.&lt;br /&gt;&lt;br /&gt;In the last part I executed the following from command line to import metadata from Interface tables to EPMA.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;E:\Oracle\Middleware\EPMSystem11R1\products\Foundation\BPMA\EPMABatchClient\epma-batch-client.bat -C"F:\Scripts\Import.txt" -R"F:\Scripts\Output.log" -Uadmin -Ppassword&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I am going to use the same import script and log so it is just a matter of transferring the command line to the parameter value.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-yDeodKqnLdE/TuSATtCp_dI/AAAAAAAAD3Y/SbAvX5-EhI4/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://4.bp.blogspot.com/-yDeodKqnLdE/TuSATtCp_dI/AAAAAAAAD3Y/SbAvX5-EhI4/s400/image003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The working directory has been set to the location of the batch client.&lt;br /&gt;&lt;br /&gt;The command to execute calls the client and passes in parameters for the script to use, the log to output to and the account details.&lt;br /&gt;Synchronous is set to Yes so that ODI will wait for a return code before continuing.&lt;br /&gt;&lt;br /&gt;I have left the other parameters such as Output file and Error file as blank because the batch client will output all the information to the file Output.log&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3KuAjVEjX_0/TuSAUHWeM_I/AAAAAAAAD3g/-FADkGSg6oE/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="47" src="http://1.bp.blogspot.com/-3KuAjVEjX_0/TuSAUHWeM_I/AAAAAAAAD3g/-FADkGSg6oE/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The EPMA batch client script is the same as from the last part in the series and logs in and imports from interface tables to EPMA based on a profile “SAMPLE_APP”&lt;br /&gt;&lt;br /&gt;If you wanted to get clever you could actually create the script on the fly but that is not the objective for today.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-PnIh6dt5tQg/TuSAUt-FmJI/AAAAAAAAD3s/vBgfJZ3WgtA/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="88" src="http://2.bp.blogspot.com/-PnIh6dt5tQg/TuSAUt-FmJI/AAAAAAAAD3s/vBgfJZ3WgtA/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As I mentioned earlier I would normally use variables like the example above, these can be set a runtime and make the integrations much more versatile.&lt;br /&gt;&lt;br /&gt;So there we go end of blog, not so quick, what happens if there are errors in the output file generated by the batch client.&lt;br /&gt;&lt;br /&gt;There are a number of different factors which can generate errors or failures.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cO-hoSJCgOc/TuSAVtk1bwI/AAAAAAAAD30/Tmh-BjqWuD4/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://2.bp.blogspot.com/-cO-hoSJCgOc/TuSAVtk1bwI/AAAAAAAAD30/Tmh-BjqWuD4/s400/image007.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A fatal error will cause the package to fail and in the example above I changed the working directory to an invalid location.&lt;br /&gt;&lt;br /&gt;Fatal errors should be rare once you have defined all the correct parameters and can be acted upon easily e.g. send an email if the OS command fails or just simply check the Operator.&lt;br /&gt;&lt;br /&gt;If say an incorrect password or profile is used then step will not fail.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-GugAOXQtlug/TuSAWEpR_EI/AAAAAAAAD4A/2ZDzt4yetwI/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://1.bp.blogspot.com/-GugAOXQtlug/TuSAWEpR_EI/AAAAAAAAD4A/2ZDzt4yetwI/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the example above I changed the import profile in the script to an invalid one, as you can see the step is successful but it has failed from viewing the log.&lt;br /&gt;&lt;br /&gt;Now there are lots of different ways of dealing with this error e.g. create a batch script with error handling, reading the return code, parsing the file….&lt;br /&gt;&lt;br /&gt;I am going to use a different method to the ones mentioned whether this is the right option or the best option then I don’t think I can answer that, I am sure somebody will come up with an annoying best practice statement to try and define what is correct.&lt;br /&gt;&lt;br /&gt;If you take a look at the log file you will see that it is in a fixed format meaning that the start of each column is known by its position.&lt;br /&gt;&lt;br /&gt;Now the idea is to load this log file into a table and then query it to see if there was failure which is defined by an ERROR line in the log.&lt;br /&gt;&lt;br /&gt;First of I created a new file Data Store and pointed it to the Output.log file&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1HGY47o1qhk/TuSAXQyHcUI/AAAAAAAAD4E/2awv5OX8syY/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="220" src="http://4.bp.blogspot.com/-1HGY47o1qhk/TuSAXQyHcUI/AAAAAAAAD4E/2awv5OX8syY/s320/image011.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The File Format was set to Fixed and no header line.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-tYZlaB6iXX0/TuSAX4WEQVI/AAAAAAAAD4M/QRDxevVXgnM/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://3.bp.blogspot.com/-tYZlaB6iXX0/TuSAX4WEQVI/AAAAAAAAD4M/QRDxevVXgnM/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As the columns are fixed I could set the Start position of each column, I set the message column to a length of 200 which should be plenty&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ioL9h91tAiY/TuSAYSNxYuI/AAAAAAAAD4U/hqhB6PtGFNw/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://2.bp.blogspot.com/-ioL9h91tAiY/TuSAYSNxYuI/AAAAAAAAD4U/hqhB6PtGFNw/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Viewing the Data Store shows that the columns are being separated correctly.&lt;br /&gt;&lt;br /&gt;The next step was to create a simple interface that loads the log information from into a table.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-p0bdP_LAZXE/TuSAY0JumgI/AAAAAAAAD4Y/njWSyhhJA4k/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://3.bp.blogspot.com/-p0bdP_LAZXE/TuSAY0JumgI/AAAAAAAAD4Y/njWSyhhJA4k/s400/image014.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The interface using “&lt;b&gt;LKM File to SQL&lt;/b&gt;” and “&lt;b&gt;IKM SQL Control Append&lt;/b&gt;” with the option to truncate the table each time it is run.&lt;br /&gt;&lt;br /&gt;Now the log information is the table I created a refreshing variable to check if there was a failure.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qkLQHQsSOdE/TuSAZYHfCcI/AAAAAAAAD4g/2uzTKqyhQzo/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://2.bp.blogspot.com/-qkLQHQsSOdE/TuSAZYHfCcI/AAAAAAAAD4g/2uzTKqyhQzo/s400/image015.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When executed the number of errors will be stored in the variable, if the number is greater than zero then the script failed.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-nVonp-1sPJw/TuSAZzP3VfI/AAAAAAAAD4o/KuxGsng2q84/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="116" src="http://2.bp.blogspot.com/-nVonp-1sPJw/TuSAZzP3VfI/AAAAAAAAD4o/KuxGsng2q84/s400/image016.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;These are the steps in the package up to now, the first step uses the File delete tool and deletes the output log, this is because the EPMA batch client appends to the log and only the information from the last run is required.&lt;br /&gt;&lt;br /&gt;The next step uses the OS command tool and calls the EPMA batch client and defined script, the output log is loaded to table and the refreshing variable stores the amount of errors.&lt;br /&gt;&lt;br /&gt;The variable holding the numbers of errors can now be evaluated to see if the value is greater than zero.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-T1BDNwGvSXo/TuSAaUqtA-I/AAAAAAAAD4w/LnTyGIZsH3g/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" src="http://3.bp.blogspot.com/-T1BDNwGvSXo/TuSAaUqtA-I/AAAAAAAAD4w/LnTyGIZsH3g/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If the value is greater than zero the step will complete with a success otherwise produce a failure so the output defines how to proceed.&lt;br /&gt;&lt;br /&gt;I have decided that if there has been a failure then I want to store the failure message and then raise an error with the stored message which will cause the package to fail.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-wBHnApSySwU/TuSC74BISAI/AAAAAAAAD6I/qrCnkE0RDVo/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="95" src="http://3.bp.blogspot.com/-wBHnApSySwU/TuSC74BISAI/AAAAAAAAD6I/qrCnkE0RDVo/s400/image018.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CykPfdn7Q3g/TuSAa6s2l8I/AAAAAAAAD40/OjaaCoVB1MI/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Another refreshing variable was created which queries the table holding the log information and stores the error message.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EtaR6FtKF8s/TuSAbmFqODI/AAAAAAAAD5I/QiOJtrV7ZOQ/s1600/image020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://1.bp.blogspot.com/-EtaR6FtKF8s/TuSAbmFqODI/AAAAAAAAD5I/QiOJtrV7ZOQ/s400/image020.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A new procedure was created with a step using Jython as the technology.&lt;br /&gt;An error is raised with the message which has just been stored using the refreshing variable.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ja1XJu-rBzw/TuSAcarT_dI/AAAAAAAAD5Q/Y7ArtLAXvNg/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="45" src="http://2.bp.blogspot.com/-ja1XJu-rBzw/TuSAcarT_dI/AAAAAAAAD5Q/Y7ArtLAXvNg/s400/image021.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;These steps are then added to the package, to add extra functionality an additional step could easily be inserted to send out a failure email and attach the output log.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NLo8KId4FqY/TuSAcmBEQ6I/AAAAAAAAD5Y/mByGXOZ3bIA/s1600/image022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://4.bp.blogspot.com/-NLo8KId4FqY/TuSAcmBEQ6I/AAAAAAAAD5Y/mByGXOZ3bIA/s400/image022.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If there any fatal errors in the log then the package will fail with a message informing of the reason.&lt;br /&gt;&lt;br /&gt;You could move on deploying the EPMA application to planning using the same type of logic that I have used up to now in the package but there may be a possibility that there were no fatal errors in loading from the interface tables but there were normal errors generated, if there were errors you might not want to deploy the application just yet.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cO6IATVN8Hg/TuSAdfz0HaI/AAAAAAAAD5k/uiFnN13PfIM/s1600/image024.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://3.bp.blogspot.com/-cO6IATVN8Hg/TuSAdfz0HaI/AAAAAAAAD5k/uiFnN13PfIM/s400/image024.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In this example I changed a member’s property so that it was set to a non-existent Smart List and ran the package again, the package was successful but there is an error in the log.&lt;br /&gt;&lt;br /&gt;I don’t want the package to fail and I don’t want the application to be deployed but instead an email sent out informing of the error.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jEMHugQOWmU/TuSAeW4fZLI/AAAAAAAAD5o/5Sx2_2w1YAg/s1600/image025.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://4.bp.blogspot.com/-jEMHugQOWmU/TuSAeW4fZLI/AAAAAAAAD5o/5Sx2_2w1YAg/s400/image025.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Time for another refreshing variable which will look for the line with the Import details and store the number defining the number of errors, I am only storing the first digit as I only interested to know whether it is greater than zero.&lt;br /&gt;&lt;br /&gt;Like previously the variable can be evaluated and then steps adding depending on whether the result is true or false.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Z_XOZZOc6Jg/TuSAe_9twLI/AAAAAAAAD5w/ecFdZW3DljY/s1600/image026.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://4.bp.blogspot.com/-Z_XOZZOc6Jg/TuSAe_9twLI/AAAAAAAAD5w/ecFdZW3DljY/s400/image026.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So now the log will be checked to see if there are any import errors, if there are errors then an email is sent attaching the log for information and the integration then ends, if there are no import errors the EPMA application is deployed to planning using an OS command. &lt;br /&gt;&lt;br /&gt;I am not going to cover the deployment as it uses the same logic as the import and in the last part of the series I went through how to script it.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nDYDic5v0AE/TuSJZIWuqhI/AAAAAAAAD6Q/qvGU1x_5ph4/s1600/image026.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://4.bp.blogspot.com/-nDYDic5v0AE/TuSJZIWuqhI/AAAAAAAAD6Q/qvGU1x_5ph4/s400/image026.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DN_wrSv6OMQ/TuSAfRqqduI/AAAAAAAAD54/DzPkrepWrhA/s1600/image027.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I added in the metadata load interfaces and some more additional error logging around the deployment from EPMA to planning which means in the end you have a solution that will take metadata from a source and end up to deploying to planning/essbase with relatively little coding that can then be easily scheduled or executed the web using the console.&lt;br /&gt;&lt;br /&gt;Obviously you can make it a lot more sophisticated with added functionality and make more use of variables but hopefully you get the idea.&lt;br /&gt;&lt;br /&gt;If the package does get complex and you are using ODI 11.1.1.5+ then you could look into whether using load plans would add any benefit.&lt;br /&gt;&lt;br /&gt;I am going to leave it there for today, this was going to be the last part but I have had a few queries around using interface which I may cover if I find the time.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8649514724963239758?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8649514724963239758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8649514724963239758' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8649514724963239758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8649514724963239758'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/12/loading-to-epma-planning-applications.html' title='Loading to EPMA planning applications using interface tables – Part 6'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-DyiwN5watGM/TuSASs56NmI/AAAAAAAAD3Q/6HLsNjbmjVo/s72-c/image001.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-960985032489223317</id><published>2011-11-27T04:00:00.001-08:00</published><updated>2011-11-27T06:58:41.047-08:00</updated><title type='text'>Loading to EPMA planning applications using interface tables – Part 5</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the last part of the series I had pretty much achieved what I set out to do and that was load planning metadata from a source into interface tables and then push into EPMA. The last step of moving the metadata from the interface tables to EPMA was a manual process and in an ideal world you would want this to be automated.&lt;br /&gt;&lt;br /&gt;Today I am going to look at automating the process using the EPMA batch client and then move on to using ODI to take over control.&lt;br /&gt;&lt;br /&gt;To be honest I am not a big fan of the EPMA batch client and when you compare it to say the outlineload utility it seems so far behind. &lt;br /&gt;&lt;br /&gt;I feel that Oracle really needs to develop an API or improve the web services to control EPMA functionality. &lt;br /&gt;&lt;br /&gt;When Oracle first released EPMA there was documentation available on the web services but this seems to have disappeared even though the product is still using web services behind the scenes.&lt;br /&gt;Enough of my moaning and let’s get on with the batch client.&lt;br /&gt;&lt;br /&gt;The client is usually available on the machine hosting EPMA e.g. on 11.1.2.1 &lt;b&gt;&amp;lt;MIDDLWARE_HOME&amp;gt;\EPMSystem11R1\products\Foundation\BPMA\EPMABatchClient\&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-FhZUZM7d0hs/TtImcvamZdI/AAAAAAAAD1g/UiOFNeRz9gQ/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="121" src="http://1.bp.blogspot.com/-FhZUZM7d0hs/TtImcvamZdI/AAAAAAAAD1g/UiOFNeRz9gQ/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It is possible to install the client on a machine of your choice but you will need a number of installation files.&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;Oracle Hyperion Enterprise Performance Management System Installer, Fusion Edition Release 11.1.2.1.0&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Oracle Hyperion Foundation Services Release 11.1.2.1.0 Part 1 of 7&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Oracle Hyperion Foundation Services Release 11.1.2.1.0 Part 5 of 7&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Oracle Hyperion Enterprise Performance Management Architect, Fusion Edition Release 11.1.2.1.0&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-u890h8wYq8g/TtImdN_ZZpI/AAAAAAAAD1k/RmB3HfyZh6k/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="160" src="http://4.bp.blogspot.com/-u890h8wYq8g/TtImdN_ZZpI/AAAAAAAAD1k/RmB3HfyZh6k/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The documentation for the client is available &lt;a href="http://docs.oracle.com/cd/E17236_01/epm.1112/epma_batch_user/launch.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The client is launched by running &lt;b&gt;epma-batch-client&lt;/b&gt; either using interactive command line or a script.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://2.bp.blogspot.com/-q8ABNLPB2uE/TtImdX46xxI/AAAAAAAAD1o/6BdudOA7myw/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="116" src="http://2.bp.blogspot.com/-q8ABNLPB2uE/TtImdX46xxI/AAAAAAAAD1o/6BdudOA7myw/s400/image007.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Using the interactive command line is a good way to make sure you are using all the correct commands and set all the parameters before putting them into script.&lt;br /&gt;&lt;br /&gt;My intention is to use a script as interactive command line is back to the manual world again.&lt;br /&gt;&lt;br /&gt;There are a number of command line arguments that can be used with the client and if you call it with –H it will provide help on the available arguments. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Ob1fhDI6ou4/TtImd6lXLAI/AAAAAAAAD10/htBBu6HPPlo/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="65" src="http://3.bp.blogspot.com/-Ob1fhDI6ou4/TtImd6lXLAI/AAAAAAAAD10/htBBu6HPPlo/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The arguments I am interested in using are&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;-C&lt;/b&gt; is the filename of a script to be used e.g. &lt;b&gt;-C"F:\Scripts\Import.txt"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;-R&lt;/b&gt; is the filename to output the results of the script to e.g. &lt;b&gt;-R"F:\Scripts\Import.log"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;-U&lt;/b&gt; is the username to log into EPMA e.g. &lt;b&gt;-Uadmin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;-P&lt;/b&gt; is the password to log into EPMA e.g. &lt;b&gt;–Ppassword&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;That is straightforward enough so moving on to the script; there are two important variables that are required to be set before using any client commands.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;set bpmaserverurl=http://&amp;lt;servername&amp;gt;/hyperion-bpma-server;&lt;br /&gt;set workspaceurl=http://&amp;lt;servername&amp;gt;:&amp;lt;port&amp;gt;/workspace;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Basically these system variables need to be set to tell the client the location of workspace and EPMA, if you don’t use them the script will fail with a message informing they are missing.&lt;br /&gt;It is important to separate each command with a semi colon.&lt;br /&gt;&lt;br /&gt;The next step in the script is to log into EPMA and as I am passing the username and password into the client I only need to use the following&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Login;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once logged in I want to import the metadata from the interface tables and push that into EPMA which is possible using the “&lt;b&gt;Execute Import ..&lt;/b&gt;” command&lt;br /&gt;&lt;br /&gt;The format of the command is&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Execute Import&lt;br /&gt;Parameters(importtype, profilename, filename, waitforcompletion)Values(‘’, ‘’, '’, ‘’);&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;importtype &lt;/b&gt;– set the type of import and the available values are&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;FlatFile&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;InterfaceTables&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;profilename&lt;/b&gt;—The name of an existing import profile&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;filename &lt;/b&gt;– If using Flat files as the import then it is the name of the import file.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;waitforcompletion &lt;/b&gt;- If set to true, the Batch Client waits for the job to finish. If set to false, the Batch Client submits the job and continues.&lt;br /&gt;&lt;br /&gt;Now this is where I was a bit confused because all through this series I have been using a Load ID with the interface tables, even when you manually import through EPMA web it requires a Load ID but it is nowhere to be seen in the command parameters, if I am not missing something obvious then how is it possible to set which Load ID to use and what does the client use as a default?&lt;br /&gt;&lt;br /&gt;As I only have one Load ID at present I will just carry on and populate the parameters with known values, the importtype will be InterfaceTables and the profilename which I have been using in this series is SAMPLE_APP&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;Execute Import Parameters(importtype, profilename, filename, waitforcompletion)Values('InterfaceTables', 'SAMPLE_APP', '', 'true');&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;So the script to import from interface tables to EPMA is&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-uxYq0apaBVc/TtImeRErR-I/AAAAAAAAD2A/3P0DX-aNQRs/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="52" src="http://4.bp.blogspot.com/-uxYq0apaBVc/TtImeRErR-I/AAAAAAAAD2A/3P0DX-aNQRs/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Using command line the following can be run&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;E:\Oracle\Middleware\EPMSystem11R1\products\Foundation\BPMA\EPMABatchClient\epma-batch-client.bat -C"F:\Scripts\Import.txt" -R"F:\Scripts\Import.log" -Uadmin -Ppassword&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-XtfR29rjRgY/TtImfXA_GJI/AAAAAAAAD2E/SI-XxRFazrk/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="66" src="http://3.bp.blogspot.com/-XtfR29rjRgY/TtImfXA_GJI/AAAAAAAAD2E/SI-XxRFazrk/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Which produces an output log of&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-58RiZwGXaao/TtImfkgsETI/AAAAAAAAD2I/Tv9hWrEYU2M/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://3.bp.blogspot.com/-58RiZwGXaao/TtImfkgsETI/AAAAAAAAD2I/Tv9hWrEYU2M/s400/image015.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The output log is exactly what is outputted to the command window, as you can see on one of the lines it completed with a code of 0 which means it was successful.&lt;br /&gt;&lt;br /&gt;There is a list of return codes available &lt;a href="http://docs.oracle.com/cd/E17236_01/epm.1112/epma_batch_user/frameset.htm?ch01s02.html"&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If I update the script to put in an invalid profile name and the run script again the output would be&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-zcA4B8f2tG4/TtImgBlKPpI/AAAAAAAAD2Q/a8prwQcWY5w/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="81" src="http://3.bp.blogspot.com/-zcA4B8f2tG4/TtImgBlKPpI/AAAAAAAAD2Q/a8prwQcWY5w/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;When using a batch script to call the EPMA client it is possible to check the return codes and act on them, for instance using command line in windows you could use something like &lt;br /&gt;&lt;br /&gt;&lt;b&gt;IF ERRORLEVEL 0 goto COMPLETED_SUCCESS&lt;br /&gt;IF ERRORLEVEL 407 goto IMPORT_FAILED&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;:COMPLETED_SUCCESS&lt;/b&gt;&lt;br /&gt;&lt;b&gt;do something....&lt;br /&gt;&lt;br /&gt;:IMPORT_FAILED&lt;br /&gt;do something....&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-od3uUw1jmak/TtImgpOaN8I/AAAAAAAAD2c/bkIm79kEXC0/s1600/image019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-od3uUw1jmak/TtImgpOaN8I/AAAAAAAAD2c/bkIm79kEXC0/s400/image019.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;The output log also has a link to the job console where the status for import can be viewed.&lt;br /&gt;&lt;br /&gt;Now that the metadata has been successfully loaded into EPMA then it is possible to deploy the application to planning and push the outline changes to essbase.&lt;br /&gt;&lt;br /&gt;The commands available are &lt;b&gt;“Execute Deployment”&lt;/b&gt; and &lt;b&gt;“Execute Redeployment”&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;The deployment command has the following format if being used with planning&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;Execute Deploy Parameters (ApplicationName, InstanceName, ApplicationServer, HubProject, ClearAll, CheckIntegrity, waitforcompletion, purgeTransactions,&amp;nbsp; deployOption, datasourceName,CreateOutline,RefreshOutline,CreateSecurityFilters,SharedMembersSecurityFilters,ValidateSecurityFilterLimit,Notes)&lt;br /&gt;Values(….);&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ApplicationName&lt;/b&gt;—The name of an existing application to deploy to.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;InstanceName&lt;/b&gt;—Name of the instance to deploy to.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ApplicationServer&lt;/b&gt;—Name of the application server to deploy to.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;HubProject&lt;/b&gt;—Shared Services project to use.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ClearAll&lt;/b&gt;— This is for HFM&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;CheckIntegrity&lt;/b&gt;—This is for HFM&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;PurgeTransactions&lt;/b&gt;—Purges the transaction history. A value of True will purge the history, and a value of False will not.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: yellow;"&gt;deployOption&lt;/span&gt;—Specifies the type of deployment that you want to perform, available values are&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;b&gt;AppView&lt;/b&gt;—Deploy the application only. (This setting is the default.)&lt;/li&gt;&lt;li&gt;&lt;b&gt;Rules&lt;/b&gt;—Deploy calculation rules.&lt;/li&gt;&lt;li&gt;&lt;b&gt;All&lt;/b&gt;—Deploy calculation rules and the application.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b style="color: yellow;"&gt;WaitForCompletion&lt;/b&gt;—If set to True, the Batch Client waits for the job to finish. If set to False, the Batch Client submits the job and continues. &lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;datasourceName&lt;/b&gt;—The data source to be used for the deployment&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;CreateOutline&lt;/b&gt;—Creates the Essbase outline, values : True or False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;RefreshOutline&lt;/b&gt;—Refreshes the essbase database outlines, values: True or False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;CreateSecurityFilters&lt;/b&gt;— Create essbase database filters based on access permissions in planning, values: True or False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;SharedMembersSecurityFilters&lt;/b&gt;—Evaluates access permissions that are set for all instances of the member (base and shared) and applies the least restrictive access permission to them all, values: True or False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ValidateSecurityFilterLimit&lt;/b&gt;—Identifies security filters that exceed the Oracle Essbase security filter limit of 64 KB per row, values: True or False&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Notes&lt;/b&gt;—Optionally stores any comments or notes that you may want to add regarding the deployment.&lt;br /&gt;&lt;br /&gt;I find that the easiest way to find out what values to put against the parameters is to initiate a deployment of the application from EPMA.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-vX47AJVoMrA/TtImh0V7fTI/AAAAAAAAD2k/69iXtRhAGRE/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-vX47AJVoMrA/TtImh0V7fTI/AAAAAAAAD2k/69iXtRhAGRE/s400/image021.png" width="351" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The deployment window gives you a good indication on the values to populate the command with.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Execute Deploy Parameters&lt;span style="color: white;"&gt;(ApplicationName, InstanceName, ApplicationServer, HubProject, ClearAll, CheckIntegrity, waitforcompletion, purgeTransactions,&amp;nbsp; deployOption, datasourceName,CreateOutline,RefreshOutline,CreateSecurityFilters,SharedMembersSecurityFilters,ValidateSecurityFilterLimit,Notes)&lt;/span&gt;&lt;span style="background-color: white; color: white;"&gt;&lt;/span&gt; Values &lt;span style="color: white;"&gt;(&lt;/span&gt;'EPMASAMP', 'Default', 'Default', 'Planning', 'false', 'false', 'true', 'true', 'AppView', 'EPMASAMP','false','true','false','false','false','EPMASAMP deployment'&lt;span style="color: white;"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-LVmq9AdouKc/TtImiY7789I/AAAAAAAAD2o/FeofL3X5eJ8/s1600/image023.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://3.bp.blogspot.com/-LVmq9AdouKc/TtImiY7789I/AAAAAAAAD2o/FeofL3X5eJ8/s400/image023.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;This command can then be added to the existing script and executed.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-w5cnmdK4KZA/TtImihfmU4I/AAAAAAAAD2w/HKt3zKNOmh8/s1600/image025.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="108" src="http://4.bp.blogspot.com/-w5cnmdK4KZA/TtImihfmU4I/AAAAAAAAD2w/HKt3zKNOmh8/s400/image025.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;The deployment was successful and once again a link is provided to view the deployment status in the job console.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-VBdpt05e2fA/TtImjKgaiHI/AAAAAAAAD24/z-rqkK9H7sk/s1600/image027.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="261" src="http://3.bp.blogspot.com/-VBdpt05e2fA/TtImjKgaiHI/AAAAAAAAD24/z-rqkK9H7sk/s400/image027.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;If there any issues with the deployment then they will be logged.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nqkB1XybNoc/TtImjjpSpAI/AAAAAAAAD3E/HIuyhMQrK6U/s1600/image029.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="78" src="http://1.bp.blogspot.com/-nqkB1XybNoc/TtImjjpSpAI/AAAAAAAAD3E/HIuyhMQrK6U/s320/image029.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A return code of 405 is generated which could be acted upon if the process is being scripted.&lt;br /&gt;&lt;br /&gt;In the next part of this series I will look at using ODI to control the running of the batch client and provide relevant error handling steps, this will then be added to the package which was created in the last instalment to provide a full automated EPMA interface load and deploy process.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-960985032489223317?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/960985032489223317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=960985032489223317' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/960985032489223317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/960985032489223317'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/11/loading-to-epma-planning-applications.html' title='Loading to EPMA planning applications using interface tables – Part 5'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-FhZUZM7d0hs/TtImcvamZdI/AAAAAAAAD1g/UiOFNeRz9gQ/s72-c/image002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8996827881741482677</id><published>2011-11-05T03:34:00.000-07:00</published><updated>2011-11-05T03:35:43.746-07:00</updated><title type='text'>Loading to EPMA planning applications using interface tables - Part 4</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A bit later than planned here is the fourth instalment on using EPMA interface tables, at the end of the last part the import profile had been created and the tables are ready to be populated so today I will go through the process of using ODI to populate the interfaces tables.&lt;br /&gt;&lt;br /&gt;Now you don’t have to use ODI as other methods could be used to populate the tables but I am going to use it as it offers such flexibility around transformations and automation in a controlled environment.&lt;br /&gt;&lt;br /&gt;At the start of this mini-series I said I was going to try and approach it from the angle of a classic planning application and convert this into an EPMA world, basically I am going to take the classic planning sample application and transform this to be used in an EPMA model. I think the saying “a picture is worth a thousand words” is going to be very relevant for this part of the series as there are going to be lots of screenshots.&lt;br /&gt;&lt;br /&gt;I am using this approach as it is more than likely you will be accustomed to the format required for a classic planning application and it does need transforming before it can loaded into EPMA so this is where ODI comes into its own, it also will provide an insight to the difference in member property naming conventions between classic and EPMA.&lt;br /&gt;&lt;br /&gt;First of all I am going to extract the metadata from a classic sample application using the outline loader utility, I have covered using the utility to extract dimensions in a previous blog though it is worth noting this functionality is only available from 11.1.2.1.&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-DoDazV641GA/TrUGzYt_5iI/AAAAAAAADr0/s9OXfpomV8M/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="153" src="http://2.bp.blogspot.com/-DoDazV641GA/TrUGzYt_5iI/AAAAAAAADr0/s9OXfpomV8M/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Using the utility is very straight forward and only requires one command line per dimension, I extracted all the dimensions for completeness even though I am only interested in Account, Entity, Scenario, Version and Segments.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2BrGZt2BCLE/TrUGzwqJdbI/AAAAAAAADr4/aDJ9HmXu2Dg/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;img border="0" height="75" src="http://4.bp.blogspot.com/-2BrGZt2BCLE/TrUGzwqJdbI/AAAAAAAADr4/aDJ9HmXu2Dg/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The files produced are in CSV format and can be opened in a text editor or Excel, if you do open the file in Excel watch out for member formulas as they do cause formatting issues.&lt;br /&gt;The extract using the utility seems to add a leading space to every item after the first column, this will mean that in the ODI integration all the columns will need to be trimmed.&lt;br /&gt;&lt;br /&gt;Now that all the source files are place we can look to ODI to transform and load the metadata to the interface tables.&lt;br /&gt;&lt;br /&gt;I will go through the step by step process of achieving this in ODI though there is going to be an assumption you are familiar with the core principals of ODI. &lt;br /&gt;I will be using Oracle as the technology for the interface tables but the process will be similar if you are going to use something like SQL server.&lt;br /&gt;&lt;br /&gt;A brief description of the process will be define physical/logical information in the topology manager, create the models, design the interfaces to load from the flat files to the EPMA interface tables and then bring it all together with a package.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_oyfYJ5tIFw/TrUG0PnTHyI/AAAAAAAADsA/8liykuUwZWk/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://2.bp.blogspot.com/-_oyfYJ5tIFw/TrUG0PnTHyI/AAAAAAAADsA/8liykuUwZWk/s320/image003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;First the physical information needs to be defined for the flat files and the target EPMA tables.&lt;br /&gt;A Physical Schema was added to the file technology.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-q2RfklDkRpo/TrUG0m0bU_I/AAAAAAAADsM/KqU6cFCEGtw/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="153" src="http://4.bp.blogspot.com/-q2RfklDkRpo/TrUG0m0bU_I/AAAAAAAADsM/KqU6cFCEGtw/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The directory where all the source flat files are held is manually entered in the schema boxes.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bVdU2YNQpTk/TrUG1gmFHSI/AAAAAAAADsQ/lK1Az6tJT-c/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://1.bp.blogspot.com/-bVdU2YNQpTk/TrUG1gmFHSI/AAAAAAAADsQ/lK1Az6tJT-c/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The physical schema always needs to be mapped to a context and a logical schema, the context I am using is called DEMO and I give the logical schema a name of CLASSIC_FILE_EXTRACTS.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-NWJt0qA-7CI/TrUG16LL6WI/AAAAAAAADsY/Aer5Kpdjyeo/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://4.bp.blogspot.com/-NWJt0qA-7CI/TrUG16LL6WI/AAAAAAAADsY/Aer5Kpdjyeo/s400/image006.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A new Data Server using Oracle technology is created, the username/password to connect to the interface tables are entered &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-60af8wwEF6Y/TrUG2SKU8mI/AAAAAAAADsk/v2WaEiqqCNE/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://1.bp.blogspot.com/-60af8wwEF6Y/TrUG2SKU8mI/AAAAAAAADsk/v2WaEiqqCNE/s400/image007.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;The JDBC connection information to the interface tables is added.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cyt84uUbaJo/TrUG3evGG1I/AAAAAAAADso/Hzz61TZ96eA/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-cyt84uUbaJo/TrUG3evGG1I/AAAAAAAADso/Hzz61TZ96eA/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From the dropdowns the schema where the interface tables are held is selected, to make it nice and simple the schema is called INTERFACE.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-J5yKLz18mXI/TrUG3iahaHI/AAAAAAAADs0/EXbQxB9oUKA/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://4.bp.blogspot.com/-J5yKLz18mXI/TrUG3iahaHI/AAAAAAAADs0/EXbQxB9oUKA/s400/image009.png" width="400" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Once again the DEMO context is selected a logical schema name of EPMA_INTERFACE is applied.&lt;/div&gt;This is all that needs to be done in the topology so I can move on to the Designer.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_gSsqwnGXyM/TrUG4aQIfkI/AAAAAAAADs8/u1iHKZikboo/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-_gSsqwnGXyM/TrUG4aQIfkI/AAAAAAAADs8/u1iHKZikboo/s1600/image010.png" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;A new model is created for the flat files. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CgNc37-3Y7E/TrUG5EMTcgI/AAAAAAAADtA/N9XE9TsSAMw/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://3.bp.blogspot.com/-CgNc37-3Y7E/TrUG5EMTcgI/AAAAAAAADtA/N9XE9TsSAMw/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;The Model is associated with the file technology and assigned the logical schema that was created in the topology navigator.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2oexBQYl2Ig/TrUG5aMCtQI/AAAAAAAADtI/AyokWlev5JI/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="144" src="http://4.bp.blogspot.com/-2oexBQYl2Ig/TrUG5aMCtQI/AAAAAAAADtI/AyokWlev5JI/s320/image012.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A Datastore is manually created for each of the flat files as it is not possible to reverse all the files in a Model in one step, the following steps are for the file holding the account metadata.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-4hGTpypyqLk/TrUG56hbwwI/AAAAAAAADtM/YjtTW2sLTEs/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://2.bp.blogspot.com/-4hGTpypyqLk/TrUG56hbwwI/AAAAAAAADtM/YjtTW2sLTEs/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If the file is accessible by ODI then it is possible to browse to the file, if it is not then the filename would have to be manually entered.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-y6YRpoQrbSQ/TrUG6TRzLwI/AAAAAAAADtc/frMUIyxNOyY/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-y6YRpoQrbSQ/TrUG6TRzLwI/AAAAAAAADtc/frMUIyxNOyY/s320/image014.png" width="309" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The format of the file is defined by setting the heading lines to a value of 1, field separator of comma and a single quote text delimiter. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wHaElvb4tiw/TrUG7oO_6wI/AAAAAAAADtg/Pa1AgtlscHI/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://1.bp.blogspot.com/-wHaElvb4tiw/TrUG7oO_6wI/AAAAAAAADtg/Pa1AgtlscHI/s400/image015.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If the file can be accessed by the console then all the columns can be reversed, if the file cannot be accessed by ODI it is easier to temporarily place the file in a location accessible to ODI and the reverse instead of having to manually create all the column information.&lt;br /&gt;I manually updated the lengths to 80 for member/alias columns and increased the Formula column.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-asVQ6FFxy2U/TrUG7zuUxAI/AAAAAAAADto/XSWM9wXWEhI/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-asVQ6FFxy2U/TrUG7zuUxAI/AAAAAAAADto/XSWM9wXWEhI/s1600/image016.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The process is repeated for the other flat files that are going to be used to load metadata to the EPMA tables.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8SfyaUabymI/TrUG8QJAgdI/AAAAAAAADts/s60-ROLWYYE/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-8SfyaUabymI/TrUG8QJAgdI/AAAAAAAADts/s60-ROLWYYE/s1600/image017.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A new model is created to hold each the information for each of the EPMA tables.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-tlwDOZr6NYI/TrUG8qrV_WI/AAAAAAAADt8/ljtddFv0LVw/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="205" src="http://4.bp.blogspot.com/-tlwDOZr6NYI/TrUG8qrV_WI/AAAAAAAADt8/ljtddFv0LVw/s400/image018.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Oracle technology is selected and assigned to the logical schema that was created earlier in the topology navigator.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8GVqq43SmQI/TrUG910HBRI/AAAAAAAADuA/uubc0cFPPvg/s1600/image019.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-8GVqq43SmQI/TrUG910HBRI/AAAAAAAADuA/uubc0cFPPvg/s400/image019.png" width="372" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In the reverse-engineering section the target EPMA tables that are going to be used in the integrations are selected, these tables were created in part two of this series.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-L7TebiCKyLc/TrUG-Ma1uPI/AAAAAAAADuM/1alWaiUoHao/s1600/image020.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://2.bp.blogspot.com/-L7TebiCKyLc/TrUG-Ma1uPI/AAAAAAAADuM/1alWaiUoHao/s400/image020.png" width="177" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&amp;nbsp;The tables and column definitions are automatically reversed.&lt;br /&gt;&lt;br /&gt;Interfaces can now be built as the source and target Datastores have been defined.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Fwv7QBVTCRo/TrUG_vszkaI/AAAAAAAADuQ/47CH4TNC-J4/s1600/image021.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="179" src="http://1.bp.blogspot.com/-Fwv7QBVTCRo/TrUG_vszkaI/AAAAAAAADuQ/47CH4TNC-J4/s320/image021.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am just going to cover the Account interface as it is probably the most complex out of all of the dimension builds and gives a good overview.&lt;br /&gt;&lt;br /&gt;If the source file did not need any transformation it would be just a case of adding the file to the source mapping area of the interface, adding the target EPMA interface table to the target then applying the one to one mapping and finishing off by setting the Knowledge Modules and options to be used.&lt;br /&gt;&lt;br /&gt;This would have been the case if the classic planning member properties matched those of an EPMA enabled planning application, I have no idea why they don’t match as it seems like an obvious decision that would have been made when EPMA was being developed.&lt;br /&gt;&lt;br /&gt;It is also worth noting that EPMA is very strict about the naming convention for the member properties and a slight difference such as using lower case instead of upper case for the first character can cause problems.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rLy9yQ2Fpec/TrUG_wwoUuI/AAAAAAAADuY/faFj8Vl2B5U/s1600/image022.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="142" src="http://2.bp.blogspot.com/-rLy9yQ2Fpec/TrUG_wwoUuI/AAAAAAAADuY/faFj8Vl2B5U/s400/image022.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Above is the completed mappings from source to target and I will now go through each of the columns to explain the mappings.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1Kxvu5eUlZg/TrUHAVibgHI/AAAAAAAADug/GAR1wNK8yL8/s1600/image023.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="126" src="http://4.bp.blogspot.com/-1Kxvu5eUlZg/TrUHAVibgHI/AAAAAAAADug/GAR1wNK8yL8/s400/image023.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the second part of this series I went through the LOADID and this numerical value defines what records to load, as this value can change I created an ODI variable which can be applied to all the interfaces and be set at runtime. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-EdEspy9XGaI/TrUHAiYqWKI/AAAAAAAADuk/8Gqo4Y9zxmk/s1600/image024.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="6" src="http://2.bp.blogspot.com/-EdEspy9XGaI/TrUHAiYqWKI/AAAAAAAADuk/8Gqo4Y9zxmk/s400/image024.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;All of the columns in the mappings use the TRIM function to remove the leading space in the source which is created by default using the outlineloader utility.&lt;br /&gt;&lt;br /&gt;In the mapping a CASE statement is used to change the root member from Account to #root, this is required by EPMA and if it is not used then the root member will fail to load and will cause all of its descendants to fail due to missing parent.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UnrAOzEoP3o/TrUHBPVbd7I/AAAAAAAADu0/rEPAtliUWpg/s1600/image025.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="43" src="http://2.bp.blogspot.com/-UnrAOzEoP3o/TrUHBPVbd7I/AAAAAAAADu0/rEPAtliUWpg/s400/image025.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;CHILD, ALIAS and DESCRIPTION are a simple straight mapping.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sGza65pZDxg/TrUHCFgBMBI/AAAAAAAADu4/NjU5xCJLSCI/s1600/image026.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="8" src="http://1.bp.blogspot.com/-sGza65pZDxg/TrUHCFgBMBI/AAAAAAAADu4/NjU5xCJLSCI/s400/image026.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The ISPRIMARY column requires either a value of 1 to define the member as a primary member or 0 to define as a shared member.&lt;/div&gt;&lt;br /&gt;The datastorage column of the source file holds the information to whether the member is shared or not with the property value of shared.&lt;br /&gt;&lt;br /&gt;The SORTORDER column I have left unmapped for the time being because the rows in the source file are in the correct order.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BbQ_oCwC058/TrUHCgxtpxI/AAAAAAAADu8/p9glOabsAl0/s1600/image027.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="12" src="http://3.bp.blogspot.com/-BbQ_oCwC058/TrUHCgxtpxI/AAAAAAAADu8/p9glOabsAl0/s400/image027.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As the DATASTORAGE property will apply to each of the interfaces I created an ODI function to handle the transformation.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9tqy1JGP5LE/TrUHC19sdZI/AAAAAAAADvM/X6Ev7kpAcic/s1600/image028.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://1.bp.blogspot.com/-9tqy1JGP5LE/TrUHC19sdZI/AAAAAAAADvM/X6Ev7kpAcic/s400/image028.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;"&gt;Theclassic properties for DataStorage are on the left and the EPMA ones are on theright and as you can see there is a slight variation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-8BvarLdA8sI/TrUHEK3k8_I/AAAAAAAADvQ/TDReiZYLe80/s1600/image029.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="111" src="http://4.bp.blogspot.com/-8BvarLdA8sI/TrUHEK3k8_I/AAAAAAAADvQ/TDReiZYLe80/s400/image029.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The function takes a single input DataStorage value and converts it from classic to EPMA.&lt;br /&gt;This function can simply be applied to the DataStorage target mapping for each of dimension load interfaces.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;If you are new to ODI functions then it may be worth having a look at the &lt;a href="http://john-goodwin.blogspot.com/2009/06/odi-series-quick-look-at-user-functions.html"&gt;article &lt;/a&gt;I wrote in the past about them.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mYaz1i8yPso/TrUHErb3UGI/AAAAAAAADvU/21fDKj-BiYU/s1600/image030.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="8" src="http://4.bp.blogspot.com/-mYaz1i8yPso/TrUHErb3UGI/AAAAAAAADvU/21fDKj-BiYU/s400/image030.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-vKfiChlNX-Q/TrUHEzkL9-I/AAAAAAAADvk/tuAeKZ1pf-Q/s1600/image031.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://4.bp.blogspot.com/-vKfiChlNX-Q/TrUHEzkL9-I/AAAAAAAADvk/tuAeKZ1pf-Q/s400/image031.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I would usually create a function for converting the Data Type as it is used in all dimensions but this time I was just a little bit lazy.&lt;br /&gt;&lt;br /&gt;The main differences between classic and EPMA were the initial character needed capitalizing so I used the INITCAP function.&lt;br /&gt;non-currency needed converting to NonCurrency.&lt;br /&gt;&lt;br /&gt;The biggest difference between versions is enumeration in classic and SmartList in EPMA, I do agree that SmartList is a much more user friendly naming convention and enumeration stems from the earlier days of planning.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ke_906j50Mc/TrUHGC6DZlI/AAAAAAAADvo/3Mp8a1E_tJk/s1600/image032.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="11" src="http://2.bp.blogspot.com/-ke_906j50Mc/TrUHGC6DZlI/AAAAAAAADvo/3Mp8a1E_tJk/s400/image032.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span style="font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; line-height: 115%;"&gt;Thereare a number of member properties in classic that are exported as true/falseand in the EPMA interface world the table definition is set up a numerical soit requires a 1 for true and a 0 for false.&lt;/span&gt; &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-VG6cFBE60P4/TrUHGdZaKHI/AAAAAAAADvs/Cgmpixltsic/s1600/image033.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://2.bp.blogspot.com/-VG6cFBE60P4/TrUHGdZaKHI/AAAAAAAADvs/Cgmpixltsic/s400/image033.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Instead of having to keep repeating mappings for the different columns that require this logic I once again created an ODI function to handle them.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jyXt65LhzNI/TrUHG5uxt9I/AAAAAAAADv4/vn38kk4vOAI/s1600/image034.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="10" src="http://1.bp.blogspot.com/-jyXt65LhzNI/TrUHG5uxt9I/AAAAAAAADv4/vn38kk4vOAI/s400/image034.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6pBUa-t-iIo/TrUHHdGkz5I/AAAAAAAADwA/0rGXf9MNVhk/s1600/image035.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="28" src="http://4.bp.blogspot.com/-6pBUa-t-iIo/TrUHHdGkz5I/AAAAAAAADwA/0rGXf9MNVhk/s400/image035.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Like most of the mappings there are a number of differentways to transform the data to get the same result with formula I removed thequotes from the beginning and end of the syntax and the replaced double quoteswith single quotes. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-C_l91d_Q1Ac/TrUHIE3n1EI/AAAAAAAADwM/6cyfCyZ1loE/s1600/image036.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="148" src="http://2.bp.blogspot.com/-C_l91d_Q1Ac/TrUHIE3n1EI/AAAAAAAADwM/6cyfCyZ1loE/s400/image036.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;SMARTLIST,UDA and PLAN1AGGREGATION were straight mappings where the source was trimmed.&lt;br /&gt;&lt;br /&gt;MEMBERVALIDAFORPLAN1 was a conversion from true/false to 1/0 so I reused the CONVERT_BOOLEAN function again.&lt;br /&gt;&lt;br /&gt;As there is only one plan type in the application the other columns did not require a mapping, it is dependent on how many plan types there are in an application to which target columns would need to be mapped.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6Vnf8em0Fno/TrUHIxYK32I/AAAAAAAADwQ/AA3Co3ooJLk/s1600/image037.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="6" src="http://2.bp.blogspot.com/-6Vnf8em0Fno/TrUHIxYK32I/AAAAAAAADwQ/AA3Co3ooJLk/s400/image037.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-WcOcTBXfW7A/TrUHJGIpn-I/AAAAAAAADwU/pKgLPiikRMk/s1600/image038.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://4.bp.blogspot.com/-WcOcTBXfW7A/TrUHJGIpn-I/AAAAAAAADwU/pKgLPiikRMk/s400/image038.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The differences between classic and EPMA naming conventions are the weighted averages and capitalisation; the mapping could also have been achieved using a CASE statement instead of the combination of functions I used. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-KUMKUb-biDU/TrUHJrx-8cI/AAAAAAAADwg/WZT2UVBpdwM/s1600/image039.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="6" src="http://3.bp.blogspot.com/-KUMKUb-biDU/TrUHJrx-8cI/AAAAAAAADwg/WZT2UVBpdwM/s400/image039.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-h_0sn2uUtg4/TrUHKLjEA8I/AAAAAAAADws/AqJhe8dZa8g/s1600/image040.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://2.bp.blogspot.com/-h_0sn2uUtg4/TrUHKLjEA8I/AAAAAAAADws/AqJhe8dZa8g/s400/image040.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Skip Value is a strange one in classic it is zeros and in EPMA it is Zeroes, both are correct definitions but it is just typical they would differ.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-u5iWRkF44Vc/TrUHLKXJzkI/AAAAAAAADww/pjxvY1aCr6k/s1600/image041.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="7" src="http://2.bp.blogspot.com/-u5iWRkF44Vc/TrUHLKXJzkI/AAAAAAAADww/pjxvY1aCr6k/s400/image041.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-JOT5UOUOfcI/TrUHLefdBgI/AAAAAAAADw4/tzm_uSs-TfE/s1600/image042.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="133" src="http://1.bp.blogspot.com/-JOT5UOUOfcI/TrUHLefdBgI/AAAAAAAADw4/tzm_uSs-TfE/s400/image042.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Main difference is non-expense in classic and NonExpense in EPMA but a simple CASE statement takes care of that.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--HviO0Miutw/TrUHMQ1oJ3I/AAAAAAAADw8/7wiQB-f1UG4/s1600/image043.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="7" src="http://4.bp.blogspot.com/--HviO0Miutw/TrUHMQ1oJ3I/AAAAAAAADw8/7wiQB-f1UG4/s400/image043.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ephJRgpyOYM/TrUHMh6SBkI/AAAAAAAADxI/SPPZ1dPqOhs/s1600/image044.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://4.bp.blogspot.com/-ephJRgpyOYM/TrUHMh6SBkI/AAAAAAAADxI/SPPZ1dPqOhs/s400/image044.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Very similar between classic and EPMA it is mainly just the first character that needs to be a capital in EPMA, once again the CASE statement could have been used instead of DECODE.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GCkaJCm3hx4/TrUHNEBDHFI/AAAAAAAADxM/xRoX4GDpVAU/s1600/image045.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="15" src="http://2.bp.blogspot.com/-GCkaJCm3hx4/TrUHNEBDHFI/AAAAAAAADxM/xRoX4GDpVAU/s400/image045.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Z3_SaTVipNA/TrUHNsMou3I/AAAAAAAADxY/dNuGv_L3W98/s1600/image046.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://1.bp.blogspot.com/-Z3_SaTVipNA/TrUHNsMou3I/AAAAAAAADxY/dNuGv_L3W98/s400/image046.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Only difference is the first character needs is capitalised in EPMA. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-xYebJI816J8/TrUHOH_9OGI/AAAAAAAADxk/TwcypZZ6luY/s1600/image047.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="12" src="http://4.bp.blogspot.com/-xYebJI816J8/TrUHOH_9OGI/AAAAAAAADxk/TwcypZZ6luY/s400/image047.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;In classic the source plan type is the actual name of the Plan Type but in EPMA it follows the format of Plan1, Plan2, Plan3, PlanCX, PlanWF&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-XjUbVyAVNwg/TrUHO_JPcEI/AAAAAAAADxs/6X4c7DlmugM/s1600/image048.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="328" src="http://3.bp.blogspot.com/-XjUbVyAVNwg/TrUHO_JPcEI/AAAAAAAADxs/6X4c7DlmugM/s400/image048.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As the number of records to be loaded is small then I find it perfectly fine to use LKM File to SQL instead of the more heavyweight KM’s like “LKM File to Oracle (SQLLDR)”&lt;br /&gt;&lt;br /&gt;The KM selected to load from the staging area to the interface table was “IKM SQL Control Append”, no need for flow control and I selected to truncate the table, if there was metadata in the table against a different load id then the truncate wouldn’t have been used and the records matching the current load id would need to be deleted first.&lt;br /&gt;&lt;br /&gt;That completes the Account dimension load from a file to the account interface table and the next steps are to be build interfaces for the other dimensions, I am not going to through them as the logic is pretty much the same though I will show screenshots of each of the interfaces for completeness.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Entity&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_vDyBZYzWus/TrUHP8M4a8I/AAAAAAAADxw/20tmGnb62QM/s1600/image049.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://2.bp.blogspot.com/-_vDyBZYzWus/TrUHP8M4a8I/AAAAAAAADxw/20tmGnb62QM/s400/image049.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Scenario&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-v83JGjuKPXU/TrUHQO-ilDI/AAAAAAAADx8/YkE0BpRz6r8/s1600/image050.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/-v83JGjuKPXU/TrUHQO-ilDI/AAAAAAAADx8/YkE0BpRz6r8/s400/image050.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Segments&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Olops6mG8d8/TrUHQ8ofrDI/AAAAAAAADyA/qLHrXGyttPw/s1600/image051.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://4.bp.blogspot.com/-Olops6mG8d8/TrUHQ8ofrDI/AAAAAAAADyA/qLHrXGyttPw/s400/image051.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;Version&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-X5uJ76iN04M/TrUHRfyKe0I/AAAAAAAADyI/kJ2CB7s1bkI/s1600/image052.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://4.bp.blogspot.com/-X5uJ76iN04M/TrUHRfyKe0I/AAAAAAAADyI/kJ2CB7s1bkI/s400/image052.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now to put it all together a package can be used to step through each of the interfaces.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-GfuNv1kw8ck/TrUHR_RjAfI/AAAAAAAADyQ/b4j10OFY0vA/s1600/image053.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://4.bp.blogspot.com/-GfuNv1kw8ck/TrUHR_RjAfI/AAAAAAAADyQ/b4j10OFY0vA/s400/image053.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The first step sets the load ID to a value of 1, this could actually be done at run time and instead of setting the variable it could just be declared.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-cUPRczzRj7c/TrUHSSKufaI/AAAAAAAADyU/aHb0nhMKta0/s1600/image054.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://1.bp.blogspot.com/-cUPRczzRj7c/TrUHSSKufaI/AAAAAAAADyU/aHb0nhMKta0/s320/image054.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;All the interfaces tables have successfully been populated but that is not the end just yet as the metadata has to be imported into EPMA.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-jNWnG05TagA/TrUHSlm_LOI/AAAAAAAADyk/_89CFV-94Ng/s1600/image055.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://2.bp.blogspot.com/-jNWnG05TagA/TrUHSlm_LOI/AAAAAAAADyk/_89CFV-94Ng/s320/image055.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;For now I am going too manually import the dimensions and this is done from the EPMA dimension library.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-LExDkESope8/TrUHTjgn62I/AAAAAAAADyo/BQbBfWhkzfE/s1600/image056.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://2.bp.blogspot.com/-LExDkESope8/TrUHTjgn62I/AAAAAAAADyo/BQbBfWhkzfE/s400/image056.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From the Type drop down list “Interface Tables” are selected and the profile which created in the last part of this series.&lt;br /&gt;&lt;br /&gt;The interface Load ID is also required and set to 1 as that is the number that has been used throughout this series.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&amp;nbsp;&lt;a href="http://1.bp.blogspot.com/-ZtiGATIkUa4/TrUHUHYIbII/AAAAAAAADyw/M0TJ2f6irFM/s1600/image057.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" src="http://1.bp.blogspot.com/-ZtiGATIkUa4/TrUHUHYIbII/AAAAAAAADyw/M0TJ2f6irFM/s400/image057.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So there we go all the dimensions are now populated from the interface tables, if there are any errors these will be logged in the job console. &lt;br /&gt;&lt;br /&gt;The application would then need to be deployed to push down the information to planning and essbase.&lt;br /&gt;&lt;br /&gt;In reality you wouldn’t want to manually run the import so in the next part of the series I will look at automating this process.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8996827881741482677?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8996827881741482677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8996827881741482677' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8996827881741482677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8996827881741482677'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/11/bit-later-than-planned-here-is-fourth.html' title='Loading to EPMA planning applications using interface tables - Part 4'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-DoDazV641GA/TrUGzYt_5iI/AAAAAAAADr0/s9OXfpomV8M/s72-c/image001.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-2979966582049634351</id><published>2011-10-29T06:06:00.000-07:00</published><updated>2011-10-31T00:47:49.378-07:00</updated><title type='text'>EPM 11.1.2.1 – EAS and Studio console installers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;When version 11 was released it seemed like Oracle didn’t really want to make life easier when it came to installing clients, to install the clients required a number of large foundation and product related files to be extracted.&lt;br /&gt;&lt;br /&gt;At first there was only Smart View available as a standalone installer, no Excel add-in, Financial Reporting Studio, EAS or Essbase Studio console installers were available.&lt;br /&gt;&lt;br /&gt;It wasn’t until a patch release in 11.1.1.3 that the Excel add-in was made available as a standalone installer.&lt;br /&gt;&lt;br /&gt;From 11.1.2.1 the Financial Reporting Studio was finally available with its own installer.&lt;br /&gt;&lt;br /&gt;Now I may be the last to know about this but the other day I noticed the following patch.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-B9WEkG0uutU/Tqv5Ba-pq3I/AAAAAAAADdE/qZwLBvXdkss/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://1.bp.blogspot.com/-B9WEkG0uutU/Tqv5Ba-pq3I/AAAAAAAADdE/qZwLBvXdkss/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Initially viewing patch 12978472 doesn’t provide much information as it advises to consult the Read Me file. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jSUCDLX8EnQ/Tqv5Bh5yBoI/AAAAAAAADdI/wz25ZQ_fVNw/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://4.bp.blogspot.com/-jSUCDLX8EnQ/Tqv5Bh5yBoI/AAAAAAAADdI/wz25ZQ_fVNw/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you have a look at the Read Me and defects fixed in the patch you will find that installers have been created for EAS and Essbase Studio consoles. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-0JPkaOpRwTk/Tqv5CBhAHII/AAAAAAAADdQ/wz31fYeh6Pk/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="76" src="http://4.bp.blogspot.com/-0JPkaOpRwTk/Tqv5CBhAHII/AAAAAAAADdQ/wz31fYeh6Pk/s400/image003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Download the patch and there you have it two installers are available. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZWjEruYsZNw/Tqv5CTOzsoI/AAAAAAAADdc/eRMRGMSWmpA/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://1.bp.blogspot.com/-ZWjEruYsZNw/Tqv5CTOzsoI/AAAAAAAADdc/eRMRGMSWmpA/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Just like other EPM client installers it is just a matter of running the exe and following the wizard.&lt;br /&gt;&lt;br /&gt;So if you are looking for an easier way of installing 11.1.2.1 EAS and Studio consoles then you now have this option.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-2979966582049634351?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/2979966582049634351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=2979966582049634351' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2979966582049634351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2979966582049634351'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/10/epm-11121-eas-and-studio-console.html' title='EPM 11.1.2.1 – EAS and Studio console installers'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-B9WEkG0uutU/Tqv5Ba-pq3I/AAAAAAAADdE/qZwLBvXdkss/s72-c/image001.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-6879354587819038432</id><published>2011-10-09T10:25:00.000-07:00</published><updated>2011-10-23T04:34:55.108-07:00</updated><title type='text'>Loading to EPMA planning applications using interface tables - Part 3</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the last part I went through interface tables and if you followed the blog you should now understand the requirements to load metadata to existing dimensions using them&lt;br /&gt;&lt;br /&gt;I ended up with a set of tables ready to be populated with metadata though I am not going populate them just yet as I think it is worthwhile running through an interface import profile first.&lt;br /&gt;&lt;br /&gt;An import profile provides all the required information about the dimensions and properties that are going to be imported, it defines the type of actions to take when loading members and their properties.&lt;br /&gt;&lt;br /&gt;The easiest way to understand them is to go through the steps in creating one.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PVNfeVLXdRo/TpGETQHxKaI/AAAAAAAADcY/EjSIui7seyE/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="http://4.bp.blogspot.com/-PVNfeVLXdRo/TpGETQHxKaI/AAAAAAAADcY/EjSIui7seyE/s320/image001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From within the dimension library go to &lt;b&gt;File &amp;gt; Import &amp;gt; Create Profile &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-b-iXvBWA7HU/TpGETbzipmI/AAAAAAAADcc/1rxoJoor04s/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-b-iXvBWA7HU/TpGETbzipmI/AAAAAAAADcc/1rxoJoor04s/s320/image002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A profile name is entered and the Import Type is set to “Interface Tables”.&lt;br /&gt;&lt;br /&gt;The application is set to “Shared Library” as the intention is to load to the already created Shared Dimensions, if you wanted to load directly to an application it can be selected from the dropdown.&lt;br /&gt;&lt;br /&gt;The Data Source was created in the last part and holds the connection information to the database where the interface tables are located.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7pdXZuvMOLU/TpGETzHO4dI/AAAAAAAADcg/txgAxkesFBw/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://4.bp.blogspot.com/-7pdXZuvMOLU/TpGETzHO4dI/AAAAAAAADcg/txgAxkesFBw/s320/image003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The Map Dimensions section defines the source dimensions from the interfaces tables and which dimension they will be mapped to in the Shared Library. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OieN00w4Rbw/TpGEUGW2qZI/AAAAAAAADck/ve1v6kUE12w/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="36" src="http://4.bp.blogspot.com/-OieN00w4Rbw/TpGEUGW2qZI/AAAAAAAADck/ve1v6kUE12w/s320/image004.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The source dimension information is picked up from the interface table &lt;b&gt;IM_DIMENSIONS&lt;/b&gt; and column &lt;b&gt;C_DIMENSION_NAME &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cYjeacbVnPQ/TpGEUC03m2I/AAAAAAAADco/9jIiL3pgkQQ/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-cYjeacbVnPQ/TpGEUC03m2I/AAAAAAAADco/9jIiL3pgkQQ/s1600/image005.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are a number of options under Process Type.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Merge as Primary—&lt;/b&gt;Merge as Primary processes all sections and adds new dimensions, members, relationships, properties and associations that exist in the source, but do not exist in the Shared Library or target application. No dimensions, members, relationships, properties, or associations are removed. If a dimension, relationship, member, or property specified in the source exists in the Shared Library or target application it is overwritten with the value specified in the source. Properties not included in the source are unchanged in the Shared Library or target application.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Merge as Move—&lt;/b&gt;This mode only processes members in the IsPrimary column that are set to “True” and ignores any others, so basically just looking at shared members.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Replace—&lt;/b&gt;All new elements are added and all property updates are made. Then, any members or member relationships that are not specified in the source are deleted from the Shared Library or target application. This option would be used if you wanted to rebuild the dimension hierarchy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-wdte7N_TKSo/TpGEUj39ySI/AAAAAAAADcs/OJPyodxCRsA/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-wdte7N_TKSo/TpGEUj39ySI/AAAAAAAADcs/OJPyodxCRsA/s1600/image006.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There are two options available for Reorder Type&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Merge to Top —&lt;/b&gt;Places new imported child members at the beginning of the child list under their parent.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Merge to Bottom—&lt;/b&gt;Places new imported child members at the end of the child list under their parent. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mcqrBwxPtxs/TpGEU-SdVaI/AAAAAAAADcw/i4U-nhym0nw/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-mcqrBwxPtxs/TpGEU-SdVaI/AAAAAAAADcw/i4U-nhym0nw/s1600/image007.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If &lt;b&gt;“&lt;span style="color: yellow;"&gt;Reorder Existing Members&lt;/span&gt;”&lt;/b&gt; is selected then the action depends on what has been selected in &lt;b&gt;“&lt;span style="color: yellow;"&gt;Reorder Type&lt;/span&gt;”&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;b&gt;“&lt;span style="color: yellow;"&gt;Merge to Top&lt;/span&gt;”&lt;/b&gt; is selected, the first child member in the import source becomes the first child under the parent, all imported child members are sorted to match the order in the import source, and any existing members not in the import source will be pushed to the end of the child list in their existing order.&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; If &lt;b&gt;“&lt;span style="color: yellow;"&gt;Merge to Bottom&lt;/span&gt;”&lt;/b&gt; is selected, the last child member in the import source becomes the last child under the parent, all imported child members are sorted to match the order in the import source, and any existing members not in the import source will be pushed to the beginning of the child list in their existing order.&lt;br /&gt;&lt;br /&gt;If you want a more detailed example have a look at the following section in the EPMA admin documentation – &lt;b style="color: #e69138;"&gt;&lt;a href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/epma_admin.pdf"&gt;“Reordering Existing Member Examples”&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-FRotJyokfww/TpGEVMxkf_I/AAAAAAAADc0/ZktFngdbGks/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="249" src="http://3.bp.blogspot.com/-FRotJyokfww/TpGEVMxkf_I/AAAAAAAADc0/ZktFngdbGks/s320/image008.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The &lt;b&gt;“Dimension Mapping” &lt;/b&gt;section provides the functionality to map each dimension source member property to a target member property in the Shared Library.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-HWAGVvtwamk/TpGEVWLdOtI/AAAAAAAADc4/iTtBwjEd-Qk/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-HWAGVvtwamk/TpGEVWLdOtI/AAAAAAAADc4/iTtBwjEd-Qk/s320/image009.png" width="170" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As I have created the source table columns with the same naming convention to the member properties in EPMA it is a direct mapping. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-iD-AUf51LNw/TpGEVhbaK1I/AAAAAAAADc8/IZOoJ8qlpqI/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-iD-AUf51LNw/TpGEVhbaK1I/AAAAAAAADc8/IZOoJ8qlpqI/s1600/image010.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There is another parameter that can be set for each member that defines how existing property values are dealt with.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Clear Before Importing –&lt;/b&gt; if selected values will be cleared out, therefore making values match the import source exactly. If not selected, values will be merged in with existing values and all existing values will remain.&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; Allow Overwrites with Blank&lt;/b&gt; –if the source value is blank the target property will be overwritten with the default property, so for instance if selected and there was no value in the DataStorage column the default value “StoreData” will be applied.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-7ayfMdayQWI/TpGEV2PnuXI/AAAAAAAADdA/hpaeAeUXFGM/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://4.bp.blogspot.com/-7ayfMdayQWI/TpGEV2PnuXI/AAAAAAAADdA/hpaeAeUXFGM/s320/image011.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;No need to execute the profile as there is no metadata in the hierarchy tables yet, I will be covering loading the metadata in the next instalment.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-6879354587819038432?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/6879354587819038432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=6879354587819038432' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/6879354587819038432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/6879354587819038432'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/10/loading-to-epma-planning-applications_09.html' title='Loading to EPMA planning applications using interface tables - Part 3'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-PVNfeVLXdRo/TpGETQHxKaI/AAAAAAAADcY/EjSIui7seyE/s72-c/image001.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-7874829694386025606</id><published>2011-10-02T04:11:00.000-07:00</published><updated>2011-10-02T04:11:46.034-07:00</updated><title type='text'>Loading to EPMA planning applications using interface tables – Part 2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the first part I went through an introduction to what this series is about and covered getting the core planning application created in EPMA.&lt;br /&gt;&lt;br /&gt;In this part I want to look at interface tables and end up with them built ready to load metadata into.&lt;br /&gt;&lt;br /&gt;Interface tables are basically just a set of relational staging area tables that are populated before pushing into EPMA and these can be populated from any designated source, the ultimate end game in this series of blogs is to use ODI to populate the tables and then execute the process of moving them into EPMA.&lt;br /&gt;&lt;br /&gt;The first step that needs to be undertaken is to create the interface data source and this is done in the EPM system configurator, I am not sure why this functionality is not yet available through workspace though I am sure it will be there one day.&lt;br /&gt;&lt;br /&gt;Setting up the interface data source is basically configuring the connection to the RDBMS where the tables will be held, you will need to have created a schema/database first.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-98rGKpFQFYk/TohFGn1byVI/AAAAAAAADa0/ibSnrqnEUus/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://1.bp.blogspot.com/-98rGKpFQFYk/TohFGn1byVI/AAAAAAAADa0/ibSnrqnEUus/s320/image001.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Start up the EPM System Configurator, uncheck all, expand &lt;b&gt;Foundation &amp;gt; Performance Management Architect &lt;/b&gt;and select “&lt;b&gt;Configure Interface Data Source&lt;/b&gt;”&lt;br /&gt; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-FfTeDQMLdXM/TohFGzrdLMI/AAAAAAAADa4/oNDY8esx4jw/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="139" src="http://4.bp.blogspot.com/-FfTeDQMLdXM/TohFGzrdLMI/AAAAAAAADa4/oNDY8esx4jw/s320/image002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As this is the first time configuration “&lt;b&gt;Create a New Datasource Link&lt;/b&gt;” is selected. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xd2JefLVnIY/TohFHJEUbZI/AAAAAAAADa8/Me2uHGj7BLY/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://1.bp.blogspot.com/-xd2JefLVnIY/TohFHJEUbZI/AAAAAAAADa8/Me2uHGj7BLY/s320/image003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Select the RDBMS type that is going to be used for the interface tables. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-oRq6dSCBA0w/TohFHQAgzWI/AAAAAAAADbA/hVavDuIOyLw/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://4.bp.blogspot.com/-oRq6dSCBA0w/TohFHQAgzWI/AAAAAAAADbA/hVavDuIOyLw/s320/image004.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A name for the data source is entered and this name that will be used in EPMA.&lt;br /&gt;The connection details to database are entered.&lt;br /&gt;&lt;br /&gt;Now there is the option to “&lt;b&gt;Create interface tables&lt;/b&gt;”, I have selected this option and what it does is create a set of sample interface tables.&lt;br /&gt;&lt;br /&gt;Once the interface tables have been created this is where the fear can set in.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-AwsufoAJPgo/TohFH7mpFmI/AAAAAAAADbE/QDKEVyXl3I8/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-AwsufoAJPgo/TohFH7mpFmI/AAAAAAAADbE/QDKEVyXl3I8/s320/image005.png" width="316" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As you can see a hell of a lot of tables have been created and you start to wonder whether this interface table route is going to be worth it, if you select one of the tables and view the amount of columns the fear gets worse but in the words of the great The Hitchhiker's Guide to the Galaxy “Don’t Panic!”&lt;br /&gt;&lt;br /&gt;These are a set of sample tables and are not required, the columns in the tables relate to all the possible properties across Essbase, Planning and HFM.&lt;br /&gt;&lt;br /&gt;The fact that I am initially only looking at planning and the approach I am taking is to only load metadata to dimensions which have been already created plus associations applied then honestly it is not as bad as it first looks.&lt;br /&gt;&lt;br /&gt;The set of tables that are of more value are prefixed with IM_ which are not in the list above.&lt;br /&gt;&lt;br /&gt;The rest of the tables that will be required are related to the metadata to be loaded for each dimension which I am going to manually create and will go through shortly.&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;IM_LOAD_INFO&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-uyuW3zXaWKA/TohFIGBb3AI/AAAAAAAADbI/J_LWxHi_PYs/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-uyuW3zXaWKA/TohFIGBb3AI/AAAAAAAADbI/J_LWxHi_PYs/s1600/image006.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This table basically allows grouping of metadata to be loaded, when importing dimensions in EPMA there is an option to select the interface load ID, the load ID is a numerical value.&lt;br /&gt;&lt;br /&gt;Each dimension hierarchy table (not created yet) will have a column called LOADID that will relate back to the IM_LOAD_INFO table, it will become much clearer as we progress.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-tX0QRfXI0L0/TohFIQEvetI/AAAAAAAADbM/zmU44JfNfZk/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="26" src="http://1.bp.blogspot.com/-tX0QRfXI0L0/TohFIQEvetI/AAAAAAAADbM/zmU44JfNfZk/s320/image007.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I have manually added a record to the table, it is not actually that important that the table keeps getting updated it could easily be set up once and then left alone.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;I_LOAD_ID&lt;/b&gt; – I have started out with the value of 1&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;C_SOURCE_SYSTEM&lt;/b&gt; – Anything can be entered here but as I am initially going to be loading from files I have just set it to “FLAT_FILE”, it could be there are multiple metadata loads and you could have load ID 1 loading from flat files and Load ID 2 loading from a different source such as a warehouse.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;C_USER_LAST_UPDATED&lt;/b&gt; – Once again anything can go here it all depends if you want to keep the user details.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;D_DATE_LAST_UPDATED&lt;/b&gt; – Timestamp field.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;C_LAST_UPDATE_LOGIN&lt;/b&gt; – Again anything can go here&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;IM_DIMENSION_ASSOCIATION&lt;/b&gt; – I am not going to be using this table as the dimension associations have already been applied, I may cover this at a later stage.&lt;br /&gt;&lt;b style="color: yellow;"&gt;&lt;br /&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;IM_DIMENSION&lt;/b&gt; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zNuq8KFVjPk/TohFIgEncRI/AAAAAAAADbQ/Le_MRdpShMY/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-zNuq8KFVjPk/TohFIgEncRI/AAAAAAAADbQ/Le_MRdpShMY/s1600/image008.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This table holds the information about the dimensions that are going to be loaded.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffe599;"&gt;&lt;span style="color: yellow;"&gt;I_LOAD_ID&lt;/span&gt; &lt;/b&gt;– The load ID links back to the previous table IM_LOAD_INFO, so a corresponding value would be entered for the interface load.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_DIMENSION_NAME&lt;/b&gt; – This is the name of the dimension in EPMA that is going to be loaded to.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_DIMENSION_CLASS_NAME&lt;/b&gt; – This is the dimension type e.g. Account, Entity, Generic.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ffe599;"&gt;C_MEMBER_TABLE_NAME&lt;/span&gt; – This is the name of the table that will hold the member information. I am not going to be using this column as it can be all covered in the next column.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;C_HIERARCHY_TABLE_NAME&lt;/b&gt; – This is the name of the table which will hold all the hierarchy and member information.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ffe599;"&gt;C_PROPERTY_ARRAY_TABLE_NAME&lt;/span&gt; – This is the name of the table which contains property information. I am not going to be using this column.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #ffe599;"&gt;C_DIM_PROPERTY_TABLE_NAME&lt;/span&gt; – This is the name of the table containing all the dimension property information. I am not going to be using this column.&lt;br /&gt;&lt;br /&gt;So out of all the columns I only need to populate four of them.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FJC2qsTW3eE/TohFI1o2EDI/AAAAAAAADbU/JyqHWp3_FDg/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="36" src="http://2.bp.blogspot.com/-FJC2qsTW3eE/TohFI1o2EDI/AAAAAAAADbU/JyqHWp3_FDg/s320/image009.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I have set the I_LOAD_ID to 1 to match what was set in the IM_LOAD_INFO table, so if a dimension import from interface tables is executed in EPMA against load ID 1 the required dimensions to be loaded and the tables holding the information are known.&lt;br /&gt;&lt;br /&gt;For the records in column C_HIERARCHY_TABLE_NAME I have entered table names that will hold all the hierarchy/member properties, I am going to go through the process of creating them now.&lt;br /&gt;&lt;br /&gt;It is possible to look at the &lt;b style="color: #fff2cc;"&gt;HS_&amp;lt;DIMNAME&amp;gt;_HIERARCHY&lt;/b&gt; AND &lt;b style="color: #fff2cc;"&gt;HS_&amp;lt;DIMNAME&amp;gt;_MEMBER&lt;/b&gt; sample tables and pick out the columns relating to Planning and then create a table based on them. &lt;br /&gt;&lt;br /&gt;To make it easier I have gone through each dimension that I will be loading metadata to and generated the full list of columns that can be populated, many of them don’t have to be populated just like when using other methods to load metadata to a planning application&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;VERSION&lt;/b&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pgDFfu9--E0/TohFJOYXS1I/AAAAAAAADbY/leQ8CkJjoGU/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-pgDFfu9--E0/TohFJOYXS1I/AAAAAAAADbY/leQ8CkJjoGU/s320/image010.png" width="163" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ENTITY&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tH2eSgIRz9o/TohFJaSNLzI/AAAAAAAADbc/IBl7_x_XaV8/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-tH2eSgIRz9o/TohFJaSNLzI/AAAAAAAADbc/IBl7_x_XaV8/s320/image011.png" width="154" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;SCENARIO&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-QY8_tLD7E-U/TohFJjm2OHI/AAAAAAAADbg/hxjTJKaeo1U/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-QY8_tLD7E-U/TohFJjm2OHI/AAAAAAAADbg/hxjTJKaeo1U/s320/image012.png" width="136" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;ACCOUNT&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-fpAGJGSsD4s/TohFKBuOKvI/AAAAAAAADbk/IRPhyrqez5s/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-fpAGJGSsD4s/TohFKBuOKvI/AAAAAAAADbk/IRPhyrqez5s/s320/image013.png" width="128" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;SEGMENTS&lt;/b&gt; (custom dimension = Generic dimension type in EPMA terms)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zDPeGrj_klQ/TohFKZRCwgI/AAAAAAAADbo/P5E6qUIJmMY/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-zDPeGrj_klQ/TohFKZRCwgI/AAAAAAAADbo/P5E6qUIJmMY/s320/image014.png" width="167" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The columns in each of the tables do not include any attribute related information yet, I will cover attributes and UDAs at a later stage.&lt;br /&gt;&lt;br /&gt;In the next part I was going to look at introducing ODI to populate the interface tables but I think it is worth covering off import profiles first.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-7874829694386025606?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/7874829694386025606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=7874829694386025606' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7874829694386025606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7874829694386025606'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/10/loading-to-epma-planning-applications_8223.html' title='Loading to EPMA planning applications using interface tables – Part 2'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-98rGKpFQFYk/TohFGn1byVI/AAAAAAAADa0/ibSnrqnEUus/s72-c/image001.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-7394418876614147745</id><published>2011-10-02T03:56:00.000-07:00</published><updated>2011-10-02T03:56:16.410-07:00</updated><title type='text'>Loading to EPMA planning applications using interface tables - Part 1</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In the mass of blogs I have written about using ODI with the Hyperion adaptors there is one area I have not touched upon and that is EPMA interface tables, it is true there are no knowledge modules available to make life easier when loading to EPMA type applications but by using interface tables it certainly is achievable.&lt;br /&gt;&lt;br /&gt;In the past I have tried to steer clear of this area due to the numerous problems with EPMA but overtime many of the major flaws have been addressed and I thought it was about time to cover off ODI and interface tables, I will be perfectly honest and say using ODI with classic planning applications is still definitely my preferred option and it offers much more flexibility.&lt;br /&gt;&lt;br /&gt;In this series of blogs I am going to basically try and replicate the sample planning application and use interface tables to populate metadata for a number of the dimensions, I am going to try and approach it from the angle of being used to loading to planning applications with the outline loader or ODI methods to make the transition over to EPMA a little bit smoother.&amp;nbsp; It is not going to be all about ODI in fact you could substitute the ODI part for another tool of your choice.&lt;br /&gt;&lt;br /&gt;There are a few important points to highlight before I start.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: #ffd966;"&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; It is going to be based on EPM 11.1.2.1, the concept should be similar for earlier versions but I can’t guarantee it will be exactly the same.&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; The version of ODI being used will be 11.1.1.5 but everything covered will be valid for earlier versions like 10g.&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; This is not a guide to EPMA and there will be an assumption you have used EPMA before or have a basic understanding of it but I will try and explain as much as possible as I go along.&lt;br /&gt;&lt;br /&gt;•&amp;nbsp;&amp;nbsp;&amp;nbsp; There is going to be assumption that you are familiar with the basics of ODI.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;My approach is going to be that the planning application is going to be built first and the dimensions and associations created, this is the same concept that would be undertaken if using the classic planning method as the core application would be available before loading to it. Using this approach I feel that it is much easier to grasp the concept of what is required to use interface tables.&lt;br /&gt;&lt;br /&gt;I am not sure how many parts there will be to this blog as I am going to try and spread it out and not cram too much into each session, in this first part I am really just going to get the basic core application built in EPMA.&lt;br /&gt;&lt;br /&gt;So to start with I am going to create the applications dimensions in the shared library, yes this is a manual process but it only needs to be done once and really does not take much time at all.&lt;br /&gt;&lt;br /&gt;Remember it is going to be based on the sample planning application so the dimensions created will be Account, Year, Period, Entity, Currency, Version, Scenario, Segments, Alias.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-TkeKDY6IIss/Tog8U4eekzI/AAAAAAAADYI/8oBV4jL-l1g/s1600/image001.1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="207" src="http://4.bp.blogspot.com/-TkeKDY6IIss/Tog8U4eekzI/AAAAAAAADYI/8oBV4jL-l1g/s320/image001.1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-C8vb5g3Aw1w/Tog2-umMqJI/AAAAAAAADXg/KlnpJJo3Ozg/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;I have suffixed each of the dimensions in the shared library with &lt;b&gt;“_Shared”&lt;/b&gt;, just to point out that this is not a requirement it was just my way of highlighting they are shared dimensions. The dimensions have been simply created using &lt;b&gt;File &amp;gt; New &amp;gt; Dimension&lt;/b&gt; and then entering the dimension name and type.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-eUfbUwS2PQI/Tog2-1jZeBI/AAAAAAAADXk/EmCaa91lQzg/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://3.bp.blogspot.com/-eUfbUwS2PQI/Tog2-1jZeBI/AAAAAAAADXk/EmCaa91lQzg/s320/image002.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b style="color: #ffd966;"&gt;Dimension&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Type&lt;/b&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Period_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Period&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Currency_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; Currency&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Account_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; Account&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Year_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Year&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Entity_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Entity&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Version_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Version&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Scenario_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; Scenario&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Segments_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; Generic&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #ffd966;"&gt;Alias_Shared&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Alias&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have cheated a little and manually populated the Period,Currency,Year and Alias dimensions. It is certainly possible to use interface tables to perform this step but due to the approach I am taking I need them to be available to be able to create the core sample application, also these dimensions are pretty much remain static.&lt;br /&gt;The rest of the dimensions will be populated using interface tables.&lt;br /&gt;&lt;br /&gt;The only additional steps was to create the associations (right click a dimension and select create association) for the currency dimension and between alias and all the dimensions&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KBRju9l3l4E/Tog6F85RSOI/AAAAAAAADYE/yivyB6ZwnkY/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="http://2.bp.blogspot.com/-KBRju9l3l4E/Tog6F85RSOI/AAAAAAAADYE/yivyB6ZwnkY/s320/image003.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Hopefully this should all make sense as I did point out there was going to be an assumption of a basic understanding of EPMA.&lt;br /&gt;&lt;br /&gt;On to creating the application, first of all make sure you have a relational schema/database created to hold the planning application.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;File &amp;gt; New &amp;gt; Application&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bcfcx3qnTqA/Tog2_7OP8jI/AAAAAAAADXw/tWQ3HppGS-Q/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="258" src="http://1.bp.blogspot.com/-bcfcx3qnTqA/Tog2_7OP8jI/AAAAAAAADXw/tWQ3HppGS-Q/s320/image005.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Basically I have replicated all the settings of the default sample application&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-s3mE1wjStHM/Tog3AAwDw4I/AAAAAAAADX0/1c1jK-fPjtA/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" src="http://1.bp.blogspot.com/-s3mE1wjStHM/Tog3AAwDw4I/AAAAAAAADX0/1c1jK-fPjtA/s320/image006.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;All the dimensions from the Shared Library are associated with the dimensions in the application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/--rqDPrZTIAg/Tog3AUYUleI/AAAAAAAADX4/W2B2qXELHU0/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://4.bp.blogspot.com/--rqDPrZTIAg/Tog3AUYUleI/AAAAAAAADX4/W2B2qXELHU0/s320/image007.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The properties of the sample application were replicated and then the application validated, any errors can easily to be resolved.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-zwypjuu0Ja8/Tog3Aom50dI/AAAAAAAADX8/_sIWFuMFsOk/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-zwypjuu0Ja8/Tog3Aom50dI/AAAAAAAADX8/_sIWFuMFsOk/s320/image008.png" width="283" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As “Deploy when finished” was enabled the Deploy window will display, if no Data Source has been created it can be generated at this point.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1sXuEo7SabM/Tog3BPRlkZI/AAAAAAAADYA/_DB75kaYoeY/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="146" src="http://3.bp.blogspot.com/-1sXuEo7SabM/Tog3BPRlkZI/AAAAAAAADYA/_DB75kaYoeY/s320/image009.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The application has been deployed successfully so in the next part I can move on to looking at interface tables.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-7394418876614147745?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/7394418876614147745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=7394418876614147745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7394418876614147745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7394418876614147745'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/10/loading-to-epma-planning-applications_02.html' title='Loading to EPMA planning applications using interface tables - Part 1'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-TkeKDY6IIss/Tog8U4eekzI/AAAAAAAADYI/8oBV4jL-l1g/s72-c/image001.1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-952042472583634140</id><published>2011-09-18T02:06:00.000-07:00</published><updated>2011-12-22T03:49:07.255-08:00</updated><title type='text'>Get up and running with Smart View 11.1.2.1.102</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There has been a flurry of activity on various blogs around the new patch release of Smart View 11.1.2.1.102 as at last it is starting to mirror the essbase add-in and apparently provide much more, seeing as this is the hot topic at the moment I thought I would jump&amp;nbsp; on the bangwagon and go through the steps to get you up and running with the latest version.&lt;br /&gt;&lt;br /&gt;It is not just a case of updating Smart View as the essbase server and APS need to be patched to 11.1.2.1.102 be able to use this new functionality.&lt;br /&gt;&lt;br /&gt;The readme for the patches do explain the process to follow but there are a few errors&amp;nbsp; and seeing as I am going to be carrying out the process I thought I would share it, whether it is any use to anybody who knows at least you get some nice screenshots to look at.&lt;br /&gt;&lt;br /&gt;The prerequistite to following these steps are that you are lucky enough to be currently running 11.1.2.1 and you do want to sample the new Smart View functionality.&lt;br /&gt;&lt;br /&gt;Log into &lt;a href="https://support.oracle.com/" style="color: #f1c232;"&gt;&lt;b&gt;My Oracle Support&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First to download the essbase server patch. &lt;br /&gt;Type &lt;b style="color: #f1c232;"&gt;11823697 &lt;/b&gt;in the search box and then select the patch&lt;br /&gt;&lt;br /&gt;&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FmBlobShxos/TnWr-8Bmy3I/AAAAAAAADWQ/XeO6rt_etj8/s1600/image001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="100" src="http://2.bp.blogspot.com/-FmBlobShxos/TnWr-8Bmy3I/AAAAAAAADWQ/XeO6rt_etj8/s400/image001.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;From the Platform dropdown select the OS you will be installing the patch on and then click download.&lt;br /&gt;&lt;br /&gt;The zip file will be in the following format&amp;nbsp; &lt;b style="color: yellow;"&gt;p&amp;lt;patch_id&amp;gt;_&amp;lt;coreversion&amp;gt;_&amp;lt;Plattform&amp;gt;.zip&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: yellow;"&gt;e.g. p11823697_111210_MSWIN-x86-64.zip&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Repeat the process for the APS patch - &lt;b style="color: #f1c232;"&gt;11823281&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-tz0wFlPV0N4/TnWr_KYAPlI/AAAAAAAADWU/tZxmxaOG3Vc/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="98" src="http://2.bp.blogspot.com/-tz0wFlPV0N4/TnWr_KYAPlI/AAAAAAAADWU/tZxmxaOG3Vc/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Finally repeat the process for the SmartView patch – &lt;b style="color: #f1c232;"&gt;12968304&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-l2xAz4M4wUs/TnWr_SH6OfI/AAAAAAAADWY/q-azQA2ASeI/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://4.bp.blogspot.com/-l2xAz4M4wUs/TnWr_SH6OfI/AAAAAAAADWY/q-azQA2ASeI/s400/image003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There is a newer version of Smart View available - 11.1.1.2.103 - patch - &lt;b style="color: #f1c232;"&gt;13502314 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-kVXsogMaw8U/TvMZHmstyHI/AAAAAAAAD6c/whU1nda_-iM/s1600/image018.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://3.bp.blogspot.com/-kVXsogMaw8U/TvMZHmstyHI/AAAAAAAAD6c/whU1nda_-iM/s400/image018.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I am going to be patching on a windows OS but the process is pretty much the same for unix/linux just a slight variation in the command line syntax.&lt;br /&gt;&lt;br /&gt;Patching is done by using Oracles patching utility OPatch, this is installed by default in &lt;b&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/EPMSystem11R1/OPatch&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-RULpu5I1AQY/TnWr_l7fjSI/AAAAAAAADWc/buM33EvvMnM/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="303" src="http://2.bp.blogspot.com/-RULpu5I1AQY/TnWr_l7fjSI/AAAAAAAADWc/buM33EvvMnM/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I will be patching the essbase server first.&lt;br /&gt;&lt;br /&gt;Extract the downloaded patch to the above directory on the essbase server&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-i86oGOWxw54/TnWsANyk6bI/AAAAAAAADWg/bgw90Pi-R_I/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="235" src="http://2.bp.blogspot.com/-i86oGOWxw54/TnWsANyk6bI/AAAAAAAADWg/bgw90Pi-R_I/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You should end up with a directory created to match the patch ID.&lt;br /&gt;&lt;br /&gt;Before starting the patch update make sure you stop the essbase server and then it is worthwhile backing up the following essbase directory - &lt;b&gt;&lt;br /&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\products\Essbase\EssbaseServer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;OPatch will basically copy a new set of files from within the patch directory and replace the existing ones in the essbase bin, java and localized directories.&lt;br /&gt;&lt;br /&gt;OPatch is initiated from command line and the format for windows is&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;opatch.bat apply &amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\Opatch\&amp;lt;PATCH ID&amp;gt; -oh &amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1 -jre &amp;lt;MIDDLEWARE_HOME&amp;gt;\jdk160_21&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Open a command prompt, change directory to the OPatch directory and run the above command (update &lt;b&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt; &lt;/b&gt;to match the environment and &lt;b&gt;&amp;lt;PATCH ID&amp;gt;&lt;/b&gt; to &lt;b&gt;11823697&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;For example&lt;br /&gt;&lt;b style="color: yellow;"&gt;E:&lt;br /&gt;cd E:\Oracle\Middleware\EPMSystem11R1\OPatch&lt;br /&gt;opatch.bat apply E:\Oracle\Middleware\EPMSystem11R1\OPatch\11823697 -oh E:\Oracle\Middleware\EPMSystem11R1 -jre E:\Oracle\Middleware\jdk160_21&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Executing the command should output something like the following&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jRzBV3dSL8o/TnWsAXD-faI/AAAAAAAADWk/ibyOeepGWSw/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://4.bp.blogspot.com/-jRzBV3dSL8o/TnWsAXD-faI/AAAAAAAADWk/ibyOeepGWSw/s400/image006.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And then list all the files that are being copied, I am not going to screenshot all the lines.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-QbVY6mJx9Z4/TnWsAs8acwI/AAAAAAAADWo/whoAU2tEY84/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="97" src="http://4.bp.blogspot.com/-QbVY6mJx9Z4/TnWsAs8acwI/AAAAAAAADWo/whoAU2tEY84/s400/image007.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The important information is at the end of the output&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6pkenB3WGm4/TnWsA2t_lLI/AAAAAAAADWs/0IAO6GEFTS4/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="72" src="http://4.bp.blogspot.com/-6pkenB3WGm4/TnWsA2t_lLI/AAAAAAAADWs/0IAO6GEFTS4/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;If you see the above in the command window then all is good and the patching is done.&lt;br /&gt;&lt;br /&gt;To view which EPM patches have been applied on the server through OPatch you can use the following command.&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;opatch.bat lsinventory -oh &amp;lt;MIDDLEWARE_HOME&amp;gt;&amp;nbsp; -jdk &amp;lt;MIDDLEWARE_HOME&amp;gt;\ jdk160_21&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-4TKhTupDbnA/TnWsBbKu9xI/AAAAAAAADWw/9rUVVvlCiwM/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="190" src="http://4.bp.blogspot.com/-4TKhTupDbnA/TnWsBbKu9xI/AAAAAAAADWw/9rUVVvlCiwM/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once the patching is complete start up essbase.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-D-T3yJ8zt94/TnWsBkyz4LI/AAAAAAAADW0/ku2Zbz_cS_A/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="112" src="http://2.bp.blogspot.com/-D-T3yJ8zt94/TnWsBkyz4LI/AAAAAAAADW0/ku2Zbz_cS_A/s400/image010.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Open a Maxl session and you should the patch &lt;b&gt;.102&lt;/b&gt; in ESB&lt;b&gt;11.1.2.1.102&lt;/b&gt;B147&lt;br /&gt;&lt;br /&gt;Login to make sure all is good.&lt;br /&gt;&lt;br /&gt;Now that essbase is done you can move on to APS, the process for patching is pretty much the same so I won’t go into as much detail.&lt;br /&gt;&lt;br /&gt;It is worth backing up &lt;b&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\products\Essbase\aps&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Stop the APS service, you may also need to stop other services depending on what other EPM products are deployed on the APS server.&lt;br /&gt;&lt;br /&gt;Extract the downloaded patch to the Opatch directory on the server hosting APS&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hb1Mn1-ljBQ/TnWsCCe0AYI/AAAAAAAADW4/FjLGj_uavLg/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-hb1Mn1-ljBQ/TnWsCCe0AYI/AAAAAAAADW4/FjLGj_uavLg/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The patch id for the extracted directory is incorrect as it should be &lt;b&gt;11823281 &lt;/b&gt;and not &lt;b&gt;194&lt;/b&gt;, rename the directory to &lt;b&gt;11823281&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xlOAgJgZk4M/TnWsCa55ZaI/AAAAAAAADW8/6dedPsRH04k/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="86" src="http://2.bp.blogspot.com/-xlOAgJgZk4M/TnWsCa55ZaI/AAAAAAAADW8/6dedPsRH04k/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once again the OPatch utility is executed again following the same syntax logic as with the essbase patch.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lMT4PDoM9tY/TnWsCqDpZoI/AAAAAAAADXA/EWY3WYEUlkU/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://4.bp.blogspot.com/-lMT4PDoM9tY/TnWsCqDpZoI/AAAAAAAADXA/EWY3WYEUlkU/s400/image013.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The patching is complete and the APS service can be started up again.&lt;br /&gt;&lt;br /&gt;Now I am not going to go through the step to install SmartView directly on a client as it involves extracting and running an executable and then following on the screen information.&lt;br /&gt;&lt;br /&gt;If you are running on windows 7 please make sure you run the SmartView.exe as an administrator.&lt;br /&gt;&lt;br /&gt;If you want the new version of Smart View to be available from workspace then extract SmartView.exe and version.xml from to the patch to &lt;b style="color: yellow;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\common\epmstatic\wspace\SmartView&lt;/b&gt; on the server hosting workspace&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9n1yBWIImcY/TnWsC7_w2vI/AAAAAAAADXE/pdcGXP3qPu4/s1600/image014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="147" src="http://3.bp.blogspot.com/-9n1yBWIImcY/TnWsC7_w2vI/AAAAAAAADXE/pdcGXP3qPu4/s400/image014.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Extract the online documents from smartview-user.zip to &lt;b style="color: yellow;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\common\epmstatic\smartview\docs\&amp;lt;language&amp;gt;&lt;/b&gt;&lt;br /&gt;e.g. &lt;b&gt;c:\Oracle\Middleware\EPMSystem11R1\common\epmstatic\smartview\docs\en&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-xkb-Ai-Y1lU/TnWsDSN3jTI/AAAAAAAADXI/ICXYMqi5sIs/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="127" src="http://3.bp.blogspot.com/-xkb-Ai-Y1lU/TnWsDSN3jTI/AAAAAAAADXI/ICXYMqi5sIs/s400/image015.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The new version should be available from workspace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you want to be able auto-deploy the latest version of Smart View when connecting from an existing version of Smart View then &lt;br /&gt;&lt;br /&gt;edit &lt;b&gt;essbase.properties&lt;/b&gt; on the APS server in &lt;b style="color: yellow;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\epmsystem1\aps\bin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Zf1U8jBASvY/TnWsDogwzII/AAAAAAAADXM/OWRPILYi1DU/s1600/image016.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="336" src="http://2.bp.blogspot.com/-Zf1U8jBASvY/TnWsDogwzII/AAAAAAAADXM/OWRPILYi1DU/s400/image016.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Update &lt;br /&gt;&lt;b style="color: yellow;"&gt;smartview.webservice.autodeploy.force=false&lt;br /&gt;smartview.webservice.autodeploy.warn=false&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;To&lt;br /&gt;smartview.webservice.autodeploy.force=true &lt;br /&gt;smartview.webservice.autodeploy.warn=true&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Save the file and then restart the APS web application.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-x0f25xpRqBg/TnWsEM-HI6I/AAAAAAAADXQ/y6g3j7_9nSs/s1600/image017.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://1.bp.blogspot.com/-x0f25xpRqBg/TnWsEM-HI6I/AAAAAAAADXQ/y6g3j7_9nSs/s400/image017.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Connect in excel&amp;nbsp; and the new client version available window should pop up, click “&lt;b&gt;Click here to Install&lt;/b&gt;”, choose run, close all MS Office software and then follow the on screen instructions.&lt;br /&gt;&lt;br /&gt;You should then be ready to use the new functionality; the details on the new functionality can be found within the patch in the document &lt;b&gt;sv_new_features.pdf&lt;/b&gt; or have a read of &lt;a href="http://glennschwartzbergs-essbase-blog.blogspot.com/2011/09/smartview-enhancements.html"&gt;Glenn’s excellent article&lt;/a&gt; or the &lt;a href="http://www.oracle.com/technetwork/middleware/smart-view-for-office/tutorials/index.html"&gt;Oracle by Example&lt;/a&gt; on the new features.&lt;br /&gt;&lt;br /&gt;Go forth and enjoy!!!!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-952042472583634140?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/952042472583634140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=952042472583634140' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/952042472583634140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/952042472583634140'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/09/get-up-and-running-with-smartview.html' title='Get up and running with Smart View 11.1.2.1.102'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-FmBlobShxos/TnWr-8Bmy3I/AAAAAAAADWQ/XeO6rt_etj8/s72-c/image001.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-3199601367126266362</id><published>2011-09-16T05:21:00.000-07:00</published><updated>2011-12-04T07:09:50.032-08:00</updated><title type='text'>ODI Series – Issues with 11.1.1.5 and the Hyperion knowledge modules</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Recently on the ODI forum an issue was brought to my attention when using 11.1.1.5, Hyperion planning and the staging area set to the memory engine. Now I have used ODI 11.1.1.3 with the Hyperion knowledge modules and not really experienced any major issues but I have not had the opportunity to test them out on 11.1.1.5&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;In the support matrix for 11.1.1.5 it says the modules are certified for 11.1.1.3+&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-N7B0xAdMT-U/TnM6rCFVSFI/AAAAAAAADVg/d1npLQqBm-8/s1600/image001.png" /&gt;&lt;/div&gt;&lt;br /&gt;Considering most of the technologies say 11.1.1.3+ I assuming that means 11.1.1.5 should be supported for the Hyperion set.&lt;br /&gt;&lt;br /&gt;The issue with loading planning metadata using the memory engine as the staging area can easily be replicated.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-bDEZEfvpF5E/TnM6rY58A_I/AAAAAAAADVk/E4It4PrQLtw/s1600/image002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="http://3.bp.blogspot.com/-bDEZEfvpF5E/TnM6rY58A_I/AAAAAAAADVk/E4It4PrQLtw/s400/image002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A simple interface is created loading one record from a flat file source a dimension in planning, it doesn’t really matter which dimension it is as issue occurs across them all.&lt;br /&gt;The equivalent interface definitely works on 11.1.1.3&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QA3L4G81Vno/TnM6rjkrCDI/AAAAAAAADVo/k4JycJzA4P4/s1600/image003.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="263" src="http://2.bp.blogspot.com/-QA3L4G81Vno/TnM6rjkrCDI/AAAAAAAADVo/k4JycJzA4P4/s400/image003.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The staging area is set to use the Memory Engine.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-rfI3yHZzrpU/TnM6r4mPXTI/AAAAAAAADVs/Bn8MSyICoFA/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://2.bp.blogspot.com/-rfI3yHZzrpU/TnM6r4mPXTI/AAAAAAAADVs/Bn8MSyICoFA/s400/image004.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The error generated is &lt;br /&gt;&lt;br /&gt;&lt;b style="color: yellow;"&gt;com.hyperion.odi.planning.ODIPlanningException: com.hyperion.odi.planning.ODIPlanningException: The source result set contains column [C1_ACCOUNT] which has no corresponding column on the planning side. &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For some reason "C1_ACCOUNT" is being passed to planning instead of "Account"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-A0Mm0Y_gzWI/TnM6sOc--xI/AAAAAAAADVw/sgf771tdL-I/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://1.bp.blogspot.com/-A0Mm0Y_gzWI/TnM6sOc--xI/AAAAAAAADVw/sgf771tdL-I/s400/image005.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The code generated is same as on previous versions and querying the memory engine seems to return the correct results.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-4eCrm6i3q0g/TnM7jMTwkhI/AAAAAAAADWM/avvXCtzyrew/s1600/image012.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="131" src="http://4.bp.blogspot.com/-4eCrm6i3q0g/TnM7jMTwkhI/AAAAAAAADWM/avvXCtzyrew/s400/image012.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-UpJkMhbO7XQ/TnM6sWJCBRI/AAAAAAAADV0/WJe46HETNnE/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;I think the issue does lie with the memory engine as changing the staging area to another rdbms technology such as Oracle allows for the successful execution of the interface. &lt;br /&gt;&lt;br /&gt;So there is a workaround to the issue but if you are considering moving to 11.1.1.5 and currently use the memory engine in planning interfaces it is one to watch out for until a fix arrives.&lt;br /&gt;&lt;br /&gt;While I had the chance I thought I would just test out a metadata load to essbase to see if there were any issues.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DgUQfjgW0n4/TnM6siMBGvI/AAAAAAAADV4/dEDXdQlN-z8/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Nj5nQ1-aIBM/TnM6s6n6pyI/AAAAAAAADV8/GWuiaKWSkNw/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="115" src="http://1.bp.blogspot.com/-Nj5nQ1-aIBM/TnM6s6n6pyI/AAAAAAAADV8/GWuiaKWSkNw/s400/image008.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Once again a simple interface was created to load one record of metadata to an essbase database; the interface was tested on 11.1.1.3 and then recreated using 11.1.1.5&lt;br /&gt;&lt;br /&gt;The only difference with 11.1.1.5 is it looks to includes patches that I wrote about &lt;a href="http://john-goodwin.blogspot.com/2011/06/odi-series-essbase-related-bug-fixes.html"&gt;&lt;b&gt;here &lt;/b&gt;&lt;/a&gt;for 10g which provide an extra column for sortid.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-07WoT-zDJWc/TnM6tGbs2XI/AAAAAAAADWA/pCSNhWkbg48/s1600/image009.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="221" src="http://1.bp.blogspot.com/-07WoT-zDJWc/TnM6tGbs2XI/AAAAAAAADWA/pCSNhWkbg48/s400/image009.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Executing the interface on 11.1.1.5 generates and a Java related error and causes the interface to fail.&lt;br /&gt;&lt;br /&gt;I thought maybe it was down the ODI installation so I tested out on a different 11.1.1.5 install and the same problem exists, so either I am really unlucky which could easily be the case or there is definitely a problem (if anybody else has tried this and doesn’t see the issue then let me know)&lt;br /&gt;&lt;br /&gt;It is also worth pointing out this issue is only with loading metadata, loading data and extracting metadata still works without any issues.&lt;br /&gt;&lt;br /&gt;As the error points towards to an issue with java files that the modules use I thought I would look into replacing them with ones from another version.&lt;br /&gt;&lt;br /&gt;I decided to go with ones from 10.1.3.6.8 as these contain the fixes that include the sort id and are newer than ones in the 11.1.1.3 version.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WxZtZXn_jik/TnM6tnuNMYI/AAAAAAAADWE/-fYfLqV4I7M/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="93" src="http://2.bp.blogspot.com/-WxZtZXn_jik/TnM6tnuNMYI/AAAAAAAADWE/-fYfLqV4I7M/s400/image010.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The files replaced were odihapp_common.jar and odihapp_essbase.jar though it should be possible just to replace odihapp_essbase.jar.&lt;br /&gt;&lt;br /&gt;If you look at the file size the 10.1.3.6.8 ones are bigger so I assuming contains additional code.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-n-rQVAqYd2g/TnM6t2lW_hI/AAAAAAAADWI/YSG67_P-X4s/s1600/image011.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="316" src="http://3.bp.blogspot.com/-n-rQVAqYd2g/TnM6t2lW_hI/AAAAAAAADWI/YSG67_P-X4s/s400/image011.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;After replacing the jar files the same interface executes without any issues so it does look like a problem with the java files released with 11.1.1.5&lt;br /&gt;&lt;br /&gt;Also make sure you import the KM - "&lt;b&gt;LKM Hyperion Essbase METADATA to SQL&lt;/b&gt;" from the 10.1.3.6.8 release as it contains required extra code otherwise you will receive an error while extracting metadata from essbase.&lt;br /&gt;&lt;br /&gt;I know this is not the official way of going about things but at least the essbase interfaces successfully complete and is a workaround if you are also experiencing the same issue until an official fix from Oracle comes along.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-3199601367126266362?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/3199601367126266362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=3199601367126266362' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/3199601367126266362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/3199601367126266362'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/09/odi-series-issues-with-11115-and.html' title='ODI Series – Issues with 11.1.1.5 and the Hyperion knowledge modules'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-N7B0xAdMT-U/TnM6rCFVSFI/AAAAAAAADVg/d1npLQqBm-8/s72-c/image001.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-5302124644171869610</id><published>2011-08-29T02:07:00.000-07:00</published><updated>2011-12-31T11:10:25.211-08:00</updated><title type='text'>ODI Series - Summary</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I thought I would take this opportunity to put together a full list of links to all the ODI related blogs I have written, as I try to cover all areas of EPM I feel the ODI ones are becoming fragmented and it is worth putting together a summary page that can be used as a start point and one that I will update in the future as and when I cover ODI subject areas.&lt;br /&gt;&lt;br /&gt;This is probably one of the few posts that I don’t have to spend hours taking screen shots and uploading them.&lt;br /&gt;&lt;br /&gt;Many of the earlier posts were based on ODI 10g but to be honest the concept still holds true in 11g and they still can be used as a reference point, I know I still use them because I have not had the chance use ODI as much as I would like lately and with my failing memory when I do use it I need to try and remember how I went about it.&lt;br /&gt;&lt;br /&gt;No point in babbling on but if you feel I have not covered an area or you have some ideas for articles then just get in touch, there have been quite a few posts that I have written due to being contacted one way or another.&lt;br /&gt;&lt;br /&gt;So here is the table of contents for the ODI series.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/09/odi-series-part-1.html" style="color: #ffcc33;"&gt;&lt;span style="font-weight: bold;"&gt;ODI Series Part 1&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #ffcc33;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Introduction and installation of ODI, this was based on 10g. If you are looking to install 11g then there are a number of different blogs that have covered off the installation.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/09/odi-series-part-2-agent.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series Part 2 - The Agent&lt;/a&gt;&lt;span style="color: #ffcc33; font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers the configuration of an agent on 10g, the concept is similar if configuring a standalone agent of 11g the main difference is if running on windows then the method to run the agent as a service has changed as it can be controlled by using OPMN which I covered &lt;a href="http://john-goodwin.blogspot.com/2010/12/managing-odi-11g-standalone-agents.html"&gt;&lt;span style="color: #ffcc33; font-weight: bold;"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/09/odi-series-part-3-configuration.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series Part 3 - The configuration continues&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A run through of the topology manager and the configuration for using flat files, rdbms, essbase and planning.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/09/odi-series-4-enter-designer.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series 4 - Enter the Designer&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An introduction to the designer and process to building an interface to load metadata from a flat file to a planning application. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-series-part-5-sql-to-planning.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series Part 5 - SQL to Planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers the process for loading planning metadata from an rdbms source.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-series-part-6-data-load-to-planning.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series Part 6 - Data load to planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;How to load data through the planning layer.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-getting-text-data-into-planning.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI - Getting text data into planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An alternative solution and not the official method to load text data into planning, I am sure at the time of writing the blog this was the only method but I know in subsequent releases of ODI and planning then loading text data can easily be achieved by using the adaptor.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/12/planning-loading-text-member-data.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI - Loading text member data to planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Part of this blog covers the direct method of loading text member data to planning, I believe this is only possible from planning 11.1.1.3+&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-planning-brief-look-into-file.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI &amp;amp; Planning - Brief look into file manipulation&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;As requested an introduction to manipulating metadata from a flat file source and loading into planning.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/11/odi-series-planning-and-multiple-udas.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Planning and multiple UDAs&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;How to load multiple UDAs  into a planning application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/09/odi-series-handling-errors-with.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Handling errors with Planning/Essbase loads&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A run through of a few possible methods of proactively taking actions if there are errors in Planning/Essbase loads.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/10/odi-series-planning-11113-enhancements.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Planning 11.1.1.3 enhancements&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An overview of the list of enhancements when using Planning 11.1.1.3 or later with ODI.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/11/odi-series-planning-11113-enhancements.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Planning 11.1.1.3 enhancements continued&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;There wasn’t enough time to go through all the enhancements in the first instalment so in this part I go through the remaining ones.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/01/odi-series-renaming-planning-members.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Renaming planning members&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;&lt;span style="color: #ffff33;"&gt;There is currently no direct method of renaming planning members using the adaptor so in this post I go through a possible solution to achieve the rena&lt;/span&gt;ming.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/08/odi-series-deleting-planning-members.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Deleting planning members&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Step by step process overview for deleting planning members and some of the issues that may be faced.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/03/odi-series-when-is-planning-refresh-not.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - When is a planning refresh not a refresh&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Even though an interface may have completed successfully in the Operator there may be a possible issue with the planning refresh which I highlight and give a possible solution to the issue.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/07/planning-1112-additional-odi.html" style="color: #ffcc33; font-weight: bold;"&gt;Planning 11.1.2 - additional ODI functionality mixed in with a helping of ODI 11G&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A look at the additional features available when using Planning 11.1.2+ and ODI.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/04/odi-question-on-loading-planning-smart.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI - Question on loading planning Smart List data directly into essbase&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers an alternative way to load smart list data by loading directly to essbase instead of going through the planning later.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/05/odi-series-loading-smart-list-data-into.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading Smart List data into planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;The official way of loading smart list data by loading through the planning layer.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/11/odi-series-loading-essbase-metadata.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading Essbase Metadata&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Loading metadata from a flat file source into an essbase database.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/11/odi-series-loading-data-into-essbase.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading data into essbase&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;The title pretty much describes the post which is all about loading data into an essbase database.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/12/odi-series-extracting-data-from-essbase.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Extracting data from essbase&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covering the three different methods to extract data from essbase databases.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-series-essbase-outline-extractor.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Essbase Outline Extractor&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers the process of extracting metadata from an essbase database.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-essbase-challenge-extracting.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI / Essbase challenge - Extracting alternate alias member information&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;At the time of writing this post there was no method to extract alternate alias member information using the essbase adaptor, I cover a method of customising the adaptor code to make it achievable. The code that I developed was later used by Oracle and a patch release of ODI made it possible to extract the information, I covered the patch here.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/11/odi-series-loading-sql-metadata-and-its.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading SQL Metadata into essbase and its problems&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A run through of an issue that was highlighted on the Oracle forums when loading essbase metadata from an rdbms source and changing the IKM rules separator options to values other than the default comma.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/11/odi-series-extracting-essbase-formula.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Extracting essbase formula issue&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Highlights and provides a solution to an issue that maybe encountered extracting essbase member formulas that span over multiple lines.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/12/odi-series-essbase-to-planning.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Essbase to Planning&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;As there is currently no adaptor which allows the extraction of metadata from planning I go through one method to get around and this and extract the information from an essbase database and then transform and load into a planning application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/11/odi-series-deleting-essbase-members.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Deleting essbase members part 1&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;First of a three part series  on deleting essbase members, this part goes through the standard method of using the remove unspecified option in a load rule.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/11/odi-series-deleting-essbase-members_27.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Deleting essbase members part 2&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;In this second part I go through a method to delete members where the source file only contains the members that need to be removed.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/01/odi-series-deleting-essbase-members.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Deleting essbase members part 3&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;In the final part I use a combination of Jython, essbase Java API and a customised KM to delete members based on members supplied from a source file.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/01/odi-series-renaming-essbase-members.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Renaming essbase members&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Based on the final part of the deleting essbase members, modifications to the Java code allow for renaming members based on a source containing the original and new member names.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/Part%201%20-%20http://john-goodwin.blogspot.com/2009/02/odi-series-essbaseplanning-automating.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Essbase/Planning - Automating changes in data&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Using Change Data Capture (CDC) and the simple journalizing method to automate the process of loading data into an essbase database.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/03/odi-series-essbaseplanning-automating.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Essbase/Planning - Automating changes in data - Part 2&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Using Change Data Capture (CDC) and the consistent set journalizing method to automate the process of loading metadata to a planning application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2008/12/odi-release-updates.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Release Update&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Highlights important patch updates to fix bugs with the essbase adaptors, please note this was 10.1.3.4.7_01 so no doubt you are already running a newer release than that.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/08/odi-series-patch-update-essbase-data.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Patch Update - Essbase data load issue resolved&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A review of a patch released to fix a bug with loading data to essbase.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/09/odi-series-problem-with-latest-essbase.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Problem with latest essbase patch release&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;The patch released to fix a bug with loading data to essbase did fix the original issue but now generates a new bug which I log with Oracle.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/12/odi-patch-update-101355.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Patch Update - 10.1.3.5.5&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A patch is released that finally does fix the issues with loading data to essbase.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/06/odi-series-essbase-related-bug-fixes.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Essbase related bug fixes&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A delve into  a couple of essbase related bug fixes, one of them is based around the order of members when extracting essbase metadata and the other allowing to extract alias information not only from the default table.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://john-goodwin.blogspot.com/2011/09/odi-series-issues-with-11115-and.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Issues with 11.1.1.5 and the Hyperion knowledge modules&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A look at a couple of issues relating to 11.1.1.5 and loading metadata to essbase and loading metadata to planning using memory engine as the staging area.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/02/odi-series-will-real-odi-hfm-blog.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Will the real ODI-HFM blog please stand up&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers the configuration required to start using the HFM adaptor,  some of the errors that may be encounter and finally successfully  reversing a HFM application.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/02/odi-series-loading-hfm-metadata.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading HFM metadata&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An overview of the knowledge modules available for HFM and then a  step by step process to load metadata to a HFM application from a flat  file source.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/03/odi-series-loading-hfm-data.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Loading HFM data&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Step by step process to load data to HFM and a description of each of the IKM options available.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/04/odi-series-extracting-data-from-hfm.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Extracting data from HFM&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Overview of how to extract data from HFM and a description of the KM options available.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/01/odi-series-putting-it-all-together.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Putting it all together&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;So you have a number of interfaces, procedures, variables and you are looking to automate your processes, this post covers putting it all together with the use of a package.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/01/odi-series-few-extra-tips.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - A few extra tips&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Covers loading multiple UDAs to an essbase database and how to sum up flat file source data when loading through the planning layer and not direct to essbase.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/01/odi-series-final-installment.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - The final instalment&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Definitely not the final instalment of the ODI series and in this post I go through generating scenarios and scheduling them in the Operator, I also go through how to execute a scenario using the Java SDK in 10g.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/03/odi-series-excel-functionality.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Excel functionality&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A look at the process of extracting data from an excel file and loading into a relational table.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/03/odi-series-reversing-collection-of.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Reversing a collection of files from an excel template&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An overview of using the Knowledge module “RKM File (FROM Excel” , this RKM provides the ability to reverse files and maintain the structure definition based on the information held in an excel template.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/04/odi-series-web-services.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Web Services&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;In the first of a four part series looking at Web Services in 10g I go through setting up Axis2 and how to upload the ODI public web service to it, this allows the use of the OdiInvoke service and its five operations with one of them being the execution of scenarios using a SOAP request.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/04/odi-series-web-services-part-2.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Web Services Part 2&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Using Java to interact directly with the ODI web services.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/05/odi-series-web-services-part-3.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Web Services Part 3&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Step by Step configuration of Data Services and an example of how they could be used to load data to essbase.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/05/odi-series-web-services-part-4.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Web Services Part 4&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A look at the ODI tool - ODIInvokeWebService and putting it to practice by invoking EPMA web services.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/06/odi-series-processing-all-files-in.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Processing all files in a directory&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Step through of a method to process all files in a directory and load them to a target relational table.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/06/odi-series-quick-look-at-user-functions.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Quick look at user functions&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Ever wondered what are user functions and how to use them, if so have a read of this post.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/07/odi-series-executing-hyperion-business.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Executing Hyperion Business Rules&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;An in-depth look at using ODI to execute business rules.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/08/odi-series-executing-hyperion-business.html" style="color: #ffcc33; font-weight: bold;"&gt;ODI Series - Executing Hyperion Business Rules Part 2&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;If part 1 didn’t satisfy you then in this part I go through another method to execute business rules by customising a knowledge module and using Jython&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2009/09/using-lifecycle-management-lcm-with-odi.html" style="color: #ffcc33; font-weight: bold;"&gt;Using Lifecycle Management (LCM) with ODI&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;A look at the possibilities of using ODI and LCM, in the example I go through the loading Cell Text to Planning&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a href="http://john-goodwin.blogspot.com/2010/12/managing-odi-11g-standalone-agents.html" style="color: #ffcc33; font-weight: bold;"&gt;Managing ODI 11g standalone agents using OPMN with EPM 11.1.2&lt;/a&gt;&lt;br /&gt;&lt;ul style="color: #ffff33;"&gt;&lt;li&gt;Step by step process of configuring a standalone agent to be controlled by OPMN, the agent is configured on an EPM hosted environment.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;If you are looking for all other areas of ODI not covered here then I can recommend these excellent blogs -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://odiexperts.com/" style="color: #ffcc33; font-weight: bold;"&gt;ODI Experts&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.business-intelligence-quotient.com/?author=2" style="color: #ffcc33; font-weight: bold;"&gt;BI-Quotient&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.oracle.com/dataintegration/" style="color: #ffcc33; font-weight: bold;"&gt;Data Integration&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Still can't find what you are looking for or need help then the ODI forum is your next stop&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://forums.oracle.com/forums/forum.jspa?forumID=374" style="color: #ffcc33; font-weight: bold;"&gt;ODI Forum&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-5302124644171869610?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/5302124644171869610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=5302124644171869610' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5302124644171869610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5302124644171869610'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/08/odi-series-summary.html' title='ODI Series - Summary'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-1940213923496380121</id><published>2011-08-14T11:41:00.001-07:00</published><updated>2011-08-14T12:55:06.253-07:00</updated><title type='text'>ODI Series - Deleting planning members</title><content type='html'>I have been asked numerous times lately how to delete planning members using ODI, I did cover loading planning metadata way back in one of my early &lt;a style="font-weight: bold;" href="http://john-goodwin.blogspot.com/2008/09/odi-series-4-enter-designer.html"&gt;blogs&lt;/a&gt; but have never covered deleting and even though it is quite similar to loading metadata I thought I may as well go through the steps and highlight some errors that may be encountered, it also stops me having to repeatedly explain the process and I will be able to be lazy in future and just provide the link to this post.&lt;br /&gt;&lt;br /&gt;The process may have been covered elsewhere on the internet but I wanted to make sure the series I have wrote is complete.&lt;br /&gt;&lt;br /&gt;If you have experience using the Hyperion planning adaptor with ODI then this post will probably be of no benefit to you as it is aimed at beginners.&lt;br /&gt;&lt;br /&gt;There are going to be some assumptions though before starting.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;•    The planning application is of the classic type and not EPMA.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;•    The required Knowledge modules have been imported &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;  (source and target “&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;IKM SQL to Hyperion Planning&lt;/span&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;”)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;•    The planning application has been reversed into a model and Datastores using the KM &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;  - “&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;RKM – Hyperion Planning&lt;/span&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;•    The source Datastore containing the members to be deleted has been created whether it be a file or a relational table.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you don’t know how to do the above then it is worth reading through the &lt;a style="font-weight: bold;" href="http://john-goodwin.blogspot.com/2008/09/odi-series-4-enter-designer.html"&gt;here&lt;/a&gt; and &lt;a style="font-weight: bold;" href="http://john-goodwin.blogspot.com/2008/10/odi-series-part-5-sql-to-planning.html"&gt;here&lt;/a&gt; as I cover off the basics that you need to know to get you up and running, I didn’t think there was any point in going over it again.&lt;br /&gt;&lt;br /&gt;I will be going through the steps using ODI 11g but the principals are exactly the same in 10g.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-LgJzv3w-YXo/TkgXxOupWyI/AAAAAAAADUo/gALphCwrPRE/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 206px; height: 400px;" src="http://4.bp.blogspot.com/-LgJzv3w-YXo/TkgXxOupWyI/AAAAAAAADUo/gALphCwrPRE/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5640784667816319778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you take a look at a reversed planning applications model and then expand any dimension Datastore you will notice a column called “&lt;span style="font-weight: bold;"&gt;Operation&lt;/span&gt;”, now if you have only ever loaded metadata then there is a distinct possibility that you have ignored the column as when the column is left blank during an execution of an interface the default value is used and this is “&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;”.&lt;br /&gt;&lt;br /&gt;If you want to delete members then this column becomes far more important as there are a number of different values that can be set depending on the type of deletion.&lt;br /&gt;&lt;br /&gt;The types of delete operations available are&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;•    Delete Level 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;•    Delete Descendants&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;•    Delete Idescendants&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These operations may seem very obvious to what they can achieve but I will go through each one of them so that is clear.&lt;br /&gt;&lt;br /&gt;Before I go through them it is worth highlighting I am going to use the planning sample application and the members deleted are all going to be from the Segments dimension.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-9Nv6BGzlkaA/TkgXw27K2TI/AAAAAAAADUg/J_pA2r4xgeg/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 299px;" src="http://4.bp.blogspot.com/-9Nv6BGzlkaA/TkgXw27K2TI/AAAAAAAADUg/J_pA2r4xgeg/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5640784661426395442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first of the operations is “&lt;span style="font-weight: bold;"&gt;Delete Level 0&lt;/span&gt;”, using this operation will delete a member if is a base level member so basically it means if it has no children then it will be deleted.&lt;br /&gt;&lt;br /&gt;To start with I need to have a list of level 0 members I want to delete in the source.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-cb1oMzla76A/TkgXw4oZ7sI/AAAAAAAADUY/bQDMuVv_QZA/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 158px;" src="http://3.bp.blogspot.com/-cb1oMzla76A/TkgXw4oZ7sI/AAAAAAAADUY/bQDMuVv_QZA/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5640784661884563138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The source technology for the deletions is Oracle, if you are intending of using a flat file as the source then the process is exactly the same.&lt;br /&gt;&lt;br /&gt;I have created a model and reversed a table called “&lt;span style="font-weight: bold;"&gt;DEL_MEMBERS&lt;/span&gt;”, the table has one column called “&lt;span style="font-weight: bold;"&gt;MEMBER&lt;/span&gt;” which contains the members to be deleted, as I mentioned earlier I am assuming you have already set up your source Datastore but if you are confused and don’t know how to then have a read &lt;a href="http://john-goodwin.blogspot.com/2008/09/odi-series-4-enter-designer.html"&gt;&lt;span style="font-weight: bold;"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In the table there are two records “&lt;span style="font-weight: bold;"&gt;IPOD304&lt;/span&gt;” and “&lt;span style="font-weight: bold;"&gt;MP3&lt;/span&gt;” and if you look at the hierarchy above you will see both these members are level 0.&lt;br /&gt;&lt;br /&gt;The source and target are ready so this means we can create an interface which will process the source records and attempt to delete what is contained in those records from the planning applications target dimension.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-vdg5Nh-mXYU/TkgXwmPhA_I/AAAAAAAADUQ/X1de-lGGocw/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 154px;" src="http://2.bp.blogspot.com/-vdg5Nh-mXYU/TkgXwmPhA_I/AAAAAAAADUQ/X1de-lGGocw/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5640784656948331506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When creating an interface you will need to set the staging area to be different from the target as planning  has no SQL capabilities and if you don’t set this then the interface will generate warnings.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-YiGm0aGLfWk/TkgXwqWLGbI/AAAAAAAADUI/pDW3_Yg6Br8/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 400px;" src="http://4.bp.blogspot.com/-YiGm0aGLfWk/TkgXwqWLGbI/AAAAAAAADUI/pDW3_Yg6Br8/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5640784658049997234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The warning generated is “&lt;span style="font-weight: bold;"&gt;Staging Area's technology doesn't have the Where capability which may lead to errors at execution time. You may want to switch the Staging Area to another technology (Memory Engine for instance)&lt;/span&gt;.”&lt;br /&gt;&lt;br /&gt;As well as receiving warnings the planning knowledge module will not be selectable until the staging area has been defined.&lt;br /&gt;&lt;br /&gt;If I am using an RDBMS as a source technology then I would set the staging area to be the same as the source, if using a flat file as the source then more than likely I would use the “&lt;span style="font-weight: bold;"&gt;Memory Engine&lt;/span&gt;” as the staging area due to the low number of records to process and complexity of the transformation which are more tuned to that of being handled in memory.&lt;br /&gt;&lt;br /&gt;If using a flat file as the source and the file was large or the transformation of the data were complex then I would consider using an RDBMS as the staging area, this would first load the flat file into a relational table, perform any transformations and then delete the members, it is worth testing with the “&lt;span style="font-weight: bold;"&gt;Memory Engine&lt;/span&gt;” first and any issues are encountered then look into changing the staging area.&lt;br /&gt;&lt;br /&gt;One thing I do notice in 11g is you can’t set the staging area until the target Datastore in the interface has been designated.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-0nr488_Cqfc/TkgXpBHdI_I/AAAAAAAADUA/m-z71_1HGIY/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 173px;" src="http://4.bp.blogspot.com/-0nr488_Cqfc/TkgXpBHdI_I/AAAAAAAADUA/m-z71_1HGIY/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5640784526723326962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the interface has been created go to the Mapping tab and drag the source Datastore on to the source area and then drag the target planning dimension Datastore onto the target area. If the staging area has not been set this is the time to go back to the Overview tab and set it.&lt;br /&gt;&lt;br /&gt;The mapping on the target are then created, in this example it is a simple one to one mapping so all that is required is the target dimension name column (Segments – this will depend on the dimension you are trying to delete members from) is mapped to the source, Target “&lt;span style="font-weight: bold;"&gt;Segments&lt;/span&gt;” maps to source &lt;span style="font-weight: bold;"&gt;DEL_MEMBERS.MEMBER&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If the source is a file then the mapping will need to be set to execute on the staging area.&lt;br /&gt;&lt;br /&gt;In the Operation column the type of operation is defined by entering ‘&lt;span style="font-weight: bold;"&gt;Delete Level 0&lt;/span&gt;’, make sure it is enclosed in single quotes or an error will be generated when executing the interface.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-7_8GVcvI_zk/TkgXozlQRRI/AAAAAAAADT4/Id5bahwz08M/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 281px;" src="http://2.bp.blogspot.com/-7_8GVcvI_zk/TkgXozlQRRI/AAAAAAAADT4/Id5bahwz08M/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5640784523090216210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is also necessary to set the mapping to execute on the “&lt;span style="font-weight: bold;"&gt;Staging Area&lt;/span&gt;” for the operation column or once again an error will be generated due to the target not having any transformation capabilities.&lt;br /&gt;&lt;br /&gt;You don’t have to hardcode the operation type in the target column you could just as easily have an extra column in your source to define the type of deletion which you would just map to the target Operation column.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-8DdawMIHFUs/TkgXo_aAj8I/AAAAAAAADTw/-CyCi8LTOmM/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 254px;" src="http://2.bp.blogspot.com/-8DdawMIHFUs/TkgXo_aAj8I/AAAAAAAADTw/-CyCi8LTOmM/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5640784526264274882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If at this point you are unable to select the required Knowledge Modules then it is probably down to the KM’s have not been imported or the staging area has not been set.&lt;br /&gt;&lt;br /&gt;The important options to be set in for the IKM are&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;LOG_ENABLED&lt;/span&gt; – set whether an output log for the interface is generated.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;LOG_FILE_NAME&lt;/span&gt; – full path and filename for the log.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;LOG_ERRORS&lt;/span&gt; – set whether any errors during the deletions are logged.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;ERROR_LOG_FILENAME&lt;/span&gt; – full path and filename for the error log.&lt;br /&gt;&lt;br /&gt;The error files will be generated on the machine that the agent being used in the interface is executed against.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;MAXIMUM_ERRORS_ALLOWED&lt;/span&gt; – The default is 0 which means if any deletion errors are generated the interface does not stop, if you want the interface to stop after a set number of errors then use this option.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;REFRESH_DATABASE&lt;/span&gt; – This executes a planning refresh as the interface is only deleting the members from planning and if you want the deletions to be pushed to essbase then the option will need to be set to yes.&lt;br /&gt;&lt;br /&gt;If running deletions against a number of dimensions then only set the last interface option to yes and remember that if any dense dimension members have been deleted then the time to refresh will depend on the size of the data in the essbase databases.&lt;br /&gt;&lt;br /&gt;Once the options have been set the interface can be executed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Jiqhwon4wq4/TkgXonEZ_FI/AAAAAAAADTo/7bjfPy6nBCg/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 249px;" src="http://2.bp.blogspot.com/-Jiqhwon4wq4/TkgXonEZ_FI/AAAAAAAADTo/7bjfPy6nBCg/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5640784519731215442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the interface has completed then check the operator for success and if you want to view how many records have been deleted then open the “&lt;span style="font-weight: bold;"&gt;Report Statistics&lt;/span&gt;” step. Do not be alarmed by the warning sign against this step as it doesn’t mean the interface has failed it is just the way the adaptor has been designed.&lt;br /&gt;&lt;br /&gt;If you want to update the “&lt;span style="font-weight: bold;"&gt;Report Statistics&lt;/span&gt;” step to report in a more meaningful manner and remove the warning sign then have a read &lt;a href="http://john-goodwin.blogspot.com/2009/03/odi-hyperion-knowledge-modules.html"&gt;&lt;span style="font-weight: bold;"&gt;here&lt;/span&gt;&lt;/a&gt; of an article I wrote on how to change it.&lt;br /&gt;&lt;br /&gt;If there are any rows rejected or the interface failed then the first place to check is the logs that would have been generated if enabled in the KM options.&lt;br /&gt;&lt;br /&gt;If everything has run through without any issues then it is also worth checking the hierarchy in planning to be certain the members have been deleted.&lt;br /&gt;&lt;br /&gt;If any of the members deleted also have shared members in the hierarchy they will also be deleted using the above method.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-IFMYjjLG1Qc/TkgXoqOORFI/AAAAAAAADTg/rRtMmXacoHY/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 244px;" src="http://3.bp.blogspot.com/-IFMYjjLG1Qc/TkgXoqOORFI/AAAAAAAADTg/rRtMmXacoHY/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5640784520577696850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So say you only wanted to delete the shared members “&lt;span style="font-weight: bold;"&gt;IPOD304&lt;/span&gt;” and “&lt;span style="font-weight: bold;"&gt;MP3&lt;/span&gt;” from a hierarchy then you would probably think the following would work.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-PFWegJVecIw/TkgXgg3AmjI/AAAAAAAADTY/Je6UPpJa8qM/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 366px; height: 260px;" src="http://1.bp.blogspot.com/-PFWegJVecIw/TkgXgg3AmjI/AAAAAAAADTY/Je6UPpJa8qM/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5640784380625459762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The adaptor unfortunately does not work in this way and even though the interface completes successfully the error log will produce errors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-68Gf3K1Cj7Q/TkgXgtfWCxI/AAAAAAAADTQ/OTiMXCSrJmk/s1600/image012.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 25px;" src="http://3.bp.blogspot.com/-68Gf3K1Cj7Q/TkgXgtfWCxI/AAAAAAAADTQ/OTiMXCSrJmk/s400/image012.png" alt="" id="BLOGGER_PHOTO_ID_5640784384015862546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The error descriptions do not directly point out the issue though it is clear the method does not work.&lt;br /&gt;&lt;br /&gt;If you think about it the hierarchy may have multiple instances of the same shared member so the adaptor doesn’t really know if you want to delete them all or just some of them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-2r2tUb-dNB4/TkgXgvFlONI/AAAAAAAADTI/fjmCbcAmeZg/s1600/image013.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 88px;" src="http://2.bp.blogspot.com/-2r2tUb-dNB4/TkgXgvFlONI/AAAAAAAADTI/fjmCbcAmeZg/s400/image013.png" alt="" id="BLOGGER_PHOTO_ID_5640784384444676306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To be able to delete shared members then the parent of the member to be deleted is required so to get around this the Datastore can be updated to include a parent member column.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-f67ufBd3Kw0/TkgXgVifbCI/AAAAAAAADTA/IaFRYo-h_e4/s1600/image014.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 208px;" src="http://3.bp.blogspot.com/-f67ufBd3Kw0/TkgXgVifbCI/AAAAAAAADTA/IaFRYo-h_e4/s400/image014.png" alt="" id="BLOGGER_PHOTO_ID_5640784377586609186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The original interface is updated to include a mapping from source to target “&lt;span style="font-weight: bold;"&gt;Parent&lt;/span&gt;” column and executing the interface will delete members based on the member and its parent defined in the source.&lt;br /&gt;&lt;br /&gt;So what happens if the interface is set up to delete level 0 members and it tries to delete a member that is not level 0.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-dVrwTaptp0E/TkgXfKoFzpI/AAAAAAAADS4/-1suVoX312w/s1600/image015.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 117px;" src="http://4.bp.blogspot.com/-dVrwTaptp0E/TkgXfKoFzpI/AAAAAAAADS4/-1suVoX312w/s400/image015.png" alt="" id="BLOGGER_PHOTO_ID_5640784357477437074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the above interface the source contains a member called “&lt;span style="font-weight: bold;"&gt;AG&lt;/span&gt;” and if you look at the hierarchy this is not a level 0 member.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-5YxNlbZVcMM/TkgXUsJePII/AAAAAAAADSw/usdNUSTB2w0/s1600/image016.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 18px;" src="http://3.bp.blogspot.com/-5YxNlbZVcMM/TkgXUsJePII/AAAAAAAADSw/usdNUSTB2w0/s400/image016.png" alt="" id="BLOGGER_PHOTO_ID_5640784177497259138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The interface will not fail but this time you will get a more meaningful message in the error log stating “&lt;span style="font-weight: bold;"&gt;Attempted to delete a non level 0 member using the delete level 0 operation&lt;/span&gt;.”&lt;br /&gt;&lt;br /&gt;Another common misunderstanding when creating a deletion interface is the concept that it is possible to use the Alias column instead of using the member column.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-hJyJep1yUyk/TkgXUhJiEXI/AAAAAAAADSo/dalg8zREY5U/s1600/image017.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 104px;" src="http://3.bp.blogspot.com/-hJyJep1yUyk/TkgXUhJiEXI/AAAAAAAADSo/dalg8zREY5U/s400/image017.png" alt="" id="BLOGGER_PHOTO_ID_5640784174544720242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the above interface the alias is mapped instead of the member and once again the interface will run through successfully but there will be errors generated in the log.&lt;br /&gt;&lt;br /&gt;If you only have the alias in the source then it is certainly possible to generate the member name but this requires mapping to the planning applications relational tables and not one to be covered today, if you are interested in understanding how to go about it then just get in touch.&lt;br /&gt;&lt;br /&gt;Right, on to the next type of operation “&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;Delete Descendants&lt;/span&gt;” and this basically means delete all members which are descendants of the current member defined in the source.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-WhfWtZGcJyE/TkgXUdWMeOI/AAAAAAAADSg/XTbhHCZrN3I/s1600/image018.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 96px;" src="http://4.bp.blogspot.com/-WhfWtZGcJyE/TkgXUdWMeOI/AAAAAAAADSg/XTbhHCZrN3I/s400/image018.png" alt="" id="BLOGGER_PHOTO_ID_5640784173524089058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the above interface the source member is “&lt;span style="font-weight: bold;"&gt;AG&lt;/span&gt;” and the operation is defined as “&lt;span style="font-weight: bold;"&gt;Delete Descendants&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-F7B3uP-qL60/TkgXUY0UzCI/AAAAAAAADSY/M66cFJA2WPw/s1600/image019.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 144px;" src="http://4.bp.blogspot.com/-F7B3uP-qL60/TkgXUY0UzCI/AAAAAAAADSY/M66cFJA2WPw/s400/image019.png" alt="" id="BLOGGER_PHOTO_ID_5640784172308286498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All the descendants of the member “&lt;span style="font-weight: bold;"&gt;AG&lt;/span&gt;” have been deleted.&lt;br /&gt;&lt;br /&gt;Something to be aware of when deleting descendants if all the children of a member are deleted then the parent member can still contain data, it might be that fine but just something to be sure that is what you want as you may need to run a calc after the deletion.&lt;br /&gt;&lt;br /&gt;Watch out if the parents data storage is set “&lt;span style="font-weight: bold;"&gt;Dynamic Calc&lt;/span&gt;” and all its descendants are deleted as level 0 members cannot be “&lt;span style="font-weight: bold;"&gt;Dynamic Calc&lt;/span&gt;” unless they have a formula associated with them.&lt;br /&gt;&lt;br /&gt;The final operation type is “&lt;span style="font-weight: bold;"&gt;Delete Idescendants&lt;/span&gt;” which will delete the current member defined in the source and all its descendant members.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-YqTthXe2Irw/TkgXUcnhioI/AAAAAAAADSQ/Ji7eJvowiB0/s1600/image020.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 100px;" src="http://1.bp.blogspot.com/-YqTthXe2Irw/TkgXUcnhioI/AAAAAAAADSQ/Ji7eJvowiB0/s400/image020.png" alt="" id="BLOGGER_PHOTO_ID_5640784173328337538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the above interface the source member is defined as “&lt;span style="font-weight: bold;"&gt;AG&lt;/span&gt;” and the operation is set to “&lt;span style="font-weight: bold;"&gt;Delete Idescendant&lt;/span&gt;s”.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-NDFWvU4VfJU/TkgXJmXYE5I/AAAAAAAADSI/ihMSn83s4Jw/s1600/image021.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 189px;" src="http://1.bp.blogspot.com/-NDFWvU4VfJU/TkgXJmXYE5I/AAAAAAAADSI/ihMSn83s4Jw/s400/image021.png" alt="" id="BLOGGER_PHOTO_ID_5640783986966401938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The member “&lt;span style="font-weight: bold;"&gt;AG&lt;/span&gt;” and its descendants have been deleted from the hierarchy.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-8Mpz8gNnffc/TkgXJkIWpfI/AAAAAAAADSA/OC4QuXAbaKI/s1600/image022.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 164px;" src="http://3.bp.blogspot.com/-8Mpz8gNnffc/TkgXJkIWpfI/AAAAAAAADSA/OC4QuXAbaKI/s400/image022.png" alt="" id="BLOGGER_PHOTO_ID_5640783986366522866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If like in the above interface and the operation type is set to “&lt;span style="font-weight: bold;"&gt;Delete Idescendants&lt;/span&gt;” and a level 0 member is defined in the source the level 0 member will still be deleted as it is still a valid operation.&lt;br /&gt;&lt;br /&gt;Another way of defining the type of operation is to use an ODI variable.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Mv_N0r6zJg8/TkgXJhYyrMI/AAAAAAAADR4/ka9B5Fb7VZo/s1600/image023.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 127px;" src="http://3.bp.blogspot.com/-Mv_N0r6zJg8/TkgXJhYyrMI/AAAAAAAADR4/ka9B5Fb7VZo/s400/image023.png" alt="" id="BLOGGER_PHOTO_ID_5640783985630162114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The variable can be used in the target mapping which adds more usability to the interface. If you are going to use a variable you will need to create a package first and then drag the variable to the interface to either set or declare it and then add the interface as the next step.&lt;br /&gt;&lt;br /&gt;If you want to understand the query that is being generated on the source/staging area before the deletion is being executed on the planning side then go into the operator and open the step “&lt;span style="font-weight: bold;"&gt;Load data into planning&lt;/span&gt;” and switch to the Code tab where the SQL being used can be viewed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-O3ppErSbb9o/TkgXJR2o6ZI/AAAAAAAADRw/3-RHnFrmMUY/s1600/image024.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 92px;" src="http://4.bp.blogspot.com/-O3ppErSbb9o/TkgXJR2o6ZI/AAAAAAAADRw/3-RHnFrmMUY/s400/image024.png" alt="" id="BLOGGER_PHOTO_ID_5640783981460384146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think that covers off the basics on deleting members from planning and should hopefully get you on your way.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-1940213923496380121?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/1940213923496380121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=1940213923496380121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/1940213923496380121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/1940213923496380121'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/08/odi-series-deleting-planning-members.html' title='ODI Series - Deleting planning members'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-LgJzv3w-YXo/TkgXxOupWyI/AAAAAAAADUo/gALphCwrPRE/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-4365469282868991769</id><published>2011-07-24T00:53:00.000-07:00</published><updated>2011-07-24T11:40:52.975-07:00</updated><title type='text'>EAS 11.1.2 session timeout and workspace tips</title><content type='html'>I am not sure if it is just me but the session timeout in 11.1.2.x EAS has slowly managed to annoy me more and more, if you leave EAS unattended for a period of time then you will likely be hit with&lt;p&gt;&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-bNqxwrG9mxI/TivQu0mBauI/AAAAAAAADRo/qZGertRcAKI/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 47px;" src="http://2.bp.blogspot.com/-bNqxwrG9mxI/TivQu0mBauI/AAAAAAAADRo/qZGertRcAKI/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5632825261767617250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The session times out, now you may be saying stop whinging and log in again which is perfectly acceptable and I have been doing that for a long while but I thought it was time to put a stop to it. I have also been wondering why it has not bothered me in the past, maybe my patience has started to run out these days.&lt;br /&gt;&lt;br /&gt;Anyway here are the quick and easy steps to increase the timeout.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Rl879KmyY9Q/TivQummMuvI/AAAAAAAADRg/HZsAWFWbGhY/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 132px;" src="http://4.bp.blogspot.com/-Rl879KmyY9Q/TivQummMuvI/AAAAAAAADRg/HZsAWFWbGhY/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5632825258010262258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the server where EAS is installed and in location &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\products\Essbase\eas\server\AppServer\InstallableApps\Common&lt;/span&gt; there will be a file called &lt;span style="font-weight: bold;"&gt;eas.ear&lt;/span&gt; (Enterprise Archive file format), this file basically contains the EAS web applications which are deployed each time the EAS Weblogic managed server is started and within the file there is a configuration xml which defines the session timeout.&lt;br /&gt;&lt;br /&gt;I will be using 7zip to open and extract from the ear file as personally I find it an excellent free piece of software, if you are going to be making any changes I recommend taking a backup of the eas.ear file first.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Q9pSkf_c4hI/TivQuf2OcEI/AAAAAAAADRY/g2H61nPF1eo/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 219px;" src="http://1.bp.blogspot.com/-Q9pSkf_c4hI/TivQuf2OcEI/AAAAAAAADRY/g2H61nPF1eo/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5632825256198434882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;eas.ear&lt;/span&gt; file is opened with 7zip and within the file there are a number of war (web application archive) files which each relate to the different EAS web components, the file &lt;span style="font-weight: bold;"&gt;eas.war&lt;/span&gt; is the one we are interested in as it is the main EAS web application.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-IjNx4cSRIiY/TivQuWj1iPI/AAAAAAAADRQ/4VO2sq0talA/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 116px;" src="http://4.bp.blogspot.com/-IjNx4cSRIiY/TivQuWj1iPI/AAAAAAAADRQ/4VO2sq0talA/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5632825253705386226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;eas.war&lt;/span&gt; file is opened and then the directory &lt;span style="font-weight: bold;"&gt;WEB-INF&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fW7FY1jluvs/TivQuDGRW5I/AAAAAAAADRI/9Ch0zIh9oGo/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 186px;" src="http://3.bp.blogspot.com/-fW7FY1jluvs/TivQuDGRW5I/AAAAAAAADRI/9Ch0zIh9oGo/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5632825248481106834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;WEB-INF&lt;/span&gt; directory contains the web.xml file which defines the structure of the web application; this file is to be edited so it is extracted from the archive.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-boDXiIgAOBA/TivQnVqutmI/AAAAAAAADRA/lRFfix4qQ0A/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 255px;" src="http://1.bp.blogspot.com/-boDXiIgAOBA/TivQnVqutmI/AAAAAAAADRA/lRFfix4qQ0A/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5632825133206779490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The file is opened and towards the end of the file there is the line -&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&amp;lt;session-timeout&amp;gt;45&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&amp;lt;/session-timeout&amp;gt;&lt;/span&gt;&lt;br /&gt;The default value is set is 45 which means an EAS session times out after 45 minutes of inactivity.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-RhIbO3L7kfg/TivQnK6fmQI/AAAAAAAADQ4/dWBHxT8JU6s/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 254px;" src="http://1.bp.blogspot.com/-RhIbO3L7kfg/TivQnK6fmQI/AAAAAAAADQ4/dWBHxT8JU6s/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5632825130320107778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The value can be updated to a timeout that suites you, once updated save the file and drag it back into the archive and save the ear file, restart the EAS web application and the new timeout will be effective.&lt;br /&gt;&lt;br /&gt;I did check back at the default value used in version 11.1.1.3 and it was set to 1440 (24 hours) so no wonder it didn’t annoy me in the past.&lt;br /&gt;&lt;br /&gt;From one annoyance to another, if in 11.1.2.x you have ever tried to open multiple sessions of workspace then you will hit a slight problem which is you can’t seem to do it anymore. Now there may be many circumstances where you want to have multiple instances of workspace open say for instance say you log in with an admin account and are making some changes to an application and you want to test them at the same time using a different user account, if you try and log in while the admin account is logged in it will just take you straight to the currently logged in session.&lt;br /&gt;&lt;br /&gt;Ok, you can log out and log in again or say use IE and Firefox together but there is another method.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-NKJOgYW06Js/TivQm1M-pXI/AAAAAAAADQw/qkE85dsx7AY/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 93px;" src="http://3.bp.blogspot.com/-NKJOgYW06Js/TivQm1M-pXI/AAAAAAAADQw/qkE85dsx7AY/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5632825124492060018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When logging into workspace append the parameter &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;multi_process=true&lt;/span&gt; as shown above.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Itd_rw3giS0/TivQm0q_1yI/AAAAAAAADQo/SRyFuM21Iuk/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 139px;" src="http://4.bp.blogspot.com/-Itd_rw3giS0/TivQm0q_1yI/AAAAAAAADQo/SRyFuM21Iuk/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5632825124349531938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This example is using IE8 but is similar in other supported browsers. Go to &lt;span style="font-weight: bold;"&gt;File &amp;gt; New Session&lt;/span&gt; which will open another browser&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-3yiP2_CPWVU/TivQmtXGsaI/AAAAAAAADQg/Lyy55r1Z8w8/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 73px;" src="http://2.bp.blogspot.com/-3yiP2_CPWVU/TivQmtXGsaI/AAAAAAAADQg/Lyy55r1Z8w8/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5632825122387046818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Log in again using the &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;multi_process=true&lt;/span&gt; parameter and there you have it multiple instances of workspace running at once.&lt;br /&gt;&lt;br /&gt;Seeing as we are on the topic of workspace I thought I would take this chance to briefly go through some of options that available through "&lt;span style="font-weight: bold;"&gt;Workspace Server Settings&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-2r8wAlgFUuI/TivQfhSBILI/AAAAAAAADQY/0IEs5R1otdI/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 123px;" src="http://1.bp.blogspot.com/-2r8wAlgFUuI/TivQfhSBILI/AAAAAAAADQY/0IEs5R1otdI/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5632824998885400754" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-KYPnYLPK3Z4/TivQfscXWgI/AAAAAAAADQQ/X53LDCrryds/s1600/image012.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;In the past I covered speeding up authentication through the "&lt;span style="font-weight: bold;"&gt;Enabled Products&lt;/span&gt;" option which you can read about &lt;a href="http://john-goodwin.blogspot.com/2011/02/epm-1112-speeding-up-workspace.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;&lt;u&gt;Enable Installer Menu Items in Workspace&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-KYPnYLPK3Z4/TivQfscXWgI/AAAAAAAADQQ/X53LDCrryds/s1600/image012.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 119px;" src="http://3.bp.blogspot.com/-KYPnYLPK3Z4/TivQfscXWgI/AAAAAAAADQQ/X53LDCrryds/s400/image012.png" alt="" id="BLOGGER_PHOTO_ID_5632825001881590274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default option is "&lt;span style="font-weight: bold;"&gt;Yes&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-WId1pQi-5NI/TivQff6nd0I/AAAAAAAADQI/oeP5UoD5ff8/s1600/image013.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 134px;" src="http://2.bp.blogspot.com/-WId1pQi-5NI/TivQff6nd0I/AAAAAAAADQI/oeP5UoD5ff8/s400/image013.png" alt="" id="BLOGGER_PHOTO_ID_5632824998518814530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Depending on the products installed workspace will display different available client downloads.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-O7sS0NDImDM/TivQfV-vMhI/AAAAAAAADQA/N46b__h9k5M/s1600/image014.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 116px;" src="http://2.bp.blogspot.com/-O7sS0NDImDM/TivQfV-vMhI/AAAAAAAADQA/N46b__h9k5M/s400/image014.png" alt="" id="BLOGGER_PHOTO_ID_5632824995851743762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Setting the option to "No" will leave an empty Install menu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 102);"&gt;&lt;u&gt;Enable User Display Name&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-em5n4xRoULQ/TivQfbnea0I/AAAAAAAADP4/Yg0U-gcK6F4/s1600/image015.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 83px;" src="http://1.bp.blogspot.com/-em5n4xRoULQ/TivQfbnea0I/AAAAAAAADP4/Yg0U-gcK6F4/s400/image015.png" alt="" id="BLOGGER_PHOTO_ID_5632824997364788034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default option is "No"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-OkIisiTULU0/TivQXLdm1mI/AAAAAAAADPw/cVF3KrWzGKk/s1600/image016.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 48px;" src="http://4.bp.blogspot.com/-OkIisiTULU0/TivQXLdm1mI/AAAAAAAADPw/cVF3KrWzGKk/s400/image016.png" alt="" id="BLOGGER_PHOTO_ID_5632824855589475938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will display the login username in workspace.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-M21OKPZgUFg/TivQXBhsuwI/AAAAAAAADPo/Ukkb9dbBtlk/s1600/image017.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 43px;" src="http://2.bp.blogspot.com/-M21OKPZgUFg/TivQXBhsuwI/AAAAAAAADPo/Ukkb9dbBtlk/s400/image017.png" alt="" id="BLOGGER_PHOTO_ID_5632824852922284802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Changing the option to "Yes" will display the full name of the user logged in.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Enable Native User Password Change&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-V_pcSpmYxbU/TivQW-HUcqI/AAAAAAAADPg/0VQKqeYdrMg/s1600/image018.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 88px;" src="http://1.bp.blogspot.com/-V_pcSpmYxbU/TivQW-HUcqI/AAAAAAAADPg/0VQKqeYdrMg/s400/image018.png" alt="" id="BLOGGER_PHOTO_ID_5632824852006335138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default option is "Yes"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-9l9o-Gw8kpg/TivQW6K0HkI/AAAAAAAADPY/ave5uqbqnU4/s1600/image019.png"&gt;&lt;img style="cursor: pointer; width: 307px; height: 82px;" src="http://1.bp.blogspot.com/-9l9o-Gw8kpg/TivQW6K0HkI/AAAAAAAADPY/ave5uqbqnU4/s400/image019.png" alt="" id="BLOGGER_PHOTO_ID_5632824850947251778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This allows users to change their password through the Tools menu; if the option is changed to "No" then the "Change Password" menu option will no longer be visible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Required Logon Role&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-3Ir1qd2niJk/TivQWjA8DpI/AAAAAAAADPQ/rEAwsJXrpbc/s1600/image020.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 104px;" src="http://4.bp.blogspot.com/-3Ir1qd2niJk/TivQWjA8DpI/AAAAAAAADPQ/rEAwsJXrpbc/s400/image020.png" alt="" id="BLOGGER_PHOTO_ID_5632824844731813522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default option is "None" which basically means anybody with an account even it has no provisioning roles applied can still log into workspace.&lt;br /&gt;&lt;br /&gt;The other options available are -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Reporting and Analysis Role&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-l28hEzOQlQo/TivQQPLA5aI/AAAAAAAADPI/-wV3_x1ErI4/s1600/image021.png"&gt;&lt;img style="cursor: pointer; width: 392px; height: 378px;" src="http://2.bp.blogspot.com/-l28hEzOQlQo/TivQQPLA5aI/AAAAAAAADPI/-wV3_x1ErI4/s400/image021.png" alt="" id="BLOGGER_PHOTO_ID_5632824736326149538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A user must be assigned a "Reporting and Analysis" role or a "Foundation" role to be able to log into workspace.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Global Role, Reporting and Analysis Role, or Application Role&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-g-hIP09lWUw/TivQP4yR1iI/AAAAAAAADPA/b-DVFCyUPrc/s1600/image022.png"&gt;&lt;img style="cursor: pointer; width: 376px; height: 386px;" src="http://2.bp.blogspot.com/-g-hIP09lWUw/TivQP4yR1iI/AAAAAAAADPA/b-DVFCyUPrc/s400/image022.png" alt="" id="BLOGGER_PHOTO_ID_5632824730316822050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A user must be assigned a "Reporting and Analysis" or a "Foundation" role or an Application role such as Planning, HFM, Financial Close etc to be able to log into workspace.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-uJloeHbrYE0/TivQPh2Qk9I/AAAAAAAADO4/NDO7tF_tbz0/s1600/image023.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 251px;" src="http://4.bp.blogspot.com/-uJloeHbrYE0/TivQPh2Qk9I/AAAAAAAADO4/NDO7tF_tbz0/s400/image023.png" alt="" id="BLOGGER_PHOTO_ID_5632824724159501266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If a user does not have a required role provisioned to them then the error message generated by workspace will be an authentication message which sometimes could be misleading as it doesn’t mean the username/password is incorrect.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Message File&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-7MJ0UcZ51po/TivQPUwuH6I/AAAAAAAADOw/eOLrGrpcfj8/s1600/image024.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 200px;" src="http://1.bp.blogspot.com/-7MJ0UcZ51po/TivQPUwuH6I/AAAAAAAADOw/eOLrGrpcfj8/s400/image024.png" alt="" id="BLOGGER_PHOTO_ID_5632824720646610850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This allows a message to be sent to all users logged into workspace or once they log into workspace.&lt;br /&gt;&lt;br /&gt;The "&lt;span style="font-weight: bold;"&gt;Client Message Polling Interval&lt;/span&gt;" default is zero which means the messaging system is disabled, if it is set to anything other than zero then this will be the time in minutes that new messages are checked for.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-trBaRFf69Ho/TivQPZUOR_I/AAAAAAAADOo/rOGza6BPRVA/s1600/image025.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 167px;" src="http://1.bp.blogspot.com/-trBaRFf69Ho/TivQPZUOR_I/AAAAAAAADOo/rOGza6BPRVA/s400/image025.png" alt="" id="BLOGGER_PHOTO_ID_5632824721869260786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A user will be greeted with a message like above, unfortunately HTML code cannot be used in the message.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;u&gt;Accept Credentials on HTTP GET Request&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-j5lFfQlepVk/TivQGBgYkPI/AAAAAAAADOg/WGVn_nwGvPw/s1600/image026.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 88px;" src="http://2.bp.blogspot.com/-j5lFfQlepVk/TivQGBgYkPI/AAAAAAAADOg/WGVn_nwGvPw/s400/image026.png" alt="" id="BLOGGER_PHOTO_ID_5632824560858992882" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Nds7fJZ_jMo/TivQGBUQ4eI/AAAAAAAADOY/NwwjXDoeJI8/s1600/image027.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;The default is "No"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Nds7fJZ_jMo/TivQGBUQ4eI/AAAAAAAADOY/NwwjXDoeJI8/s1600/image027.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 75px;" src="http://2.bp.blogspot.com/-Nds7fJZ_jMo/TivQGBUQ4eI/AAAAAAAADOY/NwwjXDoeJI8/s400/image027.png" alt="" id="BLOGGER_PHOTO_ID_5632824560808157666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If the option is set to "Yes" then it is possible to log straight into workspace using the &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;sso_username&lt;/span&gt; and &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;sso_password&lt;/span&gt; parameters.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 153);"&gt;&lt;u&gt;Client Debug Enabled&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0P0NBjQMXHg/TivQF1aVSVI/AAAAAAAADOQ/HCVSGxNynr8/s1600/image028.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 92px;" src="http://2.bp.blogspot.com/-0P0NBjQMXHg/TivQF1aVSVI/AAAAAAAADOQ/HCVSGxNynr8/s400/image028.png" alt="" id="BLOGGER_PHOTO_ID_5632824557612386642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The default option is "No" if set to "Yes" then a number of debugging features are available in workspace, now I must admit I don’t really understand some of them but I thought I would show what is available.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-AZWBqH-gAGs/TivQF-PqwCI/AAAAAAAADOI/A2aUXvc_7rc/s1600/image029.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 256px;" src="http://3.bp.blogspot.com/-AZWBqH-gAGs/TivQF-PqwCI/AAAAAAAADOI/A2aUXvc_7rc/s400/image029.png" alt="" id="BLOGGER_PHOTO_ID_5632824559983575074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using the URL http://&amp;lt;workspaceserver&amp;gt;:port/workspace/debug/configInfo.jsp will provide configuration information around all the installed products.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-unGscg7uk50/TivQFhTEIAI/AAAAAAAADOA/YW15jKLhSio/s1600/image030.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 275px;" src="http://4.bp.blogspot.com/-unGscg7uk50/TivQFhTEIAI/AAAAAAAADOA/YW15jKLhSio/s400/image030.png" alt="" id="BLOGGER_PHOTO_ID_5632824552213192706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If the parameter &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;debug=true&lt;/span&gt; is appended to the workspace login URL then you will notice a window called "Logging" is available in the bottom right corner.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-QmvkSF9aLYk/TivP7G1BjNI/AAAAAAAADN4/MWArahBDydk/s1600/image031.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 237px;" src="http://3.bp.blogspot.com/-QmvkSF9aLYk/TivP7G1BjNI/AAAAAAAADN4/MWArahBDydk/s400/image031.png" alt="" id="BLOGGER_PHOTO_ID_5632824373309181138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double clicking the window will display a mass of logging messages.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-4oUJ15GGy5w/TivP7Jl8uYI/AAAAAAAADNw/mvThrwq869I/s1600/image032.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 189px;" src="http://2.bp.blogspot.com/-4oUJ15GGy5w/TivP7Jl8uYI/AAAAAAAADNw/mvThrwq869I/s400/image032.png" alt="" id="BLOGGER_PHOTO_ID_5632824374051256706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If the parameter &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;module=wksp.widgets&lt;/span&gt; if appended to the workspace URL then a number of test cases and debugging utilities are available, I have no idea of what use they are but maybe somebody will find them interesting.&lt;br /&gt;&lt;br /&gt;I think I will leave it there for today, enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-4365469282868991769?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/4365469282868991769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=4365469282868991769' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/4365469282868991769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/4365469282868991769'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/07/eas-1112-session-timeout-and-workspace.html' title='EAS 11.1.2 session timeout and workspace tips'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-bNqxwrG9mxI/TivQu0mBauI/AAAAAAAADRo/qZGertRcAKI/s72-c/image001.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-5191061025933982120</id><published>2011-07-03T12:07:00.000-07:00</published><updated>2011-07-03T12:40:59.069-07:00</updated><title type='text'>EPM 11.1.2.1 compact deployment update part 2</title><content type='html'>This week’s blog is a continuation from the last one on compact deployments, it is not essential that you have read the last &lt;a href="http://john-goodwin.blogspot.com/2011/06/epm-11121-compact-deployment-update.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;blog&lt;/span&gt;&lt;/a&gt; but for this one to be of any benefit then you would have had to successfully completed a compact deployment.&lt;br /&gt;&lt;br /&gt;In the original &lt;a href="http://john-goodwin.blogspot.com/2011/05/epm-11121-compact-deployment.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;post&lt;/span&gt;&lt;/a&gt; on EPM compact deployments I left two open questions and this week it is time for the second question to be covered off which only relates to windows OS deployments.&lt;br /&gt;&lt;br /&gt;Once a compact mode has completed successfully a batch script named startEPMSystem.bat is generated to start up the WebLogic managed server, no windows service is created like the other WebLogic deployed products so to make life a little bit easier I set myself a task to create a windows service that will start up the EPM managed server.&lt;br /&gt;&lt;br /&gt;Now I know it is probably possible to try and use the Weblogic install service utility but I didn’t have much success with it and I also I wanted the service to function like the other products in the stack so here are the steps I carried out to set up the service.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-3rILidX65Y8/ThC_jcsE_rI/AAAAAAAADNo/4uuCe9RpaCk/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 122px;" src="http://4.bp.blogspot.com/-3rILidX65Y8/ThC_jcsE_rI/AAAAAAAADNo/4uuCe9RpaCk/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5625206550303145650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In a standard deployment once the Weblogic web applications have been started and if you look in task manager you will see a process for each managed server, each process has the same description as in fact they are all the same executable just with a different name.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-cb0vNU4Vh9M/ThC_iYbx0QI/AAAAAAAADNg/ua0xeGH3Nj8/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 171px;" src="http://1.bp.blogspot.com/-cb0vNU4Vh9M/ThC_iYbx0QI/AAAAAAAADNg/ua0xeGH3Nj8/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5625206531981168898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Each of these executables are called when the service is started and they all reside in &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\domains\&amp;lt;domain name&amp;gt;\bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-p6R05_y26Kk/ThC_iJjxhHI/AAAAAAAADNY/2d08XecZM8U/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 155px;" src="http://4.bp.blogspot.com/-p6R05_y26Kk/ThC_iJjxhHI/AAAAAAAADNY/2d08XecZM8U/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5625206527988171890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The executables originate from &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\EPMSystem11R1\common\utilities\JavaService&lt;/span&gt;, there is a 32bit and 64bit version of the executable.&lt;br /&gt;&lt;br /&gt;When a Weblogic managed service is deployed it copies the file from the above directory into &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\domains\&amp;lt;domain name&amp;gt;\bin&lt;/span&gt; and renames it depending on which web application is being deployed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-WioWi9h7rzA/ThC_h7ijWrI/AAAAAAAADNQ/wXCqN-QLjJI/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 140px;" src="http://1.bp.blogspot.com/-WioWi9h7rzA/ThC_h7ijWrI/AAAAAAAADNQ/wXCqN-QLjJI/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5625206524224953010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I copied &lt;span style="font-weight: bold;"&gt;HyslJavaServiceAMD64.exe&lt;/span&gt; into &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\domains\epmsystem1\bin&lt;/span&gt; and renamed it to &lt;span style="font-weight: bold;"&gt;EPMSystem.exe&lt;/span&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;b style=""&gt; &lt;/b&gt;Usually the default deployment domain name is EPMSystem but in my compact deployment I called it epmsystem1.&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-63p8kCpKSBs/ThC_hEKbjiI/AAAAAAAADNI/P43RvH4i1SQ/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 144px;" src="http://2.bp.blogspot.com/-63p8kCpKSBs/ThC_hEKbjiI/AAAAAAAADNI/P43RvH4i1SQ/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5625206509359828514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you take a look at any of the start up commands for the windows services you will see&lt;span style="font-weight: bold;"&gt;/ServiceName=&lt;/span&gt; and &lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;/RegKey=  &lt;/span&gt;&lt;br /&gt;these define the registry keys used and are called upon when the windows service is started.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-KHln7DoI0Xk/ThC_Yh0hAAI/AAAAAAAADNA/25LX_F9J1LA/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 169px;" src="http://2.bp.blogspot.com/-KHln7DoI0Xk/ThC_Yh0hAAI/AAAAAAAADNA/25LX_F9J1LA/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5625206362702151682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The keys are all stored under &lt;span style="font-weight: bold;"&gt;HKLM\SOFTWARE\Hyperion Solutions&lt;/span&gt; and contain important variables and various paths to pass into the WebLogic managed server for it to be able to function correctly.&lt;br /&gt;&lt;br /&gt;For the windows service I am creating I would need to create a new registry key for the EPM Managed server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ccSKsWLds9w/ThC_YtKibyI/AAAAAAAADM4/dfR-QPF3-PA/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 227px;" src="http://3.bp.blogspot.com/-ccSKsWLds9w/ThC_YtKibyI/AAAAAAAADM4/dfR-QPF3-PA/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5625206365747310370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When a compact deployment is run it creates a file called &lt;span style="font-weight: bold;"&gt;setManagedParamsEPMserver.bat&lt;/span&gt; in &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\domains\&amp;lt;domain name&amp;gt;\bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-MTKKEIw2J-o/ThC_YWHVGoI/AAAAAAAADMw/HNsw6mxNTSg/s1600/image012.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 161px;" src="http://1.bp.blogspot.com/-MTKKEIw2J-o/ThC_YWHVGoI/AAAAAAAADMw/HNsw6mxNTSg/s400/image012.png" alt="" id="BLOGGER_PHOTO_ID_5625206359559838338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This file contains all the necessary information for the registry key so the next step was to transfer this information into a .reg file.&lt;br /&gt;&lt;br /&gt;Instead of creating the file from scratch I did use a registry key that had already been created from another EPM 11.1.2.1 instance,  I used the foundation services registry key as a starting point and these keys can be found in &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\&amp;lt;instance_name&amp;gt;\bin\deploymentScripts\installServiceScripts &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The registry file needed a clean up as some of the options are repeated two or three times.&lt;br /&gt;&lt;pre class="brush: csharp"&gt;Windows Registry Editor Version 5.00&lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Hyperion Solutions\EPMSystem0\EPM11]&lt;br /&gt;"JVMOption1"="-Dweblogic.Name=EPMServer0"&lt;br /&gt;"JVMOption2"="-Dweblogic.RootDirectory=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1"&lt;br /&gt;"JVMOption3"="-Dweblogic.j2ee.application.tmpDir=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1\\servers\\EPMServer0\\tmp"&lt;br /&gt;"JVMOption4"="-Dweblogic.management.server=http://localhost:7001"&lt;br /&gt;"JVMOption5"="-Ddomain.home=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1"&lt;br /&gt;"JVMOption6"="-Dplatform.home=E:\\Oracle\\MIDDLE~1\\WLSERV~1.3"&lt;br /&gt;"JVMOption7"="-Dwls.home=E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server"&lt;br /&gt;"JVMOption8"="-Dweblogic.home=E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server"&lt;br /&gt;"JVMOption9"="-DEPM_ORACLE_HOME=E:\\Oracle\\Middleware\\EPMSystem11R1"&lt;br /&gt;"JVMOption10"="-DEPM_ORACLE_INSTANCE=E:\\Oracle\\Middleware\\user_projects\\epmsystem1"&lt;br /&gt;"JVMOption11"="Djava.library.path=E:\\Oracle\\Middleware\\EPMSystem11R1/products/Planning/lib64;E:\\Oracle\\Middleware\\EPMSystem11R1/common/ADM/11.1.2.0/bin-64;E:\\Oracle\\Middleware\\EPMSystem11R1/bin;E:\\Oracle\\Middleware\\EPMSystem11R1/common/EssbaseRTC-64/11.1.2.0/bin;E:\\Oracle\\Middleware\\EPMSystem11R1/products/Essbase/EssbaseServer/bin;E:\\Oracle\\Middleware\\user_projects\\epmsystem1/products/biplus/bin;E:\\Oracle\\Middleware\\EPMSystem11R1/common/ADM/11.1.2.0/ODBO/11.1.2.0;E:\\Oracle\\Middleware\\EPMSystem11R1/products/FinancialManagement/Common;E:\\Oracle\\Middleware\\EPMSystem11R1/products/FinancialManagement/Client;E:\\Oracle\\Middleware\\EPMSystem11R1/common/ADM-64/Planning/11.1.2.0/bin;E:\\Oracle\\Middleware\\EPMSystem11R1/products/Essbase/eas/server/bin; "&lt;br /&gt;"JVMOption12"="-DESS_ES_HOME=E:\\\\Oracle\\\\Middleware\\\\EPMSystem11R1/products/Essbase/eas/server"&lt;br /&gt;"JVMOption13"="-Dcom.hyperion.planning.datamodel=64 "&lt;br /&gt;"JVMOption14"="-Dcommon.components.home=E:\\Oracle\\MIDDLE~1\\ORACLE~1"&lt;br /&gt;"JVMOption15"="-Djrf.version=11.1.1"&lt;br /&gt;"JVMOption16"="-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger"&lt;br /&gt;"JVMOption17"="-Djrockit.optfile=E:\\Oracle\\MIDDLE~1\\ORACLE~1\\modules\\oracle.jrf_11.1.1\\jrocket_optfile.txt"&lt;br /&gt;"JVMOption18"="-Doracle.domain.config.dir=E:\\Oracle\\MIDDLE~1\\USER_P~1\\domains\\EPMSYS~1\\config\\FMWCON~1"&lt;br /&gt;"JVMOption19"="-Doracle.server.config.dir=E:\\Oracle\\MIDDLE~1\\USER_P~1\\domains\\EPMSYS~1\\config\\FMWCON~1\\servers\\EPMServer0"&lt;br /&gt;"JVMOption20"="-Doracle.security.jps.config=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1\\config\\fmwconfig\\jps-config.xml"&lt;br /&gt;"JVMOption21"="-Djava.protocol.handler.pkgs=oracle.mds.net.protocol"&lt;br /&gt;"JVMOption22"="-Digf.arisidbeans.carmlloc=E:\\Oracle\\MIDDLE~1\\USER_P~1\\domains\\EPMSYS~1\\config\\FMWCON~1\\carml"&lt;br /&gt;"JVMOption23"="-Digf.arisidstack.home=E:\\Oracle\\MIDDLE~1\\USER_P~1\\domains\\EPMSYS~1\\config\\FMWCON~1\\arisidprovider"&lt;br /&gt;"JVMOption24"="Dweblogic.alternateTypesDirectory=E:\\Oracle\\MIDDLE~1\\ORACLE~1\\modules\\oracle.ossoiap_11.1.1,E:\\Oracle\\MIDDLE~1\\ORACLE~1\\modules\\oracle.oamprovider_11.1.1"&lt;br /&gt;"JVMOption25"="-Dweblogic.jdbc.remoteEnabled=false"&lt;br /&gt;"JVMOption26"="-DEAS_HOME=E:\\\\Oracle\\\\Middleware\\\\EPMSystem11R1/products/Essbase/eas"&lt;br /&gt;"JVMOption27"="-DDISCMAN_HOME=E:\\\\Oracle\\\\Middleware\\\\EPMSystem11R1/products/DisclosureManagement/DiscManHome "&lt;br /&gt;"JVMOption28"="-DDISCMAN_INSTANCE=E:\\\\Oracle\\\\Middleware\\\\user_projects\\\\epmsystem1/DisclosureManagement/discman1"&lt;br /&gt;"JVMOption29"="-Doracle.deployed.app.dir=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1\\servers\\EPMServer0\\tmp\\_WL_user"&lt;br /&gt;"JVMOption30"="-Doracle.deployed.app.ext=\\-"&lt;br /&gt;"JVMOption31"="-Dem.oracle.home=E:\\Oracle\\Middleware\\oracle_common"&lt;br /&gt;"JVMOption32"="-Djava.awt.headless=true"&lt;br /&gt;"JVMOption33"="-Dweblogic.management.discover=true"&lt;br /&gt;"JVMOption34"="-Dhyperion.home=E:\\Oracle\\Middleware\\EPMSystem11R1"&lt;br /&gt;"JVMOption35"="-DHYPERION_HOME=E:\\Oracle\\Middleware\\EPMSystem11R1"&lt;br /&gt;"JVMOption36"="-Dlogging.folder=E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1\\servers\\EPMServer0\\logs"&lt;br /&gt;"JVMOption37"="-Dserver.name=EPMServer0"&lt;br /&gt;"JVMOption38"="-Dsun.net.inetaddr.ttl=0"&lt;br /&gt;"JVMOption39"="-Djava.io.tmpdir=E:\\Oracle\\Middleware\\user_projects\\epmsystem1/tmp"&lt;br /&gt;"JVMOption40"="-Xrs"&lt;br /&gt;"JVMOption41"="-XX:-FlightRecorder"&lt;br /&gt;"JVMOption42"="-Xms512m"&lt;br /&gt;"JVMOption43"="-Xmx1046m"&lt;br /&gt;"JVMOption44"="Djava.class.path=E:\\Oracle\\MIDDLE~1\\ORACLE~1\\modules\\oracle.jdbc_11.1.1\\ojdbc6dms.jar;E:\\Oracle\\MIDDLE~1\\patch_wls1034\\profiles\\default\\sys_manifest_classpath\\weblogic_patch.jar;E:\\Oracle\\MIDDLE~1\\JROCKI~1\\lib\\tools.jar;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\lib\\weblogic_sp.jar;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\lib\\weblogic.jar;E:\\Oracle\\MIDDLE~1\\modules\\features\\weblogic.server.modules_10.3.4.0.jar;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\lib\\webservices.jar;E:\\Oracle\\MIDDLE~1\\modules\\ORGAPA~1.1/lib/ant-all.jar;E:\\Oracle\\MIDDLE~1\\modules\\NETSFA~1.0_1/lib/ant-contrib.jar;E:\\Oracle\\MIDDLE~1\\ORACLE~1\\modules\\oracle.jrf_11.1.1\\jrf.jar;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\common\\derby\\lib\\derbyclient.jar;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\lib\\xqrl.jar;E:\\Oracle\\Middleware\\user_projects\\epmsystem1/HPS/hpsfiles/config;E:\\Oracle\\Middleware\\user_projects\\epmsystem1/DisclosureManagement/discman1/lib;"&lt;br /&gt;"JVMOptionCount"=dword:0000002c&lt;br /&gt;"StartIn"="E:\\Oracle\\Middleware\\user_projects\\domains\\epmsystem1"&lt;br /&gt;"StartupParamCount"=dword:00000000&lt;br /&gt;"SysErrFile"="E:\\Oracle\\Middleware\\user_projects\\epmsystem1\\diagnostics\\logs\\services\\EPMSystem-syserr.log"&lt;br /&gt;"SysOutFile"="E:\\Oracle\\Middleware\\user_projects\\epmsystem1\\diagnostics\\logs\\services\\EPMSystem-sysout.log"&lt;br /&gt;"EnvCount"=dword:00000001&lt;br /&gt;"JavaDll"="E:\\Oracle\\Middleware\\jrockit_160_20\\jre\\bin\\jrockit\\jvm.dll"&lt;br /&gt;"Env1"="PATH=E:\\Oracle\\MIDDLE~1\\patch_wls1034\\profiles\\default\\native;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\native\\win\\x64;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\bin;E:\\Oracle\\MIDDLE~1\\modules\\ORGAPA~1.1\\bin;E:\\Oracle\\MIDDLE~1\\JROCKI~1\\jre\\bin;E:\\Oracle\\MIDDLE~1\\JROCKI~1\\bin;%PATH%;E:\\Oracle\\MIDDLE~1\\WLSERV~1.3\\server\\native\\win\\x64\\oci920_8"&lt;br /&gt;&lt;/pre&gt;This is the registry file I came up with, it was saved as a .reg file and executing it updated the registry with the information. If you intend on using it then you will need to update the middle home directory and maybe the domain name if you use anything other than &lt;span style="font-weight: bold;"&gt;epmsystem1 &lt;/span&gt;as the usual domain name in an EPM deployment is &lt;span style="font-weight: bold;"&gt;EPMSystem&lt;/span&gt;.&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-YQx1LvJB4cQ/ThC_X-T2hqI/AAAAAAAADMo/21gn37gLun0/s1600/image013.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 127px;" src="http://4.bp.blogspot.com/-YQx1LvJB4cQ/ThC_X-T2hqI/AAAAAAAADMo/21gn37gLun0/s400/image013.png" alt="" id="BLOGGER_PHOTO_ID_5625206353169909410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One of the nice features of using this method is you get the option of generating logs like the other EPM products that use a windows service using the &lt;span style="font-weight: bold;"&gt;SysErrFile &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;SysOutFile &lt;/span&gt;options&lt;br /&gt;&lt;br /&gt;The final step is to generate the windows service and this can be done by using the command line utility SC.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-oV3IJ-2x_qU/ThC_Xr76EjI/AAAAAAAADMg/zvcCJWGCRVs/s1600/image014.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 138px;" src="http://3.bp.blogspot.com/-oV3IJ-2x_qU/ThC_Xr76EjI/AAAAAAAADMg/zvcCJWGCRVs/s400/image014.png" alt="" id="BLOGGER_PHOTO_ID_5625206348237640242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The command line used was&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;SC create “EPM Managed Server” binpath= &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;“&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;E:\Oracle\Middleware\user_projects\domains\epmsystem1\bin\EPMSystem.exe” /StartClass=weblogic.Server /ServiceName=EPM11 /RegKey=EPMSystem0 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-Pn0vSOB9YGY/ThC_OxAVMtI/AAAAAAAADMY/jxZ36_VkvT4/s1600/image015.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 112px;" src="http://3.bp.blogspot.com/-Pn0vSOB9YGY/ThC_OxAVMtI/AAAAAAAADMY/jxZ36_VkvT4/s400/image015.png" alt="" id="BLOGGER_PHOTO_ID_5625206194979549906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I started up the service I did notice some errors in the log relating a performance pack which stressed that performance could be degraded, this didn’t stop the managed server from starting up and working but it needed fixing, I went back to starting up the managed server by the standard batch file and the same error was being generated so it wasn’t down to the registry file I had created.&lt;br /&gt;&lt;br /&gt;To fix this issue I just added an extra path to the &lt;span style="font-weight: bold;"&gt;–Djava.library.path&lt;/span&gt; option in the registry&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-EOAQOqMYAFw/ThC_NhdfEkI/AAAAAAAADMQ/D9BZ7MjC-mk/s1600/image016.png"&gt;&lt;img style="cursor: pointer; width: 381px; height: 161px;" src="http://4.bp.blogspot.com/-EOAQOqMYAFw/ThC_NhdfEkI/AAAAAAAADMQ/D9BZ7MjC-mk/s400/image016.png" alt="" id="BLOGGER_PHOTO_ID_5625206173626995266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The path added that was added was &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\wlserver_10.3\server\native\win\x64&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I did spot one more issue which only occurred if I set the JVM maximum size over 1.5GB then an out of memory error was generated in the log and the web application would terminate.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-mEq_8Z-BCRE/ThC_M_bkAKI/AAAAAAAADMI/god5rKAmR5Q/s1600/image017.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 54px;" src="http://2.bp.blogspot.com/-mEq_8Z-BCRE/ThC_M_bkAKI/AAAAAAAADMI/god5rKAmR5Q/s400/image017.png" alt="" id="BLOGGER_PHOTO_ID_5625206164492124322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The issue seems to be common when using jrocket as the JVM, if the  maximum size was set over 4GB then the error goes away but I found it  was possible to also get around the issue without having to set the  maximum size to 4GB by adding an extra option in the registry which is  passed into the managed server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-wLZPrAfTups/ThC_MoV-W2I/AAAAAAAADMA/wFljUB0S19U/s1600/image018.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 93px;" src="http://3.bp.blogspot.com/-wLZPrAfTups/ThC_MoV-W2I/AAAAAAAADMA/wFljUB0S19U/s400/image018.png" alt="" id="BLOGGER_PHOTO_ID_5625206158294670178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;An extra JVMOption was added with a value of &lt;span style="font-weight: bold;"&gt;–XXcompressedRefs:size=32GB&lt;/span&gt;   (if you want to read in-depth details on why this option may have to be used  then have a read &lt;a style="font-weight: bold; color: rgb(255, 255, 102);" href="http://prsync.com/oracle/understanding-compressed-references-33605/"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;As an extra option was added the JVMOptionCount in the registry has to be incremented by 1.&lt;br /&gt;I have not seen any other issues and the managed server is running well when started from a service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-5191061025933982120?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/5191061025933982120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=5191061025933982120' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5191061025933982120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5191061025933982120'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/07/epm-11121-compact-deployment-update.html' title='EPM 11.1.2.1 compact deployment update part 2'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-3rILidX65Y8/ThC_jcsE_rI/AAAAAAAADNo/4uuCe9RpaCk/s72-c/image005.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-5402408079518788439</id><published>2011-06-26T13:07:00.001-07:00</published><updated>2011-06-26T13:33:40.258-07:00</updated><title type='text'>EPM 11.1.2.1 compact deployment  update</title><content type='html'>In a previous &lt;a style="font-weight: bold; color: rgb(255, 255, 102);" href="http://john-goodwin.blogspot.com/2011/05/epm-11121-compact-deployment.html"&gt;post&lt;/a&gt; I went through the steps on deploying EPM 11.1.2.1 WebLogic based web applications in compact mode.&lt;br /&gt;&lt;br /&gt;There were a couple of questions that were left unanswered questions in the post and I have been asked a few times what the answer is to them so I thought I would write up my findings.&lt;br /&gt;&lt;br /&gt;Now if you are not intending of deploying in compact mode or have not read my previous post on the steps then this will probably be of no interest to you so you can go and do something far more interesting instead.&lt;br /&gt;&lt;br /&gt;On to the first question, when deploying in compact mode there are a number of dependent products that need to be installed before running the deployment, in my case the deployment failed the first time due to not having HPS (Hyperion Performance Scorecard) installed and I didn’t really have any intention on using the product but at the time I just installed it to be able to proceed with the deployment.&lt;br /&gt;&lt;br /&gt;I said that it may be possible to edit a few XML files to get around the need to have the dependent products installed, as it was niggling at me whether it could be done I went back and had a look.&lt;br /&gt;&lt;br /&gt;The intention was to be able to deploy without having to install HPS and here are the steps that I carried out before running the compact deployment.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Tfh9f30np9A/TgeR4PvI1DI/AAAAAAAADL4/40A8y2WFuOQ/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 117px;" src="http://2.bp.blogspot.com/-Tfh9f30np9A/TgeR4PvI1DI/AAAAAAAADL4/40A8y2WFuOQ/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5622623055278298162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Details of the required librarie, dependent products and deployment details are stored within the following file &lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;&lt;br /&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/EPMSystem11R1/common/templates/compact/epm_system_11.1.2.1.jar &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-gahrv6GMBXc/TgeR3ww_ATI/AAAAAAAADLw/em87yo3OlCw/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 166px;" src="http://4.bp.blogspot.com/-gahrv6GMBXc/TgeR3ww_ATI/AAAAAAAADLw/em87yo3OlCw/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5622623046964543794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The file can be opened with a compression utility like 7zip so that all the XML files within the jar can be accessed and then edited, if you are planning on following these steps I would recommend taking a backup of epm_system_11.1.2.1.jar first.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-9a_C6IfLcxA/TgeR3timNwI/AAAAAAAADLo/n0bb9shiYTM/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 254px;" src="http://2.bp.blogspot.com/-9a_C6IfLcxA/TgeR3timNwI/AAAAAAAADLo/n0bb9shiYTM/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5622623046098892546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first file that was edited was template-info.xml, this file contains all the dependent libraries and deployment information the line containing “&lt;span style="font-weight: bold;"&gt;Oracle EPM HPS libraries&lt;/span&gt;” was deleted and then the file was saved.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-aJY1omV-6lU/TgeR3et0GFI/AAAAAAAADLg/lImPcu7UQrY/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 319px;" src="http://3.bp.blogspot.com/-aJY1omV-6lU/TgeR3et0GFI/AAAAAAAADLg/lImPcu7UQrY/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5622623042119407698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next file config-groups.xml contains all the products that will be deployed if they are already installed, two lines relating to HPS were removed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-Ifj2bVPd9mk/TgeRvoIcyaI/AAAAAAAADLY/xrdJEd7p5ZM/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 62px;" src="http://4.bp.blogspot.com/-Ifj2bVPd9mk/TgeRvoIcyaI/AAAAAAAADLY/xrdJEd7p5ZM/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5622622907208092066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another line containing “hps_datasource” was removed from the same file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-DSlXi2fTsoY/TgeRvPrA_5I/AAAAAAAADLQ/FxxHRhYXm9E/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 85px;" src="http://2.bp.blogspot.com/-DSlXi2fTsoY/TgeRvPrA_5I/AAAAAAAADLQ/FxxHRhYXm9E/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5622622900642185106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The section highlighted above was also removed from the file and then the file was saved.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-CaqJvSRKHP0/TgeRu28MsZI/AAAAAAAADLI/vu1NxbJEEns/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 142px;" src="http://1.bp.blogspot.com/-CaqJvSRKHP0/TgeRu28MsZI/AAAAAAAADLI/vu1NxbJEEns/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5622622894003368338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Within the config directory the file config.xml was edited and the above section relating to HPS was removed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-8ppMc3JYPPQ/TgeRuiL83tI/AAAAAAAADLA/NsPIvRr5KU0/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 258px;" src="http://4.bp.blogspot.com/-8ppMc3JYPPQ/TgeRuiL83tI/AAAAAAAADLA/NsPIvRr5KU0/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5622622888432295634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The datasource section relating to HPS shown above was also removed and the file was saved.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-A3Ry9ROoc2g/TgeRuQIFMmI/AAAAAAAADK4/1L3mz2gWbNk/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 129px;" src="http://4.bp.blogspot.com/-A3Ry9ROoc2g/TgeRuQIFMmI/AAAAAAAADK4/1L3mz2gWbNk/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5622622883584225890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Finally the file &lt;span style="font-weight: bold;"&gt;hps_datasource-jdbc.xml&lt;/span&gt; was deleted from the jdbc directory within the jar file.&lt;br /&gt;&lt;br /&gt;Now the compact deployment can be executed and it should not fail if HPS has not been installed, for full details on how to deploy in compact mode go back to my previous &lt;a href="http://john-goodwin.blogspot.com/2011/05/epm-11121-compact-deployment.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;blog&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is possible to remove other dependent products from the deployment by using this method to try and save some extra memory.&lt;br /&gt;&lt;br /&gt;If you have products installed that are not on the dependent product list but are in the deployment list e.g. ERPi, Disclosure Management and you don’t want them deploying using the compact method then you will either to need to uninstall them and then install them after deploying in compact mode or use the method of editing the XML files as explained in this post.&lt;br /&gt;&lt;br /&gt;I was going to go through my second question next but unfortunately I have not got any spare time left today so I will write it up in the next couple of days and then post it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-5402408079518788439?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/5402408079518788439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=5402408079518788439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5402408079518788439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/5402408079518788439'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/06/epm-11121-compact-deployment-update.html' title='EPM 11.1.2.1 compact deployment  update'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Tfh9f30np9A/TgeR4PvI1DI/AAAAAAAADL4/40A8y2WFuOQ/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-2045038518972232579</id><published>2011-06-05T11:02:00.001-07:00</published><updated>2011-06-05T11:48:47.861-07:00</updated><title type='text'>ODI Series – Essbase related bug fixes</title><content type='html'>There have been a couple of patches released lately for ODI which address issues with the essbase adaptor and I thought it was worth going through them as I have blogged about these specific problems in the past.&lt;br /&gt;&lt;ul style="font-weight: bold; color: rgb(255, 255, 51);"&gt;&lt;li&gt;Patch 10.1.3.6.7_01 contains the following fix - 9046176 - Wrong export order of members when using LKM Hyperion Essbase Metadata to SQL.A new column called sortid is added to the all the dimensions to order the records. This column is automatically populated using a counter.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Patch 10.1.3.6.8 contains the following fix - 8826035 - Extract member's descriptions when we have more than one alias table in Hyperion.&lt;/li&gt;&lt;/ul&gt;Both patches contain updates to the knowledge module “&lt;span style="font-weight: bold;"&gt;LKM Hyperion Essbase (Metadata) to SQL&lt;/span&gt;” and updates to underlying Java code.&lt;br /&gt;&lt;br /&gt;These bug fixes have not made it to ODI 11g yet but it might be possible to use the KM and Java files from the above patches (I have not tested this theory).&lt;br /&gt;&lt;br /&gt;I will go through the wrong export order of members issue first, if you are not familiar with extracting essbase metadata using ODI then you can read an article I wrote on how to do it &lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-series-essbase-outline-extractor.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;here&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-XaERahZrHR8/TevF-6U8aWI/AAAAAAAADKw/a-kbbayByTY/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 345px; height: 276px;" src="http://1.bp.blogspot.com/-XaERahZrHR8/TevF-6U8aWI/AAAAAAAADKw/a-kbbayByTY/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5614799045047118178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let’s use the measures dimension in Sample.Basic for the example, if a simple interface is created using the “&lt;span style="font-weight: bold;"&gt;LKM Hyperion Essbase (Metadata) to SQL&lt;/span&gt;” to extract the measures dimension then you would expect the output order of members to reflect the order in the outline.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-zU58nrXZguY/TevF-VX9KkI/AAAAAAAADKo/9UGsGeNcR50/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 252px; height: 383px;" src="http://4.bp.blogspot.com/-zU58nrXZguY/TevF-VX9KkI/AAAAAAAADKo/9UGsGeNcR50/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5614799035127638594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see the order is not correct, the dimension member “Measures” is the last in the order instead of being the first.&lt;br /&gt;&lt;br /&gt;Now what I have done in the past is use a RDBMS target and add an ID column, in Oracle the ID column can be populated using a Sequence and for SQL Server an identity column property can be used.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-02JO9tp5yYs/TevF-HSN3FI/AAAAAAAADKg/tbNNN4iUuuk/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 304px; height: 380px;" src="http://3.bp.blogspot.com/-02JO9tp5yYs/TevF-HSN3FI/AAAAAAAADKg/tbNNN4iUuuk/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5614799031345470546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This produces the above output.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-SrNAl3a8ySI/TevF9F8uo_I/AAAAAAAADKY/B-df1nxVr34/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 231px; height: 400px;" src="http://4.bp.blogspot.com/-SrNAl3a8ySI/TevF9F8uo_I/AAAAAAAADKY/B-df1nxVr34/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5614799013807039474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you reverse the output using SQL then “Measures” is outputted first though the order still is not correct.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-wy9QFhHG0Ic/TevF8sYPA-I/AAAAAAAADKQ/zZ6ILbNfUZ4/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 173px;" src="http://3.bp.blogspot.com/-wy9QFhHG0Ic/TevF8sYPA-I/AAAAAAAADKQ/zZ6ILbNfUZ4/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5614799006943085538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you were to build an outline based on that order you would get an outline like the one displayed on the left when what you want is the order of the outline on the right, basically all the levels are in the wrong order and not just the top level.&lt;br /&gt;&lt;br /&gt;I was hoping that the patch release was going resolve the issue fully but let me go through it and see the output.&lt;br /&gt;&lt;br /&gt;Once the patch has been applied make sure the “&lt;span style="font-weight: bold;"&gt;LKM Hyperion Essbase (Metadata) to SQL&lt;/span&gt;” is replaced using the import_replace option.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-amCBbrctEEo/TevF12pQuVI/AAAAAAAADKI/wZDsqxJBlsQ/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 175px; height: 192px;" src="http://1.bp.blogspot.com/-amCBbrctEEo/TevF12pQuVI/AAAAAAAADKI/wZDsqxJBlsQ/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5614798889439770962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If the essbase database model is reversed again an extra numeric column called &lt;span style="font-weight: bold;"&gt;sortid &lt;/span&gt;is available within each dimension datastore.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-RmtgllfQkSw/TevF1Xf3FkI/AAAAAAAADKA/Qa5_9Cj29jc/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 129px;" src="http://2.bp.blogspot.com/-RmtgllfQkSw/TevF1Xf3FkI/AAAAAAAADKA/Qa5_9Cj29jc/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5614798881078842946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A new interface was created to extract the measures dimension and sortid is mapped from the source to ID in the target.&lt;br /&gt;&lt;br /&gt;To change the order of the output then a slight change to the IKM being used is required.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-nBcQDHxW4cY/TevF07GIi2I/AAAAAAAADJ4/1ME2UgSRmoQ/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 389px; height: 400px;" src="http://1.bp.blogspot.com/-nBcQDHxW4cY/TevF07GIi2I/AAAAAAAADJ4/1ME2UgSRmoQ/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5614798873454742370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In my example I am using “&lt;span style="font-weight: bold;"&gt;IKM SQL to File Append&lt;/span&gt;” so the KM was edited and step “Insert new rows” was updated, the following code was added to the “Command on Source” -&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;ORDER BY &amp;lt;%=snpRef.getColList("","[EXPRESSION] ","","","UD1")%&amp;gt; DESC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This means the output will be ordered based on &lt;span style="font-weight: bold;"&gt;UD1 &lt;/span&gt;in the mapping of the interface.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Gx_SK559Nso/TevF0vz6g5I/AAAAAAAADJw/PEFC3R3Tz7I/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 97px;" src="http://2.bp.blogspot.com/-Gx_SK559Nso/TevF0vz6g5I/AAAAAAAADJw/PEFC3R3Tz7I/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5614798870425535378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UD1 &lt;/span&gt;was selected on the sortid column so the output will be ordered by this column and the interface was executed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-KDTNEKUIzbc/TevF0XhcHgI/AAAAAAAADJo/xQRZS80Oyi0/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 318px; height: 386px;" src="http://3.bp.blogspot.com/-KDTNEKUIzbc/TevF0XhcHgI/AAAAAAAADJo/xQRZS80Oyi0/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5614798863905594882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In my opinion the fix does not resolve the order issue fully, it has added a numeric counter to the output but the levels are still in the wrong order.&lt;br /&gt;&lt;br /&gt;On to the second fix available in &lt;span style="font-weight: bold;"&gt;patch 10.1.3.6.8&lt;/span&gt;, this addresses the issue with being able to only extract the default alias table information.&lt;br /&gt;&lt;br /&gt;I originally blogged about this issue &lt;a href="http://john-goodwin.blogspot.com/2008/10/odi-essbase-challenge-extracting.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;here&lt;/span&gt;&lt;/a&gt; and went through a workaround by customizing the LKM and updating the Java API.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/--VjGsS2uf0k/TevFsY_sLUI/AAAAAAAADJg/LJNt97MmHQU/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 111px;" src="http://3.bp.blogspot.com/--VjGsS2uf0k/TevFsY_sLUI/AAAAAAAADJg/LJNt97MmHQU/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5614798726861958466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The patch release adds a new option in the LKM to enter which alias table to extract from; the idea is the same as what I used in my workaround so I had a quick look at the bug on “My Oracle Support”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-XfPu-vSLYBc/TevFsNASypI/AAAAAAAADJY/E8baa_mVwBI/s1600/image012.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 197px;" src="http://4.bp.blogspot.com/-XfPu-vSLYBc/TevFsNASypI/AAAAAAAADJY/E8baa_mVwBI/s400/image012.png" alt="" id="BLOGGER_PHOTO_ID_5614798723643263634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had a quick peak at the Java code in the new patch release and it is the same as what I wrote, so it looks my workaround has made it into official Oracle software, not that anybody in Oracle contacted me about it :)&lt;br /&gt;&lt;br /&gt;There are a number of other essbase/planning/HFM related bug fixes in the latest patches so if you are experiencing any issues it is always worth have a look through the Readme.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-2045038518972232579?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/2045038518972232579/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=2045038518972232579' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2045038518972232579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2045038518972232579'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/06/odi-series-essbase-related-bug-fixes.html' title='ODI Series – Essbase related bug fixes'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-XaERahZrHR8/TevF-6U8aWI/AAAAAAAADKw/a-kbbayByTY/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-2230529749236370728</id><published>2011-05-29T11:24:00.001-07:00</published><updated>2011-07-03T12:42:43.016-07:00</updated><title type='text'>EPM 11.1.2.1 compact deployment</title><content type='html'>The release of EPM 11.1.2 brought many changes across the product set and with the supporting architecture, gone was the ability to deploy web applications using Tomcat and only one option of WebLogic remained. This brought with it a much bigger footprint in terms of memory and pushed many down alternative paths to be able to run the system.&lt;br /&gt;&lt;br /&gt;There are many reasons why high memory requirements can be restrictive, for instance if you wanted to run the full system for development, training, demos etc and intended on hosting on a laptop, yes it is possible if you pay for very high end spec machine or look to the cloud for inspiration but surely there were other possibilities.&lt;br /&gt;&lt;br /&gt;With the release of 11.1.2.1 an additional option called compact deployment has become available which allows WebLogic based web applications to be deployed to a single managed server instead of a separate server for each product, so in theory reducing the overall memory requirement.&lt;br /&gt;&lt;br /&gt;Today I am going to go through the process of deploying using the compact server method, now there are a few things to be aware of first.&lt;br /&gt;&lt;ul style="color: rgb(255, 255, 51);"&gt;&lt;li style="font-weight: bold;"&gt;It is aimed at 64bit operating systems.&lt;/li&gt;&lt;br /&gt;&lt;li style="font-weight: bold;"&gt;Is available for new/upgraded 11.1.2.1 installations.&lt;/li&gt;&lt;br /&gt;&lt;li style="font-weight: bold;"&gt;Financial Management and Financial Close management are not included; these will still need to be deployed using the standard deployment method, though saying that it is still possible to use a large percentage of FM functionality without the WebLogic piece running.&lt;/li&gt;&lt;br /&gt;&lt;li style="font-weight: bold;"&gt;If the managed server crashes for any reason then all the web application running within it will be taken down.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;This deployment method should not be considered for anything more than a development environment, it wouldn’t be supported either.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;There are two methods of deploying in compact mode, one when products are configured using a single database and the other when configured using multiple databases, today I am going to cover the single database method as it makes perfect sense to only use one database in this sort of deployment.&lt;br /&gt;&lt;br /&gt;Now I am not going to go through how to install EPM 11.1.2.1 as I have covered that in the past and it’s not the purpose of this blog, I am starting off with a fresh install of EPM 11.1.2.1 deployed on a windows 2008 R2 64bit machine, the process covered today should be pretty much the same for other operating systems and if it is unix type system then it will just be a matter of running a .sh instead of .bat&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-hFEAFaD2iIM/TeKP7atj9CI/AAAAAAAADJE/4NkysJiGMVg/s1600/image001.png"&gt;&lt;img style="width: 400px; height: 171px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206336602534946" alt="" src="http://1.bp.blogspot.com/-hFEAFaD2iIM/TeKP7atj9CI/AAAAAAAADJE/4NkysJiGMVg/s400/image001.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Before deploying the web applications the other areas for each product such as database configurations have to be carried out first, so the configurator was started using &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/EPMSystem11R1common/config/11.1.2.0/config-manual.bat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usually the configurator is started using configtool.bat but using &lt;span style="font-weight: bold;"&gt;configtool-manual.bat&lt;/span&gt; starts the configurator as if the web applications are to be deployed manually, this means there will be no options available for web application deployment.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-pBp1v2rtvD4/TeKP7Foo9xI/AAAAAAAADI8/x5krKp1kmpw/s1600/image002.png"&gt;&lt;img style="width: 400px; height: 128px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206330944747282" alt="" src="http://1.bp.blogspot.com/-pBp1v2rtvD4/TeKP7Foo9xI/AAAAAAAADI8/x5krKp1kmpw/s400/image002.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As this a fresh install a new EPM Oracle instance has to be created, I stuck with the defaults which creates an instance with the name of epmsystem1, the instance name is required later in the process.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-k6zv2jrBFRk/TeKP669sGRI/AAAAAAAADI0/PV-Q3apFI6M/s1600/image003.png"&gt;&lt;img style="width: 400px; height: 144px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206328080242962" alt="" src="http://4.bp.blogspot.com/-k6zv2jrBFRk/TeKP669sGRI/AAAAAAAADI0/PV-Q3apFI6M/s400/image003.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first-time configuration option is selected and details of the database are entered, this will only have to be entered once as all products are going to be deployed using one database.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-iP4na3RGem4/TeKP6wS4-cI/AAAAAAAADIs/w3Ku-gc8CnY/s1600/image004.png"&gt;&lt;img style="width: 400px; height: 387px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206325216377282" alt="" src="http://4.bp.blogspot.com/-iP4na3RGem4/TeKP6wS4-cI/AAAAAAAADIs/w3Ku-gc8CnY/s400/image004.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All the required options will already be selected notice that there are no options available to deploy to application server.&lt;br /&gt;&lt;br /&gt;It is also worth noting that the essbase server configuration option is not available either, now you can leave configuring essbase until later or do what I did and configure all the above first and then run &lt;span style="font-weight: bold;"&gt;configtool.cmd&lt;/span&gt;, deselect all and only select Essbase &amp;gt; “Configure Essbase Server”.&lt;br /&gt;&lt;br /&gt;Once all the products have been configured then it is time to move on to the web applications compact deployment.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-LSfvnK4ed_s/TeKP0dIIUcI/AAAAAAAADIk/6M7YZgFeeKQ/s1600/image005.png"&gt;&lt;img style="width: 400px; height: 68px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206216991756738" alt="" src="http://2.bp.blogspot.com/-LSfvnK4ed_s/TeKP0dIIUcI/AAAAAAAADIk/6M7YZgFeeKQ/s400/image005.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-ANxKzx45LVw/TeKP0B-YhgI/AAAAAAAADIc/mYyutHLQE7Q/s1600/image006.png"&gt;&lt;img style="width: 400px; height: 157px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206209703118338" alt="" src="http://1.bp.blogspot.com/-ANxKzx45LVw/TeKP0B-YhgI/AAAAAAAADIc/mYyutHLQE7Q/s400/image006.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To start up the compact deployment open a command prompt and go to &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/epmsystem1/bin/compact&lt;/span&gt; and execute “&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;runCompactDeploy.bat&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;Four pieces of information are required:-&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Weblogic Domain name&lt;/span&gt; – this should be the same name as the domain name created in the EPM configurator, the default being EPMSystem (though I used epmsystem1 as the domain name in my example as it was a fresh install with no domain created)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Weblogic Domain user name/password&lt;/span&gt; – I stuck with the default username used when configuring EPM which is epm_admin and the password is your choice, you will need these account details if you intend on logging into the WebLogic admin console for the domain.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Database user password&lt;/span&gt; – this is the password of the account used for configuring the one database in the configurator.&lt;br /&gt;&lt;br /&gt;Once entered the compact deployment should spring into life and all should be good…&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fdAvjtT-iv0/TeKRH40vgNI/AAAAAAAADJM/i8ZgezKcNPE/s1600/image007.png"&gt;&lt;img style="width: 400px; height: 175px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612207650355773650" alt="" src="http://3.bp.blogspot.com/-fdAvjtT-iv0/TeKRH40vgNI/AAAAAAAADJM/i8ZgezKcNPE/s400/image007.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately I hit a bit of an issue and thought I would explain why it happened as I am sure I won’t be the only one that gets hit with it.&lt;br /&gt;&lt;br /&gt;The compact deployment ran through and by watching the command window intently I noticed errors appear and in the end was awarded with a pop up message stating &lt;span style="font-weight: bold;"&gt;startEPMSystem.bat&lt;/span&gt; did not exist.&lt;br /&gt;&lt;br /&gt;The problem started to manifest when a WebLogic script is executed to create the domain and add the EPM library templates.&lt;br /&gt;&lt;br /&gt;The exception was “&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 255, 51);"&gt;The following prerequisites were found to be missing: Oracle EPM HPS libraries – 11.1.2.&lt;/span&gt;&lt;span style="color: rgb(255, 255, 51);"&gt;1&lt;/span&gt;&lt;/span&gt;”&lt;br /&gt;&lt;br /&gt;It seems that there are a number of mandatory products that need to be installed before the compact deployment can be carried out.&lt;br /&gt;&lt;br /&gt;I found the details of the required libraries in the following file which is used in the compact deployment -&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/EPMSystem11R1/common/templates/compact/epm_system_11.1.2.1.jar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-DZ2Q5dVCAlg/TeKPz-Ue7_I/AAAAAAAADIU/FICfTciFbzk/s1600/image008.png"&gt;&lt;img style="width: 400px; height: 344px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206208722071538" alt="" src="http://2.bp.blogspot.com/-DZ2Q5dVCAlg/TeKPz-Ue7_I/AAAAAAAADIU/FICfTciFbzk/s400/image008.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Within the jar is a file named template-info.xml which contains the required libraries, the libraries are located at &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/EPMSystem11R1/common/templates/applications&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It looks like the following products need to installed before running the compact deployment –&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Foundation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Reporting and Analysis Framework&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;EAS&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Planning&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Financial Reporting&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;Web Analysis&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;HPS (Hyperion Performance Scorecard)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So depending on what products have been installed will determine the exception generated, in my case the only product I had not installed was Performance Scorecard and that is why the error around “&lt;span style="font-weight: bold;"&gt;Oracle EPM HPS libraries – 11.1.2.1&lt;/span&gt;” was being generated.&lt;br /&gt;&lt;br /&gt;It may be possible to update the xml file to alter the dependencies but it is not something I have attempted. (&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;Update&lt;/span&gt;: it is possible and I have wrote a post on how to do it, have a read &lt;a href="http://john-goodwin.blogspot.com/2011/06/epm-11121-compact-deployment-update.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;here&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;This left me the only option to install Performance scorecard and then configured the non web app elements.&lt;br /&gt;&lt;br /&gt;Once complete “&lt;span style="font-weight: bold;"&gt;runCompactDeploy.bat&lt;/span&gt;” was executed again.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-kMSQ5IGC5zw/TeKPz2gVUzI/AAAAAAAADIM/SQgasb-loVI/s1600/image009.png"&gt;&lt;img style="width: 400px; height: 313px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206206624289586" alt="" src="http://1.bp.blogspot.com/-kMSQ5IGC5zw/TeKPz2gVUzI/AAAAAAAADIM/SQgasb-loVI/s400/image009.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This time everything ran smoothly and no errors were generated in the compactDeploy window, once completed another command window opens and starts up the WebLogic admin server for epmsystem1, a final command window opened starting up all the EPM web applications in one managed WebLogic server by executing &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/domains/epmsystem1/bin/startEPMSystem.bat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-pDJDlTi-qSI/TeKPzm3R0JI/AAAAAAAADIE/5gIW_95FM4Q/s1600/image010.png"&gt;&lt;img style="width: 400px; height: 148px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206202425561234" alt="" src="http://4.bp.blogspot.com/-pDJDlTi-qSI/TeKPzm3R0JI/AAAAAAAADIE/5gIW_95FM4Q/s400/image010.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you log into the WebLogic admin console for the epmsystem1 domain you will notice a server has been created called “&lt;span style="font-weight: bold;"&gt;EPMServer0&lt;/span&gt;” running on port &lt;span style="font-weight: bold;"&gt;9000&lt;/span&gt;, this means all the EPM web application will be running against that port.&lt;br /&gt;&lt;br /&gt;To log in to the admin console go to &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;http://localhost:7001/console&lt;/span&gt; and enter the username/password that was entered earlier when running the compact deployment batch script&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-OJ4m2q7-Ry4/TeKPpwptWtI/AAAAAAAADH8/v4MM002cxIs/s1600/image011.png"&gt;&lt;img style="width: 400px; height: 369px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206033254308562" alt="" src="http://1.bp.blogspot.com/-OJ4m2q7-Ry4/TeKPpwptWtI/AAAAAAAADH8/v4MM002cxIs/s400/image011.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To view all the web applications deployed in the managed server click on “&lt;span style="font-weight: bold;"&gt;EPMServer0&lt;/span&gt;” and go to deployments tab.&lt;br /&gt;&lt;br /&gt;The admin server can be stopped to save memory as it is not required and the "&lt;span style="font-weight: bold;"&gt;EPMServer0&lt;/span&gt;" managed server can be run indepently.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-oK2eGahjAQw/TeKPpqKQebI/AAAAAAAADH0/hAdM8cYO4N0/s1600/image012.png"&gt;&lt;img style="width: 400px; height: 179px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206031511779762" alt="" src="http://3.bp.blogspot.com/-oK2eGahjAQw/TeKPpqKQebI/AAAAAAAADH0/hAdM8cYO4N0/s400/image012.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is possible to test logging into some of the products using port 9000 but for all the products to communicate correctly through workspace the final step was to configure the http web server element.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-R0AzycQ2JYg/TeKPpar3X6I/AAAAAAAADHs/74zvWZnqXe0/s1600/image013.png"&gt;&lt;img style="width: 400px; height: 242px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206027357773730" alt="" src="http://1.bp.blogspot.com/-R0AzycQ2JYg/TeKPpar3X6I/AAAAAAAADHs/74zvWZnqXe0/s400/image013.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the web server was successfully configured using OHS the web applications were all accessible via port 19000&lt;br /&gt;&lt;br /&gt;To start the managed server execute - &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/domains/epmsystem1/bin/startEPMSystem.bat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To stop the managed server execute - &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/domains/epmsystem1/bin/stopEPMSystem.bat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No windows service is created by default to start/stop the managed server, I am sure it is possible to create one and maybe it is something I will have a look at if I ever get the chance.&lt;br /&gt;(&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;Update:&lt;/span&gt; the steps to create a windows service can be found &lt;a href="http://john-goodwin.blogspot.com/2011/07/epm-11121-compact-deployment-update.html"&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 102);"&gt;here&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-A_sm0dsI1W4/TeKPpesdS2I/AAAAAAAADHk/qmOEtZmyT0Q/s1600/image014.png"&gt;&lt;img style="width: 400px; height: 371px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206028434000738" alt="" src="http://3.bp.blogspot.com/-A_sm0dsI1W4/TeKPpesdS2I/AAAAAAAADHk/qmOEtZmyT0Q/s400/image014.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A quick look at the Java process running the WebLogic managed server indicated the minimum memory being consumed was 1.3GB, so if you compared that to starting the entire set of EPM web applications in a standard deployment then there is a considerable difference, starting up just “Foundation” and “R&amp;amp;A Framework” web applications can consume around 1GB.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-5IsXPUoEMrc/TeKPpLYVGHI/AAAAAAAADHc/y23s6hPI26I/s1600/image015.png"&gt;&lt;img style="width: 400px; height: 313px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5612206023249303666" alt="" src="http://2.bp.blogspot.com/-5IsXPUoEMrc/TeKPpLYVGHI/AAAAAAAADHc/y23s6hPI26I/s400/image015.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Depending on the available memory on the machine being deployed on the JVM maximum memory can be increased and with it being 64bit then there is less of a constraint on an upper limit like with 32bit.&lt;br /&gt;&lt;br /&gt;To increase the JVM edit &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/domains/epmsystem1/bin/setManagedParamsEPMServer.bat&lt;/span&gt; and update the value for &lt;span style="color: rgb(255, 255, 51); font-weight: bold;"&gt;-Xmx&lt;/span&gt; then restart the managed server.&lt;br /&gt;&lt;br /&gt;I have not had a chance to really put the system through its paces but the performance seems reasonable considering what it will be used for, I recommend you try it out and make up your own opinion but at least it opens the door for deployments on machines with a lower memory capacity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-2230529749236370728?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/2230529749236370728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=2230529749236370728' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2230529749236370728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/2230529749236370728'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/05/epm-11121-compact-deployment.html' title='EPM 11.1.2.1 compact deployment'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-hFEAFaD2iIM/TeKP7atj9CI/AAAAAAAADJE/4NkysJiGMVg/s72-c/image001.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-7718442342678783060</id><published>2011-05-15T07:16:00.000-07:00</published><updated>2011-05-15T07:22:40.393-07:00</updated><title type='text'>Planning 11.1.2.1 – Upgrade Wizard</title><content type='html'>The recent release of planning 11.1.2.1 brings new application administration features which are worth a quick mention.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-wzk7Ig9jeX8/Tc_grVCemUI/AAAAAAAADHU/rE78hIFJpEs/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 183px;" src="http://1.bp.blogspot.com/-wzk7Ig9jeX8/Tc_grVCemUI/AAAAAAAADHU/rE78hIFJpEs/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5606947096086092098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These can be accessed from workspace under Administer &amp;gt; Classic Application Administration &amp;gt; Planning Administration.&lt;br /&gt;Even though it is being accessed through Classic Administration it also applies to EPMA enabled applications.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-BZaNPvlyaXY/Tc_grXP8tbI/AAAAAAAADHM/gAybbJ7OyXc/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 206px;" src="http://3.bp.blogspot.com/-BZaNPvlyaXY/Tc_grXP8tbI/AAAAAAAADHM/gAybbJ7OyXc/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5606947096679462322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Upgrade Wizard is a new addition.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-qhYgUHesiDc/Tc_gnSqfX5I/AAAAAAAADHE/ki2JO5cw5gc/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 157px;" src="http://2.bp.blogspot.com/-qhYgUHesiDc/Tc_gnSqfX5I/AAAAAAAADHE/ki2JO5cw5gc/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5606947026729131922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Previously if any data source elements had changed you would have to edit each data source individually, now it is possible to mass update this information.&lt;br /&gt;&lt;br /&gt;So for instance if say the essbase server was rehosted or account information had changed then all the data sources can be updated at once.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-FHNHLEjqJsA/Tc_gncIzf1I/AAAAAAAADG8/UTTrYofKhY0/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 81px;" src="http://2.bp.blogspot.com/-FHNHLEjqJsA/Tc_gncIzf1I/AAAAAAAADG8/UTTrYofKhY0/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5606947029272198994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the data sources that require updates, enter the new information, apply then save.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-_8rl_LOhzJM/Tc_gnCoavcI/AAAAAAAADG0/UNbvatHGotE/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 141px;" src="http://4.bp.blogspot.com/-_8rl_LOhzJM/Tc_gnCoavcI/AAAAAAAADG0/UNbvatHGotE/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5606947022425472450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In previous versions if you wanted to upgrade a planning application to the latest release you would have to log into the planning application and select migrate, it is now possible to upgrade multiple applications at once which saves time if you have just upgraded planning.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-QW28Op8-mqo/Tc_gnI3GdtI/AAAAAAAADGs/vUFfbvObTBQ/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 112px;" src="http://4.bp.blogspot.com/-QW28Op8-mqo/Tc_gnI3GdtI/AAAAAAAADGs/vUFfbvObTBQ/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5606947024097670866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In case of upgrade failure the upgrade process for each planning application is logged in &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/epmsystem1/Planning/planning1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;and in the format of&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;PlanningAppUpgradeLog_&amp;lt;APPLICATION_NAME&amp;gt;.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you have never understood what happens when a planning application is upgraded it is worth having a look at the log as it will give you a good idea of the steps taken.&lt;br /&gt;&lt;br /&gt;The last option is “Update Reporting Essbase Servers”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-aLgiKREjPao/Tc_gmwlk_rI/AAAAAAAADGk/ft0xc5hhD1k/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 87px;" src="http://1.bp.blogspot.com/-aLgiKREjPao/Tc_gmwlk_rI/AAAAAAAADGk/ft0xc5hhD1k/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5606947017581723314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are using the Reporting Application functionality essbase server connection information changes then it is possible update this for single or multiple applications.&lt;br /&gt;&lt;br /&gt;I did notice a security flaw with the new functionality as if you go directly to &lt;span style="font-weight: bold;"&gt;http://&amp;lt;planning_server&amp;gt;:8300/HyperionPlanning/UpgradeWizard.jsp&lt;/span&gt; then anybody can access the Upgrade Wizard pages without the need for authentication, I am sure this will get fixed in subsequent patches but something to be aware of at the moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-7718442342678783060?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/7718442342678783060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=7718442342678783060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7718442342678783060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/7718442342678783060'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/05/planning-11121-upgrade-wizard.html' title='Planning 11.1.2.1 – Upgrade Wizard'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-wzk7Ig9jeX8/Tc_grVCemUI/AAAAAAAADHU/rE78hIFJpEs/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-6257780999183258666</id><published>2011-05-14T10:37:00.000-07:00</published><updated>2011-05-14T10:53:15.851-07:00</updated><title type='text'>Planning 11.1.2.1 – Automate pushing of Reporting Application data</title><content type='html'>One of the new features in planning 11.1.2 was the ability to map and push data to a reporting application, I covered the reporting functionality in an earlier blog which you can read &lt;a style="font-weight: bold; color: rgb(255, 255, 51);" href="http://john-goodwin.blogspot.com/2010/06/1112-planning-mapping-reporting.html"&gt;here&lt;/a&gt;, one of the drawbacks was if you wanted to push the data to an essbase database it had to be done manually, depending on the size of the data the export/import could take a while and it would be something you would want to schedule out of hours.&lt;br /&gt;&lt;br /&gt;With the release of 11.1.2.1 a new command line utility called PushData has been created, the utility provides the functionality to automate the pushing of data for any Reporting Applications that have been set up in a planning application.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-YNGmtbLR_2Q/Tc6-GgswsoI/AAAAAAAADGc/HmZCo0-tpAs/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 74px;" src="http://3.bp.blogspot.com/-YNGmtbLR_2Q/Tc6-GgswsoI/AAAAAAAADGc/HmZCo0-tpAs/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5606627605189014146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The utility is available with the other planning utilities in the directory &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;/user_projects/epmsystem1/Planning/planning1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The parameters to use the utility are  -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;PushData [-f:passwordFile] /U:username /A:sourceApplication / M:applicationMapping [/C]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Most of the parameters are self-explanatory,&lt;span style=""&gt;  &lt;/span&gt;if optional &lt;span style="font-weight: bold;"&gt;/C&lt;/span&gt; is used then the data on the target is cleared first.&lt;br /&gt;If you want to understand how to create a password file have a read &lt;a style="color: rgb(255, 255, 51);" href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/ch02s10s01.html"&gt;&lt;span style="font-weight: bold;"&gt;here&lt;/span&gt;&lt;/a&gt;  &lt;p style="font-weight: bold;" class="MsoNormal"&gt;PushData.cmd /U:admin /A:PlanSamp /M:PLANASO /C&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-PKdFtmwqNIw/Tc6-GomYQdI/AAAAAAAADGU/ndFFdGu1H8A/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 75px;" src="http://3.bp.blogspot.com/-PKdFtmwqNIw/Tc6-GomYQdI/AAAAAAAADGU/ndFFdGu1H8A/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5606627607309730258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The utility also produces a log available at -&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;&amp;lt;MIDDLEWARE_HOME/user_projects/epmsystem1/diagnostics/diagnostics/logs/planning/PushData.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-DJ7RGmvqk-8/Tc6-GAOA_sI/AAAAAAAADGM/vNaveN2qeZU/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 164px;" src="http://1.bp.blogspot.com/-DJ7RGmvqk-8/Tc6-GAOA_sI/AAAAAAAADGM/vNaveN2qeZU/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5606627596470124226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The log will capture whether the pushing of data was successful or not and any members that are skipped due to not existing in the target.&lt;br /&gt;&lt;p class="MsoNormal"&gt; It is also possible to check the status through the Job Console within the planning application.&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-6UgYws7rkrg/Tc6-GJ0tcAI/AAAAAAAADGE/6DUc7wysy6I/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 134px;" src="http://2.bp.blogspot.com/-6UgYws7rkrg/Tc6-GJ0tcAI/AAAAAAAADGE/6DUc7wysy6I/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5606627599048339458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;o:officedocumentsettings&gt;   &lt;o:relyonvml/&gt;   &lt;o:allowpng/&gt;  &lt;/o:OfficeDocumentSettings&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-GB&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="0" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Table Normal";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-priority:99;  mso-style-qformat:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin-top:0cm;  mso-para-margin-right:0cm;  mso-para-margin-bottom:10.0pt;  mso-para-margin-left:0cm;  line-height:115%;  mso-pagination:widow-orphan;  font-size:11.0pt;  font-family:"Calibri","sans-serif";  mso-ascii-font-family:Calibri;  mso-ascii-theme-font:minor-latin;  mso-fareast-font-family:"Times New Roman";  mso-fareast-theme-font:minor-fareast;  mso-hansi-font-family:Calibri;  mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;I did notice some strange anomalies in the log as shown above.&lt;br /&gt;&lt;p class="MsoNormal"&gt; After successfully running the command line utility it can be batched up and scheduled using your chosen scheduler to run at required intervals.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-6257780999183258666?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/6257780999183258666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=6257780999183258666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/6257780999183258666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/6257780999183258666'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/05/planning-11121-automate-pushing-of.html' title='Planning 11.1.2.1 – Automate pushing of Reporting Application data'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-YNGmtbLR_2Q/Tc6-GgswsoI/AAAAAAAADGc/HmZCo0-tpAs/s72-c/image001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-9183731679837394578</id><published>2011-04-25T12:44:00.000-07:00</published><updated>2011-04-25T13:08:57.107-07:00</updated><title type='text'>Planning 11.1.2.1 - Exporting metadata</title><content type='html'>I have lost count of the amount times the question has been asked “how can I extract a planning applications outline”, until now the options have been pretty limited, one of the possible methods is to use LCM but it has its limitations and is not in the format that suits everybody.  &lt;p class="MsoNormal"&gt;Since the arrival of version 11 the planning Outline Load utility has done wonders and has been improving with each release, it should have been around well before 11 but at least it did arrive.&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now the utility is mainly aimed at classic planning applications, yes there are still many clients holding out with classic and why not.&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;With the recent release of 11.1.2.1 the utility brings in the option to export dimension metadata which I didn't see mentioned in the planning new features document, so the utility has evolved as not just a loader but an extractor as well.&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;The utility is available on the machine where planning has been deployed in the folder &lt;span style="font-weight: bold;"&gt;&amp;lt;MIDDLEWARE_HOME&amp;gt;\user_projects\epmsystem1\Planning\planning1\&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I am not going to go through all the parameters of the utility as I have already covered the utility when it was first released&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;To extract a dimensions metadata it is as simple as executing:-&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p style="color: rgb(255, 255, 51);" class="MsoNormal"&gt;&lt;span style="font-weight: bold;"&gt;Outlineload&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;/A:application /U:username /D:DimensionToExtract /E:outputFilename&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;For example &lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;OutlineLoad /A:PlanSamp /U:admin /D:Account /E:F:/PlanExports/acc_export.csv&lt;/span&gt;&lt;/p&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-1iTfn4l54jk/TbXPkK5vrRI/AAAAAAAADF8/YuFbRl-KszE/s1600/image001.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 129px;" src="http://3.bp.blogspot.com/-1iTfn4l54jk/TbXPkK5vrRI/AAAAAAAADF8/YuFbRl-KszE/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5599609932013874450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you want to include logging then you can use the parameters &lt;span style="font-weight: bold;"&gt;/L:LogFilename&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;/X:exceptionFileName&lt;/span&gt;, if you don’t want to enter a password you can you the &lt;span style="font-weight: bold;"&gt;–F:passwordFile&lt;/span&gt;, how to set up a password file is available read &lt;a href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/hp_admin/ch02s10s01.html"&gt;&lt;span style="font-weight: bold;"&gt;here&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-w4KxgmB9tyk/TbXPjzXr1RI/AAAAAAAADF0/qrdXnplL61w/s1600/image002.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 85px;" src="http://2.bp.blogspot.com/-w4KxgmB9tyk/TbXPjzXr1RI/AAAAAAAADF0/qrdXnplL61w/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5599609925697000722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The generated output CSV file is exactly the same easy manageable format that is required to load a dimension using the utility.&lt;br /&gt;&lt;br /&gt;It is also possible to extract attribute dimension metadata.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-o8EQCjcHfSk/TbXPjf57EnI/AAAAAAAADFs/y-88StNUDxg/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 151px;" src="http://4.bp.blogspot.com/-o8EQCjcHfSk/TbXPjf57EnI/AAAAAAAADFs/y-88StNUDxg/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5599609920471896690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To extract an attribute dimension all that is required is to provide the attribute name using the &lt;span style="font-weight: bold;"&gt;/D:&lt;/span&gt; parameter.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-08wqpjZxKe4/TbXPjOY5vfI/AAAAAAAADFk/sYRsocddxuY/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 56px;" src="http://1.bp.blogspot.com/-08wqpjZxKe4/TbXPjOY5vfI/AAAAAAAADFk/sYRsocddxuY/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5599609915769994738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Output format is MemberName/Parent/Alias.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ewbs9FciHOY/TbXPjGfK9qI/AAAAAAAADFc/_m8RBqfoiNU/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 280px; height: 149px;" src="http://2.bp.blogspot.com/-ewbs9FciHOY/TbXPjGfK9qI/AAAAAAAADFc/_m8RBqfoiNU/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5599609913648805538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It is possible to export all the Smart List metadata within an application.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-PaVXm83S8PA/TbXPcc2Ba_I/AAAAAAAADFU/fQGqOUyYaIk/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 182px;" src="http://2.bp.blogspot.com/-PaVXm83S8PA/TbXPcc2Ba_I/AAAAAAAADFU/fQGqOUyYaIk/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5599609799391144946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The parameter required for exporting Smart Lists is &lt;span style="font-weight: bold;"&gt;/DS:HSP_SMARTLISTS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-hU_4LGmnVJQ/TbXPb2QrkxI/AAAAAAAADFM/DfLb_PitvKQ/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 55px;" src="http://2.bp.blogspot.com/-hU_4LGmnVJQ/TbXPb2QrkxI/AAAAAAAADFM/DfLb_PitvKQ/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5599609789033976594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-dzmJaV0Cw-E/TbXPb1IFLII/AAAAAAAADFE/iY55xv2_Ggg/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 121px;" src="http://4.bp.blogspot.com/-dzmJaV0Cw-E/TbXPb1IFLII/AAAAAAAADFE/iY55xv2_Ggg/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5599609788729470082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once again the output format matches the one for importing.&lt;br /&gt;&lt;br /&gt;To export exchange rates tables the parameter used would be &lt;span style="font-weight: bold;"&gt;/DX:HSP_RATES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-0GMNThkhMVA/TbXPblqYXTI/AAAAAAAADE8/nMu51azhiwI/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 144px;" src="http://2.bp.blogspot.com/-0GMNThkhMVA/TbXPblqYXTI/AAAAAAAADE8/nMu51azhiwI/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5599609784578366770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All the exchange rates tables available within the application are exported to the output CSV file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-8ziiDweypv8/TbXPbdRwqfI/AAAAAAAADE0/3qSLyR5i4pY/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 100px;" src="http://1.bp.blogspot.com/-8ziiDweypv8/TbXPbdRwqfI/AAAAAAAADE0/3qSLyR5i4pY/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5599609782327618034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The utility supports the exporting of planning unit hierarchies (which was available in 11.1.2) and the defining parameter is &lt;span style="font-weight: bold;"&gt;/D:PlanningUnitHierName&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-9183731679837394578?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/9183731679837394578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=9183731679837394578' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/9183731679837394578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/9183731679837394578'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/04/planning-11121-exporting-metadata.html' title='Planning 11.1.2.1 - Exporting metadata'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1iTfn4l54jk/TbXPkK5vrRI/AAAAAAAADF8/YuFbRl-KszE/s72-c/image001.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-9079298093689586269</id><published>2011-04-10T12:41:00.000-07:00</published><updated>2011-08-29T10:37:34.278-07:00</updated><title type='text'>Applying EPM 11.1.2.1 maintenance release</title><content type='html'>I am not here today to announce the release of 11.1.2.1 as I think the news has definitely has been posted enough times now, I’d be extremely shocked if you didn’t know, maybe you have been living in a cave and decided to visit my blog when you first ventured out.&lt;br /&gt;&lt;br /&gt;Now with this new release there are more options to move to it, you can upgrade/migrate from previous versions, fresh install or apply the maintenance patch to upgrade 11.1.2 to 11.1.2.1, some of this options I will be covering in future blogs.&lt;br /&gt;&lt;br /&gt;This release is also about bug fixes as masses have been addressed, there are a number enhancements and new features in a selection of the products but nothing ground breaking (you may disagree), it looks like planning has a larg share of them.&lt;br /&gt;&lt;br /&gt;As in past blogs I have gone through the installation and maintenance patches for previous releases so I thought I might as well share my experience of apply the maintenance release today. The release has only been around for a few days so I apologise if I provide any incorrect information.&lt;br /&gt;&lt;br /&gt;The OS the maintenance release is being applied to is windows 2008 x64 SP2.&lt;br /&gt;&lt;br /&gt;If you are intending of applying the maintenance release I recommend having a read of the “&lt;a href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/epm_install_11121/frameset.htm?launch.html"&gt;&lt;span style="font-weight: bold;"&gt;Installation and Configuration Guide&lt;/span&gt;&lt;/a&gt;” as it covers important detailed information&lt;br /&gt;&lt;br /&gt;Next step is download all the required files, I usually obtain them from Oracle edelivery, the files that are required are covered in the install and config guide, note this release there are seven foundation files and not four, also don’t forget the additional content file.&lt;br /&gt;&lt;br /&gt;Once you have all the files then extract them all to the same location (if you have the install files in a folder from the previous release 11.1.2 make sure you extract to a different folder), if you are installing on a distributed environment make sure you extract the necessary files on each machine and take note of information provided in the config guide, for instance&lt;br /&gt;&lt;ul style="font-weight: bold; color: rgb(255, 255, 51);"&gt;&lt;li&gt;On the machine on which you plan to administer the WebLogic Server, you must install all Web applications for all applications you plan to deploy on any machine in the environment. (The WebLogic Administration Server is installed and deployed on the Foundation Services machine.)&lt;/li&gt;&lt;/ul&gt;&lt;img style="cursor: pointer; width: 303px; height: 400px;" src="http://3.bp.blogspot.com/-ijIJrLVSmJ0/TaIIt6ij7dI/AAAAAAAADEk/9N_E2ETJDes/s400/image001.png" alt="" id="BLOGGER_PHOTO_ID_5594043272048930258" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;There are a number of extra folders at root level in this release.&lt;br /&gt;&lt;br /&gt;Now there is a list of prerequisites to be met before installing the Maintenance Release to move from 11.1.2 to 11.1.2.1, here is a summary of the main points.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;•    You must apply the maintenance release on top of your existing EPM System installation.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;•    You must apply the maintenance release to all EPM System products in the deployment. You cannot apply the maintenance release to only some products.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;•    If you are applying the maintenance release to move from EPM System release 11.1.2.0 to EPM System Release 11.1.2.1, or if you are reinstalling EPM System products, you must first stop all the services for EPM System products. &lt;/span&gt;  &lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;&lt;br /&gt;&lt;br /&gt;•    If you are applying the maintenance release to move from Essbase Release 11.1.2 to Release 11.1.2.1, you must first export linked reporting object information from the 11.1.2 database, and then delete the linked reporting objects. After applying the maintenance release, import the exported linked reporting objects. More information available &lt;/span&gt;&lt;a style="font-weight: bold; color: rgb(255, 255, 51);" href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/epm_install_11121/ch03s01s03s01.html"&gt;here&lt;/a&gt;  &lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;One more point before starting the installation is to be sure you have more than 5GB spare on the drive where EPM is currently installed, if there is not you will not be able to complete the installation steps.&lt;br /&gt;&lt;br /&gt;Once all the prerequisites have been met then start up the installation by executing InstallTool.cmd/sh&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 400px; height: 198px;" src="http://2.bp.blogspot.com/-gt-PbObX0aE/TaIItqBP1RI/AAAAAAAADEc/oK8JvfLu6NI/s400/image002.png" alt="" id="BLOGGER_PHOTO_ID_5594043267614233874" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;A new addition to the start up of the installer is the check whether UAC is enabled, I know this could cause problem with 11.1.2 if it was enabled, if it is enabled in this release a warning will be displayed and the installer will not start up.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-ewxmWp_AwkM/TaIItXHNvTI/AAAAAAAADEU/8-2u1cE-zFU/s1600/image003.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 226px;" src="http://3.bp.blogspot.com/-ewxmWp_AwkM/TaIItXHNvTI/AAAAAAAADEU/8-2u1cE-zFU/s400/image003.png" alt="" id="BLOGGER_PHOTO_ID_5594043262538988850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are also a few more prerequisite checks, good news all have been passed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-GDL8Z8nxzU0/TaIItNVwW9I/AAAAAAAADEM/w781yW0_nLc/s1600/image004.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 80px;" src="http://1.bp.blogspot.com/-GDL8Z8nxzU0/TaIItNVwW9I/AAAAAAAADEM/w781yW0_nLc/s400/image004.png" alt="" id="BLOGGER_PHOTO_ID_5594043259915623378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nothing new on this screen, displays the current Middleware Home.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-g60w4G90M6U/TaIIs2f_zsI/AAAAAAAADEE/X-MLM4wnr3c/s1600/image005.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 190px;" src="http://3.bp.blogspot.com/-g60w4G90M6U/TaIIs2f_zsI/AAAAAAAADEE/X-MLM4wnr3c/s400/image005.png" alt="" id="BLOGGER_PHOTO_ID_5594043253784563394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Three main options to choose from and this time it is “&lt;span style="font-weight: bold;"&gt;Apply maintenance release&lt;/span&gt;”.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/--RZj4I7aViU/TaIIlJO23lI/AAAAAAAADD8/2YO_uoExiAA/s1600/image006.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 153px;" src="http://3.bp.blogspot.com/--RZj4I7aViU/TaIIlJO23lI/AAAAAAAADD8/2YO_uoExiAA/s400/image006.png" alt="" id="BLOGGER_PHOTO_ID_5594043121373994578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check that there is a tick in each of the products with “11.1.2.0.0” against them, if there is not then you have not downloaded and extracted all the required files.&lt;br /&gt;&lt;br /&gt;Once you click next a list of products to patched will be shown, click next again and the maintenance patching will start up, this is a good point to go and spend time doing something that is actually meaningful in life and then on your return hope the status is all green.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fGfTzvfliIw/TaIIkiaY6iI/AAAAAAAADD0/n1tFgyXubbA/s1600/image007.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 225px;" src="http://3.bp.blogspot.com/-fGfTzvfliIw/TaIIkiaY6iI/AAAAAAAADD0/n1tFgyXubbA/s400/image007.png" alt="" id="BLOGGER_PHOTO_ID_5594043110953380386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All green, see it wasn’t worth hanging around staring at the screen.&lt;br /&gt;&lt;br /&gt;Click the Configure button, when I first installed 11.1.2 the configure button never worked but in this release it actually opened up the configurator.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-xDr8-HmFq1g/TaIIkd8bpZI/AAAAAAAADDs/coNadcjOZx8/s1600/image008.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 123px;" src="http://1.bp.blogspot.com/-xDr8-HmFq1g/TaIIkd8bpZI/AAAAAAAADDs/coNadcjOZx8/s400/image008.png" alt="" id="BLOGGER_PHOTO_ID_5594043109753988498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You have the choice whether to stick with the original instance or create a new one, I have no reason to change this so I kept with the default.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-n0J0k1XPIXA/TaIIkBJKflI/AAAAAAAADDk/Etul4aI0OBE/s1600/image009.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 158px;" src="http://3.bp.blogspot.com/-n0J0k1XPIXA/TaIIkBJKflI/AAAAAAAADDk/Etul4aI0OBE/s400/image009.png" alt="" id="BLOGGER_PHOTO_ID_5594043102022762066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The configurator should have checked all the pending tasks for each product that need configuring, I unchecked everything except foundation as I want to be sure there are no issues with the maintenance release, if there is a problem with foundation there wouldn’t be any point configuring the other products.     &lt;p class="MsoNormal"&gt;Another reason for doing this is I have used a separate Oracle schema for each product database configuration, if you leave everything selected then it wouldn’t give the option to apply to separate schemas.&lt;/p&gt;      &lt;p class="MsoNormal"&gt; This is just a personal preference Oracle no doubt recommends to leave all products checked and the choice is yours.  &lt;/p&gt;&lt;p class="MsoNormal"&gt;If you choose to only configure foundation then you would have “Configure Web Server” again when you configure the other products, this step should always be done last.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;I do notice there is a new option “Setup connection to Oracle BI and Publisher”, it is not checked by default and I am not intending on changing that today.&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-UAk960EUKdc/TaIIj1NEruI/AAAAAAAADDc/AgMXN-kujcc/s1600/image010.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 181px;" src="http://4.bp.blogspot.com/-UAk960EUKdc/TaIIj1NEruI/AAAAAAAADDc/AgMXN-kujcc/s400/image010.png" alt="" id="BLOGGER_PHOTO_ID_5594043098817933026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keep “&lt;span style="font-weight: bold;"&gt;connect to a previously configured Shared Services database&lt;/span&gt;” selected.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Rj7DWQKGR5Q/TaIIbjkWqeI/AAAAAAAADDU/ygrhPLoz--8/s1600/image011.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 185px;" src="http://1.bp.blogspot.com/-Rj7DWQKGR5Q/TaIIbjkWqeI/AAAAAAAADDU/ygrhPLoz--8/s400/image011.png" alt="" id="BLOGGER_PHOTO_ID_5594042956644788706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once again there should be no need to change anything when applying the maintenance patch.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-9fjxu2I3nv0/TaIIbKdpg6I/AAAAAAAADDM/pDdECdm8GwQ/s1600/image012.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 62px;" src="http://2.bp.blogspot.com/-9fjxu2I3nv0/TaIIbKdpg6I/AAAAAAAADDM/pDdECdm8GwQ/s400/image012.png" alt="" id="BLOGGER_PHOTO_ID_5594042949905777570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Guess what, kept the defaults, can’t beat just clicking next.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-Grsq6LrnSJA/TaIIa53KvzI/AAAAAAAADDE/UryqEcE7s5Q/s1600/image013.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 203px;" src="http://2.bp.blogspot.com/-Grsq6LrnSJA/TaIIa53KvzI/AAAAAAAADDE/UryqEcE7s5Q/s400/image013.png" alt="" id="BLOGGER_PHOTO_ID_5594042945449410354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next one more time for me and then it will configure as I am only configuring foundation&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-gRSm525AoWI/TaIIa92NBfI/AAAAAAAADC8/CvzBJIwXyYk/s1600/image014.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 119px;" src="http://1.bp.blogspot.com/-gRSm525AoWI/TaIIa92NBfI/AAAAAAAADC8/CvzBJIwXyYk/s400/image014.png" alt="" id="BLOGGER_PHOTO_ID_5594042946519107058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All green again, nice smooth ride up to now.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-MneswudAQwc/TaIIaShSlCI/AAAAAAAADC0/hceVKl8lK-A/s1600/image015.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 151px;" src="http://4.bp.blogspot.com/-MneswudAQwc/TaIIaShSlCI/AAAAAAAADC0/hceVKl8lK-A/s400/image015.png" alt="" id="BLOGGER_PHOTO_ID_5594042934888666146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Right that’s me satisfied, back to the configurator to run through the rest of the pending tasks product by product, remembering to check “Configure Web Server” in foundation as the last step, this may not be necessary as I have already configured the web server but I am not taking any chances.&lt;br /&gt;Instead of selecting uncheck all, I unchecked the products I was not configuring for, this way I knew the product I was configuring had the required tasks checked.&lt;br /&gt;&lt;br /&gt;I am not going to paste all the screens because as this is a maintenance release there were no new surprises and the process I followed was to stick with the defaults for each product, it was basically reconfiguring the database and redeploying the web application servers.&lt;br /&gt;&lt;br /&gt;What I did notice after installing is the number of services being used by EPMA has now been cut down, originally this is how it looked in 11.1.2&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-4-8vY-TBNr0/TaIIQ0cfdWI/AAAAAAAADCs/bVBIvtKkcB4/s1600/image016.png"&gt;&lt;img style="cursor: pointer; width: 286px; height: 125px;" src="http://3.bp.blogspot.com/-4-8vY-TBNr0/TaIIQ0cfdWI/AAAAAAAADCs/bVBIvtKkcB4/s400/image016.png" alt="" id="BLOGGER_PHOTO_ID_5594042772196652386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The five non web app related services have been combined into one service called “&lt;span style="font-weight: bold;"&gt;Hyperion EPMA Server&lt;/span&gt;”.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-pkdzUoeu9YM/TaIIQo8_44I/AAAAAAAADCk/db_9H_Cv7k0/s1600/image017.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 31px;" src="http://2.bp.blogspot.com/-pkdzUoeu9YM/TaIIQo8_44I/AAAAAAAADCk/db_9H_Cv7k0/s400/image017.png" alt="" id="BLOGGER_PHOTO_ID_5594042769111769986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;I also noticed after the deployment of the web applications the issue I posted about&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://john-goodwin.blogspot.com/2011/03/epm-1112-404-issue.html"&gt;here&lt;/a&gt; has been resolved; the installer’s temporary directory is no longer used.&lt;br /&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;I went through each product and quickly tested I could access them without problems, understandably this is not a rigourous  test but it didn't show up any major issues, I will update this post if I do come across any.&lt;/p&gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-fgDg7Mr_urw/TaIOsHjiLQI/AAAAAAAADEs/PBBfk50dRX0/s1600/image018.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 208px;" src="http://3.bp.blogspot.com/-fgDg7Mr_urw/TaIOsHjiLQI/AAAAAAAADEs/PBBfk50dRX0/s400/image018.png" alt="" id="BLOGGER_PHOTO_ID_5594049838252698882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For each planning application I had to log in and upgrade from 11.1.2 to 11.1.2.1&lt;br /&gt;&lt;br /&gt;If you are using EPMA then this is taken from the installation readme -&lt;br /&gt;"After the installation and configuration of Enterprise Performance Management Architect 11.1.2.1.000, you must install Enterprise Performance Management Architect patch 11804477"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-9079298093689586269?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/9079298093689586269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=9079298093689586269' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/9079298093689586269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/9079298093689586269'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/04/applying-epm-11121-maintenance-release_4737.html' title='Applying EPM 11.1.2.1 maintenance release'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-ijIJrLVSmJ0/TaIIt6ij7dI/AAAAAAAADEk/9N_E2ETJDes/s72-c/image001.png' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-1985555487764766661</id><published>2011-03-27T10:58:00.000-07:00</published><updated>2011-03-27T11:16:25.983-07:00</updated><title type='text'>EPM 11.1.2 – 404 Issue</title><content type='html'>Recently I have being working on a project where we were occasionally being hit with various web applications producing 404 errors for no apparent reason, once the issue had occurred the only way to resolve was to restart the web app.&lt;br&gt;&lt;br&gt; There seemed to be no correlation with activity on the web application and the issue occurring, it was also affecting different products at different times. In the end the problem was traced back to the WebLogic web applications trying to access temporary files that no longer existed, the files were created when the web app was started up but for some reason were being deleted at random intervals. &lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-_ff6V0w6tjY/TY96-cn0vUI/AAAAAAAAC7M/FbPwM66E2es/s1600/image001.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5588820875843779906" style="WIDTH: 295px; CURSOR: hand; HEIGHT: 367px" alt="" src="http://3.bp.blogspot.com/-_ff6V0w6tjY/TY96-cn0vUI/AAAAAAAAC7M/FbPwM66E2es/s400/image001.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt; This issue will only affect windows deployments and the reason for it happening is when the web applications are first deployed they are configured to use a temporary directory associated with the windows account that is carrying out the configuration.&lt;br&gt;&lt;br&gt; Now the problem doesn’t occur just because of the temporary directory, the issue occurs when a remote desktop session is used to connect to the machine hosting the web apps and the same account is being used that deployed the EPM web applications, occasionally when the user logs out of the machine windows cleans up any temporary files that are associated with the account so this wipes out all the temporary files being used by WebLogic causing the web applications to fail.&lt;br&gt;&lt;br&gt;There are a few ways to resolve this problem, the easiest being just don’t log into the machine using the account that configured the system, another is to change the configuration settings for terminal services and turn off the deletion of temporary files on exit or my personal preference is to go through the registry and update the temporary file location that is being used for each deployed web application.&lt;br&gt;&lt;br&gt;This can be done by starting up the registry editor and locating &lt;br&gt;&lt;strong&gt;&lt;span style="color:#ffff33;"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Hyperion Solutions\&amp;lt;web application&amp;gt;0 &lt;/span&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-WE4My87rMDE/TY969xX5eCI/AAAAAAAAC7E/8Gb7abmaiVc/s1600/image002.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5588820864234256418" style="WIDTH: 192px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://2.bp.blogspot.com/-WE4My87rMDE/TY969xX5eCI/AAAAAAAAC7E/8Gb7abmaiVc/s400/image002.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt; On selecting one of the web applications there will be &lt;br&gt;&lt;strong&gt;&lt;span style="color:#ffff33;"&gt;“-Dweblogic.j2ee.application.tmpDir=…”&lt;/span&gt;&lt;/strong&gt; usually associated with &lt;strong&gt;&lt;span style="color:#ffff33;"&gt;JVMOption3&lt;/span&gt; &lt;/strong&gt;&lt;br /&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-c7B50ozf3M8/TY969jgchuI/AAAAAAAAC68/mU5sIFnsfAU/s1600/image003.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5588820860512012002" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 206px" alt="" src="http://4.bp.blogspot.com/-c7B50ozf3M8/TY969jgchuI/AAAAAAAAC68/mU5sIFnsfAU/s400/image003.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt; Update the folder location to a permanent folder, an example permanent location that could be used is &lt;br&gt;&lt;strong&gt;&amp;lt;Middleware Home&amp;gt;\user_projects\domains\EPMSystem\servers\&amp;lt;WebAppName&amp;gt;\tmp &lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-9T6JNqkU90c/TY969X-8skI/AAAAAAAAC60/TJuebS9Tfos/s1600/image004.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5588820857418723906" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 45px" alt="" src="http://3.bp.blogspot.com/-9T6JNqkU90c/TY969X-8skI/AAAAAAAAC60/TJuebS9Tfos/s400/image004.png" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt; Repeat the process for each of the deployed web applications; once the registry changes have been made the web application will need to be restarted to take effect. I am sure this issue will be fixed in the imminent release of 11.1.2.1 as it is a known issue but I thought I would put a quick post out there just in case there are others that are hit with this problem and search for a resolution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-1985555487764766661?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/1985555487764766661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=1985555487764766661' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/1985555487764766661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/1985555487764766661'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/03/epm-1112-404-issue.html' title='EPM 11.1.2 – 404 Issue'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-_ff6V0w6tjY/TY96-cn0vUI/AAAAAAAAC7M/FbPwM66E2es/s72-c/image001.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8086517465353686778</id><published>2011-03-13T09:21:00.000-07:00</published><updated>2011-03-13T09:52:27.330-07:00</updated><title type='text'>EPM 11.1.2 – Monitoring web applications</title><content type='html'>Now you may not be aware that EPM 11.1.2 includes Enterprise Manager Fusion Middleware Control, this is a web based management system which can monitor the availability and performance of all the Java Web Applications across the EPM environment, plus it only requires minimal configuration to get up and running with it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-8BdaYPN7pFA/TXzwMv44cjI/AAAAAAAAC6s/_9RxVMbxHTk/s1600/image001.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601739836715570" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 190px" alt="" src="http://1.bp.blogspot.com/-8BdaYPN7pFA/TXzwMv44cjI/AAAAAAAAC6s/_9RxVMbxHTk/s400/image001.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe I have not paid too much notice in the past but I wasn’t aware this was included within the EPM installation and only really stumbled across it.&lt;br /&gt;&lt;br /&gt;I am going to briefly go through the steps required to get started with it, all the configuration is done on the machine where foundation services has been installed, the foundation machine typically hosts the WebLogic admin server and by extending the WL domain it is possible add the Middleware Control components.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-FMMikdm6olg/TXzwMZ0v1wI/AAAAAAAAC6k/ab5r2DGLa2E/s1600/image002.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601733913794306" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 92px" alt="" src="http://3.bp.blogspot.com/-FMMikdm6olg/TXzwMZ0v1wI/AAAAAAAAC6k/ab5r2DGLa2E/s400/image002.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the &lt;strong&gt;&amp;lt;Middlewarehome&gt;/oracle_common/common/template/applications&lt;/strong&gt; folder there should be a file named oracle.em_11_1_1_0_0_template.jar, this is an extension template for WebLogic which adds in the Enterprise Manager Fusion Middleware Control functionality.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-8Zth11wovHU/TXzwL6f9_pI/AAAAAAAAC6c/9tLoxoIRXLM/s1600/image003.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601725505142418" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 245px" alt="" src="http://3.bp.blogspot.com/-8Zth11wovHU/TXzwL6f9_pI/AAAAAAAAC6c/9tLoxoIRXLM/s400/image003.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Before starting make sure the WebLogic admin server is not running and then launch the WebLogic configuration wizard which is available at &lt;strong&gt;&amp;lt;Middlewarehome&gt;/wlserver_10.3/common/bin/config.cmd or .sh&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-jh6l_lrsF4A/TXzwL7T3wWI/AAAAAAAAC6U/UdRAjCh6sWc/s1600/image004.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601725722837346" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 285px" alt="" src="http://1.bp.blogspot.com/-jh6l_lrsF4A/TXzwL7T3wWI/AAAAAAAAC6U/UdRAjCh6sWc/s400/image004.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select “Extend an existing WebLogic domain”&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-mHd6rSiNTUk/TXzwLm6l9LI/AAAAAAAAC6M/4P8ihLqovNU/s1600/image005.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601720248104114" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 287px" alt="" src="http://2.bp.blogspot.com/-mHd6rSiNTUk/TXzwLm6l9LI/AAAAAAAAC6M/4P8ihLqovNU/s400/image005.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select the WL Domain the default name for 11.1.2 is EPMSystem and will be situated at &lt;strong&gt;&amp;lt;Middlewarehome&gt;/user_projects/domains&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-ezlZQVjYpv0/TXzwEMoWTsI/AAAAAAAAC6E/ckNssrYL034/s1600/image006.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601592933174978" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 288px" alt="" src="http://1.bp.blogspot.com/-ezlZQVjYpv0/TXzwEMoWTsI/AAAAAAAAC6E/ckNssrYL034/s400/image006.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The products that have already been installed in the EPM environment will determine which templates already installed and available, select the “&lt;strong&gt;Oracle Enterpise Manager – 11.1.1.0&lt;/strong&gt;” option.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-o1BhIk63vFM/TXzwDoBXSzI/AAAAAAAAC58/fQkwew4DJiA/s1600/image007.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601583105985330" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 285px" alt="" src="http://4.bp.blogspot.com/-o1BhIk63vFM/TXzwDoBXSzI/AAAAAAAAC58/fQkwew4DJiA/s400/image007.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Accept the defaults on the Domain Name and Location screen.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-1UoKt_JtPYw/TXzwDZxNCzI/AAAAAAAAC50/ppbzPe6P8Lk/s1600/image008.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601579280108338" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 285px" alt="" src="http://1.bp.blogspot.com/-1UoKt_JtPYw/TXzwDZxNCzI/AAAAAAAAC50/ppbzPe6P8Lk/s400/image008.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the Configure JDBC Data Sources screen just click Next as there is no need to change any of the connection information.&lt;br /&gt;The next screen will just run through all the JDBC connections and check they are valid.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-3hTSixzxczI/TXzwDO9QwJI/AAAAAAAAC5s/ARiWmYLajR0/s1600/image009.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601576377893010" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 285px" alt="" src="http://3.bp.blogspot.com/-3hTSixzxczI/TXzwDO9QwJI/AAAAAAAAC5s/ARiWmYLajR0/s400/image009.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may be presented with the above screen depending on what has been installed in the environment, the section is for configuring JBDC connection details for Oracle Web Services Manager (OWSM), and this is usually part of the SOA suite.&lt;br /&gt;&lt;br /&gt;Unfortunately it is not possible just to click next as it will complain about a password, now you have two options either put in a fake password and click passed the warning or actually create a schema and fill in all the details.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-hcNp8grUhnc/TXzwDClHlKI/AAAAAAAAC5k/cF-0akj87Fk/s1600/image010.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601573055403170" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 187px" alt="" src="http://2.bp.blogspot.com/-hcNp8grUhnc/TXzwDClHlKI/AAAAAAAAC5k/cF-0akj87Fk/s400/image010.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I opted for the easy option and accepted the error as it is not important.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-ikvhr-VhyMg/TXzv5_ZzYdI/AAAAAAAAC5c/1qQfUDTNrY4/s1600/image011.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601417583813074" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 286px" alt="" src="http://1.bp.blogspot.com/-ikvhr-VhyMg/TXzv5_ZzYdI/AAAAAAAAC5c/1qQfUDTNrY4/s400/image011.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No need to do anything on the Optional Configuration screen just click Next&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-9kQ7e5IXAig/TXzv5ugMcfI/AAAAAAAAC5U/GWEjzfUx-pQ/s1600/image012.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601413047218674" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 288px" alt="" src="http://1.bp.blogspot.com/-9kQ7e5IXAig/TXzv5ugMcfI/AAAAAAAAC5U/GWEjzfUx-pQ/s400/image012.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select Extend to install the Middleware Control component.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-3bFJuuaZoUE/TXzv5V2-0dI/AAAAAAAAC5M/RBU9QcEkudY/s1600/image013.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601406431908306" style="WIDTH: 238px; CURSOR: hand; HEIGHT: 159px" alt="" src="http://2.bp.blogspot.com/-3bFJuuaZoUE/TXzv5V2-0dI/AAAAAAAAC5M/RBU9QcEkudY/s400/image013.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When the configuration has completed start up the EPMSystem WebLogic Admin Server.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-aUJ5fKznDi4/TXzv4z9cZ6I/AAAAAAAAC5E/p7ccvDaZ2og/s1600/image014.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601397332207522" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 277px" alt="" src="http://2.bp.blogspot.com/-aUJ5fKznDi4/TXzv4z9cZ6I/AAAAAAAAC5E/p7ccvDaZ2og/s400/image014.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The EM Middle Control is available on &lt;strong&gt;http://&amp;lt;admin_server_machine&gt;:&amp;lt;admin_server_port&gt;/em&lt;/strong&gt;. The default port for the admin server is 7001. The login details are the same as used for the admin server, these are entered when the EPM system is originally configured, the username will most probably be &lt;strong&gt;epm_admin&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-Y6l2ajco-sM/TXzv4vh6UGI/AAAAAAAAC48/YR8LPGHDLFk/s1600/image015.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601396142985314" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 201px" alt="" src="http://3.bp.blogspot.com/-Y6l2ajco-sM/TXzv4vh6UGI/AAAAAAAAC48/YR8LPGHDLFk/s400/image015.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once logged in you are presented with stats for the web applications in the EPM environment, instantly you can see the number of applications that are up or down and their CPU usage.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-r6npjx_fJ0M/TXzvwpEi8II/AAAAAAAAC40/_L76FP6yJao/s1600/image016.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601256970252418" style="WIDTH: 321px; CURSOR: hand; HEIGHT: 296px" alt="" src="http://3.bp.blogspot.com/-r6npjx_fJ0M/TXzvwpEi8II/AAAAAAAAC40/_L76FP6yJao/s400/image016.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Selecting one of the web applications will take you to a screen with more detailed information for the selected app.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-zxAB5APoxLo/TXzvwSPlvPI/AAAAAAAAC4s/Ok4M2Yhz4qw/s1600/image017.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601250842557682" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 109px" alt="" src="http://1.bp.blogspot.com/-zxAB5APoxLo/TXzvwSPlvPI/AAAAAAAAC4s/Ok4M2Yhz4qw/s400/image017.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first time you select a web application you will be advised that most of the monitoring functionality is unavailable until you apply a JRF template, once applying the template the web application will need to be restarted.&lt;br /&gt;&lt;br /&gt;It is possible to restart the web application from within the console.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-5nK5vdS-u_M/TXzvv9a56LI/AAAAAAAAC4k/oWnGknt6n3c/s1600/image018.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601245252872370" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 86px" alt="" src="http://3.bp.blogspot.com/-5nK5vdS-u_M/TXzvv9a56LI/AAAAAAAAC4k/oWnGknt6n3c/s400/image018.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It can be achieved by either going to WebLogic Server &gt; Control &gt; Start up / Shut Down&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-OdE5JhKu-8o/TXzvvq2phhI/AAAAAAAAC4c/VckwK_9YjDA/s1600/image019.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601240268965394" style="WIDTH: 381px; CURSOR: hand; HEIGHT: 128px" alt="" src="http://2.bp.blogspot.com/-OdE5JhKu-8o/TXzvvq2phhI/AAAAAAAAC4c/VckwK_9YjDA/s400/image019.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or by selecting &lt;strong&gt;Farm &gt; Select “Create/Delete Components”&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-HOJy_32iDV8/TXzvvhROdQI/AAAAAAAAC4U/SMjM3E3FOhs/s1600/image020.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601237696083202" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 195px" alt="" src="http://3.bp.blogspot.com/-HOJy_32iDV8/TXzvvhROdQI/AAAAAAAAC4U/SMjM3E3FOhs/s400/image020.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;From this page you can restart all the web applications in the domain (providing the node manager is running) which is useful functionality as it saves having to logic into the admin console.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-mLzK50BnEO4/TXzvjsdnxVI/AAAAAAAAC4M/SLoEKlIaH_Q/s1600/image021.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601034542433618" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 200px" alt="" src="http://4.bp.blogspot.com/-mLzK50BnEO4/TXzvjsdnxVI/AAAAAAAAC4M/SLoEKlIaH_Q/s400/image021.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now the JRF template has been applied and the web application restarted full monitoring should be available, I did encounter an issue at this point with the planning web application, the console said Planning was down even though it was running without any issues; the planning log also contained the following.&lt;br /&gt;&lt;br /&gt;I didn’t get any issues applying the JRF to the other web application in the domain, maybe it was just an issue with the environment I am testing this on, when I get a chance I will have to check on another install to see if is a common fault.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/-SRvviwP-pRE/TXzvjUISpQI/AAAAAAAAC4E/tRRKJ6Wa_jY/s1600/image022.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601028010517762" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 175px" alt="" src="http://2.bp.blogspot.com/-SRvviwP-pRE/TXzvjUISpQI/AAAAAAAAC4E/tRRKJ6Wa_jY/s400/image022.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For each web application there is detailed analysis of various metrics available from CPU Usage to response times of individual JSPs.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-MEjs5KwKcgI/TXzvjdK3SsI/AAAAAAAAC38/1ivlYv6AgX8/s1600/image023.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601030437227202" style="WIDTH: 263px; CURSOR: hand; HEIGHT: 374px" alt="" src="http://3.bp.blogspot.com/-MEjs5KwKcgI/TXzvjdK3SsI/AAAAAAAAC38/1ivlYv6AgX8/s400/image023.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are many further options available from the WebLogic Server drop down.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-Yf4vljFpDwY/TXzvjMD16vI/AAAAAAAAC30/3m0OSIBNZiA/s1600/image024.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601025844374258" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 155px" alt="" src="http://4.bp.blogspot.com/-Yf4vljFpDwY/TXzvjMD16vI/AAAAAAAAC30/3m0OSIBNZiA/s400/image024.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Detailed breakdown of the various logs for each web application are available, this includes enhanced search functionality and the ability to view different types of messages so for instance it is possible to only view Errors or Warnings.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-6hFgpKcLu6s/TXzvi-iqM5I/AAAAAAAAC3s/873JB2eOl-o/s1600/image025.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583601022215533458" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 178px" alt="" src="http://4.bp.blogspot.com/-6hFgpKcLu6s/TXzvi-iqM5I/AAAAAAAAC3s/873JB2eOl-o/s400/image025.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Selecting Performance Summary from the dropdown provides graphical information on different metrics; the time of analysis can easily be changed to look at different start/end times.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-enxT-MczZvo/TXzvVVrFiUI/AAAAAAAAC3k/KaU1toQvX2g/s1600/image026.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5583600787906726210" style="WIDTH: 308px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://1.bp.blogspot.com/-enxT-MczZvo/TXzvVVrFiUI/AAAAAAAAC3k/KaU1toQvX2g/s400/image026.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;There are a huge number of different metrics that can be selected and analysed from the Metric Palette.&lt;br /&gt;&lt;br /&gt;Lots more functionality is available within the application but I am going to leave it there for today, if you want detailed information then the documentation is available at :- &lt;a href="http://download.oracle.com/docs/cd/E14571_01/core.1111/e10105/monitor.htm"&gt;http://download.oracle.com/docs/cd/E14571_01/core.1111/e10105/monitor.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Enterprise Manager Fusion Middle Control is a powerful lightweight application and definitely worth exploring in more detail if you want to monitor the Java based web applications across the EPM environment.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8086517465353686778?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8086517465353686778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8086517465353686778' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8086517465353686778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8086517465353686778'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/03/epm-1112-monitoring-web-applications.html' title='EPM 11.1.2 – Monitoring web applications'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-8BdaYPN7pFA/TXzwMv44cjI/AAAAAAAAC6s/_9RxVMbxHTk/s72-c/image001.gif' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-8701554264416263425</id><published>2011-02-19T09:01:00.000-08:00</published><updated>2011-02-19T10:32:46.270-08:00</updated><title type='text'>EPM 11.1.2 – Speeding up workspace authentication</title><content type='html'>If you have been working with 11.1.2 then you may have encountered an issue with the amount of time it takes to authenticate through workspace. You will more than likely have experienced the issue if you have a number of products installed but not active so maybe in a development/test environment.&lt;br /&gt;&lt;br /&gt;If you do have products installed and not started then you will also see problems with menu items not displaying icons as they should.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-AOfeo_3LmaQ/TV_8DMbtjRI/AAAAAAAAC3U/VhkmNBGFYRI/s1600/1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451995515227410" style="WIDTH: 395px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://3.bp.blogspot.com/-AOfeo_3LmaQ/TV_8DMbtjRI/AAAAAAAAC3U/VhkmNBGFYRI/s400/1.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The speed it takes to authenticate can depend on how many products are installed but not started; the more products not started the longer it takes.&lt;br /&gt;&lt;br /&gt;Waiting around for what seems an age to log into workspace is not ideal but it doesn’t have to be that way.&lt;br /&gt;&lt;br /&gt;Now you could install only the products you are going to use or run the configurator again and reconfigure the web server for only the required products but there is a better solution (thanks to the always helpful and extremely knowledgeable &lt;a href="http://www.metavero.com/"&gt;John Booth&lt;/a&gt; for giving a pointer to the performance degradation note in the troubleshooting guide)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-y8e5XtNX1m4/TV_8DAxfnaI/AAAAAAAAC3M/-X567WwYrmc/s1600/2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451992385363362" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 200px" alt="" src="http://1.bp.blogspot.com/-y8e5XtNX1m4/TV_8DAxfnaI/AAAAAAAAC3M/-X567WwYrmc/s400/2.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In workspace if you navigate to Administer &gt; Workspace Server settings a pop window will open.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-3BeWsywWDek/TV_8C-zyBJI/AAAAAAAAC3E/FN4sxqDJbGk/s1600/3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451991858087058" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 341px" alt="" src="http://3.bp.blogspot.com/-3BeWsywWDek/TV_8C-zyBJI/AAAAAAAAC3E/FN4sxqDJbGk/s400/3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You will see a button for Enabled Products.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-YSqOiXxYb5I/TV_8Cqbdv6I/AAAAAAAAC28/nV0DvDBDCN4/s1600/4.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451986387386274" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 324px" alt="" src="http://1.bp.blogspot.com/-YSqOiXxYb5I/TV_8Cqbdv6I/AAAAAAAAC28/nV0DvDBDCN4/s400/4.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The enabled products displayed will depend on what is installed in the environment.So it is just a matter of deselecting the products you are not starting up.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-L1UlJeQqvB4/TV_8CrMPP7I/AAAAAAAAC20/47IbvAsr7TE/s1600/5.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451986591956914" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 253px" alt="" src="http://3.bp.blogspot.com/-L1UlJeQqvB4/TV_8CrMPP7I/AAAAAAAAC20/47IbvAsr7TE/s400/5.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you apply the changes log out and log back into workspace the authentication should have dramatically improved.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-njnt_KAswQw/TV_7vG8UjKI/AAAAAAAAC2s/DLcaaxnLyUc/s1600/6.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451650444004514" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 269px" alt="" src="http://2.bp.blogspot.com/-njnt_KAswQw/TV_7vG8UjKI/AAAAAAAAC2s/DLcaaxnLyUc/s400/6.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not only has the authenticated speeded up the products that are not being used have been removed from the menu options.&lt;br /&gt;&lt;br /&gt;This also means you have the ability to quickly remove access to products within the workspace, so say for example you wanted to stop access to HFM or Planning (ok you can go directly to planning but there are ways to stop direct access) then you would just need to change the enabled products, there are many situations where this would be useful and does not require messing around with provisioning)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-XW1jffBlR2Y/TV_7vDc5pLI/AAAAAAAAC2k/-gBGu19Cy2Q/s1600/7.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451649506911410" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 181px" alt="" src="http://3.bp.blogspot.com/-XW1jffBlR2Y/TV_7vDc5pLI/AAAAAAAAC2k/-gBGu19Cy2Q/s400/7.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you disable all products you can strip workspace back to the bare shell.&lt;br /&gt;&lt;br /&gt;This led me on to think whether this could be scheduled and automated, well the answer is yes but it is not as perfect solution as I would like.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-W4H2cUWL21E/TV_7uiNS-RI/AAAAAAAAC2c/I-9lk7sKQzk/s1600/8.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451640583092498" style="WIDTH: 204px; CURSOR: hand; HEIGHT: 317px" alt="" src="http://2.bp.blogspot.com/-W4H2cUWL21E/TV_7uiNS-RI/AAAAAAAAC2c/I-9lk7sKQzk/s400/8.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you log into shared services, expand Application Groups &gt; Foundation and select Deployment Metadata.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/--JhfqtxPXVQ/TV_7uS7Gh8I/AAAAAAAAC2U/tqX2X8tElF4/s1600/9.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451636480247746" style="WIDTH: 262px; CURSOR: hand; HEIGHT: 400px" alt="" src="http://1.bp.blogspot.com/--JhfqtxPXVQ/TV_7uS7Gh8I/AAAAAAAAC2U/tqX2X8tElF4/s400/9.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Expand Shared Services Registry &gt; Foundation Services &gt; WorkSpace &gt; LWA - workspace@&amp;lt;machinename&gt;_28080&lt;br /&gt;Right click Properties &gt; Export for Edit, this will let you open or save a text file called component.properties&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-2x3PcBwbcLE/TV_7uRT5-DI/AAAAAAAAC2M/F993C7Nt3Dg/s1600/10.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451636047411250" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 289px" alt="" src="http://4.bp.blogspot.com/-2x3PcBwbcLE/TV_7uRT5-DI/AAAAAAAAC2M/F993C7Nt3Dg/s400/10.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Within the file is the parameter DisabledProducts and a summary of the possible values and how they relate to the name in the workspace server settings are:-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Cds&lt;/strong&gt; = explore&lt;br /&gt;&lt;strong&gt;RAFramework&lt;/strong&gt; = Reporting and Analysis Framework&lt;br /&gt;&lt;strong&gt;Analyzer&lt;/strong&gt; = Web Analysis&lt;br /&gt;&lt;strong&gt;Reports&lt;/strong&gt; = Financial Reporting&lt;br /&gt;&lt;strong&gt;CALC&lt;/strong&gt; = Calculation Manager&lt;br /&gt;&lt;strong&gt;ChangeManagement&lt;/strong&gt;= Impact Management&lt;br /&gt;&lt;strong&gt;HP&lt;/strong&gt; = Hyperion Planning&lt;br /&gt;&lt;strong&gt;HFM&lt;/strong&gt; = Hyperion Financial Management&lt;br /&gt;&lt;strong&gt;BPMA&lt;/strong&gt; = Enterprise Performance Management Architect (EPMA)&lt;br /&gt;&lt;strong&gt;APS&lt;/strong&gt; = Provider Services&lt;br /&gt;&lt;strong&gt;AIF&lt;/strong&gt; = ERP Integrator&lt;br /&gt;&lt;strong&gt;FCC&lt;/strong&gt; = Financial Close Management&lt;br /&gt;&lt;br /&gt;In theory you can update the component.properties file to disable the products that are not going to be started or required and then use the LCM command line functionality or you could use the command line utility epmsys_registry to directly update the property value in the Shared Services registry.&lt;br /&gt;&lt;br /&gt;I am not going to go into how to automate LCM as I gave an overview on how to do it a while back which you can view &lt;a href="http://john-goodwin.blogspot.com/2008/08/so-whats-this-life-cycle-management-all.html"&gt;&lt;strong&gt;&lt;span style="color:#ffff66;"&gt;here&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; and the documentation is available &lt;a href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/epm_lifecycle_management/launch.htm"&gt;&lt;strong&gt;&lt;span style="color:#ffff66;"&gt;here&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also covered how use the epmsys_registry utility which you can read &lt;a href="http://john-goodwin.blogspot.com/2010/01/epm-version-11-what-property-files.html"&gt;&lt;strong&gt;&lt;span style="color:#ffff66;"&gt;here&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt; and the documentation is available &lt;a href="http://download.oracle.com/docs/cd/E17236_01/epm.1112/epm_install/apfs02.html"&gt;&lt;strong&gt;&lt;span style="color:#ffff66;"&gt;here&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are going to use the epmsys_registry method then here is an example command line that will update the hss registry :-&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ffff66;"&gt;epmsys_registry updateproperty SYSTEM9/FOUNDATION_SERVICES_PRODUCT/WORKSPACE/LOGICAL_WEB_APP/@DisabledProducts "cds,RAFramework,Analyzer,Reports,CALC,ChangeManagement,HP,BPMA,APS,AIF"&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Before you go ahead with any of these methods you have to realise there is a major drawback to them, they do update the properties but unfortunately the cache being used by the foundation web application is not updated, so to get the changes to be applied the foundation web app has to be restarted.&lt;br /&gt;I would have thought that if the properties are updated then they should be reflected straight away.&lt;br /&gt;&lt;br /&gt;If you are interested in where the property values are stored in the foundation relational repository then have a look at the table HSS_COMPONENT_PROPERTY_VALUES&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-_lSpPujkreI/TV_7gxxL2-I/AAAAAAAAC2E/N4NpUGAR35k/s1600/11.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5575451404241984482" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 140px" alt="" src="http://4.bp.blogspot.com/-_lSpPujkreI/TV_7gxxL2-I/AAAAAAAAC2E/N4NpUGAR35k/s400/11.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I don’t recommend you go and update the properties directly in the table though as I don’t want to be the one blamed for corrupting the Shared Services repository.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6575283218005807475-8701554264416263425?l=john-goodwin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://john-goodwin.blogspot.com/feeds/8701554264416263425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6575283218005807475&amp;postID=8701554264416263425' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8701554264416263425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575283218005807475/posts/default/8701554264416263425'/><link rel='alternate' type='text/html' href='http://john-goodwin.blogspot.com/2011/02/epm-1112-speeding-up-workspace.html' title='EPM 11.1.2 – Speeding up workspace authentication'/><author><name>John Goodwin</name><uri>http://www.blogger.com/profile/03663642245534297566</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='32' src='http://bp3.blogger.com/__2AaArK5lW8/SI4YQvQdI-I/AAAAAAAAAMk/1R6vmUBlyfI/S220/hypblogger2.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-AOfeo_3LmaQ/TV_8DMbtjRI/AAAAAAAAC3U/VhkmNBGFYRI/s72-c/1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575283218005807475.post-1999364834342260451</id><published>2011-01-30T09:15:00.000-08:00</published><updated>2011-01-30T10:43:01.214-08:00</updated><title type='text'>ODI Series - Renaming essbase members</title><content type='html'>I was planning to post this a lot sooner but I am finding it increasingly difficult to find any spare time lately, in the last blog I went through the final instalment of deleting essbase members and I thought that it would be worthwhile just finishing off with a post closely linked to the last blog but this time going through how to rename essbase members.&lt;br /&gt;&lt;br /&gt;Currently there is no way to rename essbase members without engaging in some sort of customisation in ODI, even with just essbase it is not as easy as it should be but anyway let me take you through a method to achieve this. If you didn’t read the last blog on deleting members this blog will not really make much sense because it uses the same concept and I will be reusing elements I created during the blog.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdz2-HQbI/AAAAAAAACzc/pp7vUsTRhmQ/s1600/1.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 292px;" src="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdz2-HQbI/AAAAAAAACzc/pp7vUsTRhmQ/s400/1.png" alt="" id="BLOGGER_PHOTO_ID_5568030028568412594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this example I am using the ASOSamp.Sample essbase database and the members that are going to be renamed are children of “Televisions” within the Products dimension and they are “Flat Panel”, “HDTV” and “Stands”&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__2AaArK5lW8/TUWiKBKtW5I/AAAAAAAACzk/5Vh8BUuHJ1s/s1600/2.png"&gt;&lt;img style="cursor: pointer; width: 200px; height: 112px;" src="http://1.bp.blogspot.com/__2AaArK5lW8/TUWiKBKtW5I/AAAAAAAACzk/5Vh8BUuHJ1s/s200/2.png" alt="" id="BLOGGER_PHOTO_ID_5568034807309228946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the previous blog the source flat file only contained one column with the member to be deleted, as this solution will be renaming members it requires one column with the original member name and another column with the renamed member.&lt;br /&gt;The source does not have to be a flat file it could be easily an RDBMS source.&lt;br /&gt;&lt;br /&gt;In the source file there is a member that doesn’t exist in the outline so the solution should log and ignore this record.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__2AaArK5lW8/TUWdzGA0_RI/AAAAAAAACzM/JPqlSHYdZr0/s1600/3.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 93px;" src="http://4.bp.blogspot.com/__2AaArK5lW8/TUWdzGA0_RI/AAAAAAAACzM/JPqlSHYdZr0/s400/3.png" alt="" id="BLOGGER_PHOTO_ID_5568030015426460946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Within the designer a new Datastore was created and reversed to handle the source file.&lt;br /&gt;&lt;br /&gt;A new model was then created, this step is not essential as it is possible to modify existing essbase related models and add a new Datastore.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdyoXtYjI/AAAAAAAACzE/g7gnQllmVG4/s1600/4.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 285px;" src="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdyoXtYjI/AAAAAAAACzE/g7gnQllmVG4/s400/4.png" alt="" id="BLOGGER_PHOTO_ID_5568030007469367858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The model is associated with a Logical schema that physically points to the ASOSAMP.Sample database.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdyIcW7kI/AAAAAAAACy8/MAWK5aUXO5A/s1600/5.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 157px;" src="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdyIcW7kI/AAAAAAAACy8/MAWK5aUXO5A/s400/5.png" alt="" id="BLOGGER_PHOTO_ID_5568029998898933314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A new Datastore was created.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdp8Br99I/AAAAAAAACy0/i8YI3wnueNA/s1600/6.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 135px;" src="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdp8Br99I/AAAAAAAACy0/i8YI3wnueNA/s400/6.png" alt="" id="BLOGGER_PHOTO_ID_5568029858126886866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Two columns were added one to handle the current member name and the other for holding what the member will be renamed to.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdpqoBK5I/AAAAAAAACys/8TH7XDHilVc/s1600/7.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 172px;" src="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdpqoBK5I/AAAAAAAACys/8TH7XDHilVc/s400/7.png" alt="" id="BLOGGER_PHOTO_ID_5568029853455821714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To save time the customized IKM that was created in the last blog could be duplicated, I am going to assume you read through the last blog but didn’t create the IKM so a new would need to be created.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdpBSKPrI/AAAAAAAACyk/1AlhcAysw3c/s1600/8.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 212px;" src="http://2.bp.blogspot.com/__2AaArK5lW8/TUWdpBSKPrI/AAAAAAAACyk/1AlhcAysw3c/s400/8.png" alt="" id="BLOGGER_PHOTO_ID_5568029842358288050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The IKM was named “&lt;span style="font-weight: bold;"&gt;IKM RENAME ESSBASE MEMBERS&lt;/span&gt;” with Muti-Connections enabled and Target Technology set to “Hyperion Essbase”.&lt;br /&gt;&lt;br /&gt;Three options were then created for the KM, the options are exactly the same as the ones used in the current “&lt;span style="font-weight: bold;"&gt;IKM SQL to Hyperion Essbase (METADATA)&lt;/span&gt;” and the information can be copy and pasted across.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/__2AaArK5lW8/TUWdo1FSl0I/AAAAAAAACyc/ZlQJd0Tkt0Q/s1600/9.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 202px;" src="http://1.bp.blogspot.com/__2AaArK5lW8/TUWdo1FSl0I/AAAAAAAACyc/ZlQJd0Tkt0Q/s400/9.png" alt="" id="BLOGGER_PHOTO_ID_5568029839083083586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;RESTRUCTURE_DATABASE&lt;/span&gt; option will hold the value of how the database should be restructured once the members have been deleted.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdob22qpI/AAAAAAAACyU/FfX6sir7bxo/s1600/10.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 128px;" src="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdob22qpI/AAAAAAAACyU/FfX6sir7bxo/s400/10.png" alt="" id="BLOGGER_PHOTO_ID_5568029832311646866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Option to set whether logging will be enabled or not.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdejQZLLI/AAAAAAAACyI/PCvoxHTsIUc/s1600/11.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 130px;" src="http://3.bp.blogspot.com/__2AaArK5lW8/TUWdejQZLLI/AAAAAAAACyI/PCvoxHTsIUc/s400/11.png" alt="" id="BLOGGER_PHOTO_ID_5568029662499122354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Option to hold path and filename of log.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/__2AaArK5lW8/TUWdeJuUd_I/AAAAAAAACyA/6BsQ3ibz9j0/s1600/12.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 264px;" src="http://4.bp.blogspot.com/__2AaArK5lW8/TUWdeJuUd_I/AAAAAAAACyA/6BsQ3ibz9j0/s400/12.png" alt="" id="BLOGGER_PHOTO_ID_5568029655645321202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A new command “&lt;span style="font-weight: bold;"&gt;RENAME_MEMBERS&lt;/span&gt;” was added to the KM and technology set to Jython.&lt;br /&gt;&lt;br /&gt;The command will process and store the essbase connection information, KM options, execute SQL to retrieve the source records and then pass all this information into a Java class, the Java class that will be called is going to be named “&lt;span style="font-weight: bold;"&gt;RenameMembers&lt;/span&gt;”&lt;br /&gt; &lt;br /&gt;The following code was then added to the command.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/__2AaArK5lW8/TUWddlO0JRI/AAAAAAAACx4/wHwGGldPV6s/s1600/13.png"&gt;&lt;img style="cursor: pointer; width: 383px; height: 400px;" src="http://2.bp.blogspot.com/__2AaArK5lW8/TUWddlO0JRI/AAAAAAAACx4/wHwGGldPV6s/s400/13.png" alt="" id="BLOGGER_PHOTO_ID_5568029645849502994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will briefly go over what the script does; once again it is pretty much like the delete member script.&lt;br /&gt;First the Java classes that are going to be used in the jython script are imported; this includes the Java class that will be called to rename the members.  Next the essbase connection properties are stored; these values are retrieved from the target Datastore used in the interface using the ODI API getInfo method.&lt;br /&gt;&lt;br /&gt;The KM options used in the interface are then retrieved using the ODI API getOption method and stored in variables.&lt;br /&gt;&lt;br /&gt;The variables are all stored in a &lt;a href="http://download.oracle.com/javase/6/docs/api/java/util/HashMap.html"&gt;HashMap&lt;/a&gt;, the HashMap is passed into the Java class.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/__2AaArK5lW8/TUWddTROYDI/AAAAAAAACxw/ma04ehzXfpg/s1600/14.png"&gt;&lt;img style="cursor: pointer; width: 400px; height: 107px;" src="http://3.bp.blogspot.com/__2AaArK5lW8/TUWddTROYDI/AAAAAAAACxw/ma
