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

<channel>
	<title>Frank Davis&#039; Blog: OBIEE ONE</title>
	<atom:link href="http://obieeone.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://obieeone.com</link>
	<description>Oracle Business Intelligence and Data Warehousing</description>
	<lastBuildDate>Fri, 31 May 2013 13:51:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='obieeone.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Frank Davis&#039; Blog: OBIEE ONE</title>
		<link>http://obieeone.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://obieeone.com/osd.xml" title="Frank Davis&#039; Blog: OBIEE ONE" />
	<atom:link rel='hub' href='http://obieeone.com/?pushpress=hub'/>
		<item>
		<title>Filtering Presentation Hierarchy Columns From Report Navigation</title>
		<link>http://obieeone.com/2013/05/30/filtering-presentation-hierarchy-columns-from-report-navigation/</link>
		<comments>http://obieeone.com/2013/05/30/filtering-presentation-hierarchy-columns-from-report-navigation/#comments</comments>
		<pubDate>Thu, 30 May 2013 23:27:42 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Presentation Services]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=267</guid>
		<description><![CDATA[It has been awhile, I think a year now, since my last blog.  It has just been a very busy past year.  In any event, I came across a problem that involves presentation hierarchy columns.  The ever-beloved new feature of 11g , which all users and clients love to use for pretty much all reports. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=267&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>It has been awhile, I think a year now, since my last blog.  It has just been a very busy past year.  In any event, I came across a problem that involves presentation hierarchy columns.  The ever-beloved new feature of 11g , which all users and clients love to use for pretty much all reports.</p>
<p>The issue: How to create a navigational report which will filter the presentation hierarchy column based on the selected record from the calling report?  This is otherwise known as report navigation via action links.</p>
<p>Well, there is few solutions already out there by Venkat from Rittman Mead <a title="here" href="http://www.rittmanmead.com/2010/10/oracle-bi-ee-11g-navigation-passing-parameters-using-hierarchical-columns/" target="_blank">here</a>.  And similar others like this one, <a title="here" href="http://prasadmadhasi.com/2011/12/15/hierarchicalnavigationinobiee11g/" target="_blank">here</a>. Pretty much, almost the same idea and way of doing it.  Each will work, but takes lots more development and maintenance.  There should be an easier way, right!  Like the “is prompted” option in filters.  But presentation hierarchy columns cannot be used in the filter section, only their corresponding level attribute counterparts can be added in the filter section.  This leads to the 2 solutions linked above to some extent.  To use any sort of filtering or pruning of the hierarchy columns however, remember it would need to be done in the  &#8220;selection steps&#8221; section.</p>
<p>So what is the easier way that I found, which is simple and easier to manage!?</p>
<p>First it all centers around selection steps and the “overridable” attribute for the xml attribute “saw:selectionStep” within the advanced tab. But you do not even have to go there to change anything, as I will show you the simple steps to be able to set this using the UI.  However, if you have an older version of 11g instance (I am using 11.1.1.6 version) you will need to modify the xml, which I will describing later.</p>
<p>The first step is to open up the &#8220;Selection Steps&#8221; pane in the target report.</p>
<p>Then “Edit” the 1 step within the presentation hierarchy column.</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/step1.gif"><img class="aligncenter size-full wp-image-272" alt="Step1" src="http://obieeone.files.wordpress.com/2013/05/step1.gif?w=500"   /></a></p>
<p>Third step is to switch the value of the “Action” drop down to: “Start with all members”, which will change the interface.  Now you will only see “Override with Prompt” checkbox.  Just mark this box and you are all set.</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/step2.gif"><img class="aligncenter size-full wp-image-273" alt="step2" src="http://obieeone.files.wordpress.com/2013/05/step2.gif?w=500&#038;h=295" width="500" height="295" /></a></p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/step3.gif"><img class="aligncenter size-full wp-image-274" alt="Step3" src="http://obieeone.files.wordpress.com/2013/05/step3.gif?w=500"   /></a></p>
<p>This will add and set the “overridable” attribute = “true” as seen and highlighted below.</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/important-advanced-xml-attribute-setting.gif"><img class="aligncenter size-full wp-image-278" alt="Important Advanced xml attribute setting" src="http://obieeone.files.wordpress.com/2013/05/important-advanced-xml-attribute-setting.gif?w=500&#038;h=239" width="500" height="239" /></a></p>
<p>Now in older versions of 11g, I can not remember which version, this checkbox was added.  Before that, you did not have an easy way with the UI to set this.  Instead, what you needed to do is go into the advanced tab and set the overridable=”true” attribute.  Sometimes, you will not see the “saw:dimensionSelection” so you would need to create it.  Easiest way to do that, was to go to the  &#8220;Selection Steps&#8221; pane and select one value in the first selection step-&gt; “Start with members”.  Then you would go back to the selection step and edit it to change back to “Start with all members”.  Now once that action is done, the xml section is already created for you and all you have to do is ensure that the “overridable” attribute = “true” for the “saw:selectionStep”.</p>
<p>My results can be seen here in the example:</p>
<p>Here is the calling, or high level report:</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/high-level-report-run.gif"><img class="aligncenter size-full wp-image-277" alt="High level report - run" src="http://obieeone.files.wordpress.com/2013/05/high-level-report-run.gif?w=500"   /></a></p>
<p>Here is what the low level or target report looks like with no filtering</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/low-level-report-before1.gif"><img class="aligncenter size-full wp-image-287" alt="Low level report - before" src="http://obieeone.files.wordpress.com/2013/05/low-level-report-before1.gif?w=500"   /></a></p>
<p>Here is the same exact low level, target report navigated from the high level report based on selecting the &#8220;Accounts Receivable&#8221; value.</p>
<p><a href="http://obieeone.files.wordpress.com/2013/05/low-level-report-after.gif"><img class="aligncenter size-full wp-image-276" alt="Low level report - after" src="http://obieeone.files.wordpress.com/2013/05/low-level-report-after.gif?w=500"   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=267&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2013/05/30/filtering-presentation-hierarchy-columns-from-report-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/step1.gif" medium="image">
			<media:title type="html">Step1</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/step2.gif" medium="image">
			<media:title type="html">step2</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/step3.gif" medium="image">
			<media:title type="html">Step3</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/important-advanced-xml-attribute-setting.gif" medium="image">
			<media:title type="html">Important Advanced xml attribute setting</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/high-level-report-run.gif" medium="image">
			<media:title type="html">High level report - run</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/low-level-report-before1.gif" medium="image">
			<media:title type="html">Low level report - before</media:title>
		</media:content>

		<media:content url="http://obieeone.files.wordpress.com/2013/05/low-level-report-after.gif" medium="image">
			<media:title type="html">Low level report - after</media:title>
		</media:content>
	</item>
		<item>
		<title>Create Environment Patch (Environmentalization)</title>
		<link>http://obieeone.com/2012/03/13/create-environment-patch-environmentalization/</link>
		<comments>http://obieeone.com/2012/03/13/create-environment-patch-environmentalization/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 20:28:29 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=261</guid>
		<description><![CDATA[During RPD migrations we constantly need to change metadata for the target environment such as physical connection pool(s) and LDAP source(s).  To do this manually is time consuming and open for error.  Thus, there needs to be a way to script or automate this process.  This document will address the automated solution using what is [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=261&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>During RPD migrations we constantly need to change metadata for the target environment such as physical connection pool(s) and LDAP source(s).  To do this manually is time consuming and open for error.  Thus, there needs to be a way to script or automate this process.  This document will address the automated solution using what is termed in OBI as the patching process.</p>
<p>The first migration from Dev-&gt;Test, Dev-&gt;Prod, or source-&gt;target will need to be done manually. Meaning, the RPD that is ready to be migrated to the target environment will need to have its physical connections and LDAP source(s) manually changed for that target environment.  That would be done using the BI Admin Tool in offline mode.  After which, we can test our changes to ensure that the connections and information we entered is correct.  Then we can create the patch that will be used for later migrations of the RPD.</p>
<p>The following steps will be done after any manual changes needed for the target version of the RPD (this includes the first migration to the target environment), so that we can capture the patch XML to be used for later migrations.  We will need to follow these steps after any and all manual environment changes that are needed for the target environment, such as the initial migration or password or server changes.</p>
<ol>
<li>Open up the target version of the RPD in offline mode.  (In my example, I open up the Production version of the RPD after I made the manual environmental changes).</li>
<li>Select <strong>File-&gt;Compare…</strong></li>
<li>Browse and locate the development RPD that was used to create the production version, prior to the manual changes.  (This RPD should be exactly the same as the opened RPD except that the conn pools, LDAP sources are changed for the target environment)</li>
<li>Enter the selected RPD’s password</li>
<li>Click <strong>Create Patch…</strong></li>
<li>Browse to folder and name patch xml file.  Click <strong>Save</strong>. ( I try to use a patch folder within a migration folder.  Also I try to use a standard naming convention for the patch file.  For my example, I put in <em>patch</em> folder and named the xml <em>bipatch_env_to_prod.xml</em>.</li>
</ol>
<p>Now you have your patch for just the changes needed for environmentalizing an RPD to the target environment.  Looking at the patch xml I created you will see and should see just the following:</p>
<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; ?&gt;</p>
<p>&lt;Repository xmlns:xsi=&#8221;<a href="http://www.w3.org/2001/XMLSchema-instance&#8221;&#038;gt" rel="nofollow">http://www.w3.org/2001/XMLSchema-instance&#8221;&#038;gt</a>;</p>
<p>&lt;DECLARE&gt;</p>
<p>&lt;ConnectionPool name=&#8221;MDW InitBlock Connection Pool&#8221; parentName=&#8221;&amp;quot;Enterprise Warehouse&amp;quot;&#8221; parentId=&#8221;3023:70678&#8243; parentUid=&#8221;499&#8243; id=&#8221;3029:70680&#8243; uid=&#8221;17734975&#8243; <strong>user=&#8221;user_prod&#8221;</strong> <strong>password=&#8221;F3145774D0C24AB12A9FA0BC016D5497A22F1B0CF28C8E9CFE23B03DFC115AAC2184BC7AA41ACD43616084824FF37DEE51F4AF446ED2EFBAFC04732D5CCBDB0A 6177A73195FA649BC952B38CDBECBA98E822325E721B9C66E5D909EEBB3FB2C1&#8243;</strong> timeout=&#8221;300&#8243; maxConnDiff=&#8221;10&#8243; maxConn=&#8221;10&#8243; <strong>dataSource=&#8221;PROD_DB&#8221;</strong> type=&#8221;OCI10G&#8221; reqQualifedTableName=&#8221;false&#8221; isSharedLogin=&#8221;true&#8221; isConcurrentQueriesInConnection=&#8221;false&#8221; isCloseAfterEveryRequest=&#8221;true&#8221; outputType=&#8221;xml&#8221; bulkInsertBufferSize=&#8221;32768&#8243; tempTablePrefix=&#8221;TT&#8221; transactionBoundary=&#8221;10&#8243; xmlaUseSession=&#8221;false&#8221; isSiebelJDBSecured=&#8221;false&#8221;&gt;</p>
<p>&lt;Description&gt;&lt;/Description&gt;</p>
<p>&lt;/ConnectionPool&gt;</p>
<p>&lt;ConnectionPool name=&#8221;MDW Connection Pool&#8221; parentName=&#8221;&amp;quot;Enterprise Warehouse&amp;quot;&#8221; parentId=&#8221;3023:70678&#8243; parentUid=&#8221;499&#8243; id=&#8221;3029:70681&#8243; uid=&#8221;18022356&#8243; <strong>user=&#8221;user_prod&#8221;</strong> <strong>password=&#8221;F3145774D0C24AB12A9FA0BC016D5497A22F1B0CF28C8E9CFE23B03DFC115AAC2184BC7AA41ACD43616084824FF37DEE51F4AF446ED2EFBAFC04732D5CCBDB0A 6177A73195FA649BC952B38CDBECBA98E822325E721B9C66E5D909EEBB3FB2C1&#8243;</strong>  timeout=&#8221;300&#8243; maxConnDiff=&#8221;10&#8243; maxConn=&#8221;10&#8243; <strong>dataSource=&#8221;PROD_DB&#8221;</strong> type=&#8221;OCI10G&#8221; reqQualifedTableName=&#8221;false&#8221; isSharedLogin=&#8221;true&#8221; isConcurrentQueriesInConnection=&#8221;false&#8221; isCloseAfterEveryRequest=&#8221;false&#8221; outputType=&#8221;xml&#8221; bulkInsertBufferSize=&#8221;32768&#8243; tempTablePrefix=&#8221;TT&#8221; transactionBoundary=&#8221;10&#8243; xmlaUseSession=&#8221;false&#8221; isSiebelJDBSecured=&#8221;false&#8221;&gt;</p>
<p>&lt;Description&gt;&lt;/Description&gt;</p>
<p>&lt;/ConnectionPool&gt;</p>
<p>&lt;/DECLARE&gt;</p>
<p>&lt;/Repository&gt;</p>
<p>As you can see I have changed 2 connection pools and I highlighted the changes I did in the admin tool for the target prod env.  You should only see those RPD objects for which you made environmental changes, as the rest of the RPD should be the same as the dev (or source) RPD which you based the target RPD for migration.</p>
<p>Now the next steps detail using this patch xml in subsequent migrations.  This patch xml will be used in a script that will automate the environmentalization of the rpd.  I like to make a folder structure like the following:</p>
<p><strong>/migration</strong> – This folder holds everything related to migrations including the .bat script used to environmentalize stage RPDs to target_ready</p>
<p><strong>/stage</strong> – This will hold the RPD(s) ready for migration</p>
<p><strong>/patch</strong> – This holds the patch files</p>
<p><strong>/target_ready</strong></p>
<p><strong>/test</strong> – Folder for test ready RPDs to be uploaded to test</p>
<p><strong>/prod</strong> – Folder for prod ready RPDs to be uploaded to prod</p>
<p>To script the environmentalization, I use the xml API biserverxmlexec.  This API executes the XML in offline mode to create or modify a repository file.  It can be found in <em>MIDDLEWARE_HOME\Oracle_BI1\bifoundation\server\bin</em>.  The following example modifies the rp_dev.rpd and writes to rp_prod.rpd:</p>
<p>biserverxmlexec -I bipatch_env_to_prod.xml -B .\rp_dev.rpd -O c:\&#8230;\target_ready\prod\rp_prod.rpd.  You will be prompted for the password of the rp_dev.rpd. Give password: <em>my_rpd_password</em></p>
<p>The newly created RPD is now ready to be migrated.  We now just need to upload the repository into the target (production in my example) environment using the FMC (aka Enterprise manager) upload process.</p>
<p>Now I would make a .bat (or .sh for UNIX/LINUX) file, which would call this biserverxmlexec API command and maybe include the base repository password so that I would not be prompted.  This is up to the individual.  If done so, this process is just a quick execution of the script and the new environmentalized RPD would be sitting and ready in the <em>target_ready</em> folder.  Now I always double check the created RPD just to make sure the script did what it was supposed to.  But there really should not be a need as it does the same thing every time.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/261/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/261/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=261&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2012/03/13/create-environment-patch-environmentalization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>Selection Step Start with all members; but with override with prompt</title>
		<link>http://obieeone.com/2012/02/16/selection-step-start-with-all-members-but-with-override-with-prompt/</link>
		<comments>http://obieeone.com/2012/02/16/selection-step-start-with-all-members-but-with-override-with-prompt/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:01:18 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Presentation Services]]></category>
		<category><![CDATA[selection steps]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=215</guid>
		<description><![CDATA[There seems to always be the occasion where you want to create a report, which will need the use of selection steps to include all the available members; but you want to override the values to keep/use with those of a dashboard prompt.  Currently, as of 11.1.1.5, the UI does not make it easy enough [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=215&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>There seems to always be the occasion where you want to create a report, which will need the use of selection steps to include all the available members; but you want to override the values to keep/use with those of a dashboard prompt.  Currently, as of 11.1.1.5, the UI does not make it easy enough to do this.  As the <em>Start with all members</em> dialog does not have the <em>Override with prompt</em> checkbox; like, the <em>Start with selected member</em> does.  Nor does the <em>Start with selected member</em> option have the ability to specify or check you want all members.  So you have a couple options:</p>
<ol>
<li>Use <em>Start with selected members</em> with the option checked; but then you would need to select all members which is not really feasible with large member datasets or dynamic members.  The dynamic members is when the dataset may grow due to added member values such as locations for example.</li>
<li>Have the first selection step be <em>Start with all members</em>.  Then creating 2<sup>nd</sup> selection step to use <em>Select Members&gt;Keep Only</em> and checking the override option.  This also has the same problems pointed out in #1 above with having to select the members in large member dataset and dynamic member sets.</li>
<li>Have the first selection step be <em>Start with all members</em>. Then creating 2<sup>nd</sup> selection step to use the <em>Apply a Condition&gt;Match&gt;Name contains ‘abc’&gt;Keep</em>. Where the operator is to match all members using the % to bring in all members and selecting the <em>Override with prompt</em> option. This option fixes the dynamic and large dataset issues from 1 and 2; but brings in another issue that may or may not affect your report.  That being that conditional selection steps are pushed into the physical SQL query.  So care needs to be taken that the filtering in the query is not affecting the outcome you expected or wanted.  As for example, a rank in a report.  The filter is done prior to the ranking, so that the ranking is done on the reduced (filtered) result set and not the entire result set before the Keep only conditional one.</li>
</ol>
<p>Anyway there has to be a better way, and that is what this posting is about to show.  I would call it a hidden gem, at least as of version 11.1.1.5, as Oracle may fix this issue and add the option in later releases.  All props to finding this go to Kyle Guillot.</p>
<p>To create the <em>Start with all Members</em> with <em>Override with prompt</em> functionality you just need to do the following:</p>
<ol>
<li>In the report/Analysis, go to the <em>Advanced</em> tab.</li>
<li>Look for the column you are using in the selection step and wanting to apply this property.</li>
<li>Then look for the ‘&lt;saw:dimensionSelection&gt;’ tag for that column.  It will be enclosed in the ‘&lt;saw:column…&gt;’ tags.</li>
<li>You will see the following for the selction steps for that column:</li>
</ol>
<p style="padding-left:60px;">&lt;saw:dimensionSelection&gt;</p>
<p style="padding-left:60px;">&lt;saw:selectionStep <strong><em>stepID=&#8221;1&#8243;</em></strong> type=&#8221;startWith&#8221; category=&#8221;member”&gt;</p>
<p style="padding-left:60px;">&lt;saw:stepMembers xsi:type=&#8221;saw:staticMemberGroupDef&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:staticMemberGroup&gt;</p>
<p style="padding-left:60px;">&lt;saw:members xsi:type=&#8221;saw:specialValueMembers&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:value <strong><em>specialValue=&#8221;all&#8221;</em></strong>/&gt;&lt;/saw:members&gt;&lt;/saw:staticMemberGroup&gt;&lt;/saw:stepMembers&gt;&lt;/saw:selectionStep&gt;&lt;/saw:dimensionSelection&gt;</p>
<p style="padding-left:30px;">   The <em>Start with all members</em> step is always stepID=1 and later has the following tag in the saw:members which signifies such:</p>
<p style="padding-left:60px;">&lt;saw:value specialValue=&#8221;all&#8221;/&gt;</p>
<p>      5.  If you do not see this or any selection steps of dimensionSelection tag, do the following:</p>
<p style="padding-left:60px;">a.  Go to the criteria tab.</p>
<p style="padding-left:60px;">b.  Open up the selection steps.</p>
<p style="padding-left:60px;">c.  Go to the columns selection step and flip it to Start with members with anything really and hit ok to save.</p>
<p style="padding-left:60px;">d.  Then go back and switch to <em>Start with all Members</em>.  This will force the create of this tag in the xml for you in the advanced tab so you can add the overridable   attribute detailed below.</p>
<p>6.  Now to make this <em>Override with Prompt</em>, all that is needed is to add one attribute to the selectionStep tag highlighted below:</p>
<p style="padding-left:90px;">&lt;saw:dimensionSelection&gt;</p>
<p style="padding-left:90px;">&lt;saw:selectionStep stepID=&#8221;1&#8243; type=&#8221;startWith&#8221; category=&#8221;member&#8221; <strong>overridable=&#8221;true&#8221;</strong>&gt;</p>
<p style="padding-left:90px;">&lt;saw:stepMembers xsi:type=&#8221;saw:staticMemberGroupDef&#8221;&gt;</p>
<p style="padding-left:90px;">&lt;saw:staticMemberGroup&gt;</p>
<p style="padding-left:90px;">&lt;saw:members xsi:type=&#8221;saw:specialValueMembers&#8221;&gt;</p>
<p style="padding-left:90px;">&lt;saw:value specialValue=&#8221;all&#8221;/&gt;&lt;/saw:members&gt;&lt;/saw:staticMemberGroup&gt;&lt;/saw:stepMembers&gt;&lt;/saw:selectionStep&gt;&lt;/saw:dimensionSelection&gt;</p>
<p>So that is it, you would just need to add the overridable=”true” attribute to the selectionStep tag to make it so.</p>
<p>Now, on another note, one may say they could have done #2 without the need to select all the members and/or worry about taking care of dynamically added new members by also modifying the second selection step <em>Start With Members&gt;Keep Only</em> by also modifying the XML in the advanced tab by adding and modifying the highlighted code below:</p>
<p style="padding-left:60px;">&lt;saw:dimensionSelection&gt;</p>
<p style="padding-left:60px;">&lt;saw:selectionStep stepID=&#8221;1&#8243; type=&#8221;startWith&#8221; category=&#8221;member&#8221; overridable=&#8221;false&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:stepMembers xsi:type=&#8221;saw:staticMemberGroupDef&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:staticMemberGroup&gt;</p>
<p style="padding-left:60px;">&lt;saw:members xsi:type=&#8221;saw:specialValueMembers&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:value specialValue=&#8221;all&#8221;/&gt;&lt;/saw:members&gt;&lt;/saw:staticMemberGroup&gt;&lt;/saw:stepMembers&gt;&lt;/saw:selectionStep&gt;</p>
<p style="padding-left:60px;">&lt;saw:selectionStep stepID=&#8221;2&#8243; overridable=&#8221;true&#8221; type=&#8221;keep&#8221; category=&#8221;member&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:stepMembers xsi:type=&#8221;saw:staticMemberGroupDef&#8221;&gt;</p>
<p style="padding-left:60px;">&lt;saw:staticMemberGroup&gt;</p>
<p style="padding-left:60px;">&lt;saw:members <strong>xsi:type=&#8221;saw:specialValueMembers&#8221;</strong>&gt;</p>
<p style="padding-left:60px;"><strong>&lt;saw:value specialValue=&#8221;all&#8221;/&gt;</strong>&lt;/saw:members&gt;&lt;/saw:staticMemberGroup&gt;&lt;/saw:stepMembers&gt;&lt;/saw:selectionStep&gt;&lt;/saw:dimensionSelection&gt;</p>
<p style="padding-left:30px;">So what we did here was remove/modified the selected member list to the ‘All members special value’.  So you really could do this both ways.  But I prefer the first one as it is all done in the first selection step instead of creating 2 selection steps.  Oh, by the way, you could also do the above in just one selection step by specifying the first selection step as <em>Start with Members</em> with <em>Override with Prompt</em> option and then changing the selected member list in the xml as stated above.  Again, I still like the first solution as it is the quickest and easiest way with just needing to add the one  attribute overridable=”true’.</p>
<p style="padding-left:30px;">So make life easier, by making things simple</p>
<p style="padding-left:30px;">-Frank</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=215&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2012/02/16/selection-step-start-with-all-members-but-with-override-with-prompt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>Alternative way to set multi-value LDAP parameters as row-wise session variables</title>
		<link>http://obieeone.com/2012/01/06/alternative-way-to-set-multi-value-ldap-parameters-as-row-wise-session-variables/</link>
		<comments>http://obieeone.com/2012/01/06/alternative-way-to-set-multi-value-ldap-parameters-as-row-wise-session-variables/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 17:13:47 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Administration Tool]]></category>
		<category><![CDATA[BI Server]]></category>

		<guid isPermaLink="false">http://obieeone.wordpress.com/?p=203</guid>
		<description><![CDATA[Problem and challenge came up recently to pull and set a multiple value parameter from OVD (or LDAP source) and set session variable (row-wise session variable to be specific) to be used by report writing.  Well in OBI 10g, I usually have done that by using my custom LDAP table function to use along with [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=203&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Problem and challenge came up recently to pull and set a multiple value parameter from OVD (or LDAP source) and set session variable (row-wise session variable to be specific) to be used by report writing.  Well in OBI 10g, I usually have done that by using my custom LDAP table function to use along with setting row-wise variable(s) in an init block.  I looked to see if anything has changed along the lines of accessing LDAP data sources and pulling parameters.  There is no problem pulling scalar parameters and mapping them to session variables, only when it is comes to trying to pull multi-value parameters and setting a row-wise session variable.  I tried the interface in the admin tool to see if I could do it with no avail.  So I was going to revert to my old approach of using the table function and setting the row-wise session var using that.  Problem is, the client wanted to see if we could do so without using this table function at all.  The challenge!!!!  So I agreed, lets do it.</p>
<p>First, I would need them to set a scalar parameter in the LDAP source as a delimited string of all the values (We chose the notorious &#8216;,&#8217; delimiter).   And since we will not be dealing with an extensive list of values, I do not foresee length or size issues. It is easy enough to extract this delimited value string now. No problem.  Now we could theoretically stop there and use this delimited value in reports; but it is more tedious as users would need to use and perform a LIKE operator on this session variable and the column compared to.  Not so eloquent if you ask me.  I would prefer the row-wise session variables and let bi server use that to build the physical query proper.</p>
<p>So what now! How do we take a session variable that is a delimited string and get a row-wise session variable out of it!?  Well here is my approach and the solution:</p>
<p>1) I set an init block to query against the LDAP data source to extract the delimited value list string. Also if need be make sure there is default value in case the parameter is not found for that user.</p>
<p>2) Create a new init block, used for setting the row-wise session variable.  This new init block will need to specify the other init block (in step one above) as a dependent using the execution precedence section of the init block properties.  This ensures the proper firing of the init blocks and the dependency between the two.  Then also specify it as being row-wise session variable.  Lastly, I used a pure SQL solution to parse and pivot the string into rows of the individual elements. Now, there could be many approaches to doing this including create custom functions and looking to see if there is such a function already in another package.  But, I just wanted a pure SQL solution.  Here is that SQL query solution (using MODEL clause):</p>
<p>&nbsp;</p>
<p>SELECT &#8216;<em>ROW_WISE_SESS_VAR_NAME</em>&#8216;, SUBSTR(str, start_pos, end_pos-start_pos) as value<br />
FROM (<br />
SELECT *<br />
FROM (<br />
SELECT &#8216;,&#8217;||&#8217;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;||&#8217;,&#8217; as str,<br />
1 as start_pos,<br />
LENGTH(&#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;) as end_pos,<br />
LENGTH(&#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;) &#8211; LENGTH(REPLACE(&#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;,',&#8217;))+1 as elem_cnt,<br />
0 AS elem_no,<br />
rownum as rn<br />
FROM dual<br />
)<br />
MODEL<br />
PARTITION BY (rn,str)<br />
DIMENSION BY (elem_no)<br />
MEASURES (start_pos, end_pos, elem_cnt)<br />
RULES<br />
ITERATE (4000)<br />
UNTIL (ITERATION_NUMBER+1 = elem_cnt[0])<br />
(<br />
start_pos[ITERATION_NUMBER+1] = INSTR(CV(str), &#8216;,&#8217;, 1, CV(elem_no)) + 1,<br />
end_pos[ITERATION_NUMBER+1] = INSTR(CV(str), &#8216;,&#8217;, 1, CV(elem_no) + 1)<br />
)<br />
)<br />
WHERE elem_no != 0<br />
ORDER BY str, elem_no</p>
<p>This worked like a charm and can be another solution, if the ldap table function cannot be used in order to get the same results.  Which is multiple value session var from an LDAP source.  Obviously the SQL query above can be used and modified for any such way to parse and pivot delimited string into multiple values.  <strong>Note: I am using modeling clause that I believe started to be available in Oracle 10g DB, and this is strictly an Oracle based solution.</strong></p>
<p>I like using the modeling clause as I like to use advanced oracle sql and learn and keep knowledge of all the capabilities available to me.  For those not too familiar with these types of clauses I am adding an alternative SQL solution:</p>
<p>&nbsp;<br />
SELECT &#8216;<em>ROW_WISE_SESS_VAR_NAME</em>&#8216;<br />
, SUBSTR(str, start_pos, (next_pos-start_pos)) AS value<br />
FROM<br />
(<br />
SELECT ds.str<br />
, ne.rn AS element_no<br />
, INSTR(ds.str, &#8216;,&#8217;, DECODE(ne.rn, 1, 0, 1) , DECODE(ne.rn, 1, 1, ne.rn-1)) + 1 AS start_pos<br />
, INSTR(ds.str, &#8216;,&#8217;, 1, DECODE(ne.rn, 1, 1, ne.rn)) AS next_pos<br />
FROM<br />
(select &#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;||&#8217;,&#8217; as str from DUAL) ds<br />
, ( SELECT ROWNUM as rn<br />
FROM dual<br />
CONNECT BY ROWNUM &lt;= (LENGTH(&#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;) &#8211; LENGTH(REPLACE(&#8216;VALUEOF(NQ_SESSION.<em>LDAP_DELIM_STR</em>)&#8217;, &#8216;,&#8217;))+1)<br />
) ne<br />
)</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=203&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2012/01/06/alternative-way-to-set-multi-value-ldap-parameters-as-row-wise-session-variables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>OBIEE 11G error: No more than 1 hierarchy from the same dimension&#8230;</title>
		<link>http://obieeone.com/2011/07/15/obiee-11g-error-no-more-than-1-hierarchy-from-the-same-dimension/</link>
		<comments>http://obieeone.com/2011/07/15/obiee-11g-error-no-more-than-1-hierarchy-from-the-same-dimension/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 16:21:24 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[BI Server]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=198</guid>
		<description><![CDATA[Thought some developers may find this useful and save time trying to work around, fix or look for answers. Users of the latest OBIEE 11g release 11.1.1.5 may get this error going against OLAP source systems. State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=198&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Thought some developers may find this useful and save time trying to work around, fix or look for answers. Users of the latest OBIEE 11g release 11.1.1.5 may get this error going against OLAP source systems.</p>
<p>State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A<br />
general error has occurred. [nQSError: 43113] Message returned from OBIS.<br />
[nQSError: 22068] No more than 1 hierarchy from the same dimension Instrument<br />
can be referenced.</p>
<p>If so, this is a Bug (#12628039) in the latest release, and is currently fixed in a patch (#12628039) for linux-64bit.  However other platforms are in the works for the fix and should be available shortly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=198&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/07/15/obiee-11g-error-no-more-than-1-hierarchy-from-the-same-dimension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>Update to Global Go Script for dashboard page scope</title>
		<link>http://obieeone.com/2011/06/24/update-to-global-go-script-for-dashboard-page-scope/</link>
		<comments>http://obieeone.com/2011/06/24/update-to-global-go-script-for-dashboard-page-scope/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 17:53:22 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Presentation Services]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=190</guid>
		<description><![CDATA[The current global go script I have not only produces one &#8216;go&#8217; button for all prompts on a page; but, it also has code to create required fields and required field validations. The one thing that was brought to my attention was that my current script treated the prompt collective on the page to have [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=190&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The current global go script I have not only produces one &#8216;go&#8217; button for all prompts on a page; but, it also has code to create required fields and required field validations. The one thing that was brought to my attention was that my current script treated the prompt collective on the page to have dashboard scope. To read about prompt scope, read <a title="here" href="http://obieeone.com/2011/06/01/scope-of-dashboard-prompts/">here</a>. So whether or not you had one or all set for page scope the global go button disregarded and made it act like dashboard scope. So that any selections on the page would carry over on other dashboard pages. So I have updated my script so that it will use the scope from the first prompt as the entire pages scope for its prompts.  I have added and updated the script on my 2nd blog posting which had the new required field validation, <a title="here" href="http://obieeone.com/2009/10/17/required-field-validation-addition-to-the-global-go-button/">here</a>. For the instructions, on how to setup look <a title="here" href="http://obieeone.com/2009/06/16/custom-go-button-for-vertical-dashboard-prompts/">here</a>.</p>
<p>-Cheers</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=190&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/06/24/update-to-global-go-script-for-dashboard-page-scope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>Scope of Dashboard Prompts</title>
		<link>http://obieeone.com/2011/06/01/scope-of-dashboard-prompts/</link>
		<comments>http://obieeone.com/2011/06/01/scope-of-dashboard-prompts/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 13:31:43 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Presentation Services]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=182</guid>
		<description><![CDATA[Some may think that the scope of the prompts do not work and are broken; but, they do work and are not broken! You just need to know what it really does.  So when you specify a dashboard prompt as scope-&#62; &#8216;page&#8217;, what this does is say that any selections made for this prompt will [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=182&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Some may think that the scope of the prompts do not work and are broken; but, they do work and are not broken! You just need to know what it really does.  So when you specify a dashboard prompt as scope-&gt; &#8216;page&#8217;, what this does is say that any selections made for this prompt will not be used to set other prompts within the dashboard.  When you specify a dashboard prompt&#8217;s scope-&gt; &#8216;dashboard&#8217;, this says that any selection of this prompt will be reflected in other prompts within the dashboard.  I think people get it confused and think that the &#8216;page&#8217; scope shields the prompt from receiving selections from other &#8216;dashboard&#8217; scope prompts; but, it does not.  The scope is only there to specify if the selection within the prompt will be local (page) or global (dashboard).</p>
<p>So for any issues where your prompt is still being set by other page prompts within the dashboard, the reason is due to the other prompt having scope-&gt; &#8216;dashboard&#8217;.  If you do not want this behavior within the dashboard, set all the prompts&#8217; scope to &#8216;page&#8217;.  So with this knowledge you will know when to set a prompt to &#8216;dashboard&#8217; or &#8216;page&#8217;.  &#8216;Overview&#8217; or &#8216;Summary&#8217; dashboard pages are a good example of using &#8216;dashboard&#8217; scope for its prompts, while the other pages in the dashboard are set for  &#8216;page&#8217; scope.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=182&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/06/01/scope-of-dashboard-prompts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>Sequence Generators in Informatica and BI Apps</title>
		<link>http://obieeone.com/2011/05/23/sequence-generators-in-informatica-and-bi-apps/</link>
		<comments>http://obieeone.com/2011/05/23/sequence-generators-in-informatica-and-bi-apps/#comments</comments>
		<pubDate>Mon, 23 May 2011 16:18:49 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Oracle BI Apps]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=179</guid>
		<description><![CDATA[How does the Dimensions get their ROW_WID(s), which are the dimensions PKs?  Well it is not done by the database systems.  Instead, the PKs are controlled by Informatica using Sequence transformations.  These Sequence transformations are within the mplt_SIL_XXX(s) within the SIL mappings.  Remember in my prior post on mapplets defined in OBIA, these *_SIL_* mapplets [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=179&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>How does the Dimensions get their ROW_WID(s), which are the dimensions PKs?  Well it is not done by the database systems.  Instead, the PKs are controlled by Informatica using Sequence transformations.  These Sequence transformations are within the mplt_SIL_XXX(s) within the SIL mappings.  Remember in my prior post on mapplets defined in OBIA, these *_SIL_* mapplets are used for lookups for any FKs for the target table and also for getting and setting the PK(s) or ROW_WID(s).  These mapplets are usually after any filter transformations and before the update strategy transformation within the SIL mappings.  Even though these transformations are set as reusable does not mean that all the mappings are using only one and the same sequence transformation.  Each dimension and updatable facts will have their own sequence transformation and they do not share.  However, if the same mapping is being run in parallel for some reason they will use the same sequence transformation and avoid any duplicate PKs in the target table.</p>
<p>These sequences are kept and maintained in the Informatica Repository.  In order to find or see them, you can use the following query which also breaks them into their subjects (aka folders):</p>
<p>SELECT OS.SUBJ_NAME<br />
, OM.MAPPING_NAME<br />
, RWI.INSTANCE_NAME<br />
, OWA.ATTR_VALUE<br />
FROM REP_WIDGET_INST RWI<br />
INNER JOIN OPB_MAPPING OM ON (RWI.MAPPING_ID=OM.Mapping_id)<br />
INNER JOIN OPB_WIDGET_ATTR OWA ON (RWI.widget_type=owa.widget_type AND OWA.widget_id=RWI.widget_id )<br />
INNER JOIN OPB_SUBJECT OS ON (OS.SUBJ_ID = OM.SUBJECT_ID)<br />
WHERE 1=1<br />
AND RWI.widget_type_name like &#8216;Sequence%&#8217;<br />
AND OWA.attr_id=4<br />
ORDER BY OM.mapping_name</p>
<p>attr_id in the predicate above is for the transformation&#8217;s properties.  To find these you would open up designer and edit the sequence transformation-&gt;properties.  The attr_ids are read top down.  Since the &#8220;Current Value&#8221; is the 4th down from the top it has attr_id = 4.</p>
<p>1 &#8211; Start Value<br />
2 &#8211; Increment By<br />
3 &#8211; End Value<br />
4 &#8211; Current Value<br />
5 &#8211; Cycle<br />
6 &#8211; Number of Cached Values<br />
7 &#8211; Reset<br />
8 &#8211; Tracing Level</p>
<p>Remember if you copy over a mapping into your custom folder and it includes a sequence transformation, then make sure when you finally setup the DAC and run the new custom mapping, that the sequence transformation is updated with the correct/current value for the target table.  Or you may create records in the target with duplicate row_wids!  Obviously, full loads will not have this problem as the target table is truncated.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/179/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/179/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=179&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/05/23/sequence-generators-in-informatica-and-bi-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>OBIA Mapplets defined</title>
		<link>http://obieeone.com/2011/05/18/obia-mapplets-defined/</link>
		<comments>http://obieeone.com/2011/05/18/obia-mapplets-defined/#comments</comments>
		<pubDate>Wed, 18 May 2011 20:03:29 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Oracle BI Apps]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=174</guid>
		<description><![CDATA[There are pretty much 4 predominant types of mapplets in OBIA Infa ETL. Business Component (ex: mplt_BC_XXX) &#8211; These mapplets are used to extract the data from the source systems.  They are only found in the SDE folders and start off the majority of the mappings.  Within these mapplets, you will find the Source Tables [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=174&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>There are pretty much 4 predominant types of mapplets in OBIA Infa ETL.</p>
<p><strong>Business Component</strong> (ex: mplt_<strong>BC</strong>_XXX) &#8211; These mapplets are used to extract the data from the source systems.  They are only found in the SDE folders and start off the majority of the mappings.  Within these mapplets, you will find the Source Tables and the Source Qualifier, which has the SQL Overridden. Some  SDE mappings might not use these and have the Source(s) and Source Qualifiers straight within them.</p>
<p><strong>Source Adapter</strong> (ex: mplt_<strong>SA</strong>_XXX) &#8211; These mapplets are used for source specific transformations, such as standardizing column formats.  Since they are source specific, they are only found within the SDE folders.</p>
<p><strong>Analytic Data Interface</strong> (ex: mplt_<strong>ADI</strong>_XXX) &#8211; These mapplets are source system independent and resolves the codes (code lookup) for the target table.  You will not find much of these, but they are re-usable.</p>
<p><strong>Source Independent Load</strong> (ex: mplt_<strong>SIL</strong>_XXX) &#8211; These mapplets are responsible for transforming specific types of columns in the target table. For fact tables, it predominately performs the lookups to the dimensions FK(s) (row_wids).  It also functions to do Code-Name resolutions, dimension surrogate key generation via Sequence transformations, SCDs handling of effective dates,&#8230;.  There are pretty much a lot of transformation logic that is performed in these.  Since they are encapsulated mapplets and flagged for upgrades, care must be taken to update these for customizations such as extensions.  Refer to ch. 17 within the OBIA config guide for more details on customizing the OBAW.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=174&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/05/18/obia-mapplets-defined/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
		<item>
		<title>DAC Error Message : The specified task name, workflow name, or folder name does not exist. @DAC_XXX</title>
		<link>http://obieeone.com/2011/05/12/dac-error-message-the-specified-task-name-workflow-name-or-folder-name-does-not-exist-dac_xxx/</link>
		<comments>http://obieeone.com/2011/05/12/dac-error-message-the-specified-task-name-workflow-name-or-folder-name-does-not-exist-dac_xxx/#comments</comments>
		<pubDate>Thu, 12 May 2011 20:35:55 +0000</pubDate>
		<dc:creator>obieeone</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://obieeone.com/?p=171</guid>
		<description><![CDATA[Just came across this one today.  This appears to be only in v7.9.6.2 as I have not seen before.  Here is the snippet of error message from DAC: 2011-05-12 08:43:50.358 INFORMATICA TASK:SILOS:@DAC_SIL_PositionDimension_FULL_TD_CMD:(Source : FULL Target : FULL) has started. ANOMALY INFO::: Error while executing : INFORMATICA TASK:SILOS:@DAC_SIL_PositionDimension_FULL_TD_CMD:(Source : FULL Target : FULL) MESSAGE::: Irrecoverable Error [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=171&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Just came across this one today.  This appears to be only in v7.9.6.2 as I have not seen before.  Here is the snippet of error message from DAC:</p>
<p>2011-05-12 08:43:50.358 INFORMATICA TASK:SILOS:@DAC_SIL_PositionDimension_FULL_TD_CMD:(Source : FULL Target : FULL) has started.</p>
<p>ANOMALY INFO::: Error while executing : INFORMATICA TASK:SILOS:@DAC_SIL_PositionDimension_FULL_TD_CMD:(Source : FULL Target : FULL)<br />
MESSAGE:::<br />
Irrecoverable Error<br />
Request to start workflow : &#8216;@DAC_SIL_PositionDimension_FULL_TD_CMD&#8217; has completed with error code 2<br />
Error Message : The specified task name, workflow name, or folder name does not exist.</p>
<p>Pretty much it could not find the workflow as the full command for the task is defined in DAC metadata (OOTB) as &#8216;@DAC_SIL_PositionDimension_FULL_TD_CMD&#8217;.  In my most recent experience, with v7.9.6.1, this particular SIL task has the full command set as &#8216;SIL_PositionDimension_Full&#8217;.  So what is this &#8216;@DAC_&#8217; value?  Well they were introduced recently to be utlized more and are DAC parameters.  Mostly you see them as a way to do parameter nesting.  This is the first time I have seen used in this way instead of the actual Informatica workflow names.</p>
<p>The cause for this DAC parameter not being substituted with its value? I searched around and got this from Oracle &#8220;COMMANDS FOR FULL AND INCREMENTAL SHOULD ALLOW DB SPECIFIC TEXTS&#8221;.  So I guess the task commands utilizing these DAC params are not properly passing and replacing those DAC params with their values.</p>
<p>Resolution: Use cumulative <a href="https://support.oracle.com/CSP/ui/flash.html#tab=PatchHomePage%28page=PatchHomePage&amp;id=gj46o799%28%29%29,%28page=PatchSearchResultsHome&amp;id=gj46pr1y%28search=%3CSearch%3E%0A%20%20%3CFilter%20name=%22patch_number%22%20op=%22IS%22%20value=%2210052370%22%20type=%22patch_number%22/%3E%0A%20%20%3CFilter%20name=%22platform%22%20op=%22IS%22%20value=%22%22%20type=%22platform%22/%3E%0A%3C/Search%3E&amp;incFamilyProds=false&amp;flag=search%29%29" target="_blank">Patch 10052370</a>.  Looking at the v7.9.6.2 release notes, this is a mandatory patch for the DAC for this release of OBIA.  Unfortunately, they do not go into great details for this bug.</p>
<p><span style="color:#ff0000;"><strong>UPDATE: PATCH ABOVE HAS BEEN DEPRECATED BY ORACLE AND YOU WILL BE REDIRECTED TO USE PATCH </strong><strong>13551596</strong><strong>.</strong></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/obieeone.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/obieeone.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=obieeone.com&#038;blog=8134346&#038;post=171&#038;subd=obieeone&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://obieeone.com/2011/05/12/dac-error-message-the-specified-task-name-workflow-name-or-folder-name-does-not-exist-dac_xxx/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/96f22850f3a35222af6c8a58ddcdff32?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">obieeone</media:title>
		</media:content>
	</item>
	</channel>
</rss>
