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

<channel>
	<title>Ross Goodman &#187; Work</title>
	<atom:link href="http://www.rossgoodman.com/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rossgoodman.com</link>
	<description>Me; What I Do; What I Like !</description>
	<lastBuildDate>Tue, 10 Aug 2010 12:33:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Favourite Shortcut Keys &#8211; Outlook</title>
		<link>http://www.rossgoodman.com/2010/08/09/favourite-shortcut-keys-outlook/</link>
		<comments>http://www.rossgoodman.com/2010/08/09/favourite-shortcut-keys-outlook/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 11:40:59 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Keys]]></category>
		<category><![CDATA[MS]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Shortcut]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=479</guid>
		<description><![CDATA[ photo credit: laffy4k
If you look at the left hand menu you will see the items:

Mail 
Calendar 
Contacts 
Tasks 
etc 

These can be quickly accessed by using the following shortcut keys:

(Ctrl+1) &#8211; Mail 
(Ctrl+2) &#8211; Calendar 
(Ctrl+3) &#8211; Contacts 
(Ctrl+4) – Tasks 

In addition, when you use Ctrl+1 to access mail, this takes you to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/73207064@N00/402984547/" title="Apple Keyboard (with Avid shortcuts; Letterboxed)" target="_blank"><img src="http://farm1.static.flickr.com/186/402984547_f52e9a6828_m.jpg" alt="Apple Keyboard (with Avid shortcuts; Letterboxed)" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://www.rossgoodman.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/73207064@N00/402984547/" title="laffy4k" target="_blank">laffy4k</a></small>
<p>If you look at the left hand menu you will see the items:</p>
<ul>
<li>Mail </li>
<li>Calendar </li>
<li>Contacts </li>
<li>Tasks </li>
<li>etc </li>
</ul>
<p>These can be quickly accessed by using the following shortcut keys:</p>
<ul>
<li>(Ctrl+1) &#8211; Mail </li>
<li>(Ctrl+2) &#8211; Calendar </li>
<li>(Ctrl+3) &#8211; Contacts </li>
<li>(Ctrl+4) – Tasks </li>
</ul>
<p>In addition, when you use Ctrl+1 to access mail, this takes you to the folder that you were last using, if you would rather jump straight into your In-Box – use (Ctrl+Shift+I).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2010/08/09/favourite-shortcut-keys-outlook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google Calendar Sync &#8211; Auto Run</title>
		<link>http://www.rossgoodman.com/2010/04/16/google-calendar-sync-auto-run/</link>
		<comments>http://www.rossgoodman.com/2010/04/16/google-calendar-sync-auto-run/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 13:16:55 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[AutoRun]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Sync]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=441</guid>
		<description><![CDATA[A nice quick hint.
I kept forgetting to start Google Calendar Sync when I started Outlook. I don’t always start Outlook when I start my laptop and I’m not always online when I run Outlook so puting it in my Startup folder is not really an option.
My solution, a macro that runs when Outlook starts that [...]]]></description>
			<content:encoded><![CDATA[<h3>A nice quick hint.</h3>
<p>I kept forgetting to start Google Calendar Sync when I started Outlook. I don’t always start Outlook when I start my laptop and I’m not always online when I run Outlook so puting it in my Startup folder is not really an option.<br />
My solution, a macro that runs when Outlook starts that gives me the option of running Google Calendar Sync if I feel it’s appropriate.</p>
<blockquote><p>Private Sub Application_Startup()<br />
    Dim response As Integer<br />
    Dim RetVal</p>
<p>    response = MsgBox(prompt:=&#8221;Do you want to run Google Calendar Sync?&#8221;, buttons:=vbYesNo)</p>
<p>    If response = vbYes Then<br />
        RetVal = Shell(&#8220;C:\Program Files\Google\Google Calendar Sync\GoogleCalendarSync.exe&#8221;, vbMinimizedNoFocus)<br />
    End If</p>
<p>End Sub</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2010/04/16/google-calendar-sync-auto-run/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Annoying is the Microsoft At Home RSS Feed?</title>
		<link>http://www.rossgoodman.com/2010/01/27/how-annoying-is-the-microsoft-at-home-rss-feed/</link>
		<comments>http://www.rossgoodman.com/2010/01/27/how-annoying-is-the-microsoft-at-home-rss-feed/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 11:39:06 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[RSS]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=387</guid>
		<description><![CDATA[
I&#8217;m using Microsoft Outlook 2007 and I think it&#8217;s a great piece of software.
It has a built in RSS feed reader. Typically I use Google Reader but as that can&#8217;t handle authenticated feeds I&#8217;m using Outlook for all of my work related Sharepoint feeds.
In order to introduce people to RSS, Microsoft have included two &#8220;standard&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.microsoft.com/global/athome/PublishingImages/ie6fix/microsoft-at-home.gif" alt="Microsoft At Home" /><br />
I&#8217;m using Microsoft Outlook 2007 and I think it&#8217;s a great piece of software.<br />
It has a built in RSS feed reader. Typically I use Google Reader but as that can&#8217;t handle authenticated feeds I&#8217;m using Outlook for all of my work related Sharepoint feeds.<br />
In order to introduce people to RSS, Microsoft have included two &#8220;standard&#8221; RSS feeds: &#8220;Microsoft At Home&#8221; and &#8220;Microsoft At Work&#8221;.<br />
The only problem is, I&#8217;m not really interested in reading these feeds.<br />
<span id="more-387"></span><br />
No matter how I deleted these items:</p>
<ol>
<li>Deleting them from the RSS folder</li>
<li>Deleting them from Tools | Account Settings | RSS Feeds</li>
</ol>
<p>Every time I restart Outlook the feeds are back !<br />
Here is how my deleted items looks:<br />
<div id="attachment_388" class="wp-caption alignnone" style="width: 145px"><img src="http://www.rossgoodman.com/wp-content/uploads/2010/01/RSSFeeds-135x300.jpg" alt="RSSFeeds In Deleted Items" title="RSSFeeds In Deleted Items" width="135" height="300" class="size-medium wp-image-388" /><p class="wp-caption-text">RSSFeeds In Deleted Items</p></div><br />
Any thoughts on how I can make the RSS feeds go away and stay away?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2010/01/27/how-annoying-is-the-microsoft-at-home-rss-feed/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle Datatype Conversions</title>
		<link>http://www.rossgoodman.com/2009/04/15/oracle-datatype-conversions/</link>
		<comments>http://www.rossgoodman.com/2009/04/15/oracle-datatype-conversions/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 10:21:22 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Conversion]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[DataType]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=345</guid>
		<description><![CDATA[Last week I gave a colleague a demonstration on why, if you have numbers stored in a character string you should convert them explicitly to numbers:
select  &#8216;Yes&#8217;
    from    dual
    where   &#8216;1000&#8242;   between &#8216;000&#8242; and   &#8216;999&#8242;;
&#8216;YES&#8217;
&#8212;&#8211;
Yes 
]]></description>
			<content:encoded><![CDATA[<p>Last week I gave a colleague a demonstration on why, if you have numbers stored in a character string you should convert them explicitly to numbers:</p>
<blockquote><p>select  &#8216;Yes&#8217;<br />
    from    dual<br />
    where   &#8216;1000&#8242;   between &#8216;000&#8242; and   &#8216;999&#8242;;</p>
<p>&#8216;YES&#8217;<br />
&#8212;&#8211;<br />
Yes </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/04/15/oracle-datatype-conversions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: Tell Me When The DB Is Back</title>
		<link>http://www.rossgoodman.com/2009/04/07/tell-me-when-the-db-is-back/</link>
		<comments>http://www.rossgoodman.com/2009/04/07/tell-me-when-the-db-is-back/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:51:10 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Batch]]></category>
		<category><![CDATA[Script]]></category>
		<category><![CDATA[TNSPing]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=339</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.rossgoodman.com/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-339">Password:<br />
<input name="post_password" id="pwbox-339" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/04/07/tell-me-when-the-db-is-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blogging Whilst Employed &#8211; Beware!</title>
		<link>http://www.rossgoodman.com/2009/03/23/blogging-whilst-employed-beware/</link>
		<comments>http://www.rossgoodman.com/2009/03/23/blogging-whilst-employed-beware/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 20:58:11 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Business Objects]]></category>
		<category><![CDATA[Dimensional Modelling]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[XI 3.0]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Employment]]></category>
		<category><![CDATA[Group]]></category>
		<category><![CDATA[Information]]></category>
		<category><![CDATA[Maxima]]></category>
		<category><![CDATA[Maxima Information Group]]></category>
		<category><![CDATA[MIG]]></category>
		<category><![CDATA[XI]]></category>
		<category><![CDATA[XI30]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=303</guid>
		<description><![CDATA[ photo credit: eshm
I was having a flick through my employment contract and I found the following clause:
13.2
You agree that during the course of this contract and after the termination of the contract for whatever reason without limit in point in time you will keep in confidence and shall not disclose to any person unless [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/53991500@N00/58242933/" title="october05.0103" target="_blank"><img src="http://farm1.static.flickr.com/32/58242933_e95deec086_m.jpg" alt="october05.0103" border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by-nc-sa/2.0/" title="Attribution-NonCommercial-ShareAlike License" target="_blank"><img src="http://www.rossgoodman.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/53991500@N00/58242933/" title="eshm" target="_blank">eshm</a></small><br />
I was having a flick through my employment contract and I found the following clause:</p>
<blockquote><p>13.2<br />
You agree that during the course of this contract and after the termination of the contract for whatever reason without limit in point in time you will keep in confidence and shall not disclose to any person unless authorised to do so with the prior written consent of the Company the following:-<br />
13.2.1 Any consultancy know-how, methods, tools, techniques or intellectual capital.
</p></blockquote>
<p>I realised that some of my blog entries or tweets could fall foul of this clause so I asked for written permission to continue blogging generic &#8220;work related&#8221; content such as Business Intelligence, Data Warehousing, Data Modelling and Business Objects.<br />
Rather than granting this and leveraging the fairly good google rankings that my posts seem to get I was asked to remove all work related posts.<br />
<a href="http://www.google.co.uk/search?source=ig&#038;hl=en&#038;q=business+objects+best+practice&#038;btnG=Google+Search&#038;meta=lr%3D">Business Objects Best Practice</a> (higher ranking than BusinessObjects.com)<br />
<a href="http://www.google.co.uk/search?hl=en&#038;safe=off&#038;q=business+objects+new+features&#038;btnG=Search">Business Objects New Features</a> (Page One)<br />
<a href="http://www.google.co.uk/search?hl=en&#038;safe=off&#038;q=dimensional+modelling&#038;btnG=Search&#038;meta=cr%3DcountryUK|countryGB">Dimensional Modelling</a> (Ralph Kimball ?)<br />
As such I have password protected all of my work related posts.<br />
If you are struggling to find content there are a variety of <a href="http://web.archive.org/web/*/http://www.rossgoodman.com">searches</a> that could turn up interesting content.<br />
Alternatively you can go to my <a href="http://www.maxima.co.uk/businessintelligence">company site</a>, contact details can be found <a href="http://www.maxima.co.uk/enquiries">here</a> or <a href="mailto:enquiries@eclectic.co.uk">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/03/23/blogging-whilst-employed-beware/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A Song For Business Intelligence ?</title>
		<link>http://www.rossgoodman.com/2009/03/11/a-song-for-business-intelligence/</link>
		<comments>http://www.rossgoodman.com/2009/03/11/a-song-for-business-intelligence/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 20:43:23 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Song]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=288</guid>
		<description><![CDATA[What song do you think best sums up Business Intelligence?
 photo credit: mistress_f

Talking Heads &#8211; Road To Nowhere
Well we know where were goin
But we dont know where weve been
And we know what were knowin
But we cant say what weve seen
And were not little children
And we know what we want
And the future is certain
Give us time [...]]]></description>
			<content:encoded><![CDATA[<p>What song do you think best sums up Business Intelligence?<br />
<a href="http://www.flickr.com/photos/7471916@N04/1230899182/" title=".... Middle..." target="_blank"><img src="http://farm2.static.flickr.com/1378/1230899182_54616bcc70_m.jpg" alt=".... Middle..." border="0" /></a><br /><small><a href="http://creativecommons.org/licenses/by/2.0/" title="Attribution License" target="_blank"><img src="http://www.rossgoodman.com/wp-content/plugins/photo-dropper/images/cc.png" alt="Creative Commons License" border="0" width="16" height="16" align="absmiddle" /></a> <a href="http://www.photodropper.com/photos/" target="_blank">photo</a> credit: <a href="http://www.flickr.com/photos/7471916@N04/1230899182/" title="mistress_f" target="_blank">mistress_f</a></small><br />
<span id="more-288"></span></p>
<h3>Talking Heads &#8211; Road To Nowhere</h3>
<p>Well we know where were goin<br />
But we dont know where weve been<br />
And we know what were knowin<br />
But we cant say what weve seen<br />
And were not little children<br />
And we know what we want<br />
And the future is certain<br />
Give us time to work it out</p>
<p>Were on a road to nowhere<br />
Come on inside<br />
Takin that ride to nowhere<br />
Well take that ride</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/03/11/a-song-for-business-intelligence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protected: Business Objects &#8211; Best Practice &#8211; Report Design</title>
		<link>http://www.rossgoodman.com/2009/03/04/business-objects-best-practice-report-design/</link>
		<comments>http://www.rossgoodman.com/2009/03/04/business-objects-best-practice-report-design/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 10:15:49 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Business Objects]]></category>
		<category><![CDATA[MIG]]></category>
		<category><![CDATA[Maxima]]></category>
		<category><![CDATA[Maxima Information Group]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[BO]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[BusinessObjects]]></category>
		<category><![CDATA[BusObj]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[Report]]></category>
		<category><![CDATA[Report Design]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=284</guid>
		<description><![CDATA[There is no excerpt because this is a protected post.]]></description>
			<content:encoded><![CDATA[<form action="http://www.rossgoodman.com/wp-pass.php" method="post">
<p>This post is password protected. To view it please enter your password below:</p>
<p><label for="pwbox-284">Password:<br />
<input name="post_password" id="pwbox-284" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Submit" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/03/04/business-objects-best-practice-report-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Business Objects &#8211; Best Practice &#8211; Universe Design</title>
		<link>http://www.rossgoodman.com/2009/03/01/business-objects-best-practice-universe-design/</link>
		<comments>http://www.rossgoodman.com/2009/03/01/business-objects-best-practice-universe-design/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 20:20:13 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Business Objects]]></category>
		<category><![CDATA[MIG]]></category>
		<category><![CDATA[Maxima]]></category>
		<category><![CDATA[Maxima Information Group]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practice]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[BusinessObjects]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Objects]]></category>
		<category><![CDATA[Practice]]></category>
		<category><![CDATA[Universe]]></category>
		<category><![CDATA[Universe Design]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=268</guid>
		<description><![CDATA[Business Objects &#8211; Best Practice &#8211; Universe Design
The purpose of this document is to provide a description of what I consider to be best practice when designing a Business Objects Universe. We will also describe the reasoning behind the suggestion.


1	Connectivity
This section will describe any items around the connection between Business Objects and the underlying database [...]]]></description>
			<content:encoded><![CDATA[<h2>Business Objects &#8211; Best Practice &#8211; Universe Design</h2>
<p>The purpose of this document is to provide a description of what I consider to be best practice when designing a Business Objects Universe. We will also describe the reasoning behind the suggestion.<br />
<a href="http://www.flickr.com/photos/ross_goodman/2996343149/" class="tt-flickr tt-flickr-Medium" title="Startrails"><img class="alignnone" src="http://farm4.static.flickr.com/3053/2996343149_ced5962e82.jpg" alt="Startrails" width="500" height="375" /></a><br />
<span id="more-268"></span></p>
<h3>1	Connectivity</h3>
<p>This section will describe any items around the connection between Business Objects and the underlying database that holds the data.</p>
<h4>Native Connectivity</h4>
<p>Always use the vendor’s native connectivity where possible. Avoid using generic drivers, e.g. ODBC for Oracle. You always get better performance and more parameters when using the vendors own drivers.</p>
<h4>Avoid ODBC</h4>
<p>When accessing Microsoft SQL Server databases use an OLDDB connection rather than an ODBC connection. The connection is faster. OLEDB connections store their parameters in the connection definition it’s self whereas an ODBC connection refers to a predefined ODBC connection name which must be defined on every PC and server.</p>
<h4>Keep Connections Open</h4>
<p>It is possible to define if the database connection is kept open permanently, closed after a specified period of inactivity or closed after each query. The process of creating a database connection is quite “expensive” time wise so it is better to keep connections open for longer. Open connections consume resources on the database server so it is better to keep the number of connections to a minimum.<br />
Generally, connections to the Business Objects repository database should be kept open permanently. Connections to data source databases should generally time out but this is dependant on the typical users usage profile.</p>
<h4>Tuning Network Connections</h4>
<p>It is possible to fine tune the way that Business Objects uses the network by changing network packet sizes etc. This can make a large difference to problem reports that return a large volume of data.</p>
<h3>2	Physical Structure</h3>
<p>This section will describe any practices that should be adhered to when implementing the physical data structures into the Business Objects universe.</p>
<h4>Alias All Tables</h4>
<p>When importing the database tables, immediately create an aliased version. The aliased versions should be the ones that are joined and are used to build objects from. This is done purely to make the generated SQL and the universe it’s self easier to read.</p>
<h4>Join All Tables</h4>
<p>Every table that will be being used to supply information should be joined to at least one other table. It should not be possible to create a Cartesian product</p>
<h4>Index Joins</h4>
<p>Ensure that all joins that are implemented in the universe have a corresponding index on the physical table. Queries that join tables together will almost always run faster when the joining fields are indexed.</p>
<h4>Count Rows</h4>
<p>There is the facility to get designer to count the number of rows in each table. This should always be done and the results displayed in the universe. There are two reasons for this: if data is missing from a particular table it is easier to spot, if you are using Designers built in validation tools it needs the row counts to check the cardinality of the joins.</p>
<h3>3	Business Structure</h3>
<p>This section will describe any practices that should be adhered to when implementing the logical classes and objectsinto the Business Objects universe.</p>
<h4>Classes</h4>
<p>Each class should be uniquely named and have an appropriate business description.</p>
<h4>Objects</h4>
<p>Every object should be uniquely named and have an appropriate business description. If you find you have two versions of the “same” object, for example “Year” you should find out when you would use each and then name them appropriately.</p>
<h4>Conditions</h4>
<p>You should implement as many condition objects as you can. It should be the exception that users have to manually build a condition. Conditions should come in two flavours. Interactive filters will use the prompt feature to as the user to enter information, for example “Which years?”. Static filters will apply a restriction without any visible interaction, for example “This Year Only”.</p>
<h4>Automation</h4>
<p>If you intend to schedule reports then you should ensure that any conditions you do use are not interactive. For example; if you were to add the condition “Year=2007” or “Which Years?”, the value that is hard coded or the value that is supplied at schedule time would be used for every subsequent run, even when the calendar year does change.</p>
<h4>Core Definitions</h4>
<p>If you find you need to define the same object in multiple places or you have an object that extends the definition of an existing object, you should not redefine the logic of the core object every time it is used. For example MyCustomers = case ownerID when 1234 then customerID end. If I then wanted a MyGoodCustomers object I should not redefine “My Customers” but reuse the definition already in place. This is done via the @Select syntax. MyGoodCustomers=@Select(MyClass,MyCustomers) and <sales> > 1000000. This means that if the definition of MyCustomers ever changes it only needs to be changed in a single place.<br />
In reality, I would store the value of 1000000 used above in an object again so that there is a single place where this is defined.</p>
<h4>Hidden Objects</h4>
<p>If you are using core definition objects, you may end up with objects that simply hold definitions but should not be used in their own right. These objects can be hidden. Hidden objects are still accessible to @Select calls but do not appear in the object list for users to select them.</p>
<h4>Where Clauses</h4>
<p>Every object has the ability to have a where clause added to it. This should never be used. If you add where clauses to objects then when you select multiple measures, these where clauses are combined. For example Sales2006 = select sum(sales) from sales where year=2006. Sales2007 = select sum(sales) from sales where year=2007. If I were to use both measures in the same query then the result would be: select sum(sales), sum(sales) from sales where year=2006 and year=2007. It is not possible for a single row to belong to both years so no data would be returned.<br />
The “correct” way to implement this object would be Sales2007=select sum(case year when 2007 then sales else null) from sales.</p>
<h3>4	Linked Universes</h3>
<p>Linked universes are a great way to maintain different “versions” of the “same” universe. For example you may wish to have an exact copy of your live universe but point it at your training database. You will not want to maintain your training universe every time your production universe changes. Using the live universe as a kernel of the training universe and only changing the universe connection will allow this to happen automatically.</p>
<h4>Parameters</h4>
<p>Universe parameters are not automatically replicated between linked universes.</p>
<h4>Contexts</h4>
<p>When you create a linked universe the contexts contained in the core universe are not propagated into the linked universe. If you wish to have an “exact” copy then you must re-implement the contexts and also maintain them on an ongoing basis.</p>
<h3>5	Parameters</h3>
<p>This section will describe any parameters that can be applied to the universe that will have an affect.<br />
This is an example where you may wish to have multiple versions of a universe, one for scheduling with no limits in place and one for novice users with very tight limits.</p>
<h4>Limit Size Of Result Set</h4>
<p>This option allows you to restrict the number of rows that a single query that a user runs will return. This is one of the features that will prevent ill thought out queries from saturating the network. The value used will be dependant on the number of rows that a “typical” report returns.</p>
<h4>Limit Execution Time</h4>
<p>This option allows you to set the maximum time in seconds that a users query will run for. This is one of the options that will prevent long running queries from consuming resources on both your database server and your Business intelligence server. The value of this will be dependant on the “typical” report execution time.</p>
<h4>Warn If Cost Estimate Exceeds</h4>
<p>When a user submits a query and this option is enabled and the underlying database supports the feature then you can warn users if the expected duration of their query exceeds a particular value. The value of this will be dependant on the “typical” report execution time.</p>
<h4>Limit Size Of Long Objects</h4>
<p>Databases have the option of holding large volumes of data in a single field. Each “long” field in each row can contain a maximum of 4GB of data. If all of this data was returned then this could easily saturate the network and the memory of the local PC. We would recommend that this value is kept quite low to limit the volume of data returned by this field. We would also question as to why long fields are included in the universe in the first place.</p>
<h4>Allow Use Of Sub Queries</h4>
<p>Sub queries are a way of restricting queries based on the results of others. This is not something that novice users would be using but it is an easy way to implement complex selection criteria.</p>
<h4>Allow Use Of Union, Intersect and Minus Queries</h4>
<p>These set based operators are easy ways to compare different result sets. We would recommend that this is enabled as other ways to answer the same questions are very complex.</p>
<h4>Allow Complex Operands in Query Panel</h4>
<p>Selecting this option gives you access to the full range of operands in the query panel. This should normally always be selected unless the universe is targeted at novice users.</p>
<h4>Multiple SQL Statements for each Context</h4>
<p>If you write a query that requires to access multiple contexts, this parameter specifies that a separate SQL statement should be used for each context. This should normally be enabled if your universe contains contexts.</p>
<h4>Multiple SQL Statements for each Measure</h4>
<p>When using a relational data source certain structural conditions can exist; chasm and fan traps. One way to resolve these is to tell Business Objects to write a separate SQL statement for each table that is providing a measure. This should normally be selected when using relational data sources.</p>
<h4>Allow Selection of Multiple Contexts</h4>
<p>Contexts are one way to prevent loops, chasm traps and fan traps. If this is the reason that you have created a context then this option should not be selected. </p>
<h4>Cartesian Products (Warn / Prevent)</h4>
<p>A Cartesian Product is when no join has been defined between two tables. In this circumstance every row of the first table will be joined to every row of the second table. The setting of this parameter is not relevant. Every table that is defined in the universe should be joined to at least one other.</p>
<h4>Core Order Priority</h4>
<p>If you are using linked universes then this should be set to YES in the derived universes. This forces the order of the classes and objects to match the order as they are defined in the kernel universe.</p>
<h3>6	Security</h3>
<p>Depending on the nature of the data you may require to restrict access to the information held in the universe. There are two main methods of implementing this.</p>
<h4>Database Security</h4>
<p>This is the most secure method to implement security. Each Business Objects user requires a corresponding database login with matching usernames and passwords. The universe connection is then defined so that it uses the users credentials. The definition of the scope of the data that the user has access to is defined in the source database.<br />
This is the preferred solution as it is a more generic solution. This means that even if the user chooses to use a differing query tool, the security cannot be bypassed.</p>
<h4>Universe Security</h4>
<p>This method involves using a generic logon to the database. The definition of the security roles are stored wither in the universe it’s self via object definitions or in database tables, which are included in the universe. This solution is good as it means that control of the security definition is either data driven or in the control of the Business objects universe designer. Using the previous method, the control of the security is the remit of the DBA. The disadvantage of this method is that if any other query tool is used then the data becomes unsecured. There si also the risk that the user will have the ability to rewrite the SQL that Business Objects produces prior to running the query, allowing them to remove or change the security implementation.</p>
<h3>7	Summary</h3>
<p>These are what I would consider to be the current best practices when designing business intelligence universes. As is always the case there are times when many of these can and should be ignored. This list should not be used dogmatically but pragmatically. If you are having any particular problems then a member of our Service Delivery team would be happy to work with you to resolve them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/03/01/business-objects-best-practice-universe-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GTD and RTM &#8211; The Missing Link (Penny Drops)</title>
		<link>http://www.rossgoodman.com/2009/01/31/gtd-and-rtm-the-missing-link-penny-drops/</link>
		<comments>http://www.rossgoodman.com/2009/01/31/gtd-and-rtm-the-missing-link-penny-drops/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 01:01:07 +0000</pubDate>
		<dc:creator>Ross (Admin)</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[Done]]></category>
		<category><![CDATA[Get]]></category>
		<category><![CDATA[GTD]]></category>
		<category><![CDATA[Inbox]]></category>
		<category><![CDATA[Milk]]></category>
		<category><![CDATA[Remember]]></category>
		<category><![CDATA[Reminder]]></category>
		<category><![CDATA[RTM]]></category>
		<category><![CDATA[Tag]]></category>
		<category><![CDATA[The]]></category>
		<category><![CDATA[Things]]></category>

		<guid isPermaLink="false">http://www.rossgoodman.com/?p=261</guid>
		<description><![CDATA[
I&#8217;m a big fan of Remember The Milk (RTM) and David Allen&#8217;s Getting Things Done (GTD).
The one concept that I have been missing in the whole process is how to set reminders for following up emails.
I regularly use a waitingfor tag and a tag for each persons name but my habit of actually creating the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rememberthemilk.com"><img alt="" src="http://static.rememberthemilk.com/img/logo.png" title="RTM" class="alignnone" width="188" height="83"  border="0" /></a><br />
I&#8217;m a big fan of Remember The Milk (RTM) and David Allen&#8217;s Getting Things Done (GTD).<br />
The one concept that I have been missing in the whole process is how to set reminders for following up emails.<br />
I regularly use a waitingfor tag and a tag for each persons name but my habit of actually creating the task is not quite there yet.<br />
The habit is no longer needed now.<br />
I have &#8220;discovered&#8221; that from RTM | Settings | Info there is an &#8220;Inbox EMail Address&#8221;. For any e-mail I want to chase I simply BCC the message to this address and it creates a task in my inbox. The body of the message goes into a note attached to the task.<br />
All I have to do then is move it to the appropriate list and set any tags or due date.<br />
I would recommend using BCC, if anyone discovers your inbox e-mail address then they will be able to create tasks in your inbox too!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rossgoodman.com/2009/01/31/gtd-and-rtm-the-missing-link-penny-drops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
