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

<channel>
	<title>The Independent Oracle OLAP Blog</title>
	<atom:link href="http://ofaworld.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ofaworld.wordpress.com</link>
	<description>The leading independent Oracle OLAP DML, Analytic Workspace, OFA and OES resource</description>
	<lastBuildDate>Tue, 09 Feb 2010 16:04:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ofaworld.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The Independent Oracle OLAP Blog</title>
		<link>http://ofaworld.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ofaworld.wordpress.com/osd.xml" title="The Independent Oracle OLAP Blog" />
	<atom:link rel='hub' href='http://ofaworld.wordpress.com/?pushpress=hub'/>
		<item>
		<title>OFA &#8211; MindMapping</title>
		<link>http://ofaworld.wordpress.com/2010/02/09/ofa-mindmapping/</link>
		<comments>http://ofaworld.wordpress.com/2010/02/09/ofa-mindmapping/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 15:37:32 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/2010/02/09/ofa-mindmapping/</guid>
		<description><![CDATA[Back in December I promised to post a utility for publishing OFA data using the popular open source mind mapping software FreeMind. Well here it is at last. The following link is a .zip file containing all installation files, documentation. Read the readme.txt file to get information on getting started. Due to limitations on supported [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=140&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Back in December I promised to post a utility for publishing OFA data using the popular open source mind mapping software <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a>.</p>
<p>Well here it is at last. The following link is a .zip file containing all installation files, documentation. Read the readme.txt file to get information on getting started.</p>
<p>Due to limitations on supported filetypes on this WordPress blog, the filename has been changed. Remove the .pdf file extension and replace the &#8216;-zip&#8217; with &#8216;.zip&#8217;. If your browser automatically opens files with a PDF extension in the Acrobat plugin, right click on the file and select the appropriate &#8216;save file&#8217; option.</p>
<p><a href="http://ofaworld.files.wordpress.com/2010/02/freemind-gpl-release-1-zip1.pdf">Freemind GPL Release 1-zip</a></p>
<p>This utility has been release under the GPL, therefore anyone is free to use it and modify as desired. The word &#8216;freedom&#8217; has two commonly used meanings which are embodied in two phrases widely used in the Free Software community :</p>
<ul>
<li> &#8216;Free as in beer&#8217; – meaning no cost.</li>
</ul>
<ul>
<li> &#8216;Free as in speech&#8217; – meaning freedom of expression, sometimes referred to using the French<br />
term &#8216;libre&#8217;.</li>
</ul>
<p>The key condition of the GPL is that code released under it&#8217;s conditions is free and always remains free regardless who uses or modifies it. GPL code can never be made proprietary and hidden away.<br />
Likewise all documentation connected with this utility is released using the &#8216;Creative Commons&#8217; license. This license is the equivalent of the GPL for creative works, including written documents.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=140&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2010/02/09/ofa-mindmapping/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle OLAP &#8211; MindMapping</title>
		<link>http://ofaworld.wordpress.com/2009/12/01/oracle-olap-mindmapping/</link>
		<comments>http://ofaworld.wordpress.com/2009/12/01/oracle-olap-mindmapping/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 20:16:40 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>
		<category><![CDATA[Oracle OLAP Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/2009/12/01/oracle-olap-mindmapping/</guid>
		<description><![CDATA[A number of years ago I wrote a simple utility for exporting OFA hierarchies into the popular open source mind mapping software FreeMind. Because the maps it creates are essentially not very different to a graphical representation of information in a hierarchical structure, they are a natural fit to document OFA hierarchies. One of it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=134&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A number of years ago I wrote a simple utility for exporting OFA hierarchies into the popular open source mind mapping software <a href="http://freemind.sourceforge.net/wiki/index.php/Main_Page">FreeMind</a>. Because the maps it creates are essentially not very different to a graphical representation of information in a hierarchical structure, they are a natural fit to document OFA hierarchies. One of it&#8217;s great advantages is that, being open source software, the FreeMind format is open and therefore anyone can see the structure and create maps. The format is straightforward XML that is well structured and intuitive.<br />
Over the years I have used this excellent piece of software for many applications, and it has always struck me that there was more potential for using it as a means of documenting OFA, and other OLAP systems. So I finally got round to creating a generic mechanism for outputting information from OFA into a FreeMind mindmap. At the moment I have created 2 suites of Express code for use in OFA</p>
<ol>
<li>A suite of generic programs and OFA objects; dimensions and FDIs. Once the FDIs are correctly populated, with any required information, a single program call will generate a FreeMind mindmap from the FDIs.</li>
<li>A suite of programs that populate the generic OFA objects with the necessary information to create a FreeMind mindmap from any hierarchy</li>
</ol>
<p>Having completed this exercise, it should now be reasonable straightforward to replicate the functionality for Oracle OLAP Analytic Workspaces.<br />
As a teaser here is a screenshot of an OFA hierarchy in FreeMind including some additional formatting and information displayed in small &#8216;tables&#8217; attached to each node:<br />
<a href="http://ofaworld.files.wordpress.com/2009/12/OFA Freemind Hierarchy.jpeg"></a></p>
<div id="attachment_135" class="wp-caption aligncenter" style="width: 310px"><a href="http://ofaworld.files.wordpress.com/2009/12/ofa-freemind-hierarchy.jpeg"><img class="size-medium wp-image-135" title="OFA Freemind Hierarchy" src="http://ofaworld.files.wordpress.com/2009/12/ofa-freemind-hierarchy.jpeg?w=300&#038;h=135" alt="" width="300" height="135" /></a><p class="wp-caption-text">An OFA hierarchy exported to FreeMind with formatting</p></div>
<p>I am currently completing the documentation for this and will make the utility available in a few days.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=134&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/12/01/oracle-olap-mindmapping/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/12/ofa-freemind-hierarchy.jpeg?w=300" medium="image">
			<media:title type="html">OFA Freemind Hierarchy</media:title>
		</media:content>
	</item>
		<item>
		<title>Sample OLAP DML Code &#8211; &#8220;GPLCODE&#8221;</title>
		<link>http://ofaworld.wordpress.com/2009/06/10/sample-olap-dml-code-gplcode/</link>
		<comments>http://ofaworld.wordpress.com/2009/06/10/sample-olap-dml-code-gplcode/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 21:29:30 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[Oracle OLAP Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=121</guid>
		<description><![CDATA[As promised some time ago I am putting in place the foundations for releasing OLAP DML code using the GNU Public Licence (GPL), i.e. Open Sourced OLAP DML code. The intention is to build up a body of useful OLAP DML utilities that will help Oracle OLAP developers manipulate Analytic Workspaces and their content. This [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=121&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As promised some time ago I am putting in place the foundations for releasing OLAP DML code using the GNU Public Licence (GPL), i.e. Open Sourced OLAP DML code.</p>
<p>The intention is to build up a body of useful OLAP DML utilities that will help Oracle OLAP developers manipulate Analytic Workspaces and their content.</p>
<p>This initial release lays the foundation for this rather than releasing any particularly useful utilities. However this release is essential for distributing GPL licenced code; code that I will be releasing will be designed to work within the context of this AW.</p>
<p>The following links contain  files to install the AW and installation instructions. Note the first 2 links appear to be .PDF files, this is due to limitations on supported filetypes on this WordPress blog. The first is an EIF (Express Interchange File), remove the .pdf file extension and replace the &#8216;-eif&#8217; with &#8216;.eif&#8217;. The second is an Express &#8216;infile&#8217;, remove the .pdf file extension and replace the &#8216;-inf&#8217; with &#8216;.inf&#8217;</p>
<p><a href="http://ofaworld.files.wordpress.com/2009/06/gplcode_rel0_1-eif.pdf">GPLCODE_REL0_1.EIF</a></p>
<p><a href="http://ofaworld.files.wordpress.com/2009/06/gplcode-inf.pdf">gplcode.inf</a></p>
<p><a href="http://ofaworld.files.wordpress.com/2009/06/gplcode-installation-instructions.pdf">GPLCODE Installation Instructions (PDF)</a></p>
<p><a href="http://ofaworld.files.wordpress.com/2009/06/gplcode-installation-instructions.odt">GPLCODE Installation Instructions (ODT)</a></p>
<p>I hope to post the first useful GPL code to be installed in this AW in the next few days. This is likely to cover the issue of maintaining a visible  Oracle 11g Dimension from an existing AW dimension, for example migrating an existing AW dimension into an 11g Dimension defined using AWM.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=121&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/06/10/sample-olap-dml-code-gplcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>
	</item>
		<item>
		<title>Creative Commons Licencing</title>
		<link>http://ofaworld.wordpress.com/2009/06/07/creative-commons-licencing/</link>
		<comments>http://ofaworld.wordpress.com/2009/06/07/creative-commons-licencing/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 04:28:49 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=117</guid>
		<description><![CDATA[Just a quick post to note that I have added a Creative Commons (CC) licence to this blog. This covers all posts written by me. Essentially this means that you are free to re-use material in my posts provided it is correctly attributed and you include the CC licence terms if you do so. Please [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=117&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a quick post to note that I have added a Creative Commons (CC) licence to this blog. This covers all posts written by me. Essentially this means that you are free to re-use material in my posts provided it is correctly attributed and you include the CC licence terms if you do so. Please follow the link on the right to understand your rights and responsibilities if you do re-use material.<br />
Please note that documents, e.g. PDFs etc. that are accessed via links from this blog are likely to be licenced on the same terms, however this will be clearly indicated where this is the case, otherwise they should be assumed to be copyright of the author (i.e. me).<br />
Regarding code; code snippets are free to use however you wish, complete programs will be licenced as appropriate. I will be releasing some code in the next few days and will cover the subject of it&#8217;s licencing then.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/117/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/117/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/117/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=117&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/06/07/creative-commons-licencing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>
	</item>
		<item>
		<title>Sun/Oracle – MySQL/Express</title>
		<link>http://ofaworld.wordpress.com/2009/04/24/sunoracle-%e2%80%93-mysqlexpress/</link>
		<comments>http://ofaworld.wordpress.com/2009/04/24/sunoracle-%e2%80%93-mysqlexpress/#comments</comments>
		<pubDate>Fri, 24 Apr 2009 11:04:57 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[General Oracle & IT]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=108</guid>
		<description><![CDATA[OK, it&#8217;s time to chip in my 2c on the Oracle/Sun takeover. There&#8217;s been much written and said since Monday&#8217;s announcement, much of it in the nature of &#8216;what will they do with this&#8217; or &#8216;will they kill it/spin it off/develop it&#8217;. So I thought I&#8217;d contribute my thoughts, which are of a &#8216;wouldn&#8217;t it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=108&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">OK, it&#8217;s time to chip in my 2c on the Oracle/Sun takeover. There&#8217;s been much written and said since Monday&#8217;s announcement, much of it in the nature of &#8216;what will they do with this&#8217; or &#8216;will they kill it/spin it off/develop it&#8217;. So I thought I&#8217;d contribute my thoughts, which are of a &#8216;wouldn&#8217;t it be great&#8217; nature.</p>
<p class="western" style="margin-bottom:0;">And the big idea is? Open Source Express Server and integrate it into MySQL. Before you all switch off thinking this is crazy, let&#8217;s look at what I mean more closely.</p>
<p class="western" style="margin-bottom:0;">It&#8217;s clear from much commentary, both from industry analysts (who are no better than glorified newspaper journalists in most cases), and also from those close to MySQL development, that MySQL has had a troubled time since it was bought by Sun. Key developers have left, and the project has forked. This is not good. Fear about the future could only increase now Oracle own this important asset.</p>
<p class="western" style="margin-bottom:0;">What better way to win quick recognition from the MySQL developer community than by adding a rich MOLAP engine into the core server. Functionality that would allow MySQL to immediately leapfrog it&#8217;s Open Source competition of Postgres &amp; Ingres. Given the long heritage and years of development behind Express Server it is clear that it would take a significant length of time for any Open Source competitor to offer similar functionality, and frankly it would probably be beyond them in the short term. Here are just some advantages :</p>
<ol>
<li>
<p class="western" style="margin-bottom:0;">Competitive 	advantage over other Open Source SQL alternatives</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">A low cost/no cost 	competitor to MS SQL Server + Analysis Server in some markets</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">A relatively easy 	migration path from MySQL-Express to Oracle11g+OLAP Option</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">Recognition and 	kudos from the MySQL developer community</p>
</li>
</ol>
<p class="western" style="margin-bottom:0;">I&#8217;ve already discussed points 1 &amp; 4. How about 2 &amp; 3. How attractive would the product stack of OpenSolaris or Oracle Enterprise Linux + MySQL + embedded Express all <strong>free</strong> be vs. the stack of MS Windows Server 2003 (with per user licensing) + SQL Server 2008 incl. Analysis Services? Admittedly this won&#8217;t appeal to everyone, but it looks like a winning combination to me.</p>
<p class="western" style="margin-bottom:0;">Which brings me on to point 3. At the engine level Analytic Workspaces in Oracle 11g remain backwardly compatible with older Express databases. OK you need to do some work to expose your data through the 11g meta-data, but the initial population of data is relatively straight forward. Thus there is an implicit upgrade path from a MySQL-Express combination to Oracle 11g(12g etc&#8230;.) if required.</p>
<p class="western" style="margin-bottom:0;">Some commentators have pointed out the risk of MySQL cannibalising the mainstream Oracle market, however most accept that MySQL is dominant in the web sphere where Oracle dominates in the enterprise market. My suggestion does move MySQL closer to the enterprise market as that is historically where most OLAP/BI usage occurs. However I would refer back to point 2; if a business is looking at the MySQL end of the market, it is likely they cannot afford Oracle licensing, in which case would you rather they implemented MS SQL Server and Analysis Services or MySQL-Express? With the upgrade path discussed in point 3, you have additional leverage if an organisation grows to a point where it needs to upgrade to a larger enterprise database. In the film &#8216;The Prime of Miss Jean Brodie&#8217; the charismatic character Jean Brodie, a teacher, makes the statement “Give me a girl at an impressionable age, and she is mine for life!&#8221;. Oracle have not been able to compete effectively at the SME end of the market despite various Partner efforts to do so. Now they have MySQL they could; add in OLAP support and you could have a killer combination in the SME enterprise market – they could be &#8216;yours for life&#8217;. All this without cannibalising existing markets.</p>
<p class="western" style="margin-bottom:0;">The downsides? The main one that occurs to me is the cannibalising of existing markets, however I think I have dealt with that above. If anyone can think of other please comment and we&#8217;ll see if there are answers.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">And so the big question is, what do I mean by integrate Express Server into MySQL? Really I am not thinking anything too complicated – just do the minimum software engineering to get the Express engine embedded and working. If you release the code under the GPL, you can let the MySQL community do the rest, it&#8217;s just a Darwinistic &#8216;let the market decide&#8217; approach. If it&#8217;s a good idea and the basic engine works, the larger community will work out problems such as</p>
<ul>
<li>the best ways to 	tightly integrate it to the relational engine</li>
<li>access method to 	MOLAP data, APIs etc.</li>
<li>database 	development tools</li>
</ul>
<p class="western" style="margin-bottom:0;">The beauty of the Open Source approach is the rich seam of ideas that can be tapped into. Who knows, we could see Web2 interfaces to MOLAP data, e.g. AJAX applications.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">And finally Oracle, while you&#8217;re at it, why not Open Source and release the code for OFA &amp; OSA – then you&#8217;ve got two custom made application ready to go with your newly released free OLAP engine combined with MySQL. What&#8217;s the harm? It&#8217;s not likely to cannibalise your existing market; long time and former users are hardly likely to flood back. But you could bring a whole new generation of SMEs to the Oracle family with robust, proven, powerful and relatively easy to implement BI applications. If a potential customer is looking at the low cost end of the market they are hardly likely to be looking at Essbase/Hyperion. Microsoft have tried to enter the financial planning market with a product based on SQL Server, but have abandoned it due to development complexity. OFA is proven to work, why waste it? Release it as a free product with MySQL-Express and you have a product that MS can <em><strong>never</strong></em><span style="font-style:normal;"><span> compete with, you could have the market sewn up – one in the eye for MS. Similarly for OSA &#8211; there&#8217;s nothing else out there quite like it whether your&#8217;e a medium sized web retailer or a multi-national FMCG company. If you&#8217;re a SME retail/manufacturing company needing sales &amp; marketing analysis this could be an easy way to get top class analytics without paying through the nose. Where else will they go? MS? Is that what you want?<br />
</span></span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">So Larry – are you up for the challenge? what&#8217;s stopping you? Your President Charles Phillips and chief corporate architect Edward Screven declared the other day that they won&#8217;t be killing MySQL – why not go further, be really bold – restore it to it&#8217;s position as the premier Open Source relational database by giving it OLAP functionality and releasing ready-to-go BI apps with it. You could grasp the opportunity to finally make OLAP technology affordable to every business, large or small. It&#8217;s a big prize – go for it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=108&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/04/24/sunoracle-%e2%80%93-mysqlexpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>
	</item>
		<item>
		<title>More on Virtualisation and Express &#8211; running the guest as a server</title>
		<link>http://ofaworld.wordpress.com/2009/03/30/more-on-virtualisation-and-express-running-the-guest-as-a-server/</link>
		<comments>http://ofaworld.wordpress.com/2009/03/30/more-on-virtualisation-and-express-running-the-guest-as-a-server/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 14:39:51 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=92</guid>
		<description><![CDATA[One of the objectives of my virtualisation experiments, was to use the &#8216;Express&#8217; guest as a &#8216;server&#8217;, i.e. to enable apps running on the host to access &#8216;Express&#8217; applications running in the guest. For example, to make OFA running in the guest accessible to a browser, for example Firefox, running on the host. Once this [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=92&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">One of the objectives of my virtualisation experiments, was to use the &#8216;Express&#8217; guest as a &#8216;server&#8217;, i.e. to enable apps running on the host to access &#8216;Express&#8217; applications running in the guest. For example, to make OFA running in the guest accessible to a browser, for example Firefox, running on the host. Once this is achieved it should be possible to make this available to a wider network.</p>
<p class="western" style="margin-bottom:0;">Reading the VirtualBox documentation, this should be easily achievable, and indeed it proves to be pretty straightforward. The default networking mode for VirtualBox is NAT, or Network Address Translation. In a normal configuration this simply means that any network connection on the host, for example an internet connection, is transparently available to the guest. Thus the guest machine can connect directly to the internet without having to set anything extra up.</p>
<p class="western" style="margin-bottom:0;">A feature of the NAT implementation in VirtualBox, is &#8216;Port Forwarding&#8217;. To quote from the help system :</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;"><em>&#8230;.As the virtual machine is connected to a private network internal to VirtualBox and invisible to the host, network services on the guest are not accessible to the host machine or to other computers on the same network. However, VirtualBox can make given services available outside of the guest by using <strong>port forwarding</strong>&#8230;..</em></p>
<p class="western" style="margin-bottom:0;">This sounds to be exactly what I want. The help system then goes on to give an example of the required syntax. My configuration is a Linux host, Ubuntu, and a Windows XP Pro guest. So the examples I am going to give as based on that configuration, it may be slightly different for a Windows host.</p>
<p class="western" style="margin-bottom:0;">Firstly the basic syntax, there are 3 commands that need to be issued :</p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;<span style="text-decoration:underline;">name-of-VM</span>&#8220;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">&#8220;VBoxInternal/Devices/<span style="text-decoration:underline;">type-network-card</span>/<span style="text-decoration:underline;">network-interface-number</span>/LUN#0/Config/<span style="text-decoration:underline;">name-of-service</span>/Protocol&#8221; <span style="text-decoration:underline;">protocol</span></span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;<span style="text-decoration:underline;">name-of-VM</span>&#8220;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">&#8220;VBoxInternal/Devices/<span style="text-decoration:underline;">type-network-card</span>/<span style="text-decoration:underline;">network-interface-number</span>/LUN#0/Config/<span style="text-decoration:underline;">name-of-service</span>/GuestPort&#8221; <span style="text-decoration:underline;">guest-port-number</span></span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;<span style="text-decoration:underline;">name-of-VM</span>&#8220;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">&#8220;VboxInternal/Devices/<span style="text-decoration:underline;">type-network-card</span>/<span style="text-decoration:underline;">network-interface-number</span>/LUN#0/Config/<span style="text-decoration:underline;">name-of-service</span>/HostPort&#8221; <span style="text-decoration:underline;">host-port-number</span></span></span></p>
<p class="western" style="margin-bottom:0;">Where :</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">name-of-VM</span></span></span> is the name of the VM as displayed in VirtualBox setting in the &#8216;General&#8217; section.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">type-network-card</span></span></span> is the type of network card as shown in the VirtualBox settings &#8216;Network&#8217; section. This is usually &#8216;pcnet&#8217;, the default used by VirtualBox, unless you have changed this.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;">network-interface-number is the network card number (counting from 0). Usually this is 0, unless you have configured multiple virtual network cards on your VM.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">name-of-service</span></span></span> is any name you wish to give to the service you are setting up for port forwarding.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">protocol</span></span></span> is either &#8216;TCP&#8217; or &#8216;UDP&#8217;.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">guest-port-number</span></span></span> is the port number on the guest that you wish to have traffic forwarded to from the host.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">host-port-number</span></span></span> is the port number on the host that you wish to forward to the guest.</p>
<p class="western" style="margin-bottom:0;">This looks a bit intimidating, but I&#8217;ll work through it using my VM as an example. Firstly I need to gather the information required to complete the options described above:</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">name-of-VM</span></span></span> My VM is called &#8216;WinXPOESOFAOSA_baseline&#8217;.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">type-network-card</span></span></span> is the default &#8216;pcnet&#8217;.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">network-interface-number</span></span></span> I only have one configured virtual network card so this is the default, 0</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">name-of-service</span></span></span> I called this &#8216;guestexpress&#8217;.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">protocol</span></span></span> is TCP.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">guest-port-number</span></span></span> My guest is running Apache to enable the web services for Express Web Agent, OFA web and OSA web. It is configured to listen on the default port 80, so that is the guest-port-number.</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">host-port-number</span></span></span> According to the VirtualBox help, Unix and Unix like OSs (Linux &amp; MacOS), cannot forward traffic for IP addresses lower than 1024 from applications that are not running as root. Therefore to avoid problems I set this to 8080.</p>
<p class="western" style="margin-bottom:0;">So my commands looked like this :</p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;WinXPOESOFAOSA_baseline&#8221; &#8220;VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestexpress/Protocol&#8221; TCP</span></span></p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;WinXPOESOFAOSA_baseline&#8221; &#8220;VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestexpress/GuestPort&#8221; 80</span></span></p>
<p class="western" style="margin-left:1.25cm;margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">VBoxManage setextradata &#8220;WinXPOESOFAOSA_baseline&#8221; &#8220;VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestexpress/HostPort&#8221; 8080</span></span></p>
<p class="western" style="margin-bottom:0;">These were entered in a Linux console window. For Windows enter the commands in a cmd.exe window. Before entering the command ensure that the guest OS is completely shutdown (not paused), and close VirtualBox. The settings will take effect next time VirtualBox and the VM are started.</p>
<p class="western" style="margin-bottom:0;">After re-starting my VM I opened Firefox in the host and entered the address &#8216;http://localhost:8080&#8242;, this should be forwarded to the guest port 80, and return the default Apache page, which on my guest simply throws out the message &#8216;It Works!&#8217;, and here it is, in both the guest and host :</p>
<p class="western" style="margin-bottom:0;">
<div id="attachment_98" class="wp-caption aligncenter" style="width: 460px"><a href="http://ofaworld.files.wordpress.com/2009/03/port-forwarding1.jpg"><img class="size-full wp-image-98" title="Default Apache page" src="http://ofaworld.files.wordpress.com/2009/03/port-forwarding1.jpg?w=450&#038;h=291" alt="Default Apache page in guest VM and host" width="450" height="291" /></a><p class="wp-caption-text">Default Apache page in guest VM and host</p></div>
<p class="western" style="margin-bottom:0;">Now to get the Express web apps working. The Express Web Agent (EWA) samples worked without issue. However OFA web did not. Comparing the EWA sample &#8216;index.html&#8217; page with the standard OFA &#8216;index.html&#8217; page soon showed the answer. Here are relevant snippets from each :</p>
<p class="western" style="margin-bottom:0;">From EWA :</p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">TD WIDTH=296&gt;&lt;a href=&#8221;<span style="text-decoration:underline;">/oowa-bin/oowa.exe</span>/ExpSrv634/dbxwdevkit/xwd_init?samples/xs_start/required&#8221;&gt;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">Locally install Express Web Agent files and run Samples&lt;/a&gt;:&amp;nbsp;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:x-small;"><span style="font-size:small;">Download the Express Web Agent Java classes to your local machine once.</span> </span></span></p>
<p class="western" style="margin-bottom:0;">From OFA :</p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">var language = navigator.browserLanguage;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">var win = window.open( &#8220;</span></span><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">http://localhost:80/oowa-bin/oowa.exe</span></span></span><span style="font-family:Courier New,monospace;"><span style="font-size:small;">/ExpSrv634/dbxwdevkit/xwd_init?%27ofaserve.db%27/ofa.ext.init.web/C:%2fofasystems%2fbaseline%2fshared%2f/YES/YES/&#8221;+language, ofaName, &#8220;toolbar=no,menubar=no,status=yes,height=screen.height,resizable=yes,width=screen.width&#8221;);</span></span></p>
<p class="western" style="margin-bottom:0;">The OFA index.html file contains a hard coded HTTP address to the server and port number. So I simply removed this :</p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">var language = navigator.browserLanguage;</span></span></p>
<p class="western" style="margin-bottom:0;page-break-before:auto;page-break-after:auto;"><span style="font-family:Courier New,monospace;"><span style="font-size:small;">var win = window.open( &#8220;</span></span><span style="font-family:Courier New,monospace;"><span style="font-size:small;"><span style="text-decoration:underline;">/oowa-bin/oowa.exe</span></span></span><span style="font-family:Courier New,monospace;"><span style="font-size:small;">/ExpSrv634/dbxwdevkit/xwd_init?%27ofaserve.db%27/ofa.ext.init.web/C:%2fofasystems%2fbaseline%2fshared%2f/YES/YES/&#8221;+language, ofaName, &#8220;toolbar=no,menubar=no,status=yes,height=screen.height,resizable=yes,width=screen.width&#8221;);</span></span></p>
<p class="western" style="margin-bottom:0;">This now works fine in both the guest and host, as shown :</p>
<p class="western" style="margin-bottom:0;">
<div id="attachment_99" class="wp-caption aligncenter" style="width: 459px"><a href="http://ofaworld.files.wordpress.com/2009/03/port-forwarding2.jpg"><img class="size-full wp-image-99" title="OFA Web main page in guest VM and host browser" src="http://ofaworld.files.wordpress.com/2009/03/port-forwarding2.jpg?w=450" alt="OFA Web main page in guest VM and host browser"   /></a><p class="wp-caption-text">OFA Web main page in guest VM and host browser</p></div>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/92/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/92/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/92/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=92&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/03/30/more-on-virtualisation-and-express-running-the-guest-as-a-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/03/port-forwarding1.jpg" medium="image">
			<media:title type="html">Default Apache page</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/03/port-forwarding2.jpg" medium="image">
			<media:title type="html">OFA Web main page in guest VM and host browser</media:title>
		</media:content>
	</item>
		<item>
		<title>Virtualisation and the Express product stack</title>
		<link>http://ofaworld.wordpress.com/2009/03/16/virtualisation-and-the-express-product-stack/</link>
		<comments>http://ofaworld.wordpress.com/2009/03/16/virtualisation-and-the-express-product-stack/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 20:30:56 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=73</guid>
		<description><![CDATA[One of the &#8216;hot&#8217; technologies of the moment, is virtualisation. Approximately a year ago I started messing around with some of the technologies available with a view to using one to support rapid development of OFA/OSA/Express etc. solutions. The idea is neither new nor particularly novel, however it has been an interesting exercise and I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=73&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">One of the &#8216;hot&#8217; technologies of the moment, is virtualisation. Approximately a year ago I started messing around with some of the technologies available with a view to using one to support rapid development of OFA/OSA/Express etc. solutions. The idea is neither new nor particularly novel, however it has been an interesting exercise and I now do <em>virtually</em> all my development using one or more virtual machines.</p>
<p class="western" style="margin-bottom:0;">What&#8217;s more it has enabled me to finally make a break with the Windows treadmill for my day to day work, prefering the stability, speed and security of Ubuntu. Using an appropriate virtualisation technology enables me to have the best of both worlds.</p>
<p class="western" style="margin-bottom:0;">So far I have explored two common virtualisation products, VMWare and Sun xVM in the form of Virtualbox. Of the two I much prefer Virtualbox for it&#8217;s ease of use and configuration. I&#8217;ll give a brief summary of my experiences in this post.</p>
<p class="western" style="margin-bottom:0;"><strong>VMWare</strong></p>
<p class="western" style="margin-bottom:0;">Primarily I played around with the free VMWare products, VMWare Converter and VMWare Player. At the time I was experimenting the free VMWare Server product was not available. The VMWare converter was a very useful tool, though it wasn&#8217;t particularly robust. My objective in using it was to make a copy of my existing, and 7 year old, Dell laptop that had all my old OFA development apps, copies of customer OFA systems and generally 7 years of apps that I didn&#8217;t want to lose; those for which I&#8217;d lost the install disks, licence numbers etc. etc. I wanted to virtualise the PC so that I could run it on my shiny new Ubuntu Dell laptop. An interesting feature of the VMWare converter is it&#8217;s ability to make a &#8216;hot&#8217; copy of a running PC, in my case this was to be the  Dell laptop running W2K.</p>
<p class="western" style="margin-bottom:0;">The exercise took a number of attempts, as the process ran for approx 18 hrs and kept falling over close to completion. One of the problems seemed to be with the fact that I had to create the VM disk images on an externally attached hard drive – one of the problems of virtualising an existing machine is that almost by definition there will not be sufficient space on the PC to create it locally – and the USB connection to this kept freezing. I was at the point of giving up when I decided to break up the process. What I haven&#8217;t mentioned is that the source PC hard drive was partitioned into 3 logical drives, seen by W2K as the C: E: and F: drives. By virtualising these one at a time I was able to successfully virtualise the full PC. Obviously only one of these contains a full bootable operating system, the c:, however the VMWare Converter also enables you to virtualise a non-bootable partition as a virtual hard drive that can be attached to any running virtual machine as though it were a physical drive.</p>
<p class="western" style="margin-bottom:0;"><span>Once this exercise was complete, I then started the virtual &#8216;laptop&#8217; up using the free VMWare player on another Windows XP PC. This was </span><strong><em>not</em></strong><span style="font-style:normal;"><span> a happy experience. In fact I was never able to get it working properly, for a start the player kept crashing, it was grindingly slow and I couldn&#8217;t get the video drivers working to get high quality graphics. There were other problems too and it seemed as though the whole project was a complete waste of time. Another thing that struck me was the lack of configurability. The VMWare player really felt like a free product, and was not a good advert for the VMWare product range. Then I discovered VirtualBox&#8230;.</span></span></p>
<p class="western" style="margin-bottom:0;font-style:normal;"><strong>Sun VirtualBox</strong></p>
<p class="western" style="margin-bottom:0;font-style:normal;">Quite by accident I discovered this product when surfing various websites and blogs for help with the VMWare player. A recurring theme was that VirtualBox was a good alternative for VMWare that was both easy to use and configure. In addition VirtualBox offers extensive support for different operating systems both as host and guest and it works with VMWare VMDK machine images.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">At the time VirtualBox was produced by a small independent German software house called Innotek. The initial version I used was 1.6. Shortly afterwards Innotek were bought by Sun, since then development has accelerated and the current version is 2.14.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">Downloading and installing the software was a straightforward operation. Similarly setting up a new virtual machine and associating the VMWare image was a quick operation and my old W2K PC was up and running in a matter of minutes. Installing the VirtualBox Guest Additions enables a number of additional features, e.g. resizing of the guest window to any resolution and seamless use of the virtual machine whereby applications running in the guest look as though they are running on the host – OFA appearing to run on Ubuntu.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">I have installed all the updates since V1.6 up to the present 2.14. Each version has brought further stability and new features that make this a very attractive alternative to the ubiquitous VMWare, not least the existence of the free &#8216;Open Source Edition&#8217;, not just a free proprietary application such as VMWare Player.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">Features I have found to invaluable are :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Snapshots – these are useful when installing patches, updates, or 	new software. If problems occur after the installation it is simple 	to roll back to the previous snapshot. If the update or installation 	works correctly then the snapshot can be merged into the new machine 	state.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Cloning – Cloning allows a machine to be cloned, this is not the 	same as just copying a disk image. Cloning creates a new machine 	with a different id. This is useful for creating a clone of a 	&#8216;master&#8217; image, e.g. a machine with certain software installed, for 	use in development for a new project.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Portability – Cloning is necessary where the master and clone(s) 	will be run on the same host. However one of the advantages of 	virtualisation is portability. If you need to run a virtual machine 	on another physical host, then the image can just be copied onto the 	host machine. In this case because the virtual machine is being run 	on an independent host there is no need to clone. This is useful for 	distributing a common &#8216;master&#8217; image among a team of developers. You 	can be sure that all developers are working from a common clean 	master.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Backup – as a result of the portability, creating backups is easy, 	simply copy the disk image(s) to an external drive.</p>
</li>
</ul>
<p class="western" style="margin-bottom:0;font-style:normal;">So back to my W2K PC. As I mentioned above, once I had this running in VirtualBox, everything worked fine. Networking to the internet is seamless, the guest simply connecting straight through the host connection. All my old Windows apps work perfectly. All my old data is instantly available. All my old OFA client developments are available. Performance wise it flies along at a much faster rate than the old physical PC and it boots in about a quarter of the time. So far (10 months) I&#8217;ve not had a single problem.</p>
<p class="western" style="margin-bottom:0;font-style:normal;"><strong>My &#8216;Express&#8217; machine</strong></p>
<p class="western" style="margin-bottom:0;font-style:normal;">Having satisfied myself that the technology was stable I created a master &#8216;Express&#8217; virtual machine. As at 14/03 this is configured as follows :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Windows XP Pro SP3</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Non-Oracle software :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">MS Excel 2003</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Adobe Acrobat 8</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Firefox 3</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Apache 2.2</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Java 6 Standard Edition (V6 Update 12)</p>
</li>
</ul>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Oracle software :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Server 6.3.4 + all current patches</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Web Agent</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Administrator</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Relational Access Administrator</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Batch Manager</p>
</li>
</ul>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Client software 6.3.2 + all current patches</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Analyzer</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Objects</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Web Publisher</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Oracle Financial Analyzer (11i) 6.4 + all current patches</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Oracle Sales Analyzer (11i) 6.4 + all patches</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Other Express software :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Express Excel Add-in (6.3.4_2)</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">Personal Express 5.0.3</p>
</li>
<li>
<p class="western" style="margin-bottom:0;font-style:normal;">OLAP Worksheet 6.3.4</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p class="western" style="margin-bottom:0;font-style:normal;">Web components for all products are configured and shortcuts stored in Firefox.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">This machine is already proving useful and has been cloned several times as the basis for client developments and demonstrations. As the machine is running &#8216;virtually&#8217; nothing other than the Express products, performance is excellent.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">The success of this machine has led me to create another master for 11g – OLAP option. But perhaps I&#8217;ll keep that for another post.</p>
<p class="western" style="margin-bottom:0;font-style:normal;"><strong>Conclusions</strong></p>
<p class="western" style="margin-bottom:0;font-style:normal;">Virtualisation is an excellent and rapidly maturing technology that promises to revolutionise development and deployment of software projects.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">The Express technology stack works well in a virtualised environment and the availability of low cost or free virtualisation technologies enables new projects to be initiated quickly. The ability to clone environments has the potential to enable new delivery mechanisms for products, with the ability to be sure that the underlying configuration is a known and stable platform.</p>
<p class="western" style="margin-bottom:0;font-style:normal;">Finally a screenshot showing a number of Express Apps running simultaneously in my VirtualBox standard Express virtual machine. The screenshot shows the apps running in &#8216;seamless&#8217; mode, if you look carefully the host PC is running Linux (Ubuntu), but the Express apps appear to be running on the host desktop. Just for good measure, PCX503 <em><strong>is</strong></em> actually running on Ubuntu courtesy of Wine (a Windows Compatability Layer that allows many Windows apps to run directly on Linux.)</p>
<p class="western" style="margin-bottom:0;font-style:normal;">
<div id="attachment_75" class="wp-caption aligncenter" style="width: 460px"><a rel="attachment wp-att-75" href="http://ofaworld.wordpress.com/2009/03/16/virtualisation-and-the-express-product-stack/screenshot1/"><img class="size-full wp-image-75" title="Express Apps running in Virtual Box" src="http://ofaworld.files.wordpress.com/2009/03/screenshot1.jpg?w=450&#038;h=281" alt="Express Apps running in Virtual Box" width="450" height="281" /></a><p class="wp-caption-text">Express Apps running in Virtual Box</p></div>
<p class="western" style="margin-bottom:0;font-style:normal;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/73/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/73/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/73/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=73&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/03/16/virtualisation-and-the-express-product-stack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/03/screenshot1.jpg" medium="image">
			<media:title type="html">Express Apps running in Virtual Box</media:title>
		</media:content>
	</item>
		<item>
		<title>Oracle University &#8216;Oracle 11g &#8211; OLAP Essentials&#8217; training course</title>
		<link>http://ofaworld.wordpress.com/2009/02/18/oracle-university-oracle-11g-olap-essentials-training-course/</link>
		<comments>http://ofaworld.wordpress.com/2009/02/18/oracle-university-oracle-11g-olap-essentials-training-course/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 22:31:15 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=67</guid>
		<description><![CDATA[I recently had the great pleasure to attend the first Oracle 11g OLAP Essentials course held in the UK, at Oracle University in Reading. Our tutor was Sue Helmy, who has been training on OLAP products since the days of pcExpress at Information Resources. We were very fortunate as Sue was joined on this occasion [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=67&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">I recently had the great pleasure to attend the first Oracle 11g OLAP Essentials course held in the UK, at Oracle University in Reading. Our tutor was Sue Helmy, who has been training on OLAP products since the days of pcExpress at Information Resources. We were very fortunate as Sue was joined on this occasion by Bud Endress, Director of Product Management for the OLAP Option; two tutors for the price of one.</p>
<p class="western" style="margin-bottom:0;">My objective was to kick start my knowledge of the OLAP option as it now exists in Oracle 11g. Due to the significant changes made between 10g and 11g, I have avoided getting too familiar with 10g, preferring to concentrate on 11g. Going into the course I had concerns based on my reading of the documentation, in particular what seemed to be the complete relegation of the OLAP engine and OLAP DML. Fortunately this is far from the case, though it is not easy to tell from Oracle&#8217;s documentation and marketing material.</p>
<p class="western" style="margin-bottom:0;">Of the 9 delegates it was slightly disappointing to me that only 2 of us were external to Oracle, hopefully this will change as the course becomes established. However I suppose it is a positive sign for the OLAP option to become more widely known within Oracle.</p>
<p class="western" style="margin-bottom:0;">The course was a 3 day event. Much of Day 1 was taken up with a refresher/beginners guide to OLAP concepts and the role of OLAP within the Oracle BI and Data warehouse produce stack. Later on Day 1 we actually started to get our hands dirty using Analytic Workspace Manager (AWM) to create our first OLAP cubes, defining dimensions, hierarchies, relational mappings etc.. Overall I have to say that the exercises were well designed and worked well, striking a balance between being too easy and providing enough of a challenge for those with an OLAP background. It&#8217;s important for delegates to feel that they have achieved something in order to encourage them to push further on their own projects; in that respect the exercises worked admirably for me as they encouraged me to get down to work on my own projects that very evening. My main impression at the end of Day 1 was just how easy it was to use AWM to build the basic building blocks, and just how fast it was.</p>
<p class="western" style="margin-bottom:0;">Day 2 started with learning about cube-organised materialised views. This was something of a revelation for me as I have not worked on data warehouse projects historically (all my assignments have been Express and Express application based). Whilst I was familiar with the concept of materialised views in relational database data warehouse projects I had never been exposed to the detail of how they worked. Frankly I was appalled, it took me back 18 years to pcExpress database designs before the ROLLUP command existed. The methodology of creating many materialised views for different cross-dimensional hierarchy level combinations, is pretty much what we had to do in Express before ROLLUP enabled us to build embedded hierarchy dimensions; but we haven&#8217;t needed to do that since ROLLUP support was added. It really rammed it home to me how we take things for granted using multi-dimensional databases, things that our relational colleagues are still struggling with. The cube materialised view really ought to be the OLAP option&#8217;s &#8216;killer feature&#8217;.</p>
<p class="western" style="margin-bottom:0;">After seeing cube organised materialised views in action we moved on to creating calculated measures. I have to admit that at first I thought this had removed the ability to create additional OLAP DML based measured, however I soon found that in fact it brings the best of both worlds. AWM created calculated measures are similar to OSA&#8217;s built-in measures, and similar to the measures that many consultants build automatically when implementing OFA. For examples, standard variances, this year/last year comparisons, current period/prior period comparisons, and many more. These can be created simply and easily without any OLAP DML or fancy SQL knowledge. But for those with OLAP DML knowledge we can still use that knowledge to build more complex calculated measures in much the same was as we have always done. The methods used to expose the formulae may be different but the power is all still there.</p>
<p class="western" style="margin-bottom:0;">Next we used SQL Developer to demonstrate querying OLAP cubes directly using SQL. I have to confess that this is the bit I find least interesting, however I can understand it&#8217;s importance. It feels like a retrograde step to use such a crude mechanism as SQL Select statements to undertake advanced BI queries. However it is good to see how this works and I&#8217;m sure it will be an important feature.</p>
<p class="western" style="margin-bottom:0;">Finally on day 2 we used OLAP DML to create a simple forecast function that was then attached to a calculated measure. Again using SQL Developer it was simple to demonstrate how this function could be accessed via SQL, through the calculated measure, delivering the power and speed of the OLAP engine in a way the pure SQL and relational technology simply cannot match.</p>
<p class="western" style="margin-bottom:0;">Day 3 brought exercises to demonstrate accessing OLAP data using Oracle Application Express )(APEX) and OBIEE. Of these I found the APEX exercise most interesting as it potentially provides a two way mechanism for getting data in and out of Analytic Workspaces, albeit via SQL tables in the case of data capture. As someone totally unfamiliar with APEX I was impressed with the speed and flexibility it offered and can see great potential for building applications that access OLAP data. The down side is that it uses relational style access which does not do justice to the power and flexibility of the multi-dimensional model, it&#8217;s more BI <em>reporting</em> than BI <em>analysis</em>. The OBIEE demo was also interesting, however to my mind it still suffers for taking a relational approach to BI analysis. Overall my concern, voiced by other commentators elsewhere, is the lack of proper multi-dimensional analysis tools; with the demise of BI Beans, the lack of support for 11g in Discoverer and the Excel BI Add-in, there is a vacuum of good analytical multi-dimensional tools waiting to be filled. I know that some are excited by the Simba technologies add-in for Excel2007, but that really is not an answer in the real world. Of the clients I have been involved with over the last 10 years, I doubt there is one that is even close to considering Excel 2007. It&#8217;s only a partial answer at best, and only for those who are happy to hitch their wagon to the MS proprietary upgrade bandwagon.</p>
<p class="western" style="margin-bottom:0;">The final three sessions were the seriously techy bits, and I have to confess, for me these were some of the most interesting. These were taken by Bud, and it was invaluable to get his technical insight into the guts of the OLAP option. The topics covered were; security, performance and scalability, and performance tuning. The security options are powerful and flexible and there are several approaches that were discussed; for an Express developer the most interesting is probably &#8216;Cube Security&#8217; which uses the established &#8216;PERMIT&#8217; technology in a more intelligent way than older Express applications, e.g. OFA. Fundamentally Cube Security is always going to ensure that only the right user can see the data, even if other security methods are bypassed or inadequately implemented, therefore it should always form the foundation of any security strategy.</p>
<p class="western" style="margin-bottom:0;">Designing cubes to ensure good performance and scalability is always important, and in some ways is completely different from Express. Some practices for designing composites are turned on their head in the OLAP Option, but other practices still apply. Overall this was a fascinating session and it is clear that there&#8217;s lots to learn and many hours of &#8216;tinkering under the hood&#8217; lie ahead.</p>
<p class="western" style="margin-bottom:0;">My final impressions of the course are that I can recommend it to anyone as a good introduction and foundation for getting to grips with the OLAP Option. It doesn&#8217;t matter whether you are familiar with Express, data warehousing technologies or other multi-dimensional technologies; this course will get you going with the OLAP Option.</p>
<p class="western" style="margin-bottom:0;">Final impressions of the product? Well it seems to combine elements of Express, Express Administrator, OSA, OFA and RAM/RAA in an integrated and much improved manner. For example, the relational database mapping, automated loading and calculation, and the built in standard measures are all reminiscent of OSA and RAM/RAA functionality. Solve plans and the security methods are similar to OFA. Performance seems to be very good, even when running in a virtual machine on my laptop I have been getting fast load and solve times. On the administration side the only obvious omission is a model editor, however with the AWM plug-in architecture it should be possible to create a Java based editor – any volunteers? On th<span lang="en-GB">e input/output side there are 2 noticeable gaps; the lack of proper dimensional reporting; the lack of any manual data input to AW cubes, a gap formerly filled by the currently unsupported OLAP Spreadsheet Add-in.</span></p>
<p class="western" style="margin-bottom:0;"><span lang="en-GB">And that just about covers it – now to get to work&#8230;..</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/67/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/67/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/67/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=67&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/02/18/oracle-university-oracle-11g-olap-essentials-training-course/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Workflow in OFA – a simple approach Part 2</title>
		<link>http://ofaworld.wordpress.com/2009/02/13/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-2/</link>
		<comments>http://ofaworld.wordpress.com/2009/02/13/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-2/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 00:26:45 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=53</guid>
		<description><![CDATA[Organisation definition<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=53&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">Part 2 of this workshop will demonstrate  a method of displaying the appropriate symbol from those defined in part 1 against values of an Organisation dimension arranged in an Organisation hierarchy.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">The result will look something like this :</p>
<p class="western" style="margin-bottom:0;">
<div id="attachment_55" class="wp-caption aligncenter" style="width: 460px"><a href="http://ofaworld.files.wordpress.com/2009/02/workflow-status-sample-report-0_5.jpg"><img class="size-full wp-image-55" title="workflow status sample report" src="http://ofaworld.files.wordpress.com/2009/02/workflow-status-sample-report-0_5.jpg?w=450&#038;h=588" alt="workflow status sample report" width="450" height="588" /></a><p class="wp-caption-text">workflow status sample report</p></div>
<p>From the sample report you can see that the workflow status is propagated up the Organisation hierarchy. A manager at the upper levels of the hierarchy simply has to drill down through the Organisation levels displaying the required status, until they reach the level at which data is being entered.</p>
<p class="western" style="margin-bottom:0;">There are 4 main components :</p>
<ul>
<li>
<p class="western" style="margin-bottom:0;">an integer 	variable to store the current status at the input level.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">a custom model 	attached to a solve definition that is defined as the profile to 	solve for the FDI for which the status is required.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">a text formula 	that returns the correct status at all hierarchy levels, in the form 	of a decimal ASCII code that displays the correct symbol as defined 	in Part 1.</p>
</li>
<li>
<p class="western" style="margin-bottom:0;">a program, called 	by the text formula, that works out what the correct status is at 	all hierarchy levels.</p>
</li>
</ul>
<p class="western" style="margin-bottom:0;">The scenario for this example is that the workflow status is required for a Work Force Planning application, where data is being entered into an FDI with several dimensions. However the only relevant dimensions for the workflow are the Organisation and Version dimensions, i.e. the workflow status will be displayed by Organisation and Version.</p>
<p class="western" style="margin-bottom:0;">The relevant objects that will be referenced in the formula and programs are :</p>
<table border="1" cellspacing="0" cellpadding="4" width="100%">
<tbody>
<tr valign="top">
<td width="33%">
<p class="western">Object name</p>
</td>
<td width="33%">
<p class="western">Object type</p>
</td>
<td width="33%">
<p class="western">Comment</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">ORG</p>
</td>
<td width="33%">
<p class="western">Dimension</p>
</td>
<td width="33%">
<p class="western">Organisation dimension</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">FMSHDIM.ORG</p>
</td>
<td width="33%">
<p class="western">Dimension</p>
</td>
<td width="33%">
<p class="western">Standard OFA hierarchy dimension for ORG dim</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">FMSHREL.ORG</p>
</td>
<td width="33%">
<p class="western">Relation</p>
</td>
<td width="33%">
<p class="western">Standard OFA hierarchy relation for ORG dim</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">FAOR.CHILDREN</p>
</td>
<td width="33%">
<p class="western">Text formula</p>
</td>
<td width="33%">
<p class="western">Standard OFA hierarchy child list for ORG dim</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">BDV</p>
</td>
<td width="33%">
<p class="western">Dimension</p>
</td>
<td width="33%">
<p class="western">Version dimension</p>
</td>
</tr>
<tr valign="top">
<td width="33%">
<p class="western">WFP_DATA</p>
</td>
<td width="33%">
<p class="western">Variable</p>
</td>
<td width="33%">
<p class="western">Not directly referenced in any code, this is 			the FDI into which data is being entered, whose status is to be 			tracked.</p>
</td>
</tr>
</tbody>
</table>
<p class="western" style="margin-bottom:0;">The workflow status integer variable has the following definition :</p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;"><span style="font-size:x-small;">DEFINE WFPWS VARIABLE INTEGER &lt;ORG BDV&gt;</span></span></p>
<p class="western" style="margin-bottom:0;">At the input level this will have three possible values : 0 (or NA) = no data input started, 1 = data input started, 2 = data input complete.</p>
<p class="western" style="margin-bottom:0;">In part 1 of this workshop, the &#8216;status key&#8217; report shows 4 status symbols. The fourth status is used at summary levels to indicate that <em>some</em> plans are complete, but not all.</p>
<p class="western" style="margin-bottom:0;">At the start of a planning cycle, all value will be set to NA. This can easily be done via the Copy Data utility in OFA.</p>
<p class="western" style="margin-bottom:0;">The value of 1 is most easily set using a &#8216;Profile to Save&#8217; attached to the FDI which is being tracked. The &#8216;Profile to Solve&#8217; will run a custom model. When the user saves data in an analyst workstation, the custom &#8216;Profile to Solve&#8217; can be used to identify the Organisation and Version (in this example) values of the submitted data slice; the status can then be used to set the value in the WFPWS FDI. Full details of how to do this are not provided here.</p>
<p class="western" style="margin-bottom:0;">The &#8216;completed&#8217; status, 2, can be set manually. It is not realistic to try to set this automatically, therefore the most practical method is to create a worksheet that requires the user to set the status manually. This has the advantage of requiring the user to make a conscious decision to mark the plan as complete.</p>
<p class="western" style="margin-bottom:0;">Assuming that the workflow status has been set in WFPWS, the following formula returns the necessary value required to display the correct symbol at any level of the Organisation hierarchy:</p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;"><span style="font-size:x-small;">DEFINE WFPWSR FORMULA TEXT &lt;ORG BDV&gt;</span></span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;"><span style="font-size:x-small;">eq WFSK(WFS WFPWSR.FN+1)</span></span></p>
<p>Note the formula refers directly to the WFSK formula described in Part 1, the formula that returns a decimal escape sequence that can be used to produce the required symbol. The formula takes the form of a QDR to the WFSK formula, where the required value is returned by the function, WFPWSR.FN, which will now be described. The function returns a status from 0-3 as described above, these are equivalent to the dimension values positions 1-4 in the WFS dimension, hence the addition of 1 to the returned value.</p>
<p class="western" style="margin-bottom:0;">The code for the function is attached here, comments in the code explain how it works.</p>
<p class="western" style="margin-bottom:0;"><a href="http://ofaworld.files.wordpress.com/2009/02/wfpwsrfn_v10.doc">Code for WFPWSR.FN function</a></p>
<p class="western" style="margin-bottom:0;">And that&#8217;s all there is to it.</p>
<p class="western" style="margin-bottom:0;">The following infiles will define the objects described above. NOTE that these do not include definitions for the ORG and BDV dimensions, therefore you will not be able to run the infiles without first creating these dimensions. Both are defined as text dimensions as shown in the following screenshots.</p>
<p class="western" style="margin-bottom:0;">
<div id="attachment_58" class="wp-caption aligncenter" style="width: 460px"><a href="http://ofaworld.files.wordpress.com/2009/02/orgdim_dfn1.jpg"><img class="size-full wp-image-58" title="Organisation dimension definition" src="http://ofaworld.files.wordpress.com/2009/02/orgdim_dfn1.jpg?w=450&#038;h=233" alt="Organisation dimension definition" width="450" height="233" /></a><p class="wp-caption-text">Organisation dimension definition</p></div>
<div id="attachment_59" class="wp-caption aligncenter" style="width: 460px"><a href="http://ofaworld.files.wordpress.com/2009/02/bdvdim_dfn.jpg"><img class="size-full wp-image-59" title="Version dimension definition" src="http://ofaworld.files.wordpress.com/2009/02/bdvdim_dfn.jpg?w=450&#038;h=233" alt="Version dimension definition" width="450" height="233" /></a><p class="wp-caption-text">Version dimension definition</p></div>
<p class="western" style="margin-bottom:0;">Note, if you decide to follow this and create an ORG dimension, check the name of the hierarchy &#8216;Child&#8217; formula. In the earlier table, and thus in the WFPWSR.FN functions, the name used is FAOR.CHILDREN. However OFA may assign a different name in another database, depending on what other dimensions already exist. If the name is different, amend the code in WFPWSR.FN accordingly. Please note other comments in the infile where code/definitions may need amending.</p>
<p class="western" style="margin-bottom:0;">Infile :</p>
<p class="western" style="margin-bottom:0;"><a href="http://ofaworld.files.wordpress.com/2009/02/structure-infile-workflow-workshop-pt2.doc">Workflow workshop pt2 structure infile</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=53&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/02/13/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/02/workflow-status-sample-report-0_5.jpg" medium="image">
			<media:title type="html">workflow status sample report</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/02/orgdim_dfn1.jpg" medium="image">
			<media:title type="html">Organisation dimension definition</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/02/bdvdim_dfn.jpg" medium="image">
			<media:title type="html">Version dimension definition</media:title>
		</media:content>
	</item>
		<item>
		<title>Visual Workflow in OFA – a simple approach Part 1</title>
		<link>http://ofaworld.wordpress.com/2009/02/07/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-1/</link>
		<comments>http://ofaworld.wordpress.com/2009/02/07/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-1/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 17:40:21 +0000</pubDate>
		<dc:creator>rbrooke</dc:creator>
				<category><![CDATA[OFA Technical]]></category>

		<guid isPermaLink="false">http://ofaworld.wordpress.com/?p=26</guid>
		<description><![CDATA[The aim of this workshop is to provide a visual indicator of the status of a planning process. For the purpose of this post, the term planning, encompasses budgeting, forecasting, and strategic planning. Many large organisations using OFA to support planning processes have devolved responsibilities for producing the plan. For example the regional manager for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=26&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="western" style="margin-bottom:0;">The aim of this workshop is to provide a visual indicator of the status of a planning process. For the purpose of this post, the term planning, encompasses budgeting, forecasting, and strategic planning.</p>
<p class="western" style="margin-bottom:0;">Many large organisations using OFA to support planning processes have devolved responsibilities for producing the plan. For example the regional manager for a region devolves responsibility to his district managers; who in turn may devolve responsibility to site managers. The regional and district managers then require an indicator that lets them know the status of the plans in their area of responsibility. For example a district manager responsible for 5 sites needs to know which sites have started planning, which have completed their plans., and which are yet to start. Similarly the regional manager needs to similar information for the districts they are responsible for. This status information needs to feed up through all levels of an organisation&#8217;s hierarchy so that the current status of the plans is clear to all managers with planning responsibilities. This hierarchy will be referred to as the &#8216;responsibility hierarchy&#8217;.</p>
<p class="western" style="margin-bottom:0;">This functionality is often referred to as &#8216;workflow&#8217; by planning applications – although true &#8216;workflow&#8217; is usually more complex.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">This workshop will provide a simple approach to providing this style of workflow status reporting. The workshop will be divided into 2 parts; part 1 will demonstrate how to use OFA and Express to produce visual status indicators; part 2 will show how to set the status appropriately and to report correctly at all levels of the responsibility hierarchy.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">In this workshop, the definition of various OFA objects will be displayed. For those wishing to reproduce them in a copy of OFA, they should be created through the front-end, or they can be created using the files included at the end of the workshop. These contain the OFA API commands necessary to create and populate the objects used in the workshop.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><strong>Part 1 : Producing visual status indicators.</strong></p>
<p class="western" style="margin-bottom:0;">Regular users of OFA will be aware that it is not immediately obvious how to produce non standard characters, i.e. those from the extended ASCII character set. In theory simply using one of the &#8216;webdings&#8217;/'wingdings&#8217; fontsets should suffice. However the characters available in these fonts, using standard ASCII characters, does not include any that are particularly suitable for workflow status indicators.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">The report below, taken from an OFA screenshot, shows the characters that will be used in this workshop to indicate workflow status. The remainder of part 1, will demonstrate how these can easily be produced in OFA.</p>
<p class="western" style="margin-bottom:0;">
<div id="attachment_65" class="wp-caption aligncenter" style="width: 460px"><a href="http://ofaworld.files.wordpress.com/2009/02/workflow-key-report3.jpg"><img class="size-full wp-image-65" title="Workflow Key Report" src="http://ofaworld.files.wordpress.com/2009/02/workflow-key-report3.jpg?w=450&#038;h=247" alt="Workflow Key Report" width="450" height="247" /></a><p class="wp-caption-text">Workflow Key Report</p></div>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">These are ASCII characters, 153, 155, 158 and 152 respectively, displayed using the Wingdings2 font. In order to produce these in OFA you need to create a formula that will return the necessary decimal codes to the OFA front end, then format the report using the Wingdings2 font.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">Firstly we define the following dimension :</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">DEFINE WFS DIMENSION TEXT WIDTH 8</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">This is populated with the 4 values shown in the following report :</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">-&gt; rpr WFS</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">WFS</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">&#8212;&#8212;&#8212;&#8212;&#8211;</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D153</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D155</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D158</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D152</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">The following formula is defined based on the WFS dimension :</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">DEFINE WFSK FORMULA TEXT &lt;WFS&gt;</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">EQ &amp;joinchars(&#8216;\&#8217;\\&#8217; lowcase(WFS) &#8216;\&#8221;)</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">If we &#8216;rpr&#8217; this formula in Express Monitor it will look strange. This is because the Express Monitor cannot correctly display characters from the extended ASCII character set.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">Note the formula is &amp;substituting the value returned from the &#8216;joinchars&#8217; function. If we &#8216;rpr&#8217; this function without the &#8216;&amp;&#8217;, we can see what is being sent to the report command, and what will be sent to the OFA report front end. Note also that we use the lowcase function so that the returned value is recognised as a decimal escape sequence. Ideally we would add the dimension values with a lowercase prefix, however OFA won&#8217;t let us do this, insisting on capitalising the prefix.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">-&gt; rpr w 34 l joinchars(&#8216;\&#8217;\\&#8217; lowcase(WFS) &#8216;\&#8221;)</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">WFS            JOINCHARS( &#8221;\&#8217; lowcase(WFS) &#8221;&#8217; )</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D153                     &#8216;\d153&#8242;</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D155</span> <span style="font-family:Courier New,monospace;"> </span><span style="font-family:Courier New,monospace;"> &#8216;\d155&#8242;</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D158 </span><span style="font-family:Courier New,monospace;"> </span><span style="font-family:Courier New,monospace;"> &#8216;\d158&#8242;</span></p>
<p class="western" style="margin-bottom:0;"><span style="font-family:Courier New,monospace;">D152</span><span style="font-family:Courier New,monospace;"> </span><span style="font-family:Courier New,monospace;"> &#8216;\d152&#8242;</span></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">The function is returning the decimal escape sequence representing the ASCII character.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">All that remains to do is to create a report using this formula and format it using the &#8216;Wingdings 2&#8242; font. This will display the characters shown in the sample report</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">Having established the general principle, we can extend this to produce lots of other &#8216;strange&#8217; characters. If you want to experiment I suggest you populate the &#8216;WFS&#8217; dimension with values from &#8216;D001&#8242; to &#8216;D255&#8242;. Display these in your OFA report, and play around with different fonts to find out what characters can be produced and which ASCII codes produce them.</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">The following files can either be loaded as infiles, or the contents can be copied/pasted into the Express Monitor command window in multi-line mode. After running the commands, either re-register the OFA front-end (if you have a re-register program) or exit &amp; restart OFA. You should then be able to see the above objects and report. As it seems that I can&#8217;t upload plain txt files to WordPress, the infiles are saved as .doc files. If you wish to use them as infiles you will need to copy and save the contents to a text file.</p>
<p class="western" style="margin-bottom:0;">Good luck!</p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">Coming next&#8230;. Part 2 will show how these symbols can be linked to a simple formula in OFA, that in turn is linked to a &#8216;status&#8217; FDI that gathers information about the current status of a plan.</p>
<p><a href="http://ofaworld.files.wordpress.com/2009/02/structure-infile4.doc">structure-infile</a></p>
<p><a href="http://ofaworld.files.wordpress.com/2009/02/workflow-key-report2.doc">workflow-key-report</a></p>
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<p class="western" style="margin-bottom:0;">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ofaworld.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ofaworld.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ofaworld.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ofaworld.wordpress.com&amp;blog=698594&amp;post=26&amp;subd=ofaworld&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ofaworld.wordpress.com/2009/02/07/visual-workflow-in-ofa-%e2%80%93-a-simple-approach-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">rbrooke</media:title>
		</media:content>

		<media:content url="http://ofaworld.files.wordpress.com/2009/02/workflow-key-report3.jpg" medium="image">
			<media:title type="html">Workflow Key Report</media:title>
		</media:content>
	</item>
	</channel>
</rss>
