<?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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>( Geek2Live.net ) &#187; Business Intelligence</title>
	<atom:link href="http://geek2live.net/posts/category/business-intelligence/feed/" rel="self" type="application/rss+xml" />
	<link>http://geek2live.net</link>
	<description>Ravings of a Business Intelligence Consultant</description>
	<lastBuildDate>Tue, 25 Oct 2011 11:10:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<copyright>Copyright © ( Geek2Live.net ) 2010 </copyright>
	<managingEditor>josh@geek2live.net (Joshua Fletcher)</managingEditor>
	<webMaster>josh@geek2live.net (Joshua Fletcher)</webMaster>
	<category>Software How-To</category>
	<ttl>1440</ttl>
	<image>
		<url>http://geek2live.net/vodcasts/vodcast-small.jpg</url>
		<title>( Geek2Live.net )</title>
		<link>http://geek2live.net</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Ravings of a Business Intelligence Consultant.  My journey using SAP BusinessObjects and tips and tricks about their products.</itunes:summary>
	<itunes:keywords>business objects businessobjects sap xcelsius datawarehouse etl crystal webi explorer data report</itunes:keywords>
	<itunes:category text="Technology">
		<itunes:category text="Software How-To" />
	</itunes:category>
	<itunes:author>Joshua Fletcher</itunes:author>
	<itunes:owner>
		<itunes:name>Joshua Fletcher</itunes:name>
		<itunes:email>josh@geek2live.net</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://geek2live.net/vodcasts/vodcast.jpg" />
		<item>
		<title>Active Directory SSO for SAP BusinessObjects BI4</title>
		<link>http://geek2live.net/posts/active-directory-sso-for-sap-businessobjects-bi4/</link>
		<comments>http://geek2live.net/posts/active-directory-sso-for-sap-businessobjects-bi4/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 11:02:51 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=181</guid>
		<description><![CDATA[So following my previous post on AD SSO with BusinessObjects XI 3.1 and a lot of interest in updating the post to provide step-by-step guidance for BI4 AD SSO, below please find another SSO cheat sheet for BI4. I have used the latest KB note on AD SSO which is 1631734, written by Steve Fredell. [...]]]></description>
			<content:encoded><![CDATA[<p>So following my previous post on AD SSO with BusinessObjects XI 3.1 and a lot of interest in updating the post to provide step-by-step guidance for BI4 AD SSO, below please find another SSO cheat sheet for BI4. I have used the latest KB note on AD SSO which is <a title="SAP Note 1631734" href="https://websmp130.sap-ag.de/sap/support/notes/1631734" target="_blank">1631734</a>, written by Steve Fredell.</p>
<p>Please note that in this example below, I am assuming that Tomcat is being used for the web application server, and it is by default installed on the same instance as the BusinessObjects BI4 application.  In a distributed scenario, certain actions will take place on the Web App instance, and others on the BusinessObjects BI4 instance.</p>
<p>Instead of just letting you walk through the process yourself, I also wanted to give you a more visual guide. So below, please find a <a title="Diversified Semantic Layer" href="http://dslayer.net">DSLayer</a> special edition, video walkthrough of this guide:</p>
<p><iframe src="http://www.youtube.com/embed/EbpoIvh1Ue4?hl=en&amp;fs=1" frameborder="0" width="425" height="349"></iframe></p>
<p>Firstly, let’s define our server names and IPs (you must obviously adjust these and the commands below to reflect your server names and IPs:</p>
<ul>
<li><strong>Domain Name:</strong> DOMAIN (FQDN: DOMAIN.INTERNAL)</li>
<li><strong>Service Account:</strong> biservice (password: Password1)</li>
<li><strong>Domain Controller:</strong> adserver.DOMAIN.INTERNAL</li>
<li><strong>BusinessObjects Server:</strong> bi4server.DOMAIN.INTERNAL</li>
<li><strong>BusinessObjects AD Group:</strong> DOMAIN\UserGroup</li>
</ul>
<h3>Step 1</h3>
<p>Create an Active Directory service account, biservice (pass: Password1). Ensure the user config has &#8216;Password never expires&#8217; option checked on.</p>
<p>On the BusinessObjects server, add the DOMAIN/biservice user to the Local Administrators group. Also assign the biservice user the right &#8216;Act as part of Operating System&#8217; in the Local Security Policy snap-in.</p>
<h3>Step 2</h3>
<p>Run the following command on the Active Directory server to create appropriate Service Principal Names (SPNs):</p>
<ul>
<li>setspn -a BICMS/biservice.domain.internal biservice</li>
<li>setspn -a HTTP/bi4server biservice</li>
<li>setspn -a HTTP/bi4server.domain.internal biservice</li>
</ul>
<p>Verify the SPNs have been created by running &#8216;setspn -l biservice&#8217;.</p>
<h3>Step 3</h3>
<p>Change the user config of &#8216;biservice&#8217; user in Active Directory configuration, and under the Delegation tab, turn on &#8216;Trust this user for delegation to any service (Kerberos only)&#8217;.</p>
<h3>Step 4</h3>
<p>Under the AD Authentication area in the Central Management Console, take the following actions:</p>
<ul>
<li>Enable Windows Active Directory (AD)</li>
<li>AD Administration Name = DOMAIN\biservice</li>
<li>Default AD Domain: DOMAIN.INTERNAL</li>
<li>Add AD Group: DOMAIN\UserGroup</li>
<li>Use Kerberos Authentication</li>
<li>Service principal name = BICMS/biservice.domain.internal</li>
<li>Enable Single Sign On for selected authentication mode</li>
</ul>
<p>Click Save to save all your entries. Check under the Groups area to make sure your AD group has been added.</p>
<h3>Step 5</h3>
<p>Modify the Server Intelligence Agent (SIA) process on the BusinessObjects server to run as the DOMAIN\biservice user.</p>
<h3>Step 6</h3>
<p>Test this by logging into Web Intelligence Rich Client by using an AD user who is part of the group. SSO should occur once you select &#8216;Windows AD&#8217; authentication and click OK (no need to input your username or password).</p>
<h3>Step 7</h3>
<p>Create a file called &#8216;bscLogin.conf&#8217;, save it into C:\Windows\ directory on the BusinessObjects server, and put the following content into it using Notepad:</p>
<address>com.businessobjects.security.jgss.initiate {</address>
<address>com.sun.security.auth.module.Krb5LoginModule required debug=true;</address>
<address>};</address>
<p>Create a file called &#8216;krb5.ini&#8217;, save it into C:\Windows\ directory, and put the following content into it using Notepad:</p>
<address>[libdefaults]</address>
<address>default_realm = DOMAIN.INTERNAL</address>
<address>dns_lookup_kdc = true</address>
<address>dns_lookup_realm = true</address>
<address>default_tgs_enctypes = rc4-hmac</address>
<address>default_tkt_enctypes = rc4-hmac</address>
<address>udp_preference_limit = 1</address>
<address>[realms]</address>
<address>DOMAIN.INTERNAL ={</address>
<address>kdc = ADSERVER.DOMAIN.INTERNAL</address>
<address>default_domain = DOMAIN.INTERNAL</address>
<address>}</address>
<p>Verify this file is completed correctly by navigating to C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\jdk\bin\ folder on the BusinessObjects server, and execute &#8216;kinit biservice&#8217; in a command prompt. If a new ticket is stored, the file is correct.</p>
<h3>Step 8</h3>
<p>Stop Tomcat. Modify the BI Launch Pad&#8217;s .properties file to reveal the authentication dropdown. Navigate to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\custom and create a file called &#8216;BIlaunchpad.properties&#8217; with the following text:</p>
<address>authentication.visible=true</address>
<address>authentication.default=secWinAD</address>
<p>Open up the Tomcat Options, and add the following lines to the Tomcat Java Options:</p>
<address>-Djava.security.auth.login.config=c:\windows\bscLogin.conf</address>
<address>-Djava.security.krb5.conf=c:\windows\krb5.ini</address>
<p>Start Tomcat, then try and do a manual logon to BusinessObjects, and check Tomcat trace logs for a &#8216;commit succeeded&#8217;.</p>
<h3>Step 9</h3>
<p>Stop Tomcat. Modify C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\conf\server.xml, by adding &#8216;maxHttpHeaderSize=&#8221;65536&#8243;&#8216; in Connector Port 8080 tag.</p>
<p>Navigate to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom and create a file called &#8216;global.properties&#8217; with the following text:</p>
<address>sso.enabled=true</address>
<address>siteminder.enabled=false</address>
<address>vintela.enabled=true</address>
<address>idm.realm=DOMAIN.INTERNAL</address>
<address>idm.princ=biservice</address>
<address>idm.allowUnsecured=true</address>
<address>idm.allowNTLM=false</address>
<address>idm.logger.name=simple</address>
<address>idm.logger.props=error-log.properties</address>
<p>Open up Tomcat Options Add the following lines to Tomcat Java Options:</p>
<address>-Dcom.wedgetail.idm.sso.password=Password1</address>
<address>-Djcsi.kerberos.debug=true</address>
<p>Delete logs in C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\logs\ and C:\SBOPWebapp_BIlaunchpad_IP_PORT\.</p>
<p>Start Tomcat, go to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\logs\, check stdout.log has &#8216;credentials obtained&#8217; shown.</p>
<p>Test silent single sign on is now working in a browser (not on the BusinessObjects server).</p>
<h3>Step 10</h3>
<p>Copy BIlaunchpad.properties and global.properties from C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom to C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\warfiles\webapps\BOE\WEB-INF\config\custom so that patches don&#8217;t overwrite them and SSO stops working.</p>
<h3>Step 11</h3>
<p>Create a keytab on the AD server by running the following command:</p>
<address>ktpass -out bosso.keytab -princ biservice@DOMAIN.INTERNAL -pass Password1 -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto RC4-HMAC-NT</address>
<p>Copy this file to c:\windows of BOBJ server.</p>
<p>Stop Tomcat.</p>
<p>Add the following line to C:\Program Files (x86)\SAP BusinessObjects\Tomcat6\webapps\BOE\WEB-INF\config\custom\global.properties</p>
<address>idm.keytab=C:/WINDOWS/bosso.keytab</address>
<p>Open up the Tomcat Configuration, remove the Wedgetail line in Java Options, restart tomcat and make sure &#8216;credentials obtained&#8217; still showing up in stdout.log.</p>
<p>Now check silent single sign on still operating correctly.</p>
<h3>Step 12</h3>
<p>Remove debug=true from the C:\windows\bscLogin.conf file, and also remove the debugging line in Tomcat Configuration, Java Options.</p>
<h3>Conclusion</h3>
<p>Hopefully this walkthrough gives you a good idea of what is required to get AD SSO working on BI4.</p>
<p>Don&#8217;t forget to look at SAP note <a title="SAP Note 1631734" href="https://websmp130.sap-ag.de/sap/support/notes/1631734" target="_blank">1631734</a>.  Also included in the SAP note is troubleshooting assistance for each step.</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/active-directory-sso-for-sap-businessobjects-bi4/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>New Laptop cont&#8230;</title>
		<link>http://geek2live.net/posts/new-laptop-cont/</link>
		<comments>http://geek2live.net/posts/new-laptop-cont/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 08:28:21 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Virtualisation]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=114</guid>
		<description><![CDATA[Well, after prompting from Dallas Marks and another viewier that I needed to post another update, I thought I&#8217;d let everyone know where I&#8217;m up to.  I&#8217;ve now had the laptop for several months, and am absolutely loving it &#8211; as those who follow me on Twitter will have seen.  I thought I would be [...]]]></description>
			<content:encoded><![CDATA[<p>Well, after prompting from <a href="http://twitter.com/dallasmarks">Dallas Marks</a> and another viewier that I needed to post another update, I thought I&#8217;d let everyone know where I&#8217;m up to.  I&#8217;ve now had the laptop for several months, and am absolutely loving it &#8211; as those who follow me on Twitter will have seen.  I thought I would be booting into Windows Server 2008 most of the time while at work, but I&#8217;ve found I can&#8217;t live without some of my OSX apps, including <a href="http://www.mindnode.com/">MindNode</a> and <a href="http://nambu.com/">Nambu</a>.</p>
<p>However, I have changed the operating systems a few times, and now settled on pure OSX, with the following VMs running in <a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a>:</p>
<ul>
<li>Desktop &#8211; Windows 7 64bit for MS Office (especially Outlook) and BusinessObjects desktop tools</li>
<li>Server &#8211; Windows Server 2008 R2 for SQL Server 2008, Oracle 11g XE, BusinessObjects Enterprise XI 3.1 and Data Services XI 3.2</li>
<li>BI4 &#8211; Windows Server 2008 R2 for SAP BusinessObjects BI4 beta</li>
</ul>
<p>The thing I&#8217;m regretting is moving up to a 15&#8243; MBP.  I really miss the form factor of my 13&#8243; Macbook, and now with 13&#8243; MBPs, I can get the same performance from a 13&#8243; that I can from my 15&#8243;.  When I upgrade in a few years, I&#8217;m definitely going back to 13&#8243;.</p>
<p>The performance is excellent.  I run my Server VM with 4GB RAM assigned, and it hums along.  I&#8217;ve got the services that start on boot optimised, so now I only start SQL Server (but not SSAS), the SIA (with only the CMS, File Input and File Output servers) and Tomcat.  Boot up time is only a minute or two, and then I use batch scripts to start up various BusinessObjects servers as required for demos.</p>
<p>Data Services also performs extremely well.  I benchmarked performance of a CSV file with 64,000 rows being pivoted in memory to a couple of million rows, and run time of the job was less than a minute.</p>
<p>For those that seek performance and the usability of OSX, I definitely recommend a MBP with VMWare Fusion.</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/new-laptop-cont/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Explorer Setup and Live Office Security</title>
		<link>http://geek2live.net/posts/explorer-setup-and-live-office-security/</link>
		<comments>http://geek2live.net/posts/explorer-setup-and-live-office-security/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 16:53:43 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=158</guid>
		<description><![CDATA[My latest video podcast focuses on installing and configuring Explorer XI 3.2 and Live Office security. With Explorer XI 3.2, I will show you how to install the application, explain the options, and then once installed explain the configuration options within the Central Management Console.  We then will login to Explorer and create our first [...]]]></description>
			<content:encoded><![CDATA[<p>My latest video podcast focuses on installing and configuring Explorer XI 3.2 and Live Office security.</p>
<p>With Explorer XI 3.2, I will show you how to install the application, explain the options, and then once installed explain the configuration options within the Central Management Console.  We then will login to Explorer and create our first Information Space, explaining the options here as well.</p>
<p>Secondly, we look at the security (and lack of documentation) regarding Live Office.  I will show you some specific examples of how to prevent certain access from within the Central Management Console, and what this does for the end user experience.</p>
<p>Lastly, I touch on some useful batch scripts I use to automatically start or stop servers within the Server Intelligence Agent.</p>
<p>Let me know if you have any questions, comments, or topics you&#8217;d like to see covered.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/explorer-setup-and-live-office-security/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
			<enclosure url="http://geek2live.net/vodcasts/geek2live-vodcast-3.mov" length="64487302" type="video/quicktime" />
		<itunes:duration>0:16:28</itunes:duration>
		<itunes:subtitle>My latest video podcast focuses on installing and configuring Explorer XI 3.2 and Live Office security.
With Explorer XI 3.2, I will show you how to install the application, explain the options, and then once installed explain the configuration opti[...]</itunes:subtitle>
		<itunes:summary>My latest video podcast focuses on installing and configuring Explorer XI 3.2 and Live Office security.
With Explorer XI 3.2, I will show you how to install the application, explain the options, and then once installed explain the configuration options within the Central Management Console.  We then will login to Explorer and create our first Information Space, explaining the options here as well.
Secondly, we look at the security (and lack of documentation) regarding Live Office.  I will show you some specific examples of how to prevent certain access from within the Central Management Console, and what this does for the end user experience.
Lastly, I touch on some useful batch scripts I use to automatically start or stop servers within the Server Intelligence Agent.
Let me know if you have any questions, comments, or topics you&#8217;d like to see covered.
</itunes:summary>
		<itunes:keywords>Podcast</itunes:keywords>
		<itunes:author>Joshua Fletcher</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>Podcast &#8211; Installation of BusinessObjects Enterprise XI 3.1</title>
		<link>http://geek2live.net/posts/podcast-installation-of-businessobjects-enterprise-xi-3-1/</link>
		<comments>http://geek2live.net/posts/podcast-installation-of-businessobjects-enterprise-xi-3-1/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 12:36:05 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=149</guid>
		<description><![CDATA[This podcast focuses on a typical installation of SAP BusinessObjects Enterprise XI 3.1, including pre-install and post-install tasks. I hope you find it useful. Thanks, Josh]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">This podcast focuses on a typical installation of SAP BusinessObjects Enterprise XI 3.1, including pre-install and post-install tasks.</p>
<p>I hope you find it useful.</p>
<p>Thanks, Josh</p>
<p style="text-align: center;"></p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/podcast-installation-of-businessobjects-enterprise-xi-3-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
			<enclosure url="http://geek2live.net/vodcasts/geek2live-vodcast-2.mov" length="61637158" type="video/quicktime" />
		<itunes:duration>0:14:54</itunes:duration>
		<itunes:subtitle>This podcast focuses on a typical installation of SAP BusinessObjects Enterprise XI 3.1, including pre-install and post-install tasks.
I hope you find it useful.
Thanks, Josh
</itunes:subtitle>
		<itunes:summary>This podcast focuses on a typical installation of SAP BusinessObjects Enterprise XI 3.1, including pre-install and post-install tasks.
I hope you find it useful.
Thanks, Josh
</itunes:summary>
		<itunes:keywords>business, objects, businessobjects, sap, xcelsius, datawarehouse, etl, crystal, webi, explorer, data, report</itunes:keywords>
		<itunes:author>Joshua Fletcher</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>New Vodcast</title>
		<link>http://geek2live.net/posts/new-vodcast/</link>
		<comments>http://geek2live.net/posts/new-vodcast/#comments</comments>
		<pubDate>Wed, 10 Nov 2010 14:37:14 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Podcast]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=143</guid>
		<description><![CDATA[Having decided I am far too lazy to blog regularly, I&#8217;ve made the decision to begin my vodcasting journey.  My first vodcast focuses on the new features of SAP BusinessObjects XI 3.1 Service Pack 2, being BI Services available in Web Intelligence.  I show how to easily create a BI Service from within Web Intelligence, [...]]]></description>
			<content:encoded><![CDATA[<p>Having decided I am far too lazy to blog regularly, I&#8217;ve made the decision to begin my vodcasting journey.  My first vodcast focuses on the new features of SAP BusinessObjects XI 3.1 Service Pack 2, being BI Services available in Web Intelligence.  I show how to easily create a BI Service from within Web Intelligence, and then base an Xcelsius dashboard on the new BI Service.</p>
<p>I&#8217;m really excited about the topics I can cover using vodcasting, so please give me your feedback on what you&#8217;d like to see covered.</p>
<p>Until next time,</p>
<p>Josh Fletcher</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/new-vodcast/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
			<enclosure url="http://geek2live.net/vodcasts/geek2live-vodcast-1.mov" length="19055690" type="video/quicktime" />
		<itunes:duration>0:07:48</itunes:duration>
		<itunes:subtitle>Having decided I am far too lazy to blog regularly, I&#8217;ve made the decision to begin my vodcasting journey.  My first vodcast focuses on the new features of SAP BusinessObjects XI 3.1 Service Pack 2, being BI Services available in Web Intellige[...]</itunes:subtitle>
		<itunes:summary>Having decided I am far too lazy to blog regularly, I&#8217;ve made the decision to begin my vodcasting journey.  My first vodcast focuses on the new features of SAP BusinessObjects XI 3.1 Service Pack 2, being BI Services available in Web Intelligence.  I show how to easily create a BI Service from within Web Intelligence, and then base an Xcelsius dashboard on the new BI Service.
I&#8217;m really excited about the topics I can cover using vodcasting, so please give me your feedback on what you&#8217;d like to see covered.
Until next time,
Josh Fletcher</itunes:summary>
		<itunes:keywords>business, objects, businessobjects, sap, xcelsius, datawarehouse, etl, crystal, webi, explorer, data, report</itunes:keywords>
		<itunes:author>Joshua Fletcher</itunes:author>
		<itunes:explicit>no</itunes:explicit>
		<itunes:block>no</itunes:block>
	</item>
		<item>
		<title>SAP BusinessObjects XI 3.1 Demonstration Walkthrough Part 1</title>
		<link>http://geek2live.net/posts/sap-businessobjects-xi-3-1-demonstration-walkthrough-part-1/</link>
		<comments>http://geek2live.net/posts/sap-businessobjects-xi-3-1-demonstration-walkthrough-part-1/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 08:16:57 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[business-objects]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=120</guid>
		<description><![CDATA[This week I presented at the Mastering BusinessObjects 2010 conference, hosted in Melbourne, Australia.  The conference was organised by Eventful Management, who did a fantastic job.  International presenters included Timo Elliott, Ingo Hilgefort, Dave Rathbun, Rajeev Kapur and Tom Nather.  You can see some photos of the event by Timo here. My topic was called [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://geek2live.net/wp-content/uploads/2010/06/mbo_splash.png"><img class="aligncenter size-medium wp-image-132" title="mbo_splash" src="http://geek2live.net/wp-content/uploads/2010/06/mbo_splash-300x60.png" alt="" width="300" height="60" /></a></p>
<p>This week I presented at the <a href="http://www.masteringsap.com/bobj/">Mastering BusinessObjects 2010</a> conference, hosted in Melbourne, Australia.  The conference was organised by <a href="http://www.eventfulmanagement.com/">Eventful Management</a>, who did a fantastic job.  International presenters included <a href="http://twitter.com/timoelliott">Timo Elliott</a>, <a href="http://twitter.com/ihilgefort">Ingo Hilgefort</a>, <a href="http://twitter.com/dagira_tweets">Dave Rathbun</a>, <a href="http://twitter.com/Rajeevkapur_08">Rajeev Kapur</a> and <a href="http://twitter.com/tenohio1959">Tom Nather</a>.  You can see some photos of the event by Timo <a href="http://www.flickr.com/photos/timoelliott/sets/72157624047289063/show/">here</a>.</p>
<p>My topic was called &#8216;SAP BusinessObjects XI 3.1 End-to-End Demonstration&#8217;, in which I wanted to do a live demonstration of one dataset being used with most of the BOBJ tools, including Data Integrator, Universe Designer, Web Intelligence, Xcelsius, Live Office, QaaWS and Explorer.</p>
<p>Here is a link to the PowerPoint deck, though there&#8217;s not many slides.. (<a href="http://geek2live.net/wp-content/uploads/2010/06/Fletcher_EndtoEndSBO_MBO.pdf">Fletcher_EndtoEndSBO_MBO</a>)</p>
<p>I want to provide a walkthrough of the presentation, and include links to the datasets I used.  This should hopefully allow anyone (who has access to the SAP BusinessObjects XI 3.1 environment) to follow my steps.</p>
<p>To begin with, I introduced the dataset I used.  I downloaded it from <a href="http://data.australia.gov.au/">http://data.australia.gov.au/</a>, and it shows the Number of Crimes in New South Wales, Australia, broken down by Local Government Authority (LGA), Month/Year (over 12 years), Offence Category and Subcategory.  All in all it represents over 1.7 million records, so not a small dataset.  I also extended the dataset by introducing State Region (multiple LGA&#8217;s belong to a Region) in another CSV file.</p>
<p>To start with, the first part of the presentation was to use Data Integrator to import data from two CSV files into a SQL Server database, including de-normalising the data into a dimensional model.  You can download the CSV files from the <a href="http://geek2live.net/datasets/">Datasets</a> page of my blog, under the NSW Crimes heading.  You will also need to create a database (I used SQL Server) to host the tables in the Target Datastore.</p>
<p><a href="http://geek2live.net/wp-content/uploads/2010/06/e2e_job1.png"><img class="aligncenter size-medium wp-image-136" title="E2E_job" src="http://geek2live.net/wp-content/uploads/2010/06/e2e_job1-300x151.png" alt="" width="300" height="151" /></a>Here are the steps I following to build the ETL job to move the data from the CSV files to the SQL Server database.</p>
<ol>
<li>Create a new Flat File Format for the &#8216;NSW Crimes Data 95-08.csv&#8217; (CSV#1) for extracting data</li>
<li>Create a new Flat File Format for the &#8216;Regions and LGAs.csv&#8217; (CSV#2) for extracting data</li>
<li>Create a new database to store the extracted data in, and create a new Datastore (I called mine DEMO_E2E_SBO)</li>
<li>Create a new Project and Job</li>
<li>Within the new Job, create a new dataflow for staging the main source file, using a template table</li>
<li>Run the job to stage the data</li>
<li>Import the template table and set to overwrite</li>
<li>Add a new dataflow for creating the DIM_DATE table, using the Date_Generation transform
<ol>
<li>Set the date generation from 1995.01.01 to 2008.12.31, monthly</li>
<li>Add the following output columns to the Query transform
<ol>
<li>Date_SK (julian of Date)</li>
<li>Year</li>
<li>Quarter</li>
<li>Month</li>
<li>Date</li>
</ol>
</li>
</ol>
</li>
<li>Add a new dataflow for DIM_LGA, using the CSV#1 flat file format as a source
<ol>
<li>Add the following output columns to the Query transform
<ol>
<li>LGA_SK (use gen_row_number function)</li>
<li>State_Region (leave blank for now)</li>
<li>Local_Government Authority</li>
</ol>
</li>
<li>Group by the LGA column</li>
<li>Add in the CSV#2 as another source, combining in another Query transform, with the following changes
<ol>
<li>Populate State_Region</li>
<li>Make sure the WHERE clause includes LGA=LGA</li>
</ol>
</li>
</ol>
</li>
<li>Create a new dataflow for DIM_OFFENCE_TYPE, using the following columns in the Query transform
<ol>
<li>Offence_Type_SK (use gen_row_num to populate)</li>
<li>Offence Category</li>
<li>Offence Subcategory</li>
<li>Make sure to GROUP BY Offence Category and Subcategory</li>
</ol>
</li>
<li>Run the job to create and load the dimension tables, then import each of the dimension tables and set them to overwrite values</li>
<li>Create a dataflow for loading the FACT_CRIMES</li>
<li>Add in a pivot transform, using the following settings
<ol>
<li>Pivot sequence column called &#8216;Seq_Number&#8217;</li>
<li>Non-pivot Columns
<ol>
<li>LGA</li>
<li>Offence Category</li>
<li>Offence Subcategory</li>
</ol>
</li>
<li>Pivot Columns
<ol>
<li>All month columns</li>
</ol>
</li>
<li>Data field column called &#8216;Number_of_Crimes&#8217;</li>
<li>Header column called&#8217; Month&#8217;</li>
</ol>
</li>
<li>Add in a query transform, with settings as follows
<ol>
<li>Add the following columns
<ol>
<li>Crime _SK (use gen_row_num to populate)</li>
<li>Date_SK &#8211; use this mapping = julian(to_date(&#8217;01 &#8216; || Pivot.Month,&#8217;DD MON YYYY&#8217;))</li>
<li>LGA_SK &#8211; use lookup_ext function to populate with the LGA_SK from the DIM_LGA table</li>
<li>Offence_Type_SK &#8211; use lookup_ext function to populate with the Offence_Type_SK from the DIM_OFFENCE_TYPE table</li>
<li>Number_of_Crimes &#8211; direct mapping</li>
</ol>
</li>
</ol>
</li>
<li>Run the job</li>
<li>Import fact table and set to overwrite, and you&#8217;re done!</li>
</ol>
<p><a href="http://geek2live.net/wp-content/uploads/2010/06/e2e_date.png"><img class="aligncenter size-medium wp-image-130" title="E2E_date" src="http://geek2live.net/wp-content/uploads/2010/06/e2e_date-300x154.png" alt="" width="300" height="154" /></a><a href="http://geek2live.net/wp-content/uploads/2010/06/e2e_fact.png"><img class="aligncenter size-medium wp-image-131" title="E2E_fact" src="http://geek2live.net/wp-content/uploads/2010/06/e2e_fact-300x151.png" alt="" width="300" height="151" /></a></p>
<p>I&#8217;ve also exported the entire Target Datastore to an Access DB (also available on the the <a href="../datasets/">Datasets</a> page of my blog), as well as exporting the entire job to an <a href="http://files.geek2live.net/datasets/nsw_crimes/Demo_E2E_SBO.atl">ATL file</a> which you can also download.  I created the job in Data Services XI 3.2, so the ATL file won&#8217;t be compatible with versions prior to that.</p>
<p>I hope that someone finds the above of value if they are learning Data  Services for the first time.  In the next post I will cover the rest of the presentation, so stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/sap-businessobjects-xi-3-1-demonstration-walkthrough-part-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Service Pack Frustrations</title>
		<link>http://geek2live.net/posts/service-pack-frustrations/</link>
		<comments>http://geek2live.net/posts/service-pack-frustrations/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 05:58:31 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[business-objects]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=108</guid>
		<description><![CDATA[Service Pack 2 for SAP BusinessObjects Enterprise was recently released, and included some great new features like Web Intelligence Input Controls &#8211; see Coy Yonce&#8217;s blog post here (needs an SAP login). However, my frustrations lie in that no SP2 for Edge XI 3.1 was announced.  Remembering back several years, service packs for BOE could [...]]]></description>
			<content:encoded><![CDATA[<p>Service Pack 2 for SAP BusinessObjects Enterprise was recently released, and included some great new features like Web Intelligence Input Controls &#8211; see Coy Yonce&#8217;s blog post <a href="https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/15302">here</a> (needs an SAP login).</p>
<p>However, my frustrations lie in that no SP2 for Edge XI 3.1 was announced.  Remembering back several years, service packs for BOE could be applied to Edge and even Crystal Reports Server, as they were all compatible.</p>
<p>However, it seems that the codebase has started to diverge, or the teams responsible for service packs aren&#8217;t coordinated across the different platform offerings.</p>
<p>As a consultant who deploys Edge frequently, this is frustrating considering that there are no discernible differences when using BO Edge compared to BO Enterprise.  Having no programming background at all, I may be swinging wild here, but it seems to me that using license keys to switch features on and off (like clustering, or Federation) would be simpler than diverging what is essentially the same codebase and maintaining separate service pack and fix packs.</p>
<p>I&#8217;m not across the success of SAP BusinessObjects Edge in the greater world community, however in Australia it is becoming a very successful platform, and I often need to tell our clients that they have to wait another (estimated) 6 months for a service pack, when the features they require are already available to Enterprise users.</p>
<p>Does anyone else see a need for coordinated delivery of service packs for the BI platform?  Or perhaps someone from SAP can weigh in on why they are delivered separately?</p>
<p>If there are good reasons, I&#8217;d love to hear them as most of the annoyance comes from the lack of communication.</p>
<p>&#8211; Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/service-pack-frustrations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Active Directory SSO with Vintela in XI 3.1</title>
		<link>http://geek2live.net/posts/active-directory-sso-with-vintela-in-xi-3-1/</link>
		<comments>http://geek2live.net/posts/active-directory-sso-with-vintela-in-xi-3-1/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 05:50:03 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[business-objects]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=94</guid>
		<description><![CDATA[EDIT: Find the BI4 walkthrough here! After trying to think of of another useful topic, I realised that configuring Single Sign On with Active Directory and Vintela in XI 3.1 is something that is rarely covered, and I used to have quite a lot of trouble with it. By adapting a document on the SAP [...]]]></description>
			<content:encoded><![CDATA[<p>EDIT: Find the BI4 walkthrough <a title="BI4 AD SSO Video Tutorial" href="http://www.youtube.com/watch?v=EbpoIvh1Ue4">here</a>!</p>
<p>After trying to think of of another useful topic, I realised that configuring Single Sign On with Active Directory and Vintela in XI 3.1 is something that is rarely covered, and I used to have quite a lot of trouble with it.</p>
<p>By adapting a document on the SAP Support Portal, I now use a sure-fire method to configure AD SSO with Tomcat, the default web application server that ships with BusinessObjects Enterprise/Edge XI 3.1.  It&#8217;s worked every time I&#8217;ve used it.</p>
<p>Firstly, let&#8217;s define our server names and IPs (you must obviously adjust these and the commands below to reflect your server names and IPs &#8211; I have underlined commands that need to be changed to help):</p>
<ul>
<li><strong>Domain Name:</strong> POWI (FQDN: POWER.INTERNAL)</li>
<li><strong>Service Account:</strong> bo.service (password: admin)</li>
<li><strong>Domain Controller:</strong> vs-dev-ad-dc.POWER.INTERNAL (IP: 192.168.5.1)</li>
<li><strong>BO Server:</strong> vs-dev-ad-bo.POWER.INTERNAL (IP: 192.168.5.2)</li>
<li><strong>BusinessObjects AD Group:</strong> POWI\Business Objects</li>
</ul>
<h2>Step 1</h2>
<p>Create an Active Directory service account, <span style="text-decoration: underline;">bo.service</span> (pass: <span style="text-decoration: underline;">admin</span>).  On the BusinessObjects server, add the <span style="text-decoration: underline;">POWI/bo.service</span> user to the Administrators group.  Also assign them the following rights in the Local Security Policy snap-in:<br />
•    Act as part of Operating System<br />
•    Log on as a Batch Job<br />
•    Log on as a Service<br />
•    Replace a Process Level Token</p>
<h2>Step 2</h2>
<p>Run the following command on the Active Directory server:</p>
<p><code>ktpass -out BOSSO.keytab –princ BOSSO/<span style="text-decoration: underline;">bo.service.power.internal</span>@<span style="text-decoration: underline;">POWER.INTERNAL</span> -mapuser <span style="text-decoration: underline;">bo.service@POWER.INTERNAL</span> -pass <span style="text-decoration: underline;">admin</span> -kvno 255 -ptype KRB5_NT_PRINCIPAL -crypto RC4-HMAC-NT</code></p>
<p>The output from the above command should be similar to:</p>
<p><code>Targeting domain controller: vs-dev-ad-dc.POWER.INTERNAL<br />
Using legacy password setting method<br />
Successfully mapped BOSSO/bo.service.power.internal to bo.service.<br />
Key created.<br />
Output keytab to BOSSO.keytab:<br />
Keytab version: 0x502<br />
keysize 81 BOSSO/bo.service.power.internal@POWER.INTERNAL ptype 1 (KRB5_NT_PRINCIPAL) vno 255 etype 0x17 (RC4-HMAC) keylength 16 (0x209c6174da490caeb422f3fa5a7ae634)</code></p>
<h2>Step 3</h2>
<p>Run the following command on the Active Directory server:</p>
<p><code>setspn -l <span style="text-decoration: underline;">bo.service</span></code></p>
<p>The output should be similar to:</p>
<p><code>Registered ServicePrincipalNames for CN=bo.service,CN=Users,DC=POWER,DC=INTERNAL:<br />
BOSSO/bo.service.power.internal</code></p>
<h2>Step 4</h2>
<p>Go to properties of the <span style="text-decoration: underline;">&#8216;bo.service&#8217;</span> user in Active Directory and under the Delegation tab, set &#8221;Trust this user for delegation to any service (Kerberos only)&#8217; to on.</p>
<h2>Step 5</h2>
<p>Move the BOSSO.keytab file that was created on the Active Directory server (refer Step 2) to c:\winnt\ of the BusinessObjects server.</p>
<h2>Step 6</h2>
<p>Generate the requisite SPN&#8217;s by running the following commands on the Active Directory server:</p>
<p><code>setspn -a HTTP/<span style="text-decoration: underline;">vs-dev-ad-bo</span> <span style="text-decoration: underline;">bo.service</span><br />
setspn -a HTTP/<span style="text-decoration: underline;">vs-dev-ad-bo.power.internal</span> <span style="text-decoration: underline;">bo.service</span><br />
setspn -a HTTP/<span style="text-decoration: underline;">192.168.5.2</span> <span style="text-decoration: underline;">bo.service</span></code></p>
<p>The output from the above commands should be similar to:</p>
<p><code>HTTP/vs-dev-ad-bo<br />
Updated object<br />
Registering ServicePrincipalNames for CN=bo.service,CN=Users,DC=POWER,DC=INTERNAL<br />
HTTP/vs-dev-ad-bo.power.internal<br />
Updated object<br />
Registering ServicePrincipalNames for CN=bo.service,CN=Users,DC=POWER,DC=INTERNAL<br />
HTTP/192.168.5.2<br />
Updated object</code></p>
<h2>Step 7</h2>
<p>Run the following command on the Active Directory server to view all of the created SPNs:</p>
<p><code>setspn -l <span style="text-decoration: underline;">bo.service</span></code></p>
<p>The output should be similar to:</p>
<p><code>Registered ServicePrincipalNames for CN=bo.service,CN=Users,DC=POWER,DC=INTERNAL:<br />
HTTP/192.168.5.2<br />
HTTP/vs-dev-ad-bo.power.internal<br />
HTTP/vs-dev-ad-bo<br />
BOSSO/bo.service.power.internal</code></p>
<h2>Step 8</h2>
<p>Within the BusinessObjects Central Management Console, within the Windows AD Authentication area, do the following:</p>
<ol>
<li>Enable Windows AD</li>
<li>Set the AD Administration Name: <span style="text-decoration: underline;">POWI\bo.service</span></li>
<li>Set the Default AD Domain: <span style="text-decoration: underline;">POWER.INTERNAL</span></li>
<li>Add AD Group: <span style="text-decoration: underline;">POWI\Business Objects</span></li>
<li>Set &#8216;Use Kerberos Authentication&#8217;</li>
<li>Set the Service Principal Name: BOSSO/<span style="text-decoration: underline;">bo.service.power.internal</span></li>
<li>Set &#8216;Enable SSO for Selected Authentication Mode&#8217;</li>
</ol>
<h2>Step 9</h2>
<p>Modify the SIA service on the BusinessObjects server to run as the <span style="text-decoration: underline;">POWI\bo.service</span> domain user.</p>
<h2>Step 10</h2>
<p>You should now be able to get SSO onto locally installed tools (ie Designer, Webi Rich Client) by starting the application, selecting the authentication method to be Windows AD, and without inputting a username and password, clicking OK.  You should be logged in as your AD user.</p>
<h2>Step 11</h2>
<p>Create a file called c:\winnt\bsclogin.conf on the BusinsesObjects server, and put in it the following text:</p>
<p><code>com.businessobjects.security.jgss.initiate {<br />
com.sun.security.auth.module.Krb5LoginModule required debug=true;<br />
};</code></p>
<h2>Step 12</h2>
<p>Create a file called c:\winnt\krb5.ini on the BusinessObjects server, and put in it the following text:</p>
<p><code>[libdefaults]<br />
default_realm = <span style="text-decoration: underline;">POWER.INTERNAL</span><br />
dns_lookup_kdc = true<br />
dns_lookup_realm = true<br />
udp_preference_limit = 1<br />
[realms]<br />
<span style="text-decoration: underline;">POWER.INTERNAL</span> = {<br />
kdc = <span style="text-decoration: underline;">VS-DEV-AD-DC.POWER.INTERNAL</span><br />
default_domain = <span style="text-decoration: underline;">POWER.INTERNAL</span><br />
}</code></p>
<h2>Step 13</h2>
<p>To test that the krb5.ini file was created successfully, undertake the following:</p>
<ol>
<li>Navigate to \Program Files\Business Objects\javasdk\bin on the command line</li>
<li>Execute &#8216;kinit <span style="text-decoration: underline;">bo.service</span>&#8216;, then input your password</li>
<li>A ticket should be created</li>
</ol>
<h2>Step 14</h2>
<p>On the BusinessObjects server, open up the Tomcat Configuration application, then go to the Java Options input, and add the following lines (restart Tomcat once done):</p>
<p><code>-Djava.security.auth.login.config=C:\winnt\bscLogin.conf<br />
-Djava.security.krb5.conf=C:\winnt\Krb5.ini</code></p>
<h2>Step 15</h2>
<p>Modify the \Program Files\Business Objects\Tomcat55\webapps\InfoViewApp\WEB-INF\web.xml file and allow users to see authentication options by changing the authentication.visible tag to true.</p>
<h2>Step 16</h2>
<p>Modify the \Program Files\Business Objects\Tomcat55\conf\server.xml file, by change the following line to increase the MaxHttpHeaderSize element to &#8217;16384&#8242;:</p>
<p><code>&lt;Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="<span style="text-decoration: underline;">16384</span>" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443"/&gt;</code></p>
<h2>Step 17</h2>
<p>Modify the \Program Files\Business Objects\Tomcat55\webapps\InfoViewApp\WEB-INF\web.xml file as follows:</p>
<ol>
<li>Change authentication.default to &#8216;secWinAD&#8217;</li>
<li>Change siteminder.enabled to &#8216;false&#8217;</li>
<li>Change vintela.enabled to &#8216;true&#8217;</li>
<li>Remove comment tags (&lt;!&#8211;, &#8211;&gt;) from around the authFilter filter element</li>
<li>Change idm.realm to <span style="text-decoration: underline;">&#8216;POWER.INTERNAL&#8217;</span></li>
<li>Change idm.princ to &#8216;BOSSO/<span style="text-decoration: underline;">bo.service.power.internal</span>&#8216;</li>
<li>Remove comment tags (&lt;!&#8211;, &#8211;&gt;) from around the authFilter filter-mapping element</li>
</ol>
<h2>Step 18</h2>
<p>On the BusinessObjects server, open up the Tomcat Configuration application, then go to the Java Options input, and add the following lines:</p>
<p><code>-Dcom.wedgetail.idm.sso.password=<span style="text-decoration: underline;">admin</span> (password for bo.service user)<br />
-Djcsi.kerberos.maxpacketsize=0<br />
-Djcsi.kerberos.debug=true</code></p>
<h2>Step 19</h2>
<p>Remove the following from the Java Options input in the Tomcat Configuration (if they exist):<br />
•    Debug =true in the bsclogin.conf (set by default)<br />
•    -Dbobj.logging.log4j.config=verbose.properties (may have been added to Java Options)<br />
•    -Dcrystal.enterprise.trace.configuration=verbose (may have been added to Java Options)<br />
•    -Djcsi.kerberos.debug=true (may have been added to Java Options)<br />
•    Dcom.wedgetail.idm.sso.password=<span style="text-decoration: underline;">admin </span>(only remove if you have a valid keytab configured)<br />
•    Switch Tomcat 5.5 back to run as the local system (if running under service account for verbose tracing)</p>
<h2>Step 20</h2>
<p>Encrypt your service account password by coping the BOSSO.keytab (created during Step 2) to the c:\winnt directory on the BusinessObjects server, then specify the following in the \Program Files\Business Objects\Tomcat55\webapps\InfoViewApp\WEB-INF\web.xml (after the idm.princ setting):</p>
<p><code>&lt;init-param&gt;<br />
&lt;param-name&gt;idm.keytab&lt;/param-name&gt;<br />
&lt;param-value&gt;c:\winnt\BOSSO.keytab&lt;/param-value&gt;<br />
&lt;/init-param&gt;</code></p>
<h2>Step 21</h2>
<p>Remove the wedgetail.password option from the Tomcat Configuration Java Options. At this point your Vintela SSO should work with InfoView.</p>
<h2>References</h2>
<p>I was only able to document the above using the (very) detailed PDF document on Vintela SSO provided by Tim Ziemba at the following SAP Support Note: <a href="http://service.sap.com/sap/sapnotes/display/1261835.">http://service.sap.com/sap/sapnotes/display/1261835.</a></p>
<p>If any SAP BusinessObjects staff read this post, it would be fantastic if all this knowledge that is being captured in the SAP Support Portal could be filtered and pushed back into the standard documentation, as this sorely lacks the detail required to implement Vintela SSO.</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/active-directory-sso-with-vintela-in-xi-3-1/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Mastering Business Objects 2009</title>
		<link>http://geek2live.net/posts/mastering-business-objects-2009/</link>
		<comments>http://geek2live.net/posts/mastering-business-objects-2009/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 01:12:01 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[business-objects]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=92</guid>
		<description><![CDATA[Yesterday I presented at the SAP Australian User Group&#8217;s (SAUG) Business Objects Special Interest Group in Perth, on Summary and Highlights of the MBO 2009 Conference.  As quite a few SAP BO users in Perth weren&#8217;t able to make the conference, I wanted to highlight several key presentations I enjoyed. Here is a PDF of [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I presented at the SAP Australian User Group&#8217;s (SAUG) Business Objects Special Interest Group in Perth, on Summary and Highlights of the MBO 2009 Conference.  As quite a few SAP BO users in Perth weren&#8217;t able to make the conference, I wanted to highlight several key presentations I enjoyed.</p>
<p>Here is a <a href="http://files.geek2live.net/presentations/mbo2009_highlights_presentation_20080721.pdf">PDF</a> of my presentation to view.</p>
<p>Some other highlights of the conference were:</p>
<ul>
<li>Pioneer is due in 2010 (combining Voyager with Bex Analyzer)</li>
<li>Support for 64bit environments coming soon</li>
<li>New release of BOE due in 2010 as well (XI 4.0?)</li>
<li>SAP BWA (in-memory datastore) will be updated to allow hardware acceleration of other data sources, not just SAP BW</li>
<li>BO Text Analysis (as presented by <a href="www.plaut.com.au">Plaut</a>) looks very interesting, turns unstructured data (blogs, emails) into structed relational data</li>
<li>Timo Elliott&#8217;s recommendation &#8211; don&#8217;t just implement software, aim high and look to change the business</li>
<li>Dave Rathbun <a href="http://www.dagira.com/2009/05/30/mastering-business-objects-2009-review/">presented</a> on universe tips and Web Intelligence essentials, such as calculation contexts (often misunderstood), multiple data providers and sub-queries</li>
<li>Data Services 3.2 due in Q3 2009, will support 64bit Linux, and next release of DS will support 64bit Windows</li>
<li>Data Services 4.0 will potentially migrate to use the BOE architecture &#8211; fingers crossed on my part <img src='http://geek2live.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
<p>It was a great conference with a variety of users and partners present, and I hope to be there at the <a href="http://www.masteringbusinessobjects.com/mbo/">MBO 2010 conference</a>.</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/mastering-business-objects-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Universe Design Best Practices</title>
		<link>http://geek2live.net/posts/universe-design-best-practices/</link>
		<comments>http://geek2live.net/posts/universe-design-best-practices/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:51:51 +0000</pubDate>
		<dc:creator>Joshua Fletcher</dc:creator>
				<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[business-objects]]></category>

		<guid isPermaLink="false">http://geek2live.net/?p=84</guid>
		<description><![CDATA[I recently had to provide a list of best practices in Universe Design &#8211; partly compiled from the SAP BusinessObjects training material, as well as my own experiences.  I believe that the universe is the foundation of the BusinessObjects system.  With poor universe design, required reports are often difficult or even impossible in some cases. Poor universe [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to provide a list of best practices in Universe Design &#8211; partly compiled from the SAP BusinessObjects training material, as well as my own experiences.  I believe that the universe is the foundation of the BusinessObjects system.  With poor universe design, required reports are often difficult or even impossible in some cases.</p>
<p>Poor universe design can also lead to wrong data, non-optimal SQL generation, incompatible objects and/or Cartesian products (or very wrong data).</p>
<p>I&#8217;ve categorised the best practices into two groups, End-User and Cosmetic methods, as well as Functional or Optimisation methods.</p>
<h2>End-User / Cosmetic</h2>
<ol>
<li>The universe should be created from the end-user perspective, not from a developer’s perspective. This should be kept in mind whether designing new universes, or modifying existing universes.</li>
<li>All metadata (class names, object names and descriptions) should use business terminology. This allows the end users to easily use the universe without understanding the underlying database structure. It also speeds up development time, as header cells do not need to be edited. Users can then also search the universe when building a report to quickly find an object. For example, instead of calling a dimension object ‘Commit Cuml’, it should be called ‘Cumulative Commitment’.</li>
<li>All development objects should be removed before promoting to Production. Universes should not contain old, legacy or development objects (and classes) – these should be removed before promoting to Production. If absolutely necessary, these should be hidden and placed in a ‘Legacy Objects’ class so no mistake can be made regarding their status.</li>
<li>Objects should not be both dimensions and measures unless absolutely necessary. This is confusing to the user, and unnecessary. Providing row-level data is possible by introducing a unique object, like the ID.</li>
<li>Object formatting should always be specified, especially with measures. Formatting like dates, currency and so forth is important to provide objects that the user doesn’t need to format themselves.</li>
<li>Date fields should be expanded using SQL functions, and split into separate objects like Calendar Year, Calendar Month, Calendar Month Name etc. A library of date functions for both T-SQL and PL-SQL should be built up and re-used where possible.</li>
<li>Classes and objects should be based on user requirements, not table-centric. Classes might contain objects from many different tables, and should not be based on the columns within a table.</li>
<li>Custom hierarchies should always be defined and done according to the end-user’s requirements. This prevents users from drilling using default hierarchies, and allows control over what users can drill into.</li>
<li>Pre-defined conditions should be used to accelerate report development and encode difficult query filters into an object that the user can use easily.</li>
<li>Object names should be unique, and never repeated, regardless of the object classification.</li>
</ol>
<h2>Functional / Optimisation</h2>
<ol>
<li>SQL aggregation functions should always be present in measures. All measures should have both a SQL aggregation function (ie SUM, COUNT and AVERAGE), then a projection aggregation function assigned (respectively SUM, SUM and NONE). This ensures that GROUP BYs are used and the processing power of the database is leveraged, returning fewer rows quicker. This also has additional performance benefits at the data provider level, where less RAM will be used on the server, and lower network traffic of data.</li>
<li>Tables should not be unconnected. This will generate a Cartesian product for the end-user, and leads to very confusing universes. If tables have no way of being joined at all, they should be placed in separate universes.</li>
<li>Left outer joins should be avoided where possible. This is sometimes impossible with transactional schemas, but left outer joins lead to NULLs and slower SQL queries. If left outer joins are necessary, universe objects should contain ISNULL functions or similar so that users aren’t presented with NULL values when using objects.</li>
<li>Cardinalities on joins should always be set to allow for loop and SQL trap detection, this includes self-joins that should be marked as 1-1. Always set cardinalities manually, not automatically.</li>
<li>Contexts should be used, and if too complex, the universe should be split up. This allows for path navigation and allows a universe to have more functionality.</li>
<li>Loops and SQL traps should always be resolved to avoid Cartesian products and incorrect data. This is a very important component of universe design, especially with transactional schemas.</li>
<li>Integrity checks and refreshes of the database structure should be done regularly to ensure the universe has the up-to-date view of the database.</li>
<li>Views should be used in preference to derived tables, and kept to a minimum. This ensures optimal SQL generation.</li>
<li>When aliasing tables, the original should be placed in the top left of the schema window and noted with ‘Aliased Table – Do Not Remove’. This will ensure that an original table isn’t removed by mistake, which will also remove all aliases of the table as well.</li>
<li>The query limits should always be set, to ensure that runaway queries or Cartesian product queries don’t bring down the database. Both length of query time and number of rows should be set. The limits will differ per database.</li>
<li>Multiple SQL statements for each measure should be turned off, to generate optimum SQL.</li>
<li>Index awareness should be used where possible, to generate optimal SQL.</li>
<li>List of values should be disabled for all dimension and detail objects that don’t require LOVs, to avoid users doing queries like all IDs for a given table.</li>
</ol>
<h2>Conclusion</h2>
<p>Having compiled this list in a short time, some of the best practices are notably short.  For my next post, I will endeavour to single out a few of the above methods that aren&#8217;t covered as often and focus on them in more detail.</p>
<p>If you have any suggestions, I&#8217;d love to hear them.</p>
<p>- Josh</p>
<h2>Update</h2>
<p>I received quite a few comments on additional best practices, so I&#8217;ve included them here.</p>
<ul>
<li>Lock the universe when editing to prevent other users from editing the same universe.  This can be controlled with the security model, so only the user who locked the universe can unlock it.  However, beware that using the Import Wizard still allows you to overwrite a universe that is locked (Jansi).</li>
<li>Use universe parameters to control how the SQL is generated.  You can control SQL generation so it is ANSI-92 compliant, as well as use JOIN_BY_SQL to allow separate sub-queries to be combined at the query level instead of in the report (Andreas).</li>
<li>All ratios should be set as database delegated/smart measures.  This ensures that the ratio isn&#8217;t calculated incorrectly (ie average of an average) and is calculated back at the database (Andreas).</li>
<li>Generic time objects for Today, Yesterday, This Month, Last Month etc. should be provided (as dimension objects as well as filters).  These dimension objects can be used in filtering objects (Some Date Object = Today Object).  Using filters may depend on the number of dates present in your data, however you could still create filters for the most common date objects (Andreas).</li>
<li>As a rule of thumb do not use the WHERE clause in any measure, dimension, or detail object. Use CASE WHEN … SQL syntax instead.  Combining two objects that have WHERE clauses filtering the same column(s) will return zero results, which the user won&#8217;t expect (Andreas).</li>
</ul>
<p>I also recently stumbled across the same kind of <a href="http://biguru.wordpress.com/2009/07/19/businessobjects-universe-design-best-practices/">post</a> over at the <a href="http://biguru.wordpress.com/">Business Intelligence blog</a>.  There are some differences in our lists, so you may wish to refer to that post as well.</p>
<p>Updated 22/07/2009.</p>
<p>- Josh</p>
]]></content:encoded>
			<wfw:commentRss>http://geek2live.net/posts/universe-design-best-practices/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

