tag:blogger.com,1999:blog-52692499202783843742023-11-15T23:24:39.539-08:00DataWarehousing and Oracle BIManishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-5269249920278384374.post-69371999510182800672015-02-08T19:04:00.001-08:002015-02-08T19:16:38.714-08:00Oracle BIEE 11g 11.1.1.7.1 – Sub Totals and Pivot Calculations<div dir="ltr" style="text-align: left;" trbidi="on">
<span xmlns=""></span><br />
<span xmlns=""><span style="font-family: Times New Roman;">February 8, 2015 <span style="text-decoration: underline;">Manish Chaturvedi</span><br /> </span></span><br />
<span xmlns=""> <span style="font-family: Times New Roman; font-size: 12pt;">This post is a reappraisal of another a while back by Venkat from RittmanMead, which can be read <a href="http://www.rittmanmead.com/2009/11/oracle-bi-ee-10-1-3-4-1-sub-totals-pivot-calculations/">here</a>. The original post had laid out behind the scene handling of Summary and Grand Totals in Pivot tables. </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;"><br /></span></span>
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;">The main take away is that as of OBI 10.1.3 Sub Totals and Pivot Table calculations are frequently handled by the BI Server – with only the basic Select pushed to the database. Intermediate results used to derive the calculations and totals are found in tmp files on the BI Server, raising questions about both performance and scalability. </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;"><br /></span></span>
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;">So has anything changed how OBIEE generates SQL (both Logical and Physical) as far as Summary Reports and Sub Totals are concerned?</span></span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;"></span></span><br />
<a name='more'></a><span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;"><br /></span></span><br />
<span xmlns=""> <span style="font-family: Times New Roman; font-size: 12pt;">I decided to take a look. The following Pivot table report is sub totaled by Product Category, has a Grand Total and, further calculates % contribution of each Sub Category in the Total.</span></span><br />
<span xmlns=""><br /> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7-LZ1RPhSN_lZA_JabIOCVlpxw1uzQ2GIWF4Kee7WNFg6WEx8GHpvtMVG9YgnII4jfcA8vcLLgCORSdtayhD5ie2CXRn0VZ9-RIxgcAYvpn3JxZleoes6ULoq6JtRXUt0T4BmruEw6Ek/s1600/Image+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7-LZ1RPhSN_lZA_JabIOCVlpxw1uzQ2GIWF4Kee7WNFg6WEx8GHpvtMVG9YgnII4jfcA8vcLLgCORSdtayhD5ie2CXRn0VZ9-RIxgcAYvpn3JxZleoes6ULoq6JtRXUt0T4BmruEw6Ek/s1600/Image+1.png" height="91" width="320" /></a></div>
<div style="text-align: center;">
<span xmlns=""><br /> </span></div>
<div style="text-align: center;">
<span xmlns=""><br /> </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9VA5_X7VdkuPgo-BYrEM4tATNTl6P2XF3zuzbqpFvwGmHN5z1BPbfXKymj9UiYDeO9Tw1ZZZ8D4qY8y73wcICz-rmQieSh3wj2LXsxkqDZEswVJlCQGqn8UMx8V9RkfSzWg0wzRi25wE/s1600/Image+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9VA5_X7VdkuPgo-BYrEM4tATNTl6P2XF3zuzbqpFvwGmHN5z1BPbfXKymj9UiYDeO9Tw1ZZZ8D4qY8y73wcICz-rmQieSh3wj2LXsxkqDZEswVJlCQGqn8UMx8V9RkfSzWg0wzRi25wE/s1600/Image+2.png" height="13" width="320" /></a></div>
<span xmlns=""><br /> </span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;">The Logical SQL generated does not seem to be doing anything new. </span></span><br />
<span xmlns=""><br /> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlRHe61G_Cb7_hUYiMoL_XhvOqAN4v2faqA5zRv2V3mkXD8_cx4zQe2T-wECZQcB9O1DhOXpddFUw8bVahkWAR4S8iM2Q7k3WXZFG25usCYfDLZyulXNV3WLeNiMaFuLWVFL-InQlHqMk/s1600/Image+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlRHe61G_Cb7_hUYiMoL_XhvOqAN4v2faqA5zRv2V3mkXD8_cx4zQe2T-wECZQcB9O1DhOXpddFUw8bVahkWAR4S8iM2Q7k3WXZFG25usCYfDLZyulXNV3WLeNiMaFuLWVFL-InQlHqMk/s1600/Image+3.png" height="90" width="320" /></a></div>
<div style="text-align: center;">
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;"><br /> </span></span></div>
<div style="text-align: center;">
<span xmlns=""><br /> </span></div>
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;">REPORT_SUM is used for BI Server based aggregation for the Report Totals. The two different calls to this function are attributed to a. Sub Totals By Product Category and b. Grand Total.</span></span><br />
<span xmlns=""><br /> </span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 12pt;">Time to check the Temp Directory – nothing there.</span></span><br />
<span xmlns=""><br /> </span><br />
<span xmlns=""><span style="font-family: Times New Roman;"><span style="font-size: 12pt;">Maybe the Physical SQL offers a clue. And there it is – Query Sub factoring and Analytic Sql to the rescue! </span><br /> </span></span><br />
<span xmlns=""><br /> </span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtDta-Vzpq_ZuP3oRaf4gJgA2At10lUYeIcA1RmJPwZlJBm2TT6dA-sbZ0jdompaMuqqu0W5N5HssCiJwrUX_ZzsDivrIKbCjZ5MNCdLwErfIvP6hmnREEKIN4CBYaujCLfVjKJ6eRLJU/s1600/Image+4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtDta-Vzpq_ZuP3oRaf4gJgA2At10lUYeIcA1RmJPwZlJBm2TT6dA-sbZ0jdompaMuqqu0W5N5HssCiJwrUX_ZzsDivrIKbCjZ5MNCdLwErfIvP6hmnREEKIN4CBYaujCLfVjKJ6eRLJU/s1600/Image+4.png" height="132" width="320" /></a></div>
<div style="text-align: center;">
<span xmlns=""><br /> </span></div>
<div style="text-align: center;">
<span xmlns=""><br /> </span></div>
<span xmlns=""><br /> </span><br />
<span xmlns="">So there is plenty of improvements under the hood when it comes to handling Report Totals. </span><br />
<span xmlns="">The % calculation is nowhere to be seen in the Physical query. So the components are handled by the database before passing the results for final ratio calculation back to the BI Server. </span><br />
<span xmlns="">Next step would be locate the mechanics of this last stage of the calculation.</span><br />
</div>
Manishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.com0tag:blogger.com,1999:blog-5269249920278384374.post-5135379670423906972015-01-25T10:03:00.001-08:002015-01-25T10:06:48.070-08:00OBIEE 11g: Implement Act As/Proxy<div dir="ltr" style="text-align: left;" trbidi="on">
<span xmlns=""></span><br />
<div style="text-align: justify;">
</div>
<h3>
<span xmlns="">What is "Act As" Functionality?</span></h3>
<br />
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">One user can be enabled to act for another user in Oracle BI Presentation Services. When a user (called the Proxy User) acts as another (called the Target user), the proxy user can access the objects in the catalog for which target user has permission.</span></span></div>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">This functionality is useful for IT Support to troubleshoot object access problems reported by OBI users.</span></span></div>
<div style="text-align: justify;">
</div>
<h3>
<span xmlns="">Levels of "Act As" Functionality</span></h3>
<br />
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;"> Each Proxy User is assigned an Authority level, also called Proxy Level. This determines privileges and permissions granted to the proxy user when accessing target user's objects.</span></span></div>
<div style="text-align: justify;">
</div>
<h4 style="text-align: left;">
<span xmlns="">Restricted Proxy Level </span></h4>
<ul>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Proxy user only has Read-Only permissions to target user's objects.</span></span></div>
</li>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Proxy user are restricted by their own Privileges, and do not inherit Target users privileges.</span></span></div>
</li>
</ul>
<div style="text-align: justify;">
</div>
<h4 style="text-align: left;">
<span xmlns=""> Full Proxy Level</span></h4>
<ul>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Permissions and Privileges are inherited from Target user's account.</span></span></div>
</li>
</ul>
<div>
<a name='more'></a><br /></div>
<h3>
<span xmlns="">How to verify if "Act As" Functionality is enabled</span></h3>
<div style="text-align: justify;">
<span xmlns=""> <span style="font-family: Times New Roman;">A user enabled to be a proxy user would see the <strong>Act As </strong>option in the global header in Answers, provided the Act As Proxy privilege has been set.</span></span></div>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">A target user, can view the proxy users with permission to act as them on the "Delegate Users" tab. Navigate to My Account dialog from the global header in Answers, and an extra tab called "Delegate Users" is available for target users.</span></span></div>
<span xmlns=""><br /> </span><br />
<span xmlns=""><br /> </span><br />
<h2>
<span xmlns="">Implementing "Act As Functionality</span></h2>
<div style="text-align: justify;">
<span xmlns=""> <span style="font-family: Times New Roman;">In order to enable "Act As" functionality, following steps need to be performed</span>:</span></div>
<ul>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Define Association Between Proxy Users and Target Users</span></span></div>
</li>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Create Session Variables for Proxy Functionality</span></span></div>
</li>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Modify Presentation Services Configuration file</span></span></div>
</li>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Create Custom Message Template File</span></span></div>
</li>
<li><div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;">Assigning the Proxy Privilege</span></span></div>
</li>
</ul>
<h3>
<span xmlns="">Define Association between Proxy and Target Users</span></h3>
<span xmlns=""><br /> </span><br />
<span xmlns=""> <span style="font-family: Times New Roman;">The association between proxy and target users is defined in the database. This is done by creating a database table with the following structure:</span></span><br />
<ul style="margin-left: 72pt;">
<li><span xmlns=""><span style="font-family: Times New Roman;">PxoxyUserId</span></span></li>
<li><span xmlns=""><span style="font-family: Times New Roman;">TargetUserID</span></span></li>
<li><span xmlns=""><span style="font-family: Times New Roman;">ProxyLevel</span></span></li>
</ul>
<h3>
<span xmlns="">Create Session Variables for Proxy Functionality</span></h3>
<span xmlns=""><span style="font-family: Times New Roman;">To authenticate proxy users, you must create the following two session variables along with their associated initialization blocks.</span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;">PROXY — Use this variable to store the name of the proxy user.</span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;">Create initialization block named Proxy Block and include code:</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">SELECT TARGETID</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">FROM OBIEE_PROXY_USER</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">WHERE UPPER(PROXYID) = UPPER(':USER')</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">AND UPPER(TARGETID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')</span></span><br />
<div style="margin-left: 36pt;">
<span xmlns=""><span style="font-family: Times New Roman;">PROXYLEVEL — Use this optional variable to store the proxy level, either Restricted or Full. If you do not create the PROXYLEVEL variable, then the <strong>restricted</strong> level is assumed.</span></span></div>
<span xmlns=""><span style="font-family: Times New Roman;">Create initialization block named Proxy Level, and include code:</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">SELECT PROXYLEVEL</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">FROM OBIEE_PROXY_USER</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;">WHERE UPPER(TARGETID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')</span></span><br />
<span xmlns=""><span style="font-family: Lucida Sans Typewriter; font-size: 5pt;"> AND UPPER(PROXYID)= UPPER('VALUEOF(NQ_SESSION.RUNASORIGUSER)')</span></span><br />
<h3>
<span xmlns="">Modify Presentation Services Configuration file</span></h3>
<span xmlns=""> <span style="font-family: Times New Roman;">Update the instanceConfig.xml file to configure the proxy functionality by including the following xml segment:</span></span><br />
<div style="background: #eeeeee;">
<span xmlns=""><span style="color: #222222; font-family: Courier New; font-size: 9pt;"><LogonParam></span></span></div>
<div style="background: #eeeeee;">
<span xmlns=""><span style="color: #222222; font-family: Courier New; font-size: 9pt;"> <TemplateMessageName>LogonParamSQLTemplate</TemplateMessageName></span></span></div>
<div style="background: #eeeeee;">
<span xmlns=""><span style="color: #222222; font-family: Courier New; font-size: 9pt;"> <MaxValues>100</MaxValues></span></span></div>
<div style="background: #eeeeee;">
<span xmlns=""><span style="color: #222222; font-family: Courier New; font-size: 9pt;"></LogonParam></span></span></div>
<span xmlns=""><br /> </span><br />
<span xmlns=""><span style="font-family: Times New Roman; font-size: 9pt;">TemplateMessageName: Specifies the name of the custom message template in the Custom Messages folder that contains the SQL statement to perform tasks related to displaying proxy and target users. The default name is LogonParamSQLTemplate.</span></span><br />
<div style="background: white;">
<span xmlns=""><span style="font-size: 9pt;">MaxValues: Specifies the maximum number of target users to be listed in the User box in the Act As dialog box. If the number of target users for a proxy user exceeds this value, then an edit box, where the proxy user can enter the ID of a target user, is shown rather than a list of target users. The default is 200.</span></span></div>
<span xmlns=""><span style="font-family: Times New Roman;">Please restart the BI Services after making the above update.</span></span><br />
<h3>
<span xmlns="">Create Custom Message Template File</span></h3>
<div style="background: white;">
<span xmlns="">You must create a custom message template for the proxy functionality that contains the SQL statement to perform the following tasks:</span></div>
<ul>
<li><div style="background: white;">
<span xmlns="">Obtain the list of target users that a proxy user can act as. This list is displayed in the User box in the Act As dialog box.</span></div>
</li>
<li><div style="background: white;">
<span xmlns="">Verify whether the proxy user can act as the target user.</span></div>
</li>
<li><div style="background: white;">
<span xmlns="">Obtain the list of proxy users that can act as the target user. This list is displayed on the target user's My Account screen.</span></div>
</li>
</ul>
<span xmlns="">The Custom message Template File must be placed in the following Directory:</span><br />
<span xmlns="">middleware/instances/instance1/bifoundation/OracleBIPresentationServicesComponent</span><br />
<span xmlns="">/coreapplication_obips1/msgdb/</span><br />
<h3>
<span xmlns="">Assigning the Proxy Privilege</span></h3>
<span xmlns=""><span style="font-family: Times New Roman;"><span style="background-color: white; color: #222222;">For each user whom you want to enable as a proxy user or for each application role or Catalog group whose members you want to enable as proxy users, you must grant the "Act As" Proxy privilege from the Administration option in the Presentation Services.</span><br /> </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"><br /> </span> </span></div>
Manishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.com0tag:blogger.com,1999:blog-5269249920278384374.post-43863649457066316962015-01-11T17:19:00.001-08:002015-01-11T18:58:01.353-08:00Cache Management in OBIEE 11g<div dir="ltr" style="text-align: left;" trbidi="on">
<span xmlns=""></span><br />
<h2>
<span xmlns=""> BI Server Query Cache</span></h2>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;"> Query Cache is a feature of the BI Server to save query results on the disk, to be later reused when a similar query request arrives.</span></span></div>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;"> </span></span></div>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;"> As such Query Cache is performance enhancement feature which is transparent to the user, </span></span></div>
<div style="text-align: justify;">
<span xmlns=""><span style="font-family: Times New Roman;"> It falls on the OBIEE administrator to ensure it is setup and managed in an optimal fashion.</span></span></div>
<h2>
<span xmlns=""> </span></h2>
<h2>
<span xmlns=""> Keeping the Cache Fresh</span></h2>
<h2>
<span xmlns=""> Problem:</span></h2>
<div style="margin-left: 36pt;">
<span xmlns=""><span style="font-family: Times New Roman;">If cache entries are NOT purged when the ETL has updated the underlying database tables, then the users see incorrect or old data in their Reports and Dashboards.</span></span></div>
<h2>
<span xmlns=""> Solution:</span></h2>
<div style="margin-left: 72pt;">
<span xmlns=""><span style="font-family: Times New Roman;">A well understood method of Cache Management is to configure <span style="text-decoration: underline;">Oracle BI Server Event Polling Tables</span>. These tables track the updates to database, with a row inserted for each table which has been updated by the ETL process. The Oracle BI Server polls the table(s) at predetermined interval, removing the stale cache entries. </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"></span></span><br />
<a name='more'></a><span xmlns=""><span style="font-family: Times New Roman;"><br /></span></span></div>
<span xmlns=""><span style="font-family: Times New Roman;"> The Repository Creation Utility (RCU) run as part of the OBIEE installation, also creates the Event Polling Table by the name of S_NQ_EPT in the BI_PLATFORM schema.</span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"> Next, make the Event Polling Table active in the BI Server:</span></span><br />
<ul style="margin-left: 108pt;">
<li><span xmlns=""><span style="font-family: Times New Roman;">Bring S_NQ_EPT into the repository by Import Metadata dialog</span></span></li>
<li><span xmlns=""><span style="font-family: Times New Roman;">Mark the table as an Event Polling object by going to Utilities-> Oracle BI Event Tables, Click Execute</span></span></li>
<li><span xmlns=""><span style="font-family: Times New Roman;">Set the Event Polling Interval – Default is 60 Minutes (Less than 10 Minutes polling interval is too low)</span></span></li>
</ul>
<h3>
<span xmlns=""><span style="font-family: Times New Roman;">Gotcha:</span></span></h3>
<span xmlns=""><span style="font-family: Times New Roman;"> Pay particular attention to the Insert statement populating the EPT table. </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"><strong> If the S_NQ_EPT table is in a different schema then the Cached tables, </strong></span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"><strong> then you might find Cache Purge not working as expected.</strong></span></span><br />
<strong> </strong><br />
<strong> Check for associated errors in the NQSERVER.log</strong><br />
<div style="margin-left: 36pt;">
<span xmlns=""><br /> </span></div>
<span xmlns=""><span style="font-family: Times New Roman;"> In Order To Resolve this:</span></span><br />
<br />
<ul style="text-align: left;">
<li> Put Event Polling Table in the same schema as the DW tables.</li>
<li>Move the Event Polling Table to the default schema in the repository. </li>
<ul>
<li>Use the Fully Qualified Table name checkbox.</li>
</ul>
</ul>
<br />
<span xmlns=""><span style="font-family: Times New Roman;">Resulting Insert Statement is pretty straightforward.</span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"><br /></span></span>
<span xmlns=""><span style="font-family: Times New Roman;"><br /></span></span>
<br />
<span xmlns=""><span style="font-family: Times New Roman;"><b>Alternate Solution:</b></span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"> <strong>If the above sounds like too much work</strong>, and the requirement is to Purge Cache for all the tables in a Star or Subject Area after an ETL Batch has been completed <strong>then read on.</strong><br /> </span></span><br />
<span xmlns=""><span style="font-family: Times New Roman;"> There is a little noticed nugget in the Cache Management documentation for OBIEE 11g.</span></span><br />
<blockquote>
<span xmlns=""> <span style="font-family: Times New Roman;"><strong>"When the value of a dynamic repository variable changes, all cache entries that are associated with a business model</strong></span></span></blockquote>
<blockquote>
<div style="margin-left: 36pt;">
<span xmlns=""><span style="font-family: Times New Roman;"><strong>that reference the value of that variable are purged automatically. The cache entries are purged when the repository</strong></span></span></div>
</blockquote>
<blockquote>
<div style="margin-left: 36pt;">
<span xmlns=""><span style="font-family: Times New Roman;"><strong>variable refresh rate is reached, if its value has changed."</strong></span></span></div>
</blockquote>
<span xmlns=""><br /> </span><br />
<span xmlns=""><span style="font-family: Times New Roman;"> In order to leverage this feature:</span></span><br />
<ul style="margin-left: 72pt;">
<li><div>
<span xmlns="">Query the ETL Status Table(s) to monitor when the desired ETL load has completed</span></div>
<ul>
<li><span xmlns="">Use an Initialization Block with suitable refresh rate.</span></li>
</ul>
</li>
<li><span xmlns="">Populate a Repository Variable with the Result</span></li>
<li><span xmlns="">Introduce a Derived Logical Column in the Business Model (say Sales) which references the Dynamic Repository Variable.</span></li>
<li><span xmlns="">When the ETL Completion Status flips from 'N' to 'Y', All Tables Referenced by the BM layer containing the Logical Column will h their Cache Purged.</span></li>
</ul>
<span xmlns=""><br /> </span><br />
<h3>
<span xmlns=""><span style="font-family: Times New Roman;">Moral of the Story:</span></span></h3>
<h3>
<span xmlns=""> Read the Documentation. As someone colorfully said, RTFD.</span></h3>
<span xmlns=""> <strong>You might be surprised with what you learn.</strong></span><br />
<div style="margin-left: 36pt;">
<span xmlns=""><br /> </span></div>
<div style="margin-left: 36pt;">
<span xmlns=""><br /> </span></div>
<div style="margin-left: 36pt;">
<span xmlns=""><br /> </span></div>
<span xmlns=""> </span></div>
Manishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.com0tag:blogger.com,1999:blog-5269249920278384374.post-19012728373669258262015-01-01T19:49:00.000-08:002015-01-11T18:58:54.202-08:00Hiding Subject Area Objects in OBIEE 11g<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
</h2>
<h2 style="text-align: left;">
I plan to post entries which are along the lines of a Cookbook, this might evolve in a separate grouping within the blog. </h2>
<h4 style="text-align: left;">
<br />The tool of choice is Oracle BI.</h4>
<div class="MsoNormal">
<o:p></o:p></div>
<h3 style="text-align: left;">
How</h3>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoListParagraph" style="text-align: center; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><!--[endif]-->Provide Hide Object If Condition in the General
Tab of Presentation Column Properties.<o:p></o:p></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<br /></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<br /></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:rect id="Rectangle_x0020_2" o:spid="_x0000_s1026"
style='position:absolute;margin-left:5.15pt;margin-top:70.55pt;width:282.15pt;
height:9.95pt;z-index:251659264;visibility:visible;mso-wrap-style:square;
mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;
mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;
mso-position-horizontal-relative:text;mso-position-vertical:absolute;
mso-position-vertical-relative:text;v-text-anchor:middle' o:gfxdata="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
vH2oT3QEfHjRKzDSldLxuFAhhy6UhNQfCBgcTO+AbIH3u/AYkgreSptfQQ71r605y8OUNRwi1T4N
kKCwH6lQELIHbclk3ynMquneZVmylJHJqIK6MrFqj8khYSPdA1t6b/dQCKluuknaBgzuZP6592kF
jQM95BTrzelk+d5ra+CfnnxsMYNRbh82A03m/1zFfDxY7Kp2vVme7b1FQ/SDxZjVyKoChBW2gnZa
9q+pwitutbZjLVlca2bKQRSXLQZiPhAl8A4J6X+w/1HhM/sFQ2+oI74PvRXBxwvNDNIGsvqCHTyQ
bpCWOIbByRJtMmlW1rXp6KS9lm3W5zzp5nJPOFtrdpZ4v6Kz8+HMFefU4nk6O/Ww42tLW+lqiOzJ
EgXSNDvImMCUfcnaxQkaB9WOB1+TIND34Aq+R3lAq2laTdPgCj4ywbBkvwx1vPQio8BzS8kx9YxS
zzCNjNLIKM2MAsNZ+g0mo7SgU+nPJvDZTv94KPtCAhNc+kUla6rO577NvwAAAP//AwBQSwMEFAAG
AAgAAAAhAJxmRkG7AAAAJAEAACoAAABjbGlwYm9hcmQvZHJhd2luZ3MvX3JlbHMvZHJhd2luZzEu
eG1sLnJlbHOEj80KwjAQhO+C7xD2btJ6EJEmvYjQq9QHCMk2LTY/JFHs2xvoRUHwsjCz7DezTfuy
M3liTJN3HGpaAUGnvJ6c4XDrL7sjkJSl03L2DjksmKAV201zxVnmcpTGKSRSKC5xGHMOJ8aSGtHK
RH1AVzaDj1bmIqNhQaq7NMj2VXVg8ZMB4otJOs0hdroG0i+hJP9n+2GYFJ69elh0+UcEy6UXFqCM
BjMHSldnnTUtXYGJhn39Jt4AAAD//wMAUEsBAi0AFAAGAAgAAAAhALvlSJQFAQAAHgIAABMAAAAA
AAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEArTA/8cEAAAAy
AQAACwAAAAAAAAAAAAAAAAA2AQAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAP4q9bsECAABn
BgAAHwAAAAAAAAAAAAAAAAAgAgAAY2xpcGJvYXJkL2RyYXdpbmdzL2RyYXdpbmcxLnhtbFBLAQIt
ABQABgAIAAAAIQCcTl4h4gYAADocAAAaAAAAAAAAAAAAAAAAAB4FAABjbGlwYm9hcmQvdGhlbWUv
dGhlbWUxLnhtbFBLAQItABQABgAIAAAAIQCcZkZBuwAAACQBAAAqAAAAAAAAAAAAAAAAADgMAABj
bGlwYm9hcmQvZHJhd2luZ3MvX3JlbHMvZHJhd2luZzEueG1sLnJlbHNQSwUGAAAAAAUABQBnAQAA
Ow0AAAAA
" filled="f" strokecolor="red" strokeweight="2pt"/><![endif]--><!--[if !vml]--><span style="height: 17px; margin-left: 5px; margin-top: 92px; mso-ignore: vglayout; position: absolute; width: 380px; z-index: 251659264;"></span><!--[endif]--><!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1028" type="#_x0000_t75"
style='width:293.25pt;height:153.75pt;visibility:visible;mso-wrap-style:square'
o:bordertopcolor="aqua" o:borderleftcolor="aqua" o:borderbottomcolor="aqua"
o:borderrightcolor="aqua">
<v:imagedata src="file:///C:\Users\Manish\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"
o:title=""/>
<w:bordertop type="single" width="6"/>
<w:borderleft type="single" width="6"/>
<w:borderbottom type="single" width="6"/>
<w:borderright type="single" width="6"/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2G-s14FLE7TzHbcAMmobdRaB-g-JqhpV4AnxGGWS7qNh7yynXzhU00sD8CzXwqX4FLuVv5mQrWWQRjg0WiEY2Gj8q30TLzSC5cF0PQvF0KADFfM0hA9c04ZFtgX385cREUNPyUYmAqVA/s1600/Properties.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2G-s14FLE7TzHbcAMmobdRaB-g-JqhpV4AnxGGWS7qNh7yynXzhU00sD8CzXwqX4FLuVv5mQrWWQRjg0WiEY2Gj8q30TLzSC5cF0PQvF0KADFfM0hA9c04ZFtgX385cREUNPyUYmAqVA/s1600/Properties.png" height="208" width="400" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br />
<a name='more'></a><br /></div>
<h3 style="text-align: left;">
What Happens</h3>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoListParagraph" style="text-align: center; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><!--[endif]-->Presentation Column is no longer Visible in
Subject Area.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<h3 style="text-align: left;">
Gotchas</h3>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
</div>
<ul style="text-align: left;">
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><span style="text-indent: -0.25in;">Hidden Presentation Column will still be
referenced in any existing analysis or filter</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><span style="text-indent: -0.25in;">Not a good way to enforce Security</span></li>
</ul>
<!--[if !supportLists]--><o:p></o:p><br />
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<o:p></o:p></div>
<h3 style="text-align: left;">
Case Study</h3>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="text-align: center; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><!--[endif]-->Existing Analysis with now Hidden Column in the
Criteria Tab<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_3" o:spid="_x0000_i1027" type="#_x0000_t75" style='width:315.75pt;
height:81pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\Manish\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<o:p> </o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAOnwbL5KU31s-YWan1bFWoebw-9uzvVmbSybN9CLooSbICQM8uekZLabVQjjSxC8avwO5zRQJf8H0lxzUHDXl-4WFpmwR2lv2u4-mDs_1KZHmN1HAUBwHBfob6yK4CLJR7bE3sWkVVg/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoAOnwbL5KU31s-YWan1bFWoebw-9uzvVmbSybN9CLooSbICQM8uekZLabVQjjSxC8avwO5zRQJf8H0lxzUHDXl-4WFpmwR2lv2u4-mDs_1KZHmN1HAUBwHBfob6yK4CLJR7bE3sWkVVg/s1600/image004.png" height="102" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="text-align: center; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><!--[endif]-->Results are still grouped by the hidden
presentation column<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLJlk3WH6ZXaz-B8RAB9Wo-5O7KFoRWat4SCPor5kP0_s6YUV4CbU32-ygSOsHU9vZoz2ihlRcJ4V7XlDRWIJyBnnJ7SQlTwhIE9MaFKNHlsmEJUlyUxPLn7vYkestBNJBbZYSqlUFSJo/s1600/image005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLJlk3WH6ZXaz-B8RAB9Wo-5O7KFoRWat4SCPor5kP0_s6YUV4CbU32-ygSOsHU9vZoz2ihlRcJ4V7XlDRWIJyBnnJ7SQlTwhIE9MaFKNHlsmEJUlyUxPLn7vYkestBNJBbZYSqlUFSJo/s1600/image005.png" height="400" width="320" /></a></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_4" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:102pt;
height:127.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\Manish\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle" style="text-align: center; text-indent: -0.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-stretch: normal;">
</span></span><!--[endif]-->Report can be filtered on the hidden presentation
column<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUKJV6olwzkohCOe-qvD_MVgdZ5Kx-WGHrOpwevmB-lfJva6lokUf8tCov69k9OwMLBjjYj76GQOuPAmuxl0tKnh_9FOUXv1t5buwmk0srp3gEC8br2N6ufOze3Vc2u79kscgyC-vGF0/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUKJV6olwzkohCOe-qvD_MVgdZ5Kx-WGHrOpwevmB-lfJva6lokUf8tCov69k9OwMLBjjYj76GQOuPAmuxl0tKnh_9FOUXv1t5buwmk0srp3gEC8br2N6ufOze3Vc2u79kscgyC-vGF0/s1600/image006.png" height="295" width="400" /></a></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -.25in;">
<br /></div>
<br />
<div class="MsoListParagraphCxSpLast">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_5" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:174pt;
height:128.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\Manish\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--><o:p></o:p></div>
</div>
Manishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.com0tag:blogger.com,1999:blog-5269249920278384374.post-5789265262572618832015-01-01T18:23:00.001-08:002015-01-10T17:12:07.412-08:00Happy New Year 2015!<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: justify;">
This Blog attempts to cover my thoughts on things Data Warehouse with particular slant towards Oracle BI/DW tools and techniques. </h3>
<h3 style="text-align: justify;">
</h3>
<h3 style="text-align: justify;">
It is an attempt to collate Data WareHouse information, and hopefully learn and collaborate with fellow professionals.</h3>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<span style="color: #e06666; font-family: Arial, Helvetica, sans-serif;">Here is to a New Year and New Endeavors!!!</span></div>
<div>
<br /></div>
</div>
Manishhttp://www.blogger.com/profile/07604805230389036879noreply@blogger.com0