<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Rittman Mead Consulting</title>
	<link>http://www.rittmanmead.com</link>
	<description>Delivered Intelligence</description>
	<pubDate>Sat, 17 May 2008 10:51:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Essbase and OBIEE Article Now Up On OTN</title>
		<link>http://www.rittmanmead.com/2008/05/17/essbase-and-obiee-article-now-up-on-otn/</link>
		<comments>http://www.rittmanmead.com/2008/05/17/essbase-and-obiee-article-now-up-on-otn/#comments</comments>
		<pubDate>Sat, 17 May 2008 10:48:50 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[Hyperion]]></category>

		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/17/essbase-and-obiee-article-now-up-on-otn/</guid>
		<description><![CDATA[My new article on Essbase and Oracle BI EE has just gone up on OTN. It covers the steps you&#8217;d need to go through to build a simple Essbase database based on the SH Sample Schema that comes with Oracle 9i, 10g and 11g, and how you&#8217;d then plug that database into Oracle Business Intelligence [...]]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://www.oracle.com/technology/pub/articles/rittman-essbase.html">new article on Essbase and Oracle BI EE</a> has just gone up on OTN. It covers the steps you&#8217;d need to go through to build a simple Essbase database based on the SH Sample Schema that comes with Oracle 9i, 10g and 11g, and how you&#8217;d then plug that database into Oracle Business Intelligence Enterprise Edition, so that you could report on it using Oracle BI Answers and Oracle BI Dashboards.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/05/essbase_article.jpg" alt="" /></p>
<p>All the software it uses is available for download on OTN, and now Essbase is on version 9.3.1 it&#8217;s an easy install without any of the license management stuff you used to have to do on earlier releases. Take a look if you&#8217;re interested, add comments here if you&#8217;ve got any questions after working through the article.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/17/essbase-and-obiee-article-now-up-on-otn/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rapid development using OBI EE (and what about the Data Warehouse?)</title>
		<link>http://www.rittmanmead.com/2008/05/16/rapid-development-using-obi-ee-and-what-about-the-data-warehouse/</link>
		<comments>http://www.rittmanmead.com/2008/05/16/rapid-development-using-obi-ee-and-what-about-the-data-warehouse/#comments</comments>
		<pubDate>Fri, 16 May 2008 18:07:27 +0000</pubDate>
		<dc:creator>Jon Mead</dc:creator>
		
		<category><![CDATA[Data Warehousing]]></category>

		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/16/rapid-development-using-obi-ee-and-what-about-the-data-warehouse/</guid>
		<description><![CDATA[We are often told that one of the benefit of OBI EE is the speed and ease of development. Data sources can easily be added into the system, users can then quickly build queries and the results are easy to distribute. While I completely support this, to me this leaves a few questions when you [...]]]></description>
			<content:encoded><![CDATA[<p>We are often told that one of the benefit of <span class="caps">OBI EE</span> is the speed and ease of development. Data sources can easily be added into the system, users can then quickly build queries and the results are easy to distribute. While I completely support this, to me this leaves a few questions when you go beyond the slick sales demos: do we need a Data Warehouse? How do we deal with data quality? How do we test? How do we ensure our great looking reports get from our development environment to our production environment and still display the same data?</p>
<p>This posting just concentrates on the Data Warehouse. Think of the project if we didn&#8217;t need a Data Warehouse, initially in terms of cost: no database license required, no <span class="caps">ETL</span>/Data Warehouse development required, no ongoing maintenance and maybe in the eyes of the business no black hole of money and time where the hairy developers go away, grumble about data quality and take longer than everyone thought. Think of all this new way from a business point of view: there is a new reporting requirement, they sit down with a business analyst, add the data source into the physical and then business model, graphically create the joins, and 10 minutes later the data is on the <span class="caps">CEO</span>&#8217;s dashboard, marvelous, and not a hairy developer type to be found anywhere in the process, so no cost and no hold-ups. But wait a minute: why have we been spending money developing Data Warehouses over the past couple of decades?</p>
<p><em>What was the Data Warehouse actually doing?</em></p>
<p>For starters, they prevented queries being run against the live transactional systems. Query and analysis tools can be very powerful, and hence can generate complex queries. If each of these queries was being run against the live systems then performance would be impacted, plus the reporting system would be dependent on all the systems being live all the time. Thus loading all the data into a &#8216;reporting database&#8217; protected the transactional systems.</p>
<p>But what about our real-time Data Warehouse, managers need up to the minute information to make informed decisions? Real-time Data Warehouses can be a double-edged sword, it is great to have up the minute information, but the downside is that reports keep on changing, it becomes more difficult to reconcile information or to get a consistent view of the organisation. Sometimes it is actually useful to have a static view of the data for 24 hours. Real-time Data Warehousing can also be implemented using replication features like Change Data Capture in the database if required.</p>
<p>Data Warehouses also offer a number of functional advantages:</p>
<ul>
<li>they can store historic data that may have been archived from the transactional system.</li>
<li>they can store the history of dimensions, so facts can be correctly categorised when they happened.</li>
<li>they can store data from different systems.</li>
<li>they can store the data in a way that makes it easy and efficient for users to query, this means that a large volume of data can be accessed and used effectively.</li>
<li>they can use features like partitioning, bitmap indexes, materialized views to further speed up those queries.</li>
</ul>
<p><em>What were those hairy developers actually doing?</em></p>
<p>They are writing <span class="caps">ETL</span> programs (or using a tool to) transforming the data from a number of disparate systems, and possibly a number of disparate organisations so that it can be presented in a unified model. This process can be easy for a small young company, however for larger company, with a history of acquisition this is far more complex.  The reason this process can take such a long time is that it can be very hard to combine data from different systems. In the world of <span class="caps">OBI EE</span> we would create a join between the different tables &#8211; this is great in theory, but only really works if the keys are aligned between the systems. Generally they are not.  Add to this the fact that the data quality maybe of poor quality and suddenly you find that the join is &#8216;losing&#8217; a large number of records, or they are being incorrectly categorized.</p>
<p>The <span class="caps">ETL</span> process, and the hairy developers, will address this process and actually get in a state it can be compared across systems.  I have worked on projects where the <span class="caps">ETL</span> team have lead/driven the business in the whole data quality and cleansing process.</p>
<p>So to turn the argument on its head, if we can do all this with the <span class="caps">ETL</span> process and  in our Data Warehouse, and this does add value, why are we hacking things together in <span class="caps">OBI EE</span>, surely then everything should be done at the back end?  Again there is some truth in this, if we are going to define complex time series calculations, and we can do them during the <span class="caps">ETL</span> phase, then it supports the &#8216;one version of the truth&#8217;, it means everyone will be using the same calculation and it can be rigorously tested.</p>
<p>If we had no constraints on time or money we may do everything at the back-end, or in the <span class="caps">ETL</span>, however the reality of it is that there just isn&#8217;t time (or money), or we often don&#8217;t know what the requirements are until later in the project.  If we have written the <span class="caps">ETL</span> code and it is tested and working correctly and the business decides it needs another calculation then it may be a lot more practical to write it in situ in the report, or in the business model than to rework (and hence retest) the <span class="caps">ETL</span> code.</p>
<p>This is where <span class="caps">OBI EE</span> and an iterative development methodology come in. In a typical BI/DW project requirements are initially stated at the outset of the project, then they are then added to, changed and refined throughout the process.  Users do not know what they want to report against until they see the data in a report in front of them &#8211; it is only then can they see the possibilities. To take the example of the calculation and how this could be implemented using this methodology and <span class="caps">OBI EE</span>: initially it could be prototyped directly in Answers. It could then be reviewed, refined and tested.  Once agreed the calculation could be added to the business model, this way it would be available to all the users and they could add it to reports, this may lead to changes, or finding cases where it doesn&#8217;t work correctly.  If the calculation becomes a core part of the system, is found to be stable and performance could be improved by materializing it, then it may be added to the Data Warehouse and hence the <span class="caps">ETL</span> code.  We find that as the requirement becomes more stable it filters from front-end tools back into the database Data Warehouse.</p>
<p>This gives us the foundation of our methodology for approaching projects.  It is initially important to gather and then implement/prototype the core or high priority requirements in the first few iterations of development, our understanding of these requirements only needs to be &#8216;good enough&#8217; at this point and it is important to get them in front of the users. <span class="caps">OBI EE</span> can be used to do this. As they are then reviewed and refined they can be incorporated further into the system.</p>
<p>Once we requirements reach a certain stability they can be passed back toward the back-end of the system on future development iterations.  This means that the more complex coding tasks, the ones that take time can be carried out on better understood requirements.  This is where the Data Warehouse fits in and where it still can and does add value.</p>
<p>Importantly <span class="caps">OBI EE</span> gives us the ability to handle these changes seamlessly, we can change the physical objects supporting the business model.  Mark wrote a series of postings about this process entitled <a href="http://www.rittmanmead.com/2008/03/16/re-wiring-obiee-logical-models-to-use-a-data-warehouse-part-1/">Migrating <span class="caps">OBIEE</span> Logical Models to use a Data Warehouse</a>, these describe how to re-wire the business model to a Data Warehouse.</p>
<p>So this means that old school ways, such as Data Warehousing, are not dead, interesting the latest <a href="http://www.ralphkimball.com/html/designtips.html">Kimball Design Tip</a> (I think you have to subscribe to get access &#8211; it&#8217;s free) discusses how names of the concepts of what we now call BI&#38;DW have changed. What will make a project successful is finding a balance between how to optimally use each of the technologies, depending on user requirements, complexity and quality of source data and a myriad of other factors, and most importantly having a methodology that can stitch these approaches together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/16/rapid-development-using-obi-ee-and-what-about-the-data-warehouse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Advert: OBIEE Developer Training</title>
		<link>http://www.rittmanmead.com/2008/05/12/advert-obiee-developer-training/</link>
		<comments>http://www.rittmanmead.com/2008/05/12/advert-obiee-developer-training/#comments</comments>
		<pubDate>Mon, 12 May 2008 08:04:05 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<category><![CDATA[Rittman Mead]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/12/advert-obiee-developer-training/</guid>
		<description><![CDATA[I&#8217;ve just updated our training page with details of our Oracle BI Suite Enterprise Edition developer course. This course is aimed at organizations who have recently bought OBIEE and are looking to train their development team up on creating the metadata layer, adding security, using features like caching and aggregate persistence, creating reports and publishing [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just updated our training page with details of ou<a href="http://www.rittmanmead.com/training/listing-of-courses/oracle-bi-suite-enterprise-edition-design-build-and-dashboards-5-days/">r Oracle BI Suite Enterprise Edition developer course</a>. This course is aimed at organizations who have recently bought OBIEE and are looking to train their development team up on creating the metadata layer, adding security, using features like caching and aggregate persistence, creating reports and publishing them to the dashboard, and using features such as BI Publisher and Delivers. It&#8217;s a fairly intensive three-day course taught either by myself or Borkur, with 35 separate hands-on labs where you really get to grips with how the tools work.</p>
<p>One thing we&#8217;ve added recently is a section where we take the various heterogenous sources that we use in the exercises and migrate them to a small data mart using Oracle Warehouse Builder 11g, then &#8220;re-wire&#8221; the logical model to point to this single data source instead. In my experience this is one of those areas you&#8217;re never going to get on a standard public OBIEE course, but it reflects how developers might want to take their system on once they&#8217;ve gone beyond the prototyping phase.</p>
<p>Anyway, if you&#8217;re interested, <a href="mailto:enquiries@rittmanmead.com">drop us a line</a> and we&#8217;ll tell you more about it. We&#8217;ve also recently put together an Oracle BI Publisher for Developers course that goes through report building but also integration with environments such as ApEx and Oracle Forms, I&#8217;ll post more on that when we pull the datasheet together.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/12/advert-obiee-developer-training/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Bashups&#8221; : Data Mashups Meet Business Intelligence</title>
		<link>http://www.rittmanmead.com/2008/05/10/data-mashups-meet-business-intelligence-bashups-explained/</link>
		<comments>http://www.rittmanmead.com/2008/05/10/data-mashups-meet-business-intelligence-bashups-explained/#comments</comments>
		<pubDate>Sat, 10 May 2008 14:05:55 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[BI 2.0]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/10/data-mashups-meet-business-intelligence-bashups-explained/</guid>
		<description><![CDATA[Dan Vlamis sent me a link through to a recent article by Mark Whitehorn on &#8220;Data Bashups&#8221;, an idea that takes business intelligence and uses it in &#8220;mashups&#8221;:
&#8220;For example, suppose you are interested in the effect an advertising spend is having citywide. Your company invested in renting several prominent and expensive billboards in a city [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vlamis.com/blog.php">Dan Vlamis</a> sent me a link through to a <a href="http://searchdatamanagement.techtarget.com/news/column/0,294698,sid91_gci1311928,00.html?track=NL-520&#038;ad=638872&#038;asrc=EM_USC_3585266&#038;uid=7935708">recent article by Mark Whitehorn on &#8220;Data Bashups&#8221;</a>, an idea that takes business intelligence and uses it in <a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)">&#8220;mashups&#8221;</a>:</p>
<p><em>&#8220;For example, suppose you are interested in the effect an advertising spend is having citywide. Your company invested in renting several prominent and expensive billboards in a city to advertise your latest products. Your current BI system can probably return the percentage sales growth by city area over the last month as a list of raw numbers from which you can create a graph and work out whether your billboards are earning their keep. Alternatively, you could mash up the same values as a heat map laid over the city and see instantly whether the high growth correlates with the billboards&#8217; locations.</p>
<p>With services like Virtual Earth and Google Earth, you can do this across one city, the country, the continent or the world. Better yet, all that mapping comes free of charge. And it keeps on getting better.</p>
<p>Now suppose that your BI system tells you that, in the past, sales of hot dogs double whenever the local baseball team plays at home after winning three games in a row. It&#8217;s a fascinating factoid, but it doesn&#8217;t make you any extra profit unless you can get the extra dogs to the relevant stadium in time for the right game. Your company is very unlikely to store baseball results, but there are plenty of sites out there that do. And there are plenty of shipping companies that provide data about trucking availability and pricing. On its own, your BI system is simply predicting the future. But mash up that prediction with these external data sources and suddenly your BI system is able to predict the future in a way that you can act on quickly to increase profits.&#8221;</em></p>
<p>Of course all this &#8220;mashup&#8221; talk reminds me of <a href="http://www.rittmanmead.com/2006/03/20/when-i-used-to-be-cool/">when I used to be a DJ</a>, but it&#8217;s no doubt a very interesting idea and one that, as Dan said in his email, links in well with all the talk around BI and Service-Orientated Architecture. I&#8217;ll be keeping an eye on this area in future, and it&#8217;s got me thinking about putting something like this together for one of my<a href="http://conference.ukoug.org/default.asp?p=795"> UKOUG conference submissions</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/10/data-mashups-meet-business-intelligence-bashups-explained/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web 2.0 Round Table with Charles Phillips, London</title>
		<link>http://www.rittmanmead.com/2008/05/10/web-20-round-table-with-charles-phillips-london/</link>
		<comments>http://www.rittmanmead.com/2008/05/10/web-20-round-table-with-charles-phillips-london/#comments</comments>
		<pubDate>Sat, 10 May 2008 12:53:31 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[BI 2.0]]></category>

		<category><![CDATA[User Groups &amp; Conferences]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/10/web-20-round-table-with-charles-phillips-london/</guid>
		<description><![CDATA[I mentioned the other week that I got an invite to a roundtable session with Oracle&#8217;s President, Charles Phillips, at the Lanesborough Hotel in London. The session itself was last Friday and so I thought I&#8217;d go along, there were I think around eight bloggers, analysts and journalists that came to the along and the [...]]]></description>
			<content:encoded><![CDATA[<p>I mentioned the other week that I got an invite to a roundtable session with Oracle&#8217;s President, Charles Phillips, at the Lanesborough Hotel in London. The session itself was last Friday and so I thought I&#8217;d go along, there were I think around eight bloggers, analysts and journalists that came to the along and the session lasted around an hour.</p>
<p>If you&#8217;re a regular reader of this blog you&#8217;ll probably know that my interest is more around business intelligence than Web 2.0, enterprise applications and so on, but I thought I&#8217;d come along as I&#8217;ve got a tangental interest in these areas and of course I thought it&#8217;d be interesting to meet Charles Phillips in person. Uncharacteristically for me I ended up listening for most of the session rather than asking questions, I did get in a question around how Web 2.0 might influence business intelligence but for the most part, most of the discussion was around collaborative technologies, how Oracle plan to embed these in their applications to the point where they&#8217;re planning to put together &#8220;Enterprise 2.0&#8243; teams within each Oracle&#8217;s seven regions.</p>
<p align="center"><img src="http://farm4.static.flickr.com/3179/2478549019_9ab8e19fc2_d.jpg" alt="" /></p>
<p>It was interesting to hear Charles&#8217; take on why Oracle feels the innovations in such areas as instant messaging, social networks, collaborative working and so on can apply to the heavy-duty enterprise applications that Oracle sells. The obvious counter to suggestions that Web 2.0 can apply to ERP applications is that you don&#8217;t want your financials application to look like Facebook; the point Phillips made though was that the ideas behind collaborative apps - social networks that form themselves, validation of expertise through peer endorsement, sharing of ideas, ability to engage with micro-markets - are all ones that can add value to the enterprise. If you divide what Web 2.0 ideas can bring to enterprises into two areas - internal and external - you can certainly imagine technologies such as Twitter, IM, blogs, wikis and so on being used to maintain communication with customers, and similar technologies being used within the organization to foster communication and idea sharing. Phillips talked about how these ideas are being used within Oracle; apparently developers are being encouraged to &#8220;tag&#8221; themselves to say what skills they have, what projects they&#8217;ve worked on, with their peers then voting on each others skills to validate claims of expertise. There was also talk on what Oracle plan to do with these technologies later down the line, perhaps eventually using technologies such as Web Center, Stellent and so on to establish a beachhead in the collaborative space, then extend this back to more legacy technologies such as email to take on Microsoft and IBM in the Exchange/Lotus Notes space.</p>
<p>Anyway, even though most of the discussion was outside my particular area of expertise it was a useful hour or so. Charles Phillips came across well; he&#8217;s obviously a very smart guy and he gave pretty straightforward answers to the questions - I&#8217;ve been in similar sessions in the past where it&#8217;s been like the Oracle person was answering from a press release. Kudos to Oracle and Charles Phillips for doing this; the questions were by no means easy the audience was a pretty smart bunch as well. Throughout the session there was a photographer taking photos, I worked out after a while that they were all of Charles Phillips and one thing that made me smile when I accessed the photos online was how well they came out when you use a professional photographer - the one below is a typical one and compares well the usual ones we try and take of each other when doing talks at conferences, where I usually end up looking very shifty or that I&#8217;ve got something wrong with me (though nothing will ever beat <a href="http://www.flickr.com/photos/markrittman/6509940/in/set-162434/">this one</a>).</p>
<p align="center"><img src="http://farm3.static.flickr.com/2140/2479364048_e3cdd167a2_d.jpg" alt="" /></p>
<p>Incidentally, if you followed the interview with Phil Bates that I ran in two parts on this blog in April, I&#8217;m just waiting for Phil to come back from his holiday before I get him to answer your questions. I&#8217;m also going to run a similar interview with Jean-Pierre Dijcks, the Product Manager for Oracle Warehouse Builder, so if you&#8217;ve got any questions on OWB product direction add them to the comments or drop me a line and I&#8217;ll put them to him.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/10/web-20-round-table-with-charles-phillips-london/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dates and times comment</title>
		<link>http://www.rittmanmead.com/2008/05/06/dates-and-times-comment/</link>
		<comments>http://www.rittmanmead.com/2008/05/06/dates-and-times-comment/#comments</comments>
		<pubDate>Tue, 06 May 2008 08:26:35 +0000</pubDate>
		<dc:creator>Peter Scott</dc:creator>
		
		<category><![CDATA[Data Warehousing]]></category>

		<category><![CDATA[Dimensional Modelling]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/05/06/dates-and-times-comment/</guid>
		<description><![CDATA[A few days ago, Farooq posted some comments on an old post of mine. The final comment in our exchange concerned storing activities in our data warehouse by time (actual hour and minute). This is quite a common requirement, especially where the performance of customer service agents is being measured (as in Farooq&#8217;s question)
I would [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago, Farooq posted some comments on an <a href="/2007/06/21/status-changes-over-time/" target="_blank">old post of mine</a>. The final comment in our exchange concerned storing activities in our data warehouse by time (actual hour and minute). This is quite a common requirement, especially where the performance of customer service agents is being measured (as in Farooq&#8217;s question)</p>
<p>I would be tempted to split the event date and time into two separate dimensions a &#8216;date&#8217; dimension with a granularity of day and a &#8216;time&#8217; dimension that has sufficient resolution to capture the events of interest; there is no date component in the time dimension, for example events that occurred at 09:18:00 on May 6 2008 will share the same time dimension key as events that occurred at 09:18:00 on February 5 2008. This approach keeps the time dimension compact, we only need to key the possible time values that occur in a single day, and more importantly it opens up the possibility of simple time range queries aggregating over many days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/05/06/dates-and-times-comment/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Questions for Charles Phillips on Web 2.0 &#038; BI 2.0</title>
		<link>http://www.rittmanmead.com/2008/04/29/questions-for-charles-phillips-on-web-20-bi-20/</link>
		<comments>http://www.rittmanmead.com/2008/04/29/questions-for-charles-phillips-on-web-20-bi-20/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 22:26:30 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[User Groups &amp; Conferences]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/04/29/questions-for-charles-phillips-on-web-20-bi-20/</guid>
		<description><![CDATA[I got a call late today inviting me to a discussion with Charles Phillips, Oracle&#8217;s President, on Web 2.0 that&#8217;s being held in London next week. The invite has gone out to &#8220;bloggers and opinion formers&#8221; within the UK and it&#8217;ll be interesting to see who else comes along as well.
Anyway, what I thought would [...]]]></description>
			<content:encoded><![CDATA[<p>I got a call late today inviting me to a discussion with <a href="http://www.oracle.com/corporate/pressroom/html/pressportal/exec/cphillips.html">Charles Phillips</a>, Oracle&#8217;s President, on Web 2.0 that&#8217;s being held in London next week. The invite has gone out to &#8220;bloggers and opinion formers&#8221; within the UK and it&#8217;ll be interesting to see who else comes along as well.</p>
<p>Anyway, what I thought would make it interesting is to open up questions to readers of this blog; if you&#8217;ve got a question on Oracle and Web 2.0 (social networks, building applications collaboratively, that sort of thing) just add it to this posting and I&#8217;ll try and ask them at the event. Also, I&#8217;m hoping to stretch the subject to <a href="http://www.rittmanmead.com/category/bi-20/">&#8220;BI 2.0&#8243;</a> as well, so again if you&#8217;ve got any questions in this area, add them as comments as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/04/29/questions-for-charles-phillips-on-web-20-bi-20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Migrating OBIEE Projects Between DEV and PROD Environments</title>
		<link>http://www.rittmanmead.com/2008/04/28/migration-obiee-projects-between-dev-and-prod-environments/</link>
		<comments>http://www.rittmanmead.com/2008/04/28/migration-obiee-projects-between-dev-and-prod-environments/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 18:50:30 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/04/28/migration-obiee-projects-between-dev-and-prod-environments/</guid>
		<description><![CDATA[One of the clients I&#8217;m working with this week wants to go through how OBIEE environments are migrated from one environment to another. They are working on a solution for their organization where a team of developers put together an initial first cut of the repository and web catalog, and then at various points from [...]]]></description>
			<content:encoded><![CDATA[<p>One of the clients I&#8217;m working with this week wants to go through how OBIEE environments are migrated from one environment to another. They are working on a solution for their organization where a team of developers put together an initial first cut of the repository and web catalog, and then at various points from then onwards they will either completely refresh the production environment using what&#8217;s in development, or more usually they&#8217;ll take an element of what&#8217;s in development, say an individual subject area, set of fact and dimension tables or a set of dashboards or reports, and deploy those as a &#8220;patch&#8221; in to production.</p>
<p>When working with OBIEE, my understanding is that you can have one BI Server per physical/virtual server, which can connect to one or more repositories, though only one of them is the &#8220;default&#8221;. You also normally then set up one BI Presentation Server instance which connects through to the default repository for the corresponding BI Server. In reality this means that each OBIEE environment consists of one BI Server and one Presentation server on the same physical server (together usually with an installation of BI Publisher, configured to use BI Server security), or in some cases the BI Server and BI Presentation Server might be split onto different physical servers, and possibly further clustered on to more servers if the expected load is high.</p>
<p>You can, it should be noted, set up additional Presentation Servers on the same physical server, each of them connecting through to the same BI Server but with different &#8220;default&#8221; repositories, which gives you a way to create your DEV, PROD and other environments on the same physical server (if it&#8217;s a beefy Unix box, for example). However this is a fairly complex task (see <a href="http://www.rittmanmead.com/2007/09/11/managing-multiple-presentation-services-on-the-same-unix-box/">this blog posting</a> by Borkur) and it&#8217;s usually easier to have a simple pairing of one BI Server, one Presentation Server (plus the BI Publisher, Delivers etc servers) per environment with all of these contained on their own physical server. The rest of the migration steps in this posting therefore assume that you&#8217;ve got each environment set up in this straightforward way, with OBIEE already installed on each server and a single installation of BI Administrator that can connect to both of them.</p>
<p>When you think about migrating an OBIEE environment, there are four main things you&#8217;ll want to move across:</p>
<ol>
<li>The BI Server repository, which contains the enterprise semantic layer, variables, security settings (including users and groups if you use RPD-based security) and connection pool settings through to the physical data sources. The contents of the repository are normally contained with a single RPD file contained in the %ORACLEBI/%server/Repository directory, with %ORACLEBI% being determined by the SAROOTDIR environment variable and the current RPD in use (only one can be online at any one time per installation of OBIEE) being determined by the %ORACLEBI%/server/config/NQSConfig.INI file.
</li>
<li>The BI Presentation Server web catalog, which contains the reports, dashboards, prompts, ibots and so on, together with a separate set of users and roles (usually propagated from the BI Server repository) and their permissions on the web catalog objects. Unlike the BI Server repository, the web catalog is stored in a set of XML files, one per web catalog object organized into folders, plus an ATR file per folder that contains permissions on the objects within them. The files that make up the web catalog are held in the %ORACLEBIDATA%/web/catalog directory, with %ORACLEBIDATA% being determined by the SADATADIR environment variable.
</li>
<li>Connections through to physical datasources, held on the server containing the BI Server, which when working in an Oracle environment are usually contained in a single TNSNAMES.ORA file. The connection pool settings in the BI Server repository references the connections in this file.
</li>
<li>The BI Publisher Report Catalog, which contains the XDO files that define the BI Publisher reports. It is assumed that BI Publisher is configured to use BI Server security or LDAP security, therefore the users and groups in the BI Publisher OC4J container will not need to be migrated. This catalog is normally found in the %ORACLEBI%xmlp/XMLP/Reports directory.</li>
</ol>
<p>Note that this list isn&#8217;t exhaustive - if you know of anything else that needs migrating (perhaps to do with Disconnected Analytics, perhaps the configuration files for the Presentation Server) let me know by adding a comment to this posting.</p>
<p>In a typical customer situation, the environment migration lifecycle looks something like this:</p>
<p><strong>Step 1 : Initial Development (&#8221;First Cut&#8221;)<br /></strong></p>
<p>All development of the repository and web catalog initially happens in DEV. At some point, the initial work is complete and the DEV environment is ready to be copied into PROD (or TEST, or whatever)</p>
<p><strong>Step 2 : First Deployment to Production</strong></p>
<p>The initial creation of the PROD BI Server repository is done through copying the DEV RPD file in to the PROD environment. Copying across the entire RPD file will bring across all subject areas, physical models, presentation models, security settings, users and groups (if RPD security is used), variables and so on. If your OBIEE server does not have a TNSNAMES.ORA file on it to connect to the source database, you will need to copy this across from the DEV server as well. You can either copy this repository &#8220;interactively&#8221; by using the filesystem explorer application and cut and paste, or you can script the copy using a batch or shell script. If you need to make changes to the repository &#8220;en-route&#8221; to the PROD environment, you can instead of copying the repository &#8220;whole&#8221;, export it into a UDML text file using the using the <span style="font-style: italic;">nQUDMLGen.exe</span> utility within the %ORACLEBI/server/bin directory, alter any settings that you need to change using a perl script for example, and then import the amended text file into a new, blank PROD repository using the <span style="font-style: italic;">nQUDMLExec.exe</span> utility. See <a href="http://www.rittmanmead.com/2007/10/27/scripting-entries-in-the-oracle-bi-repository/">this posting on this blog</a> on UDML and repository migration and merging, and <a href="http://oraclebizint.wordpress.com/2008/04/04/oracle-bi-ee-101332-udml-to-automate-repository-updates-migration-of-repositories-from-development-to-testproduction-environment/">this posting by Venkat</a> on automating changes to connection pool settings using UDML during a migration.</p>
<p>The corresponding Web Catalog is migrated by copying the contents of the %ORACLEBIDATA%/web/catalog directory to the corresponding directory on the production server. This directory contains top-level folders for Delivers and Answers/Dashboard contents, like this:</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/high-level-web-catalog.jpg" width="480" height="395" alt="high_level_web_catalog.jpg" /></p>
<p>With each top-level folder then containing sub-folders and then individual file pairs for each web catalog item, like this:</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/web-catalog-contents.jpg" width="480" height="383" alt="web_catalog_contents.jpg" /></p>
<p>The BI Publisher report catalog is migrated by copying the contents of the %ORACLEBI%/xmlp/XMLP/Reports directory and the %ORACLEBI%/xmlp/XMLP/users directories over to the production BI Publisher environment.</p>
<p>In all cases, the RPD file, the contents of the Web Catalog files, any UDML files and BI Publisher report files can be stored in a version control system to create versioned releases of your project metadata.</p>
<p><strong>3. Subsequent Full Refreshes of Production<br /></strong></p>
<p>If production ever needs to be fully refreshed with what is in development, then the above process can be repeated. Note however that ordinarily, any reports or customizations that happened in the production environment (including users&#8217; custom dashboards) will be overwritten using this process; these can however be preserved if the sub-folders below the %ORACLEBIDATA%/web/catalog<span style="font-style: italic;"><span style="font-style: normal;">/</span>web_catalog_name</span>/root/users`are saved before being overwritten by the DEV web catalog files, and then copied back after the migration takes place.</p>
<p><strong>4. Incremental Refreshes of Individual Subject Areas, Tables, Columns &amp; Corresponding Presentation Areas</strong></p>
<p>Incremental migrations of elements of the BI Server repository can either be done interactively or through scripting.</p>
<p>Interactive migrations are carried out using the Copy / Paste feature in BI Administrator, and can be used to copy across any element from subject area down to individual column from one repository to another. To do this, open two copies of BI Administrator with one having the DEV repository loaded offline and one having the production repository loaded offline. Use the Copy and Paste feature of the tool to copy elements from one repository to another, like this:</p>
<p align="center"><img src="http://www.rittmanmead.com/images/bieescript1.jpg" /></p>
<p>Check the repository consistency afterwards, and if all is OK then open the production repository online to start using the migrated objects.</p>
<p>Automated (scripted) migrations are carried out using the <span style="font-style: italic;">nQUDMLGen.exe</span> and <span style="font-style: italic;">nQUDMLExec.exe</span> utlitiies, which can export and import repository elements from one repository to another (again <a href="http://www.rittmanmead.com/2007/10/27/scripting-entries-in-the-oracle-bi-repository/">this posting on this blog</a> for examples of these utilities in use.) Automated migration in this manner is usually preferred in real, production situations as it removes the chance of operator error when migrating from one environment to another. If the physical tables to which logical tables map are the same in both the DEV and PROD environments (which they ideally should be) then logical tables should preserve their mappings when migrated from one environment to another. Scripted migrations are also the only way of migrating non-table and dimension settings from one environment to another, such as variable settings, user and filter settings etc). You can also take the text files created using these utilities and store them in a version control system to create versioned &#8220;patches&#8221; to your OBIEE metadata.</p>
<p><strong>5. Incremental Refreshes of Individual Reports, Dashboards, Alerts, Prompts etc from the Web Catalog</strong></p>
<p>Like repository migrations, Web Catalog migrations can be done either interactively or through manually copying filesystem objects, potentially in an automated fashion using batch files.</p>
<p>Interactive migrations are carried out in a similar way to repository migrations, but this time using two copies of the Catalog Manager application open, one connected to the DEV web catalog and one connected to the PROD web catalog. Like the BI Server repository, the web catalog can be opened offline by navigating to the %ORACLEBIDATA%/web/catalog<span style="font-style: italic;"><span style="font-style: normal;">/</span>catalog_name</span> directory (be careful that you open the correct directory, otherwise the Catalog Manager application will helpfully create a new web catalog for you rather than point out that it cannot find one at this location), or online by connecting to the BI Presentation Services URL. Once connected, you can cut and paste objects between the two catalogs as shown in <a href="http://www.rittmanmead.com/2007/12/12/migrating-obiee-reports-between-web-catalogs/">this blog posting here</a>.</p>
<p>Automated (scripted) web catalog item migrations can be accomplished by copying the web catalog element (a file of the same name as the report, dashboard etc with no file extension) and it&#8217;s corresponding ATR file (the same name with ATR at the end, as shown in the screenshot above) from the DEV web catalog to the PROD one using filesystem copies.</p>
<p>These copies can be batched up and automated using .BAT or unix shell scripts in order to copy across multiple reports and other elements, note the comment on this by Adrian Ward at the <a href="http://www.rittmanmead.com/2007/12/12/migrating-obiee-reports-between-web-catalogs/">end of this blog post</a>. Again it&#8217;s worth noting that automated migration in this way is usually preferred by customers as it removes the chance of someone inadvertently or deliberately changing a report during migration, or needing &#8220;live&#8221; access to the production environment. Note also that the two Web Catalogs need to have the same user and group settings for permissions to migrate correctly across both environments.</p>
<p><strong>Miscellaneous Object Migrations</strong></p>
<p><strong><span style="font-weight: normal;">On any mature OBIEE system, there are no doubt other elements of each environment you would also wish to migrate. Some of these might include dashboard themes (XSL and other files), TNSNAMES.ORA files and/or ODBC DSNs, any clustering files and settings and BI Server users and groups if you are using RPD security (this would need, I believe, to be done using UDML scripting, <a href="http://oraclebizint.wordpress.com/2008/04/08/oracle-bi-ee-101332-automating-import-of-usersgroups-into-repository-using-udml/">see this other posting</a> by Venkat). If anyone reading this knows of any others then add these as comments to the postings.</span></strong></p>
<p><strong>Migration Example : Complete Environment Refreshes whilst Preserving User Reports and Dashboards</strong></p>
<p>So that&#8217;s the theory of how you go about migrating from one OBIEE environment to another. For this particular customer though, we can take a slightly simplified approach and release updates to the production environment by just copying across what&#8217;s in development, as long as we have a method to preserve any reports or dashboards that users create in the production environment and restore them after the migration takes place. This is a bit of a simpler process than using nqUDMLGen.exe and nqUDMLExec.exe as we won&#8217;t be migrating across individual parts of the repository or individual reports or dashboards. In addition, this customer uses the same database instance for their DEV and PROD OBIEE installations, so we can use the same TNSNAMES.ORA contents for all environments.</p>
<p>To put in place a routine for this migration, we will need to carry out the following steps, organized in to two parts; the first part (steps 1-5) will be concerned with gathering up all the repository and report metadata from the DEV environment and copy it to a staging area, with the second part (steps 6-9) copying this metadata across to the PROD area, after first taking a copy of any user-generated reports and dashboards.</p>
<ol>
<li>
<p>Somewhere in a staging area, we create a directory for the metadata to be migrated. We call this OBI_RELEASE_x, with x being the release number.</p>
</li>
<li>Within this directory, we create four subdirectories
<ol>
<li>RPD</li>
<li>WEBCAT</li>
<li>WEBCAT_USERS</li>
<li>TNSNAMES</li>
</ol>
<p>
  </li>
<li>We then create two Windows or Unix batch/script files, with three input parameters
<ol>
<li>REPOSITORY_NAME (to hold the name of the repository to be migrated)</li>
<li>ORACLEBI (to hold the root directory of the Oracle BI Server installation)</li>
<li>ORACLEBIDATA (to hold the root directory of the Oracle BI Presentation Server installation)</li>
</ol>
<p>
  </li>
<li>
<p>For this customer&#8217;s installation, they are not using BI Publisher or Delivers, so we will leave this out of the migration at this stage.</p>
</li>
<li>We then create a first script that copies the DEV environment metadata into the OBIEE_RELEASE_x directory ready for migration. This script performs the following steps:
<ol>
<li>copy the %REPOSITORY_NAME%.RPD file from %ORACLEBI%/server/repository/ into /RPD directory.</li>
<li>Copy the %ORACLEBIDATA%/web/catalog/%REPOSITORY_NAME% folder to /WEBCAT</li>
<li>Copy the TNSNAMES.ORA file used on the server to /TNSNAMES</li>
</ol>
<p>
  </li>
<li>We then create a second script, which is used to copy the metadata from the OBIEE_RELEASE_x directory to the PROD server. It carries out the following steps:
<ol>
<li>Shut down BI Server so that you can overwrite the repository file.</li>
<li>Copy the /RPD directory to %ORACLEBI%/server/repository directory</li>
<li>Copy the %ORACLEBIDATA%/web/catalog/%REPOSITORY_NAME%/root/users to /WEBCAT_USERS</li>
<li>Copy the /WEBCAT directory to %ORACLEBIDATA/web/catalog/</li>
<li>Copy the /WEBCAT_USERS directory to %ORACLEBIDATA%/web/catalog/%REPOSITORY_NAME%/root/users</li>
<li>Copy the /TNSNAMES directory to the database client /network/admin directory</li>
<li>Restart the BI Server</li>
</ol>
<p>
  </li>
<li>Once these scripts have run, to test that migration has happened correctly we perform the following steps:
<ol>
<li>Go in to BI Administrator, check you can connect, check you can do row counts, check global consistency. Check that all users you expect are there</li>
<li>Log in to dashboard, check that all reports and all users&#8217; reports and dashboards are present.</li>
</ol>
<p>
  </li>
</ol>
<p>I&#8217;ve tested this approach out on my DEV and TEST environment and it migrates all data, reports and dashboards correctly.</p>
<p>As I mentioned previously, what I haven&#8217;t tested it with is BI Publisher and Delivers, but the principal should still be the same. As usual, any comments or suggestions are most welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/04/28/migration-obiee-projects-between-dev-and-prod-environments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Moneyball, and Competing through Analytics</title>
		<link>http://www.rittmanmead.com/2008/04/25/moneyball-and-competing-through-analytics/</link>
		<comments>http://www.rittmanmead.com/2008/04/25/moneyball-and-competing-through-analytics/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 21:34:36 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[Oracle BI Suite EE]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/04/25/moneyball-and-competing-through-analytics/</guid>
		<description><![CDATA[I&#8217;ve been doing a lot of traveling recently, which as usual means that I&#8217;ve been doing a lot of reading. I normally take a novel with me when I&#8217;m on the road but based on some recommendations, I&#8217;ve been working through a batch of books on business analytics. First off was &#8220;Competing on Analytics&#8221;, the [...]]]></description>
			<content:encoded><![CDATA[<p><img align="left" src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/180px-moneyballsbn.jpg" width="180" height="276" alt="180px-Moneyballsbn.jpg" name="180px-moneyballsbn.jpg" style="padding-bottom: 10px; padding-right: 10px;" />I&#8217;ve been doing a lot of traveling recently, which as usual means that I&#8217;ve been doing a lot of reading. I normally take a novel with me when I&#8217;m on the road but based on some recommendations, I&#8217;ve been working through a batch of books on business analytics. First off was <a href="http://www.amazon.co.uk/Competing-Analytics-Thomas-H-Davenport/dp/1422103323/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1209017626&amp;sr=8-1">&#8220;Competing on Analytics&#8221;</a>, the seminal text on using analytics to gain a competitive advantage, next was <a href="http://www.amazon.co.uk/Smart-Enough-Systems-Competitive-Automating/dp/0132347962/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1209017646&amp;sr=8-1">&#8220;Smart (Enough) Systems&#8221;</a>, the book by James Taylor and Neil Raden which was the inspiration for my recent Collaborate&#8217;08 presentation, then it was <a href="http://www.amazon.co.uk/E-myth-Revisited-Michael-E-Gerber/dp/0887307280/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1209017703&amp;sr=8-1">&#8220;The E-Myth Revisited&#8221;</a>, recommended by Mark Waite from Griffiths Waite, then <a href="http://www.amazon.co.uk/Supercrunchers-How-Anything-Can-Predicted/dp/0719564646/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1209017735&amp;sr=8-1">&#8220;Supercrunchers&#8221;</a>, recommended by Charlie Berger (the ODM product manager), and finally this last week I&#8217;ve been reading <a href="http://www.amazon.co.uk/Moneyball-Art-Winning-Unfair-Game/dp/0393324818/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1209017758&amp;sr=8-1">&#8220;Moneyball : The Art of Winning an Unfair Game&#8221;</a> by Michael Lewis, a book that on the surface appears to be about baseball, about as far away from business analytics as you could possibly get. So where&#8217;s the interest here?</p>
<p>Although it&#8217;s not so big outside of the North America, baseball is of course one of America&#8217;s most popular sports, with big TV contracts and top players on contracts worth tens of millions of dollars each year. Baseball is unusual though in that it <a href="http://en.wikipedia.org/wiki/Baseball_statistics">lends itself to statistics gathering</a> more than most sports; unlike football (soccer) baseball is a structured game where events happen in a defined order and the individual contribution of players can be easily measured. What certain people had begun to realise though was that the statistics that players were usually measured on - stolen bases, runs batted in and so on - were not really the key factors in whether a team won or not, and in fact less glamourous measures - walks (the equivalent, I guess of 0-0 draws or packing your defense in football), on base percentage and avoiding an out were better indicators of whether a team would win. The problem was, the traditional measures of player skills tended to emphasise &#8220;glamour&#8221; players, players who once in a while turned a game or pulled off some amazing feat, whilst the less glamourous measures tended to favour the more pedestrian players, the ones that turned in a solid performance each month but were never considered stars.</p>
<p>What <a href="http://oakland.athletics.mlb.com/oak/team/exec_bios/beane_billy.jsp">Billy Beane</a> and the Oakland A&#8217;s did was take this analysis, which was called <a href="http://en.wikipedia.org/wiki/Sabermetrics">&#8220;Sabermetrics&#8221;</a> after &#8220;Society for American Baseball Research&#8221;, and used it to pick players who weren&#8217;t glamourous, weren&#8217;t the established stars, were perhaps fading stars who could still do one thing - say, ensure they always <a href="http://en.wikipedia.org/wiki/On_base_percentage">got on base</a> - and buy them for a pittance. Then, they took these players and proceeded to grind out effective but boring victories, to the point where within their regional league they had the lowest payroll figure and the highest amount of points scored and the end of the season. Going back to the analogy, it&#8217;s like a premier league side selling all their star players, searching the lower leagues for players who never lost the ball or took risks and then going on to get themselves into Europe.</p>
<p>Where the business intelligence interest is, is around their use of analytics to spot what are effectively inefficiencies in the market, the market for baseball players. The market is pricing players on one set of statistics that actually aren&#8217;t good indicators of team success, what Billy Beane and the Oakland A&#8217;s did was determine what the true significant statistics were, buy players based on that and then, in effect, win games at a lower payroll cost. In effect it&#8217;s <a href="http://economics.about.com/cs/finance/a/arbitrage.htm">arbitrage</a>, as the players that the Oakland A&#8217;s bought then often went on to be transferred to higher spending teams who didn&#8217;t use Sabermetrics, whereapon the A&#8217;s would then take the money, but more mis-priced players and repeat the process again. The trick though was to spot what the true signifying statistics were, and this is where techniques such as regression came in as hundreds of amateur statisticians ran the numbers and tried to establish just what player traits and actions were most likely to lead to either runs being scored, or hitters being caught out. Going back to the &#8220;Competiting on Analytics&#8221; book, it&#8217;s a classic case study of an organization gaining competitive advantage through an analytical approach to their business.</p>
<p>Of course the real inspiration wasn&#8217;t the raw numbers, they&#8217;d been available more or less for free for many years, it was the ability of Billy Beane to firstly spot the opportunity, then have the courage to act on it, and then to determine, on an ongoing basis, the correlations and the causations. Once the Oakland A&#8217;s had their initial success some of the other, better funded teams copied the ideas, hired some of their staff, meaning that the A&#8217;s then had to repeat the process, finding more inefficiencies and so on, to keep things going. One interesting twist to the story was that this approach gave them great results in the league, but when they got to the play-offs and the World Series, they found they couldn&#8217;t reproduce their success; they put this down in the end to the fact that their analytic approach meant that on average, they&#8217;d win more games than lose, but for the one-off, sudden death games, one star player could turn the match. Also, they were clear in saying that the intended benefit of the approach wasn&#8217;t to make them the best in their league, it was to deliver results at a much lower cost, which still meant that for the big, end of season games, they would almost expect to lose as they hadn&#8217;t invested the required huge amounts of money on the star players that were needed.</p>
<p>Again going back to the Premiership and football, <a href="http://www.guardian.co.uk/football/2007/mar/17/newsstory.sport1">Bolton in Sam Allardyce&#8217;s days</a> are the obvious comparison, they hired in either unknowns or faded stars, used the ProZone statistics, got amazing value out of them but were never really going to win a cup or get into the Champions League, they didn&#8217;t have the equivalent of a Ronaldo or Gerrard who could win a match for them single-handed, but for a commensurately high salary.</p>
<p>Anyway, I thought it was a good book, and a good companion to Competing on Analytics. It gets a bit too baseball at times (I certainly had to turn to Wikipedia once or twice to work out what a &#8220;pop fly&#8221;, for example, was) but it was good nonetheless, and probably a book you&#8217;ve heard being discussed at some point or other if you&#8217;re from the States as I understand it caused <a href="http://money-law.blogspot.com/2008/04/is-moneyball-pass.html">a bit of a controversy</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/04/25/moneyball-and-competing-through-analytics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Printer Tray Selection using BIP Web Services (and ApEx)</title>
		<link>http://www.rittmanmead.com/2008/04/25/printer-tray-selection-using-bip-web-services-and-apex/</link>
		<comments>http://www.rittmanmead.com/2008/04/25/printer-tray-selection-using-bip-web-services-and-apex/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 15:52:31 +0000</pubDate>
		<dc:creator>Mark Rittman</dc:creator>
		
		<category><![CDATA[Oracle Reports &amp; XML Publisher]]></category>

		<guid isPermaLink="false">http://www.rittmanmead.com/2008/04/25/printer-tray-selection-using-bip-web-services-and-apex/</guid>
		<description><![CDATA[Earlier on this week I&#8217;ve been delivering some BI Publisher classroom training, with a day at the end for one-to-one sessions with the delegates and some consulting. One of the requirements that came up from the customer was for a report to split the various pages within it to different trays in the printer, so [...]]]></description>
			<content:encoded><![CDATA[<p>Earlier on this week I&#8217;ve been delivering some BI Publisher classroom training, with a day at the end for one-to-one sessions with the delegates and some consulting. One of the requirements that came up from the customer was for a report to split the various pages within it to different trays in the printer, so that page one for example went to headed paper, pages two and three went to normal paper and the last page went to specially coloured paper. Their previous solution, using the Microsoft Word mail-merge feature, made this possible through the ability in Word, to specify different page settings for each page in a document, but these page settings are lost when you convert the document to RTF format and upload it to the BI Publisher server.</p>
<p>Another requirement within the same organization was to send reports that are generated directly to the printer, without the intermediate step of displaying them, say, in the Adobe Acrobat browser plug-in. In this case, BI Publisher was due to be invoked from an ApEx application, and whilst they could put a button or a link on the page that when clicked, invoked a BI Publisher report via the user&#8217;s default Web browser, the user would then have to click on the Adobe Acrobat plug-in&#8217;s &#8220;Print&#8221; button, select the print destination and initiate the printing themselves. In their ideal world, the button on the ApEx page would just call out to BI Publisher and have the report sent straight to the printer. Again on the face of it this wasn&#8217;t going to be easy, as BI Publisher, unlike Oracle Reports, only lets you specify the report format and the report template, not the report destination, when you invoke a report. Also, BI Publisher, unlike Reports, doesn&#8217;t have a tag or a function that you can include in a report definition to switch printer trays mid-way through the report generation, so again we were at a bit of a loss how to meet these requirements.</p>
<p>Thinking about it for a while though, I did remember that when you schedule a BI Publisher report, you can specify the report destination, the tray if it&#8217;s a printer, and you can specify a time of &#8220;immediate&#8221; for the scheduled execution.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/printer-schedule.jpg" width="480" height="300" alt="printer_schedule.jpg" /></p>
<p>Now this looks promising. If we broke the report up into several separate reports, one for each printer tray, and submitted them all at the same, we could select the printer tray to print to and they&#8217;d all arrive at more or less the same time, such that the end user wouldn&#8217;t really know that they had been delivered separately. Moreover, as the report invocation would come from an application, the user would just run the report as normal, in the background several report components to several printer trays would be scheduled, and the user would just think they&#8217;d requested a single report that printed to several trays. The only thing missing from this, compared to the Microsoft Word mail-merge approach, is that the report couldn&#8217;t be sent to the user&#8217;s &#8220;default printer&#8221; - BI Publisher has no concept of a default printer, all it can do is either send the report as a PDF to the user&#8217;s Web Browser, whereapon the user could use the Adobe Acrobat browser plug-in to print to their default printer, or in the solution we were going to use, we&#8217;d need to replicate this functionality by maintaining a list of available printers within ApEx and BI Publisher, and allow the user to specify which printer was their &#8220;default&#8221;, ensuring we printed to that one in future.</p>
<p>Following this then, my first thought was to try and invoke the scheduling of a report via a URL, as you can with Oracle Reports. Looking through the documentation though, there&#8217;s no programmatic way (at least based on my short investigation) to invoke the scheduling of a report, at least through a URL or through the command line. One thing I did remember reading about recently though was a <a href="http://download.oracle.com/docs/cd/E10383_01/doc/bip.1013/e10416/bip_webservice_101331.htm#CHDGIJHH">Web Services interface for BI Publisher</a>, which if it was anything like the Web Services interface for OBIEE, would potentially give me a way to schedule a report from a ApEx via a Web Services method invocation. Before I could try this out though, I needed a way to set up a set of &#8220;virtual&#8221; printers, FTP servers and email servers on my laptop so that I could check that scheduling itself worked correctly. To do this I downloaded and installed <a href="http://www.bullzip.com/products/pdf/info.php">Bullzip PDF Printer</a> to create a virtual printer for my laptop, configured Microsoft IIS to provide the access to this virtual printer via a URL, installed <a href="http://filezilla-project.org/">FileZilla</a> Server as an FTP server and <a href="http://www.download.com/ArGoSoft-Mail-Server-Freeware/3000-2369_4-10038331.html">ArgoSoft Mail Server</a> as a local email server. Once all of these were installed and configured and I proved that I could schedule a report and sent it to these three destinations, I was ready to start working with the BI Publisher Web Services interface.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/schedule-test.jpg" width="354" height="480" alt="schedule_test.jpg" /></p>
<p>Now in reality I hit on a bit of luck with the setting up of BI Publisher Web Service access for ApEx as I came across <a href="http://tylermuth.wordpress.com/2008/03/31/call-bi-publisher-web-services-from-apex/">this excellent article</a> by Tyler Muth that documents the whole process. In the article, Tyler uses a tool called <a href="http://www.soapui.org/">soapUI</a> to do the initial Web Service test, which you can use initially to check out the various parameters you send to BI Publisher via this method. Sure enough, the section on invoking a report includes a parameter for the printer tray.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/print-tray.jpg" width="480" height="447" alt="print_tray.jpg" /></p>
<p>Now unfortunately the one thing I can&#8217;t do at this stage is actually test it with a printer with multiple print trays, as our printers back in the office only have a single tray and the Bullzip PDF Printer software only simulates a single tray. But if we work on the assumption that the tray parameter in the BI Publisher Scheduler request method actually works, if we can get the Web Service call working this should prove a solution, at least one we can take back to the client in a week or so&#8217;s time to try and implement.</p>
<p>I used soapUI to put together a proper Web Service request to BI Publisher as a test, requesting that the report be delivered to the email server, FTP server and printer, leaving out the tray parameter at this stage. This is what the request XML looked like:</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/bip-ws-code.jpg" width="480" height="357" alt="bip_ws_code.jpg" /></p>
<p>Executing the Web Service call using soapUI caused the report to &#8220;print&#8221; via the virtual printer, get delivered as a PDF to the FTP site and emailed to my local email server as an attachment, so it looks like it worked. So now to ApEx to see if I could invoke the report from an application page, again following the instructions on Tyler&#8217;s blog page.</p>
<p>The first step within ApEx was to set up the Web Service request as a manually-defined Web Service reference reference, which allowed me to add all of the optional parameters around delivery destinations and so forth. The service description URL I determined by taking a look through the WSDL file for the BI Publisher Web Service.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/soap-envelope.jpg" width="480" height="451" alt="soap_envelope.jpg" /></p>
<p>One this was done, the next step was to set up a button on an application page that invoked the web service. In reality, the button on the real customer application will actually need to call several web services, one for each of the report elements, and as this would be a fairly common process it would make sense to create some sort of shared procedure that would take a report name and any report parameters as inputs, and then actually call out to BI Publisher for all of the individual report elements, with that procedure then being tied to a button on a page. For now though I just wanted to check that it worked, so I set up a simple button and process on my ApEx page and told them to invoke the Web Service reference that I just set up.</p>
<p align="center"><img src="http://www.rittmanmead.com/wp2/wp-content/uploads/2008/04/apex-bip-ws-page.jpg" width="480" height="430" alt="apex_bip_ws_page.jpg" /></p>
<p>And it worked. Clicking on the button I created led shortly afterwards to the report arriving via email, via the printer and via the FTP site, and it shouldn&#8217;t be too tricky to extend the page so that multiple processes, one for each report, get fired off when the button is pressed, or we use a procedure or something like that.</p>
<p>So what we&#8217;ve done here (or potentially, as I haven&#8217;t yet got my hands on a multi-tray printer to test it out) is a way of taking a report that requires printing to multiple trays, and instead splitting it into one report section per tray and then scheduling it, for immediate delivery, via the BI Publisher Web Services interface. I&#8217;m due back there in a week or so&#8217;s time, so I&#8217;ll get the chance then to integrate it into their ApEx application and check that the tray support in the Web Services API actually works as advertised. The client is also interested in integrating BI Publisher with Oracle Forms as well, and <a href="http://www.oracle.com/technology/products/xml-publisher/docs/Forms_BIP_v21.pdf">this other document on OTN</a> sets out how this process works, it&#8217;s not quite as straightforward as with ApEx but the principal is still the same.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rittmanmead.com/2008/04/25/printer-tray-selection-using-bip-web-services-and-apex/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
