<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle Developer</title>
	<atom:link href="http://www.oracledeveloper.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oracledeveloper.info</link>
	<description>Development Ideas, Thoughts and Solutions</description>
	<lastBuildDate>Thu, 18 Feb 2010 13:02:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Downgrading from OBIEE to OBISE1</title>
		<link>http://www.oracledeveloper.info/downgrading-from-obiee-to-obise1/</link>
		<comments>http://www.oracledeveloper.info/downgrading-from-obiee-to-obise1/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 12:25:45 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[RPD]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=477</guid>
		<description><![CDATA[A number of times I&#8217;ve worked on projects where the client is using Oracle Business Intelligence Standard Edition One (OBISE1) but have not had the time or resources to install development and production versions of the application. Thus, other than developing on the production OBISE1 installation I&#8217;ve had to develop on my own application, which [...]]]></description>
			<content:encoded><![CDATA[<p>A number of times I&#8217;ve worked on projects where the client is using Oracle Business Intelligence Standard Edition One (OBISE1) but have not had the time or resources to install development and production versions of the application. Thus, other than developing on the production OBISE1 installation I&#8217;ve had to develop on my own application, which happens to be OBIEE.</p>
<p>Oracle basically sellls the two versions as one being the entry level version (OBISE1) and the second being the &#8216;all dancing&#8217; enterprise version (OBIEE). Theoretically they are the same except that OBISE1 hasn&#8217;t all the functionality as OBIEE. A user can very happily start with OBISE1 and when the time comes that they need more functionality or need to upgrade their license for more users then they can seemlessly switch to the enterprise edition, OBIEE.</p>
<p>Logically it would make sense that the two versions are the same, except that OBISE1 has some of the functionality disabled. Logic doesn&#8217;t always work in business and it turns out that they are not the same. In fact, they are different versions of thee same tool, OBISE1 being an older version than OBIEE. And it is this fact that makes developing in OBIEE and moving the rpd repositiory to OBISE1 interesting.<br />
<span id="more-477"></span></p>
<p>Why? Because when we move the repository from OBIEE to OBISE1 we are actually downgrading the rpd file. You don&#8217;t do this with software. You always upgrade from an older version to a newer version, never downgrade. It is quite seemless to develop an rpd in OBISE1 and upgrade it to OBIEE. Oracle supply the tools to do this. However, Oracle do not recognise &#8211; or support -moving an rpd file from OBIEE to OBISE1. If you check Oracle Metalink they say it is not possible.</p>
<p>However, it is possible, and actually quite easy to do. Siebel supplied tools with Siebel Analytics which enabled this and these same tools can be used with OBISE1 and OBIEE. There is one proviso though. If you are going to move an OBIEE repository to OBISE1 then you must ensure that you are not using any of the functionality that is only available in OBIEE. If you are then this will not work and when you open the repository in OBISE1 all you will get are errors.</p>
<p>The following steps guide you though downgrading a repository from OBIEE to OBISE1. For this example I am using the repository sh.rpd.</p>
<h3 class="sectionHeading">Step 1</h3>
<p>Go to the directory where the rpd file is e.g.</p>
<p>C:\OracleBI\server\Repository</p>
<h3 class="sectionHeading">Step 2</h3>
<p>Make a backup of the existing sh.rpd file to sh_backup.rpd</p>
<h3 class="sectionHeading">Step 3</h3>
<p>Open up the command prompt and go to the repository directory.</p>
<pre class="plsqlCode">C:\&gt;cd C:\OracleBI\server\Repository

C:\OracleBI\server\Repository&gt;</pre>
<h3 class="sectionHeading">Step 4</h3>
<p>Run the following command:</p>
<pre class="plsqlCode">C:\OracleBI\server\bin\nQUDMLGen -U Admin -P Admin -R sh.rpd -O sh.txt</pre>
<p>where:</p>
<p>-U is the repository user<br />
-P is the repository password<br />
-R is the name of the repository rpd file<br />
-O is the name of the text output file that is being created</p>
<p>It will take a few seconds but if all is successful you will get a new command line prompt and no errors.</p>
<h3 class="sectionHeading">Step 5</h3>
<p>The following file, sh.txt, should have been created in the repository directory.</p>
<h3 class="sectionHeading">Step 6</h3>
<p>Open the sh.txt file in a text editor and search for the line containing the repository version. e.g.<br />
VERSION 1.1.184;</p>
<p>Change this line to the OBISE1 version number, e.g.<br />
VERSION 1.1.171;</p>
<p>Save the sh.txt file.</p>
<p>If you are not sure what the OBISE1 version number should be there are a number of ways of doing this. You can either run nQUDMLGen.exe program against an OBISE1 rpd file and check the version number in it.<br />
Alternatively, you can go to the OBISE1 Oracle BI Adminstration Tool. Go to the menu &#8216;File New&#8217; and create a new repository (*.rpd) file. Then go to &#8216;Help&#8217; &#8211;&gt; &#8216;About Administration Tool &#8230;&#8217; which will open up a popup similar to this.</p>
<div id="attachment_493" class="wp-caption alignnone" style="width: 406px"><img class="size-full wp-image-493 " title="OBIEE Repository About Administration Tool Popup" src="http://img.oracledeveloper.info/2010/02/About-Administration-Tool.png" alt="About Administration Tool" width="396" height="191" /><p class="wp-caption-text">OBIEE Repository About Administration Tool Popup</p></div>
<p>You can see that the Repository Version number is displayed. In the above screenshot it is the OBIEE repository version number of &#8216;184&#8242;. For OBISE1 it will probably be &#8216;171&#8242;. Whatever number is displayed; use this number prefixed by &#8216;1.1.&#8217; So if the Repository Version number is &#8216;171&#8242; then the number you will use in the sh.txt file will be &#8216;1.1.171&#8242;.</p>
<h3>Step 7</h3>
<p>Rename the file sh.txt to sh_obise1.txt.</p>
<h3>Step 7</h3>
<p>Copy the file sh_obise1.txt from the OBIEE repository directory to the repository directory of the target machine. i.e. the directory where the OBISE1 repository files are stored. e.g.</p>
<pre class="plsqlCode">C:\OracleBISE1\server\Repository&gt;</pre>
<h3 class="sectionHeading">Step 8</h3>
<p>If you haven&#8217;t done so already, open up the command prompt and go to the OBISE1 repository directory</p>
<pre class="plsqlCode">C:\OracleBISE1\server\Repository&gt;</pre>
<h3 class="sectionHeading">Step 9</h3>
<p>Run the following command:</p>
<pre class="plsqlCode">C:\OracleBISE1\server\bin\nQUDMLExec -U Admin -P Admin -I sh_obise1.txt -O sh_obise1.rpd</pre>
<p>where:</p>
<p>-U is the repository user<br />
-P is the repository password<br />
-I is the name of the repository text input file<br />
-O is the name of the rpd output file that is being created</p>
<p>It will take a few seconds but if all is successful you should see the following.</p>
<pre class="plsqlCode">C:\OracleBISE1\server\Repository&gt;C:\OracleBI\server\bin\nQUDMLExec -U Admin -P Admin -I sh_obise1.txt -O sh_obise1.rpd

---------------sh_obise1.txt---------------

Complete success!!!

C:\OracleBISE1\server\Repository&gt;</pre>
<h3 class="sectionHeading">Step 10</h3>
<p>A new repositry file, sh_obise1.rpd,  should have been created.</p>
<h3 class="sectionHeading">Step 11</h3>
<p>Stop OBISE1 OC4J.</p>
<h3 class="sectionHeading">Step 12</h3>
<p>Stop the OBISE1 Oracle BI Services.</p>
<h3 class="sectionHeading">Step 13</h3>
<p>In the OBISE1 repository directory make a backup of your current sh.rpd file if there is one.</p>
<h3 class="sectionHeading">Step 14</h3>
<p>Rename the sh_obise1.rpd to sh.rpd.</p>
<h3 class="sectionHeading">Step 15</h3>
<p>Start OBISE1 OC4J</p>
<h3 class="sectionHeading">Step 16</h3>
<p>Start the OBISE1 Oracle BI Services</p>
<h3 class="sectionHeading">Step 17</h3>
<p>Go to the OBISE1 presentation services and check if the new sh.rpd repository is being used.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/downgrading-from-obiee-to-obise1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Drill Down to a Different Report</title>
		<link>http://www.oracledeveloper.info/obi-answers-drill-down-to-a-different-report/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-drill-down-to-a-different-report/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 20:11:40 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=433</guid>
		<description><![CDATA[With the correct heirarchy setup in the Business Model and Mapping area an Answers report will drill down to each successive level. Each level logically being a child of the previous level. However, what happens if we&#8217;d like to drill down to data that isn&#8217;t part of a heirarchy but is logically child data? In [...]]]></description>
			<content:encoded><![CDATA[<p>With the correct heirarchy setup in the Business Model and Mapping area an Answers report will drill down to each successive level. Each level logically being a child of the previous level. However, what happens if we&#8217;d like to drill down to data that isn&#8217;t part of a heirarchy but is logically child data? In that case we need to use guided navigation to obtain our results.</p>
<p>In this tutorial we will produce a report which details the total amount sold throughout the world in each city of each country. We then want to drill down into the city to find a detailed breakdown of all the products which were sold in that city.</p>
<p>To start we need to produce the 2 reports we want. After that we can then add the guided navigation to enable us to drill down into the detailed report.<span id="more-433"></span></p>
<h3 class="sectionHeading">Step 1</h3>
<p>The first report we will produce is the parent report. We will call this &#8216;Sales by Country and City&#8217;. It will contain the following columns.</p>
<div id="attachment_437" class="wp-caption alignnone" style="width: 275px"><img class="size-full wp-image-437" title="Sales By Country And City Columns" src="http://img.oracledeveloper.info/2010/01/sales_by_country_and_city_columns.png" alt="Sales By Country And City Columns" width="265" height="74" /><p class="wp-caption-text">Sales By Country And City Columns</p></div>
<h3 class="sectionHeading">Step 2</h3>
<p>Tidied up and run the report will look like this.</p>
<div id="attachment_438" class="wp-caption alignnone" style="width: 251px"><img class="size-full wp-image-438 " title="Sales By Country And City" src="http://img.oracledeveloper.info/2010/01/sales_by_country_and_city_results.png" alt="Sales By Country And City Results" width="241" height="366" /><p class="wp-caption-text">Sales By Country And City</p></div>
<h3 class="sectionHeading">Step 3</h3>
<p>If we click on &#8216;Buenos Aires&#8217; we drill down to a list of sales for each customer from Buenos Aires.</p>
<div id="attachment_439" class="wp-caption alignnone" style="width: 326px"><img class="size-full wp-image-439" title="Sales By Country And City Drilling Down to Buenos Aires" src="http://img.oracledeveloper.info/2010/01/sales_by_country_and_city_drilldown.png" alt="Sales By Country And City Drilling Down to Buenos Aires" width="316" height="174" /><p class="wp-caption-text">Sales By Country And City Drilling Down to Buenos Aires</p></div>
<h3 class="sectionHeading">Step 4</h3>
<p>Next we create the child report.</p>
<div id="attachment_441" class="wp-caption alignnone" style="width: 433px"><img class="size-full wp-image-441 " title="Product Sales" src="http://img.oracledeveloper.info/2010/01/products_sold.png" alt="Products Sold" width="423" height="75" /><p class="wp-caption-text">Product Sales</p></div>
<h3 class="sectionHeading">Step 5</h3>
<p>With a few minor changes the report will look like this.</p>
<div id="attachment_444" class="wp-caption alignnone" style="width: 568px"><img class="size-full wp-image-444" title="Products Sold" src="http://img.oracledeveloper.info/2010/01/products_sold_report.png" alt="Products Sold" width="558" height="306" /><p class="wp-caption-text">Products Sold</p></div>
<h3 class="sectionHeading">Step 6</h3>
<p>The next thing we need to do is add filters to the products sold report. This is because we only want to display the products sold in a specific city. Ctrl click &#8216;Cust City&#8217; in the left-hand panel to add city as a filter condition. To test it works okay set the value to &#8216;Buenos Aires&#8217;.</p>
<div id="attachment_447" class="wp-caption alignnone" style="width: 241px"><img class="size-full wp-image-447" title="City Filter" src="http://img.oracledeveloper.info/2010/01/filter_city_buenos_aires.png" alt="City Filter" width="231" height="104" /><p class="wp-caption-text">City Filter</p></div>
<h3 class="sectionHeading">Step 7</h3>
<p>Two cities may have the same name in different countries, so add a country filter also. To test set the value to &#8216;Argentina&#8217;.</p>
<div id="attachment_448" class="wp-caption alignnone" style="width: 243px"><img class="size-full wp-image-448" title="Country Filter" src="http://img.oracledeveloper.info/2010/01/filter_country_argentina.png" alt="Country Filter" width="233" height="99" /><p class="wp-caption-text">Country Filter</p></div>
<h3 class="sectionHeading">Step 8</h3>
<p>The reports should now have two filters set.</p>
<div id="attachment_449" class="wp-caption alignnone" style="width: 316px"><img class="size-full wp-image-449" title="Country and City Filters" src="http://img.oracledeveloper.info/2010/01/filters_country_and_city.png" alt="Country and City Filters" width="306" height="55" /><p class="wp-caption-text">Country and City Filters</p></div>
<h3 class="sectionHeading">Step 9</h3>
<p>When run, the report should look like this.</p>
<div id="attachment_450" class="wp-caption alignnone" style="width: 501px"><img class="size-full wp-image-450" title="Product Sales In Buenos Aires" src="http://img.oracledeveloper.info/2010/01/product_sales_in_buenos_aires.png" alt="Product Sales In Buenos Aires" width="491" height="348" /><p class="wp-caption-text">Product Sales In Buenos Aires</p></div>
<h3 class="sectionHeading">Step 10</h3>
<p>We now need to call the &#8216;Product Sales&#8217; report from the &#8216;Sales by Country and City&#8217; report. Go to the Criteria tab of the &#8216;Sales by Country and City&#8217; report and click on the column properties icon <img class="alignnone size-full wp-image-456" title="Column Properties Icon" src="http://img.oracledeveloper.info/2010/01/column_properties_icon.png" alt="Column Properties Icon" width="14" height="14" /> of the Customers.&#8221;Cust City&#8221; column. Select the &#8216;Column Format&#8217; tab and change &#8216;Value Interaction&#8217; to &#8216;Navigate&#8217;.</p>
<div id="attachment_457" class="wp-caption alignnone" style="width: 385px"><img class="size-full wp-image-457" title="Value Interaction" src="http://img.oracledeveloper.info/2010/01/value_interaction_to_navigate.png" alt="Value Interaction" width="375" height="111" /><p class="wp-caption-text">Value Interaction</p></div>
<h3 class="sectionHeading">Step 11</h3>
<p>Click on the &#8216;Add Navigation Target&#8217; button and set &#8216;Target&#8217; to the &#8216;Product Sales&#8217; report.</p>
<div id="attachment_458" class="wp-caption alignnone" style="width: 381px"><img class="size-full wp-image-458" title="Value Interaction" src="http://img.oracledeveloper.info/2010/01/value_interaction_navigation.png" alt="Value Interaction" width="371" height="114" /><p class="wp-caption-text">Value Interaction</p></div>
<p>Then click OK.</p>
<h3 class="sectionHeading">Step 12</h3>
<p>Now run the &#8216;Sales by Country and City&#8217; report. This time when we click on &#8216;Buenos Aires&#8217; we get the &#8216;Product Sales&#8217; report filtered on the city &#8216;Buenos Aires&#8217;. Now click on the city &#8216;Sao Jose dos Campos&#8217; in Brazil. We get the following.</p>
<div id="attachment_460" class="wp-caption alignnone" style="width: 427px"><img class="size-full wp-image-460" title="Product Sales in Sao Jose dos Campos" src="http://img.oracledeveloper.info/2010/01/product_sales_in_sao_jose_dos_campos.png" alt="Product Sales in Sao Jose dos Campos" width="417" height="90" /><p class="wp-caption-text">Product Sales in Sao Jose dos Campos</p></div>
<p>Although this is what we were aiming to achieve the results are a little confusing. Unless somebody tells me otherwise I think this is a bug with OBIEE. The reason being is because we set and saved a filter on the &#8216;Product Sales&#8217; report to display only product sales in Buenos Aires. Clearly OBIEE has changed this filter to now display product sales in Sao Jose dos Campos instead!</p>
<h3 class="sectionHeading">Step 13</h3>
<p>We will now change the filters on the &#8216;Product Sales&#8217; report to work correctly (i.e. how they should be set if we are calling a child report from a parent report). Go to the &#8216;Criteria&#8217; tab of the &#8216;Product Sales&#8217; report and click on the filter options <img class="alignnone size-full wp-image-461" title="Filter Options" src="http://img.oracledeveloper.info/2010/01/filter_options_icon.png" alt="Filter Options" width="15" height="14" /> button for the &#8216;Cust City&#8217; filter. Select &#8216;Edit Filter&#8217;.</p>
<div id="attachment_462" class="wp-caption alignnone" style="width: 153px"><img class="size-full wp-image-462" title="Edit Filter" src="http://img.oracledeveloper.info/2010/01/edit_filter.png" alt="Edit Filter" width="143" height="133" /><p class="wp-caption-text">Edit Filter</p></div>
<h3 class="sectionHeading">Step 14</h3>
<p>Click on the &#8216;Operator&#8217; selection list.</p>
<div id="attachment_463" class="wp-caption alignnone" style="width: 236px"><img class="size-full wp-image-463" title="Operator Selection List" src="http://img.oracledeveloper.info/2010/01/create_edit_filter_operator.png" alt="Operator Selection List" width="226" height="326" /><p class="wp-caption-text">Operator Selection List</p></div>
<p>Change &#8216;is equal to / is in&#8217; to &#8216;is prompted&#8217;. Delete &#8216;Buenos Aires&#8217; from the &#8216;Value&#8217; field.</p>
<div id="attachment_465" class="wp-caption alignnone" style="width: 227px"><img class="size-full wp-image-465" title="Operator Is Prompted" src="http://img.oracledeveloper.info/2010/01/create_edit_filter_operator_is_prompted.png" alt="Operator Is Prompted" width="217" height="95" /><p class="wp-caption-text">Operator Is Prompted</p></div>
<p>Click OK.</p>
<h3 class="sectionHeading">Step 15</h3>
<p>Do the same for the &#8216;Country&#8217; filter.</p>
<h3 class="sectionHeading">Step 16</h3>
<p>Save the report and run it. The report should now show all records as though there were no filter set.</p>
<h3 class="sectionHeading">Step 17</h3>
<p>Now run the &#8216;Sales by Country and City&#8217; report again. Click on the city &#8216;San Nicolas&#8217; in Argentina. The &#8216;Product Sales&#8217; report should be filtered for the city &#8216;San Nicolas&#8217;.</p>
<div id="attachment_466" class="wp-caption alignnone" style="width: 453px"><img class="size-full wp-image-466" title="Product Sales in San Nicolas" src="http://img.oracledeveloper.info/2010/01/product_sales_in_san_nicolas.png" alt="Product Sales in San Nicolas" width="443" height="227" /><p class="wp-caption-text">Product Sales in San Nicolas</p></div>
<h3 class="sectionHeading">Step 18</h3>
<p>Test the report works for other cities. Click on &#8216;Buenos Aires&#8217; or &#8216;Sao Jose dos Campos&#8217; and see if we get the same results as before.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-drill-down-to-a-different-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OBI Answers: User Defined Functions</title>
		<link>http://www.oracledeveloper.info/obi-answers-user-defined-functions/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-user-defined-functions/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 13:38:28 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=402</guid>
		<description><![CDATA[As well as calling any of the Oracle predefined functions you can also create and use your own user defined functions in OBI Answers.
For this example we will create a function that formats a customer&#8217;s name and use this function in a report.
Step 1
First we will create a simple report.
Step 2
When run, the report looks [...]]]></description>
			<content:encoded><![CDATA[<p>As well as calling any of the Oracle predefined functions you can also create and use your own user defined functions in OBI Answers.</p>
<p>For this example we will create a function that formats a customer&#8217;s name and use this function in a report.</p>
<h3 class="sectionHeading">Step 1</h3>
<p>First we will create a simple report.<span id="more-402"></span></p>
<div id="attachment_403" class="wp-caption alignnone" style="width: 409px"><img class="size-full wp-image-403" title="Average Customer Sales Columns" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_columns.png" alt="Average Customer Sales Columns" width="399" height="75" /><p class="wp-caption-text">Average Customer Sales Columns</p></div>
<h3 class="sectionHeading">Step 2</h3>
<p>When run, the report looks like this.</p>
<div id="attachment_406" class="wp-caption alignnone" style="width: 345px"><img class="size-full wp-image-406 " title="Average Customer Sales Results" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_results.png" alt="Average Customer Sales Results" width="335" height="234" /><p class="wp-caption-text">Average Customer Sales</p></div>
<h3 class="sectionHeading">Step 3</h3>
<p>We&#8217;d like the customer name to appear in our standard corporate name format (&lt;Title&gt; &lt;First Initial&gt;. &lt;LastName&gt;) so we decide to use our standard name formatting function.</p>
<p>e.g. Mrs Maureen Baker would appear as Mrs. M. Baker</p>
<p>This is all well and good, but as this is an example, I don&#8217;t currently have a &#8216;corporation&#8217; let alone a &#8217;standard corporate name format&#8217; or a &#8217;standard name formatting function&#8217;! So I will now create one. I&#8217;m only saying this because this is why you would logically call a user defined function because you have certain ones which are &#8217;standard&#8217; throughout your organisation.</p>
<p>The function we will call I will call &#8216;fullname&#8217; and it will take 5 parameters:</p>
<ol>
<li>first_name</li>
<li>last_name</li>
<li>gender</li>
<li>marital_status</li>
<li>name_format</li>
</ol>
<p>The parameters are all quite obvious except the last one. A name can appear in many different ways. &#8216;name_format&#8217; is a constant which defines which name format we want to use. If a new name format is required then this can easily be added to the function so that it will return this new format.</p>
<p>For those of you that understand PL/SQL, this is the function I will use.</p>
<pre class="plsqlCode">CREATE OR REPLACE
FUNCTION fullname(first_name     IN VARCHAR2 DEFAULT NULL
                 ,last_name      IN VARCHAR2 DEFAULT NULL
                 ,gender         IN VARCHAR2 DEFAULT NULL
                 ,marital_status IN VARCHAR2 DEFAULT NULL
                 ,name_format    IN NUMBER   DEFAULT 1
                 )
RETURN VARCHAR2
IS
/*************************************************************
* Name:        fullname
* Description: Formats a name based on the name_format value.
*              The index number indicates the name_format value.
*              Possible formats for Susan Taylor (F) Married are:
*
*              1. Susan Taylor
*              2. S. Taylor
*              3. Mrs. Susan Taylor
*              4. Mrs. S. Taylor
*              5. S. Taylor (Mrs)
*
* Parameters:  first_name     = First name
*              last_name      = Last name (Surname)
*              gender         = Can take values Male, Female, M, F
*              marital_status = Takes value 'married'.
*                               Any other value assumes is 'not married'
*              name_format    = Number indicating name format (see description)
*                               which want returned
*
* History
*
* Version   Date        Author      Description
* ------------------------------------------------------------
* 001       10-Jan-2010 O. Dev      Original Version
**************************************************************/

    lc_PROCEDURE_NAME   CONSTANT VARCHAR2(30) := 'fullname';

    l_fullname      VARCHAR2(100);
    l_title         VARCHAR2(10);
    l_fullstop      VARCHAR2(1) := '';
    l_initial       VARCHAR2(2);

BEGIN

    CASE (UPPER(SUBSTR(fullname.gender, 1, 1)))

        WHEN 'F' THEN
            IF (UPPER(fullname.marital_status) = 'MARRIED') THEN
                l_title := 'Mrs';
                l_fullstop := '.';
            ELSE
                l_title := 'Miss';
            END IF;           

        WHEN 'M' THEN
            l_title := 'Mr';
            l_fullstop := '.';

        ELSE
            l_title := '';   

    END CASE;

    l_initial := UPPER(SUBSTR(fullname.first_name, 1, 1));

    IF (l_initial IS NOT NULL) THEN
        l_initial := l_initial||'.';
    END IF;

    CASE (fullname.name_format)

        --5. S. Taylor (Mrs)
        WHEN 5 THEN
            l_fullname := TRIM(l_initial||' '||fullname.last_name||' ('||l_title||')');

        --4. Mrs. S. Taylor
        WHEN 4 THEN
            l_fullname := TRIM(l_title||l_fullstop||' '||l_initial||' '||fullname.last_name);

        --3. Mrs. Susan Taylor
        WHEN 3 THEN
            l_fullname := TRIM(l_title||l_fullstop||' '||fullname.first_name||' '||fullname.last_name);

        --2. S. Taylor
        WHEN 2 THEN
            l_fullname := TRIM(l_initial||' '||fullname.last_name);

        --1. Susan Taylor
        ELSE
            l_fullname := TRIM(fullname.first_name||' '||fullname.last_name);

    END CASE;        

    RETURN l_fullname;                                   

END fullname;</pre>
<p>This function needs to be compiled in the SH schema, or if not, the SH schema needs to be granted access to it.</p>
<h3 class="sectionHeading">Step 4</h3>
<p>So, now we have the report we want to write and we have a function we can call that will return a customer name in the format we want. So how do we call the pre-defined function in OBI?</p>
<p>To call a function we need to use the <strong><em>EVALUATE</em> </strong>function.</p>
<p>The syntax of this function is:</p>
<p><em><strong>EVAULATE(&#8217;your db function(%1,%2)&#8217;, parameter list)</strong></em></p>
<p>where,</p>
<ul>
<li>%1 and %2 &#8211; the number of parameters</li>
<li>parameter list &#8211; comma separated list of values we are passing into the function</li>
</ul>
<p>e.g.</p>
<p><em><strong>EVALUATE(&#8217;upper(%1)&#8217;, &#8216;new york&#8217;)</strong></em></p>
<p>gives the result:</p>
<p><strong>NEW YORK</strong></p>
<h3 class="sectionHeading">Step 5</h3>
<p>So we would call our function as follows:</p>
<p><em><strong>EVALUATE(&#8217;fullname(%1,%2,%3,%4,%5)&#8217;, &lt;first name&gt;, &lt;last name&gt;, &lt;gender&gt;, &lt;marital status&gt;, &lt;name format&gt;)</strong></em></p>
<p>e.g.</p>
<p><em><strong>EVALUATE(&#8217;fullname(%1,%2,%3,%4,%5)&#8217;, &#8216;James&#8217;, &#8216;Thompson&#8217;, &#8216;Male&#8217;, &#8216;Single&#8217;, 3)</strong></em></p>
<h3 class="sectionHeading">Step 6</h3>
<p>Add the function to the report. To do this we add a new field to the report, e.g. &#8216;Customer Name&#8217; then &#8216;Edit Formula&#8217; of this field.</p>
<div id="attachment_409" class="wp-caption alignnone" style="width: 570px"><img class="size-full wp-image-409" title="Edit Customer Name Formula" src="http://img.oracledeveloper.info/2010/01/edit_customer_name_formula.png" alt="Edit Customer Name Formula" width="560" height="374" /><p class="wp-caption-text">Edit Customer Name Formula</p></div>
<h3 class="sectionHeading">Step 7</h3>
<p>Replace Customers.&#8221;Customer Name&#8221; with our user defined function.</p>
<div id="attachment_411" class="wp-caption alignnone" style="width: 552px"><img class="size-full wp-image-411" title="Customer User Defined Function" src="http://img.oracledeveloper.info/2010/01/customer_user_defined_function_01.png" alt="Customer User Defined Function" width="542" height="103" /><p class="wp-caption-text">Customer User Defined Function</p></div>
<h3 class="sectionHeading">Step 8</h3>
<p>Click OK and you will get the following error.</p>
<div id="attachment_412" class="wp-caption alignnone" style="width: 469px"><img class="size-full wp-image-412 " title="Customer User Defined Function Error" src="http://img.oracledeveloper.info/2010/01/customer_user_defined_function_error_01.png" alt="Customer User Defined_Function Error" width="459" height="124" /><p class="wp-caption-text">Customer User Defined Function Error</p></div>
<h3 class="sectionHeading">Step 9</h3>
<p>This is caused by the EVALUATE function expecting all the parameters to be strings and the last parameter in our function is actually a NUMBER. Convert the last value to a string and click OK. This will save okay. Oracle will now convert the string to a number when it calls the &#8216;fullname&#8217; function. Bit silly, but it&#8217;s a way around the problem.</p>
<div id="attachment_413" class="wp-caption alignnone" style="width: 469px"><img class="size-full wp-image-413" title="Customer User Defined Function" src="http://img.oracledeveloper.info/2010/01/customer_user_defined_function_02.png" alt="Customer User Defined Function" width="459" height="27" /><p class="wp-caption-text">Customer User Defined Function</p></div>
<h3 class="sectionHeading">Step 10</h3>
<p>Now run the report and you will probably get some unexpected results.</p>
<div id="attachment_415" class="wp-caption alignnone" style="width: 262px"><img class="size-full wp-image-415 " title="Average Customer Sales" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_results_hardcoded.png" alt="Average Customer Sales Results" width="252" height="214" /><p class="wp-caption-text">Average Customer Sales</p></div>
<p>We&#8217;re expecting the customer column to contain &#8216;Mr. J. Thompson&#8217;, instead we get the first 8 characters, &#8216;Mr. J. T&#8217;. This is a strange consequence of using hardcoded values in a function we call using the EVALUATE function. Here it defaults a string to 8 characters and we can&#8217;t change this default! If we were to choose name_format = 1 and make the first name 38 characters long then we would get returned a customer name which is 38 characters long. i.e. it defaults to the length of the first parameter used in the EVALUATE function.</p>
<div id="attachment_416" class="wp-caption alignnone" style="width: 401px"><img class="size-full wp-image-416" title="Average Customer Sales 38 Character Firstname" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_38_char_firstname.png" alt="Average Customer Sales 38 Character Firstname" width="391" height="177" /><p class="wp-caption-text">Average Customer Sales 38 Character Firstname</p></div>
<h3 class="sectionHeading">Step 11</h3>
<p>Fortunately for us (and Oracle) the EVALUATE function works if we pass in column names instead of hardcoded values. But it&#8217;s good to know what can happen if our function does not always use column names!</p>
<p>Change the function to now use four column names and set the fifth parameter to &#8216;4&#8242;.</p>
<div id="attachment_418" class="wp-caption alignnone" style="width: 469px"><img class="size-full wp-image-418" title="Evaluate Function" src="http://img.oracledeveloper.info/2010/01/evaluate_fullname_function.png" alt="Evaluate Function" width="459" height="49" /><p class="wp-caption-text">Evaluate Function</p></div>
<h3 class="sectionHeading">Step 12</h3>
<p>Click on the &#8216;Results&#8217; tab. The report should now look like this.</p>
<div id="attachment_419" class="wp-caption alignnone" style="width: 430px"><img class="size-full wp-image-419 " title="Average Customer Sales" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_results_02.png" alt="Average Customer Sales Results" width="420" height="231" /><p class="wp-caption-text">Average Customer Sales</p></div>
<h3 class="sectionHeading">Step 13</h3>
<p>Now the report is working we can now tidy it up so that it only contains 2 columns. (We have hidden the firstname and lastname columns but still use them to order the report by lastname followed by firstname.)</p>
<div id="attachment_421" class="wp-caption alignnone" style="width: 256px"><img class="size-full wp-image-421 " title="Average Customer Sales" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_results_final.png" alt="Average Customer Sales Results" width="246" height="292" /><p class="wp-caption-text">Average Customer Sales</p></div>
<h3 class="sectionHeading">Step 14</h3>
<p>If we do not like the customer name format it only takes a moment to change the name_format parameter and use a new format, e.g. name_format = 5.</p>
<div id="attachment_423" class="wp-caption alignnone" style="width: 257px"><img class="size-full wp-image-423" title="Average Customer Sales" src="http://img.oracledeveloper.info/2010/01/average_customer_sales_results_final_02.png" alt="Average Customer Sales" width="247" height="289" /><p class="wp-caption-text">Average Customer Sales</p></div>
<h3 class="sectionHeading">Footnote</h3>
<p>You can see how easy it is to create and use a user defined function. However, this may not necessarily be the best way to write an OBI Answers report. The reason being that the function being called will have to be processed for every record in the report. This may be extremely costly in processing time. It may be better to use this function during the development phase of the datawarehouse so that the data is easily available in OBI Answers.</p>
<p>A good time to use a user defined function is during development. A developer can produce a function and test it in an OBI Answers report. An end user can also use it. If the function is useful it can then be added as part of the ETL processes during the update of the data warehouse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-user-defined-functions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Use Custom CSS Class</title>
		<link>http://www.oracledeveloper.info/obi-answers-use-custom-css-class/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-use-custom-css-class/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 21:53:04 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=350</guid>
		<description><![CDATA[The initial setup for this tutorial is explained in the post Custom CSS Style Options (HTML Only). As well as being able to define a style (or styles) to use for a field it is possible to create and use a user defined (custom) CSS class.
Step 1
Let’s change the styles used for the &#8216;Product List [...]]]></description>
			<content:encoded><![CDATA[<p>The initial setup for this tutorial is explained in the post <a title="Custom CSS Style Options (HTML Only)" href="/obi-answers-custom-css-style-options-html-only/" target="_self">Custom CSS Style Options (HTML Only)</a>. As well as being able to <a title="Use Custom CSS Style" href="/obi-answers-use-custom-css-style/" target="_self">define a style</a> (or styles) to use for a field it is possible to create and use a user defined (custom) CSS class.</p>
<h3 class="sectionHeading">Step 1</h3>
<p>Let’s change the styles used for the &#8216;Product List Price&#8217; by assigning a new custom class to this field. This class will apply styles that will make the &#8216;Product List Price&#8217; values have a blue background with yellow text, with a white border, be double in size and shifted in from the right.  To do this we need to know which <a title="CSS Style Properties" href="http://reference.sitepoint.com/css/propertyref" target="_self" onclick="pageTracker._trackPageview('/outgoing/reference.sitepoint.com/css/propertyref?referer=');">CSS styles</a> to use in the class.</p>
<p>We need to use the following:</p>
<ul>
<li>background-color (for the blue background)</li>
<li>color (to change the font colour)</li>
<li>border(for the white border)</li>
<li>font-size (for doubling size)</li>
<li>padding-right (for indentation from the right</li>
</ul>
<p><span id="more-350"></span>When completed they class will look like this:</p>
<pre class="cssCode">.listPrice {
    background-color: #0000ff;
    color: #ffff00;
    border: 2px solid #ffffff;
    font-size: 2em;
    padding-right: 1em;
}</pre>
<h3 class="sectionHeading">Step 2</h3>
<p>Open the &#8216;column properties&#8217; window for the &#8216;Prod List Price&#8217; field and enter the &#8216;listPrice&#8217; class in the  &#8216;Use Custom CSS Class&#8217; text field.</p>
<p><img class="alignnone size-full wp-image-358" title="custom_css_class" src="http://img.oracledeveloper.info/2009/12/custom_css_class.png" alt="custom_css_class" width="309" height="70" /></p>
<p>You will need to click in the checkbox before you can enter the class.</p>
<h3 class="sectionHeading">Step 3</h3>
<p>If you run the report you will see no difference in the way the &#8216;Prod List Price&#8217; field looks. This is because we haven&#8217;t yet created the custom class. To do this we need to add the listPrice style to the custom.css stylesheet.</p>
<p>Oracle Business Intelligence is installed with a blank file called custom.css. If you did a standard install then you will probably find the file custom.css in the following directory:</p>
<p>C:\OracleBI\oc4j_bi\j2ee\home\applications\analytics\analytics\res\s_oracle10\b_mozilla_4\</p>
<p>Open custom.css in a text editor and add the &#8216;listPrice&#8217; class.</p>
<pre class="cssCode">/* This file is intentionally empty.  Styles can be defined in a customized */
/* version of this file placed in the SiebelAnalyticsData/Web/Res folder;   */
/* and can then be referenced from the "Custom CSS Style Options" area      */
/* within some Siebel Answers Formatting Dialogs.  These styles will only   */
/* affect HTML content.                                                     */

.listPrice {
    background-color: #0000ff;
    color: #ffff00;
    border: 2px solid #ffffff;
    font-size: 2em;
    padding-right: 1em;
}</pre>
<h3 class="sectionHeading">Step 4</h3>
<p>When you run the report you will probably still not notice any difference. This is probably because the cache needs to be cleared. Even after you clear the Browser Cache, or &#8216;Reload Files and Metadata&#8217; from the &#8216;Oracle BI Presentation Services Administration&#8217; the report may still be unchanged. I have even restarted the Services and reloaded the report without much success.</p>
<p>The most effective way to see the new changes is to simply click on the  &#8216;Show how results will look on a Dashboard&#8217;  button <img title="dashboard_button" src="http://img.oracledeveloper.info/2009/12/dashboard_button.png" alt="dashboard_button" width="26" height="18" /></p>
<p>When you do this the report should now look like this.</p>
<p><img class="alignnone size-full wp-image-364" title="product_list_price_results_with_css_class" src="http://img.oracledeveloper.info/2009/12/product_list_price_results_with_css_class.png" alt="product_list_price_results_with_css_class" width="304" height="354" /></p>
<h3 class="sectionHeading">Step 5</h3>
<p>On closer inspection, you may notice that one of the class styles is missing, i.e. the white border.</p>
<pre class="cssCode">    border: 2px solid #ffffff;</pre>
<p>This is where a greater understanding of HTML and CSS helps. Basically, the &#8216;listPrice&#8217; class defines the styles for each cell of the table in the &#8216;Product List Price&#8217; column. The border style we are trying to define happens to be outside the visible table cell, so we cannot see it. The visible table cell in effect is drawn over the top of the &#8216;listPrice&#8217; styles so it is the visible table cell&#8217;s border we can see and not the &#8216;listPrice&#8217; border. So, to fix the problem, what we need to do is define the visible table cell&#8217;s border instead. The visible table cell is actually a table data cell, i.e. a &lt;td&gt; tag.</p>
<p>So, what we actually want to do is add the border style to the &lt;td&gt; tag containing the &#8216;listPrice&#8217; class. i.e. we need to add the additional following class to our custom.css stylesheet:</p>
<pre class="cssCode">td.listPrice {
    border: 2px solid #ffffff;
}</pre>
<p>As this overrides the border style in the &#8216;listPrice&#8217; class we can remove it from there. So our custom.css stylesheet will now contain the following styles.</p>
<pre class="cssCode">.listPrice {
    background-color: #0000ff;
    color: #ffff00;
    font-size: 2em;
    padding-right: 1em;
}

td.listPrice {
    border: 2px solid #ffffff;
}</pre>
<h3 class="sectionHeading">Step 6</h3>
<p>The report should now look like this.</p>
<p><img class="alignnone size-full wp-image-369" title="product_list_price_results_with_css_classes" src="http://img.oracledeveloper.info/2009/12/product_list_price_results_with_css_classes.png" alt="product_list_price_results_with_css_classes" width="305" height="389" /></p>
<h2>Footnote</h2>
<p>The fourth tab in the &#8216;column properties&#8217; popup window enables you to add conditional formatting for the field.</p>
<p><img class="alignnone size-full wp-image-370" title="conditional_format_add_condition" src="http://img.oracledeveloper.info/2009/12/conditional_format_add_condition.png" alt="conditional_format_add_condition" width="391" height="92" /></p>
<p>This opens up an additional &#8216;Edit Format&#8217; window with the &#8216;Custom CSS Style Options (HTML Only)&#8217;. Here you can define new &#8216;Custom CSS Style&#8217; or &#8216;Custom CSS Class&#8217;. The CSS Styles work fine but &#8216;Custom CSS Class&#8217; doesn&#8217;t seem to work.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-use-custom-css-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Custom CSS Style Options (HTML Only)</title>
		<link>http://www.oracledeveloper.info/obi-answers-custom-css-style-options-html-only/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-custom-css-style-options-html-only/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 22:36:30 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=343</guid>
		<description><![CDATA[When you go into the &#8216;Column Properties&#8217; option of a field in OBI Answers you will see the following options at the bottom of the popup properties screen.

The following details how to use the last option, &#8216;Custom CSS Style Options (HTML Only)&#8217;.

Step 1
Click on the link &#8216;Custom CSS Style Options (HTML Only)&#8217; to expand it.

There [...]]]></description>
			<content:encoded><![CDATA[<p>When you go into the &#8216;Column Properties&#8217; option of a field in OBI Answers you will see the following options at the bottom of the popup properties screen.</p>
<p><img class="alignnone size-full wp-image-331" title="column_properties_additional_formatting_links" src="http://img.oracledeveloper.info/2009/12/column_properties_additional_formatting_links.png" alt="column_properties_additional_formatting_links" width="249" height="51" /></p>
<p>The following details how to use the last option, &#8216;Custom CSS Style Options (HTML Only)&#8217;.<br />
<span id="more-343"></span></p>
<h3 class="sectionHeading">Step 1</h3>
<p>Click on the link &#8216;Custom CSS Style Options (HTML Only)&#8217; to expand it.</p>
<p><img class="alignnone size-full wp-image-332" title="column_css_style_expanded" src="http://img.oracledeveloper.info/2009/12/column_css_style_expanded.png" alt="column_css_style_expanded" width="304" height="91" /></p>
<p>There are two available options.</p>
<ul>
<li>Either use a custom CSS Style, i.e. you type in the text field one or more CSS styles separated by semi-colons. Or,</li>
<li>You enter in the name of a CSS Class that is stored in your custom stylesheet.</li>
</ul>
<h3 class="sectionHeading">Step 2</h3>
<p>To demonstrate how to use Custom CSS first create a very simple report.</p>
<p><img class="alignnone size-full wp-image-334" title="product_price_columns" src="http://img.oracledeveloper.info/2009/12/product_price_columns.png" alt="product_price_columns" width="200" height="73" /></p>
<p>When run the report should look like  this.</p>
<p><img class="alignnone size-full wp-image-335" title="product_price_results" src="http://img.oracledeveloper.info/2009/12/product_price_results.png" alt="product_price_results" width="312" height="232" /></p>
<h3 class="sectionHeading">Step 3</h3>
<p>The following tutorials detail how use the &#8216;<a title="use custom css style" href="/obi-answers-use-custom-css-style/" target="_self">Use Custom CSS Style</a>&#8216; option or the &#8216;<a title="use custom css class" href="/obi-answers-use-custom-css-class/" target="_self">Use Custom CSS Class</a>&#8216; option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-custom-css-style-options-html-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Use Custom CSS Style</title>
		<link>http://www.oracledeveloper.info/obi-answers-use-custom-css-style/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-use-custom-css-style/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 20:46:23 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=267</guid>
		<description><![CDATA[The initial setup for this tutorial is explained in the post Custom CSS Style Options (HTML Only).
Step 1
Let&#8217;s change the default style used for the Product Name. We shall indent the the product name, change it to uppercase, add some space beneath each product and make the text pink. To do this we need to [...]]]></description>
			<content:encoded><![CDATA[<p>The initial setup for this tutorial is explained in the post <a title="Custom CSS Style Options (HTML Only)" href="/obi-answers-custom-css-style-options-html-only/" target="_self">Custom CSS Style Options (HTML Only)</a>.</p>
<h3 class="sectionHeading">Step 1</h3>
<p>Let&#8217;s change the default style used for the Product Name. We shall indent the the product name, change it to uppercase, add some space beneath each product and make the text pink. To do this we need to know which <a title="CSS Style Properties" href="http://reference.sitepoint.com/css/propertyref" target="_self" onclick="pageTracker._trackPageview('/outgoing/reference.sitepoint.com/css/propertyref?referer=');">CSS styles</a> to use.</p>
<p><span id="more-267"></span>We need to use the following:</p>
<ul>
<li>padding-left (for indentation)</li>
<li>text-transform (for uppercase)</li>
<li>padding-bottom (for space beneath product name)</li>
<li>color (to change the font colour)</li>
</ul>
<p>When completed they will look like this:</p>
<ol>
<li>padding-left: 20px;</li>
<li>text-transform: uppercase;</li>
<li>padding-bottom: 2em;</li>
<li>color: #ff00ff;</li>
</ol>
<h3 class="sectionHeading">Step 2</h3>
<p>Put all the styles on one line and enter them into the &#8216;Use Custom CSS Style&#8217; text field.</p>
<p>padding-left: 20px; text-transform: uppercase; padding-bottom: 2em; color: #ff00ff;</p>
<p><img class="alignnone size-full wp-image-338" title="custom_css_style" src="http://img.oracledeveloper.info/2009/12/custom_css_style.png" alt="custom_css_style" width="309" height="71" /></p>
<p>You will need to click in the checkbox before you can enter the styles.</p>
<h3 class="sectionHeading">Step 3</h3>
<p>The report should now look like this.</p>
<p><img class="alignnone size-full wp-image-339" title="product_price_results_with_css_style" src="http://img.oracledeveloper.info/2009/12/product_price_results_with_css_style.png" alt="product_price_results_with_css_style" width="351" height="446" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-use-custom-css-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Guided Navigation Section Properties</title>
		<link>http://www.oracledeveloper.info/obi-answers-guided-navigation-section-properties/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-guided-navigation-section-properties/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 12:33:27 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=294</guid>
		<description><![CDATA[With an OBI dashboard it is possible to control logically what sections will appear and when. We do this using &#8216;Guided Navigation&#8217;. For example, we may have a sales report which each day displays the number of sales per salesperson. However, near the end of the month we may wish to highlight which salespeople are [...]]]></description>
			<content:encoded><![CDATA[<p>With an OBI dashboard it is possible to control logically what sections will appear and when. We do this using &#8216;Guided Navigation&#8217;. For example, we may have a sales report which each day displays the number of sales per salesperson. However, near the end of the month we may wish to highlight which salespeople are below target. We still want to keep our original report in the dashboard, we&#8217;d just like a highligted list (if any) of those who are currently below target. We do this using Guided Navigation.</p>
<p>For this example I will use the SH (Sales History) database that comes with Oracle and OBI. The database does not contain sales people so I cannot emulate the above example. The scenario I&#8217;d like to create is a report which lists daily sales in the current month of product categories. The &#8220;Current Month&#8221; in the SH database is actually December 2001. We will emulate the &#8220;current date&#8221; by placing a day filter in the report. As well as a report of product category sales I&#8217;d like to display the following message: &#8220;Daily Sales have exceeded Target!&#8221; if sales are over $150,000 on that day.<br />
<span id="more-294"></span></p>
<h3 class="sectionHeading">Step 1</h3>
<p>First, we create our simple report using the SH (Sales History) database. We will display Product Category sales for the Current Month, i.e. December 2001.</p>
<p><img class="alignnone size-full wp-image-298" title="product_category_daily_sales_columns" src="http://img.oracledeveloper.info/2009/11/product_category_daily_sales_columns.png" alt="product_category_daily_sales_columns" width="588" height="75" /></p>
<h3 class="sectionHeading">Step 2</h3>
<p>We will save the report as &#8216;Product Category Daily Sales&#8217;.</p>
<p><img class="alignnone size-full wp-image-300" title="save_product_category_daily_sales_report" src="http://img.oracledeveloper.info/2009/11/save_product_category_daily_sales_report.png" alt="save_product_category_daily_sales_report" width="354" height="51" /></p>
<h3 class="sectionHeading">Step 3</h3>
<p>The report when run should look something like this.</p>
<p><img class="alignnone size-full wp-image-301" title="product_category_daily_sales_report" src="http://img.oracledeveloper.info/2009/11/product_category_daily_sales_report.png" alt="product_category_daily_sales_report" width="569" height="468" /></p>
<h3 class="sectionHeading">Step 4</h3>
<p>We now need to create a report so that we can check when product sales exceed $150,000. This is basically a subset of the above report.</p>
<p><img class="alignnone size-full wp-image-308" title="product_sales_columns" src="http://img.oracledeveloper.info/2009/11/product_sales_columns.png" alt="product_sales_columns" width="332" height="74" /></p>
<p>We will call it &#8216;Daily Sales&#8217;. The report when run should look something like this.</p>
<p><img class="alignnone size-full wp-image-309" title="product_sales_report" src="http://img.oracledeveloper.info/2009/11/product_sales_report.png" alt="product_sales_report" width="296" height="320" /></p>
<h3 class="sectionHeading">Step 5</h3>
<p>We will use this report within the guided navigation to decide if we will display the &#8220;Daily Sales have exceeded Target!&#8221; message or not. We&#8217;ve set our Daily Sales Target to be $150,000 so we need to add a filter to this report.</p>
<p><img class="alignnone size-full wp-image-310" title="product_sales_150000_filter" src="http://img.oracledeveloper.info/2009/11/product_sales_150000_filter.png" alt="product_sales_150000_filter" width="286" height="114" /></p>
<p>When we run the report now we should expect the following results.</p>
<p><img class="alignnone size-full wp-image-311" title="product_sales_150000_report" src="http://img.oracledeveloper.info/2009/11/product_sales_150000_report.png" alt="product_sales_150000_report" width="300" height="189" /></p>
<h3 class="sectionHeading">Step 6</h3>
<p>The data we have is for the whole month of December. For this demo we&#8217;d like to pretend that the data is updated everyday and that currently we are in mid December. Let&#8217;s assume &#8216;today&#8217; is the day before Christmas Eve, i.e. 23rd December 2001. To do this we need to add an additional filter.</p>
<p><img class="alignnone size-full wp-image-312" title="product_sales_on_23_dec" src="http://img.oracledeveloper.info/2009/11/product_sales_on_23_dec.png" alt="product_sales_on_23_dec" width="237" height="109" /></p>
<p>The report should now contain 2 filters.</p>
<p><img class="alignnone size-full wp-image-313" title="product_sales_filters" src="http://img.oracledeveloper.info/2009/11/product_sales_filters.png" alt="product_sales_filters" width="359" height="58" /></p>
<p>When we run the report (we are simulating &#8216;today&#8217; being 23rd December 2001) we should get the following results.</p>
<p><img class="alignnone size-full wp-image-314" title="product_sales_no_results" src="http://img.oracledeveloper.info/2009/11/product_sales_no_results.png" alt="product_sales_no_results" width="289" height="175" /></p>
<p>No data is returned. This is because the sales on 23rd December 2001 were only $101,917.</p>
<h3 class="sectionHeading">Step 7</h3>
<p>We will now create our dashboard for our Sales Report(s)</p>
<p><img class="alignnone size-full wp-image-305" title="create_sales_dashboard" src="http://img.oracledeveloper.info/2009/11/create_sales_dashboard.png" alt="create_sales_dashboard" width="411" height="132" /></p>
<h3 class="sectionHeading">Step 8</h3>
<p>We will now add the &#8216;Product Category Daily Sales&#8217; report to our dashboard.</p>
<p><img class="alignnone size-full wp-image-317" title="sales_report_dashboard_section1" src="http://img.oracledeveloper.info/2009/11/sales_report_dashboard_section1.png" alt="sales_report_dashboard_section1" width="513" height="165" /></p>
<h3 class="sectionHeading">Step 9</h3>
<p>Next we create a new section and add a &#8216;Text&#8217; Dashboard Object.</p>
<p><img class="alignnone size-full wp-image-318" title="sales_report_dashboard_section_1_and_2" src="http://img.oracledeveloper.info/2009/11/sales_report_dashboard_section_1_and_2.png" alt="sales_report_dashboard_section_1_and_2" width="512" height="279" /></p>
<h3 class="sectionHeading">Step 10</h3>
<p>We click on the properties of the Text Object and add the following HTML message then save.</p>
<p><img class="alignnone size-full wp-image-319" title="sales_report_text_properties" src="http://img.oracledeveloper.info/2009/11/sales_report_text_properties.png" alt="sales_report_text_properties" width="428" height="325" /></p>
<h3 class="sectionHeading">Step 11</h3>
<p>We now need to set the guided navigation properties. Click on the &#8216;Properties&#8217; button of the section contain the Text Object and select &#8216;Guided Navigation&#8217;</p>
<p><img class="alignnone size-full wp-image-320" title="sales_report_dashboard_section_properties" src="http://img.oracledeveloper.info/2009/11/sales_report_dashboard_section_properties.png" alt="sales_report_dashboard_section_properties" width="518" height="283" /></p>
<h3 class="sectionHeading">Step 12</h3>
<p>Set the &#8216;Reference Source Request&#8217; to &#8216;Yes&#8217;. Set the &#8216;Source Request&#8217; to point to the &#8216;Daily Sales&#8217; report and set the &#8216;Show Section&#8217; to &#8216;If request returns row&#8217;. Click OK.</p>
<p><img class="alignnone size-full wp-image-321" title="guided_navigation_section_properties" src="http://img.oracledeveloper.info/2009/11/guided_navigation_section_properties.png" alt="guided_navigation_section_properties" width="523" height="216" /></p>
<h3 class="sectionHeading">Step 13</h3>
<p>Click &#8216;Save&#8217; to  save the dashboard.  The dashboard should look like this.</p>
<p><img class="alignnone size-full wp-image-325" title="sales_reports_dashboard_1" src="http://img.oracledeveloper.info/2009/11/sales_reports_dashboard_1.png" alt="sales_reports_dashboard_1" width="596" height="338" /></p>
<p>We do not see any message displayed because we are currently looking at &#8216;23rd December 2001&#8242; data.</p>
<h3 class="sectionHeading">Step 14</h3>
<p>Let&#8217;s now emulate the next day arriving. Go to the &#8216;Daily Sales&#8217; report and change the filter so that it now filters for Christmas Eve i.e. 24th December.</p>
<p><img class="alignnone size-full wp-image-326" title="product_sales_on_24_dec" src="http://img.oracledeveloper.info/2009/11/product_sales_on_24_dec.png" alt="product_sales_on_24_dec" width="236" height="109" /></p>
<p>Save the report.</p>
<h3 class="sectionHeading">Step 15</h3>
<p>Go back to the dashboard. The Dashboard should now look like this.</p>
<p><img class="alignnone size-full wp-image-327" title="sales_reports_dashboard_2" src="http://img.oracledeveloper.info/2009/11/sales_reports_dashboard_2.png" alt="sales_reports_dashboard_2" width="581" height="452" /></p>
<p>We obviously forced this to happen, but if you had a live dashboard then you can see the benefit of being able to quickly alert the user when important events happen with the data.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-guided-navigation-section-properties/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Create a &#8216;Saved Filter&#8217;</title>
		<link>http://www.oracledeveloper.info/obi-answers-create-a-saved-filter/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-create-a-saved-filter/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 05:12:52 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=263</guid>
		<description><![CDATA[After Adding a Filter perform the following steps to create a Saved Filter:
Step 1
Click on the &#8216;Save Filter&#8217; button


Step 2
The &#8216;Save Filter&#8217; popup will appear.

Step 3
At this point you have the option to either,

Save the filter in an exisiting folder, or,
Save the filter in a new folder

For this example we will save the filter in [...]]]></description>
			<content:encoded><![CDATA[<p>After <a title="obi answers: add a filter" href="/obi-answers-add-a-filter/" target="_self">Adding a Filter</a> perform the following steps to create a Saved Filter:</p>
<h3 class="sectionHeading">Step 1</h3>
<p>Click on the &#8216;Save Filter&#8217; button</p>
<p><img class="alignnone size-full wp-image-270" title="save_filter" src="http://img.oracledeveloper.info/2009/11/save_filter.png" alt="save_filter" width="241" height="129" /></p>
<p><span id="more-263"></span></p>
<h3 class="sectionHeading">Step 2</h3>
<p>The &#8216;Save Filter&#8217; popup will appear.</p>
<p><img class="alignnone size-full wp-image-271" title="save_filter_screen" src="http://img.oracledeveloper.info/2009/11/save_filter_screen.png" alt="save_filter_screen" width="424" height="552" /></p>
<h3 class="sectionHeading">Step 3</h3>
<p>At this point you have the option to either,</p>
<ol>
<li>Save the filter in an exisiting folder, or,</li>
<li>Save the filter in a new folder</li>
</ol>
<p>For this example we will save the filter in the &#8216;SH&#8217; folder. Click the &#8216;SH&#8217; folder under &#8216;Shared Filters&#8217;.</p>
<p>The following should appear in the Folder field near the bottom of the popup.</p>
<p><img class="alignnone size-full wp-image-272" title="save_filter_fields_folder" src="http://img.oracledeveloper.info/2009/11/save_filter_fields_folder.png" alt="save_filter_fields_folder" width="384" height="210" /></p>
<h3 class="sectionHeading">Step 4</h3>
<p>Fill in the Name field and the optional Description field. e.g.</p>
<p>Name: &#8216;Gross Profit Greater than $250000&#8242;</p>
<p>Description: &#8221;Only display records when the gross profit exceeds $250,000.&#8217;</p>
<p>The screen should now look like this.</p>
<p><img class="alignnone size-full wp-image-273" title="save_filter_fields_completed" src="http://img.oracledeveloper.info/2009/11/save_filter_fields_completed.png" alt="save_filter_fields_completed" width="378" height="206" /></p>
<h3 class="sectionHeading">Step 5</h3>
<p>Click OK button. The filter will be saved and will now appear in the left-hand selection pane under filters.</p>
<p><img class="alignnone size-full wp-image-274" title="available_filters" src="http://img.oracledeveloper.info/2009/11/available_filters.png" alt="available_filters" width="214" height="189" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-create-a-saved-filter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OBI Answers: Add a Filter</title>
		<link>http://www.oracledeveloper.info/obi-answers-add-a-filter/</link>
		<comments>http://www.oracledeveloper.info/obi-answers-add-a-filter/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 00:12:23 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=243</guid>
		<description><![CDATA[To create a simple perform the following steps:
Step 1
Select the Sales History (SH) Subject Area

Step 2

In the left-hand selection pane expand the Customers table and click the Cust City column.

Expand the Measures &#62; Sales Facts table and click the Gross Profit column.

Step 3
Your query should look like this.

Step 4
Click on the Results Tab to run [...]]]></description>
			<content:encoded><![CDATA[<p>To create a simple perform the following steps:</p>
<h3 class="sectionHeading">Step 1</h3>
<p>Select the Sales History (SH) Subject Area<br />
<img class="alignnone size-full wp-image-244" title="sh_subject_area" src="http://img.oracledeveloper.info/2009/11/sh_subject_area.png" alt="sh_subject_area" width="379" height="85" /></p>
<h3 class="sectionHeading">Step 2</h3>
<p><span id="more-243"></span></p>
<p>In the left-hand selection pane expand the Customers table and click the Cust City column.</p>
<p><img class="alignnone size-full wp-image-246" title="customers_customer_city" src="http://img.oracledeveloper.info/2009/11/customers_customer_city.png" alt="customers_customer_city" width="149" height="150" /></p>
<p>Expand the Measures &gt; Sales Facts table and click the Gross Profit column.</p>
<p><img class="alignnone size-full wp-image-247" title="measures_gross_profit" src="http://img.oracledeveloper.info/2009/11/measures_gross_profit.png" alt="measures_gross_profit" width="155" height="134" /></p>
<h3 class="sectionHeading">Step 3</h3>
<p>Your query should look like this.</p>
<p><img class="alignnone size-full wp-image-245" title="filter_report_columns" src="http://img.oracledeveloper.info/2009/11/filter_report_columns.png" alt="filter_report_columns" width="192" height="160" /></p>
<h3 class="sectionHeading">Step 4</h3>
<p>Click on the Results Tab to run the report. The results should look like this:</p>
<p><img class="alignnone size-full wp-image-248" title="city_gross_profit_report_no_filter" src="http://img.oracledeveloper.info/2009/11/city_gross_profit_report_no_filter.png" alt="city_gross_profit_report_no_filter" width="258" height="595" /></p>
<h3 class="sectionHeading">Step 5</h3>
<p>Click on the Criteria Tab.</p>
<p><img class="alignnone size-full wp-image-249" title="criteria_tab" src="http://img.oracledeveloper.info/2009/11/criteria_tab.png" alt="criteria_tab" width="194" height="363" /></p>
<h3 class="sectionHeading">Step 6</h3>
<p>Add a filter to display only Cities with Gross Profits greater than $0.25M.</p>
<p>There are 2 ways of doing this. Either,</p>
<ol>
<li>Hold down the &#8216;Ctrl key&#8217; and click on the Gross Profits column in the left-hand pane, or</li>
<li>Click on the Add Filter icon <img class="alignnone size-full wp-image-253" title="filter_icon" src="http://img.oracledeveloper.info/2009/11/filter_icon.png" alt="filter_icon" width="17" height="15" /> on the Gross Profit column under the Criteria Tab</li>
</ol>
<p>The following screen will popup.</p>
<p><img class="alignnone size-full wp-image-252" title="create_edit_filter_popup" src="http://img.oracledeveloper.info/2009/11/create_edit_filter_popup.png" alt="create_edit_filter_popup" width="302" height="360" /></p>
<h3 class="sectionHeading">Step 7</h3>
<p>Select the &#8216;is greater than&#8217; value from the Operator dropdown list.</p>
<p>Enter the value 250000.</p>
<p><img class="alignnone size-full wp-image-254" title="create_filter_values" src="http://img.oracledeveloper.info/2009/11/create_filter_values.png" alt="create_filter_values" width="226" height="102" /></p>
<p>Click &#8216;OK&#8217; to save the filter.</p>
<h3 class="sectionHeading">Step 8</h3>
<p>The following should appear under the Filter Heading.</p>
<p><img class="alignnone size-full wp-image-255" title="gross_profit_filter" src="http://img.oracledeveloper.info/2009/11/gross_profit_filter.png" alt="gross_profit_filter" width="252" height="124" /></p>
<h3 class="sectionHeading">Step 9</h3>
<p>Test the filter. Click on the Results Tab to run the report. The results should look like this:</p>
<p><img class="alignnone size-full wp-image-256" title="city_gross_profit_report_with_filter" src="http://img.oracledeveloper.info/2009/11/city_gross_profit_report_with_filter.png" alt="city_gross_profit_report_with_filter" width="157" height="253" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obi-answers-add-a-filter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OBISE1 and OBIEE Tutorials</title>
		<link>http://www.oracledeveloper.info/obise1-and-obiee-tutorials/</link>
		<comments>http://www.oracledeveloper.info/obise1-and-obiee-tutorials/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 10:19:33 +0000</pubDate>
		<dc:creator>Oracle Developer</dc:creator>
				<category><![CDATA[OBI Answers]]></category>
		<category><![CDATA[Oracle Business Intelligence]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.oracledeveloper.info/?p=277</guid>
		<description><![CDATA[There are a lot of good tutorials out there on Oracle Business Intelligence (formerly Siebel Analytics) Standard Edition (OBISE1) and Enterprise Edition (OBIEE). So, I really do not want to reinvent the wheel. What I have found is that it is the simple things that can sometimes be confusing. The sort of things that a [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of good tutorials out there on Oracle Business Intelligence (formerly Siebel Analytics) Standard Edition (OBISE1) and Enterprise Edition (OBIEE). So, I really do not want to reinvent the wheel. What I have found is that it is the simple things that can sometimes be confusing. The sort of things that a detailed tutorial will assume you know, or ones that you do know, it&#8217;s just slipped your mind.<br />
<span id="more-277"></span></p>
<p>My plan is to present a whole range of very simple &#8216;How do you do this?&#8217; tutorials that maybe take a few minutes to complete and solve a single very basic step.</p>
<p>For the vast majority of people they are probably too simple. For people who are starting out though I hope they offer a very useful step in your development.</p>
<p>I&#8217;m perceiving that there may end up a lot of short tutorials which will take me sometime to complete. I will methodically go through the different areas of OBI to produce these tutorials. If you think I should give priority to some parts more than others, please let me know. If I miss anything out, also let me know. Hopefully over the next few months I will have created a useful reference guide to OBI users and developers everywhere.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oracledeveloper.info/obise1-and-obiee-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
