<?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"
	>

<channel>
	<title>Dave's Adventures in Business Objects</title>
	<atom:link href="http://www.dagira.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dagira.com</link>
	<description>...you are in a twisty maze of passageways, all different...</description>
	<pubDate>Mon, 25 Aug 2008 23:10:26 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<item>
		<title>Conference Schedules&#8230;</title>
		<link>http://www.dagira.com/2008/08/25/108/</link>
		<comments>http://www.dagira.com/2008/08/25/108/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 20:52:58 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=108</guid>
		<description><![CDATA[I got accepted to present at the fall Business Objects conference again this year. Things are really on a tight schedule; we only have about two weeks from acceptance to the date when the first draft is due.  With all of the work required to keep up with client obligations, Integra projects, BOB stuff, [...]]]></description>
			<content:encoded><![CDATA[<p>I got accepted to present at the fall Business Objects conference again this year. Things are really on a tight schedule; we only have about two weeks from acceptance to the date when the first draft is due. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' /> With all of the work required to keep up with client obligations, Integra projects, BOB stuff, this blog&#8230; well, blog posting may be a bit sporadic over the coming month or so. </p>
<p>Having said that, it seems that I will also be able to go to the SAP TechEd conference next month. I&#8217;m finalizing travel and other arrangements now. I hope to be able to do &#8220;live blogs&#8221; like I did from Berlin earlier this spring since I will be there primarily as an attendee and not as a speaker. There is a bit more news on that front but I need to get final confirmation on a few details before posting anything further.</p>
<p>Busy. Busy. I&#8217;ll be back when I can.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/25/108/feed/</wfw:commentRss>
		</item>
		<item>
		<title>By Popular Request: Cookies!</title>
		<link>http://www.dagira.com/2008/08/12/by-popular-request-cookies/</link>
		<comments>http://www.dagira.com/2008/08/12/by-popular-request-cookies/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 17:24:04 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=106</guid>
		<description><![CDATA[As per this comment here is the recipe for my famous &#8220;Dave Cookies&#8221; &#8230; enjoy.  
Classic Dave Cookies
Ingredients
Wet Stuff

1 stick of butter (margarine)
two eggs
2 teaspoon vanilla
1 cup white sugar
1/2 cup brown sugar, firmly packed

Dry Stuff

2 1/4 cups flour
1 teaspoon salt
1 teaspoon baking soda
1 16 oz package of chips

Optional

pecans or walnuts

Put all of the Wet [...]]]></description>
			<content:encoded><![CDATA[<p>As per <a href="http://www.dagira.com/2008/08/01/48-hours-in-the-life-of-a-business-objects-trainer/#comment-308">this comment</a> here is the recipe for my famous &#8220;Dave Cookies&#8221; &#8230; enjoy. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
<p><span id="more-106"></span><strong>Classic Dave Cookies</strong><br />
Ingredients<br />
Wet Stuff</p>
<ul>
<li>1 stick of butter (margarine)</li>
<li>two eggs</li>
<li>2 teaspoon vanilla</li>
<li>1 cup white sugar</li>
<li>1/2 cup brown sugar, firmly packed</li>
</ul>
<p>Dry Stuff</p>
<ul>
<li>2 1/4 cups flour</li>
<li>1 teaspoon salt</li>
<li>1 teaspoon baking soda</li>
<li>1 16 oz package of chips</li>
</ul>
<p>Optional</p>
<ul>
<li>pecans or walnuts</li>
</ul>
<p>Put all of the Wet Stuff into a large bowl. Mix well with a blender. (You can mix by hand if you want, but I use a blender.) Set aside. Mix all of the Dry Stuff except for the chips in a smaller bowl. Once mixed, add slowly to the Wet Stuff and mix in with a large spoon. When the dough is thoroughly mixed, then add the chips.</p>
<p>Spoon generous globs of dough onto a cookie sheet. I use a heaping tablespoon of dough for each cookie, and get about 8 or 10 cookies on a large cookie sheet. If made properly you get about 20 cookies per batch. That&#8217;s part of what makes them Dave Cookies. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Bake 13-14 minutes at 375. Remove from the oven and let them sit on the baking sheet for a few minutes to be sure that the bottom of the cookie is crispy. Then remove from the baking sheet and complete cooling on a cookie rack.</p>
<p>Serve with large glass of milk.</p>
<p>Enjoy. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </p>
<p><img src="http://www.momentsoflight.com/blog/gallery/DSC_1062.JPG" width="400" height="300" border="2" alt="Cookies" title="Cookies" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/12/by-popular-request-cookies/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Technology Needs People Too</title>
		<link>http://www.dagira.com/2008/08/11/technology-needs-people-too/</link>
		<comments>http://www.dagira.com/2008/08/11/technology-needs-people-too/#comments</comments>
		<pubDate>Mon, 11 Aug 2008 12:21:12 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=105</guid>
		<description><![CDATA[I am probably not following proper blog &#8220;netiquette&#8221; as I don&#8217;t offer a &#8220;blog roll&#8221; here. A blog roll is a standard feature of Wordpress and it allows a blogger to link to other blogs of interest, whether they&#8217;re on the same topic or just from friends or family or&#8230; well, you probably get the [...]]]></description>
			<content:encoded><![CDATA[<p>I am probably not following proper blog &#8220;netiquette&#8221; as I don&#8217;t offer a &#8220;blog roll&#8221; here. A blog roll is a standard feature of Wordpress and it allows a blogger to link to other blogs of interest, whether they&#8217;re on the same topic or just from friends or family or&#8230; well, you probably get the idea. Despite the lack of a formal blog roll I do read a few other folks (when I have time). One of those on my short list is Timo Elliott&#8217;s blog. </p>
<p><span id="more-105"></span>Timo is a long-time employee of Business Objects. I met him for the first time years ago at one of the first conferences that I attended. In fact, I think he was the original source for the <a href="http://www.forumtopics.com/busobj/viewtopic.php?t=22328">&#8220;floating objects&#8221; animated cursor</a> that I still use today. He posted an imaginary dialog the other day that I found amusing and disturbing all at the same time.</p>
<p>I call it amusing because, well, it&#8217;s funny. <a href="http://www.timoelliott.com/blog/2008/08/classic_bi_sigh.html">Read it for yourself.</a> I also call it disturbing because I&#8217;ve been through that exact scenario in real life. Timo&#8217;s title is Senior Director of Strategic Marketing. I&#8217;m not sure what that means <img src='http://www.dagira.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> but it seems to mean that he gets to spend a lot of time thinking about how BI should work, and then talking to people to see what they&#8217;re using BI for, and how. I believe that he has also seen this scenario play out in real life, and most likely more than once.</p>
<p>He has some bullet points at the end of his blog that I would like to comment further on. First he says this:</p>
<ul>
<li>People don&#8217;t know what tools are available to access data </li>
<li>People don&#8217;t know who is available to help them </li>
</ul>
<p>Both of these are problems and they seem to feed off of each other. As a BI consumer I need to understand my access paths, whether they&#8217;re through a specific piece of technology or via another person who accesses that technology for me. If I don&#8217;t know what&#8217;s available to me then it&#8217;s hard for me to answer my questions. Which leads to the next points:</p>
<ul>
<li>People don&#8217;t really know exactly what information they want </li>
<li>People don&#8217;t really know how to describe clearly what they want </li>
</ul>
<p>Some years back the &#8220;next big thing&#8221; or concept was data mining. The general idea was that you would collect this massive amount of data and then turn some statistical algorithms loose and in return they would point out which questions you should be asking. Business Objects purchased a product that was going to allow folks to use their existing universes for this sort of analysis.</p>
<p>Okay, everyone with an active license for Data Miner please raise your hand&#8230; anyone? anyone? Bueller? Bueller? I thought so. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> For decades the focus was on collecting data. More recently we&#8217;ve started to think about how to retrieve that data in some sort of relatively effective and efficient way. But I submit that - as Timo suggests - we still don&#8217;t know how to ask the right questions or even know what to do with the data once we get it.</p>
<p>Which leads to the next two bullet points:</p>
<ul>
<li>People don&#8217;t really know exactly what they will do with the information </li>
<li>People are happy to use incomplete data that may not be relevant </li>
</ul>
<p>I&#8217;ve alread covered the first point, and the second is just&#8230; well, it&#8217;s just sad. </p>
<p>Timo wraps up his blog post with this statement:</p>
<blockquote><p>Ultimately, BI success is about a long and typically hard struggle to create an information culture where people are trained how to access information and rewarded for using it to create business advantage. Typical BI projects spent too much time on technology and platforms, and not nearly enough on people and culture.  Why? Basically because of reward systems and role definitions &#8212; but that&#8217;s another post&#8230;</p></blockquote>
<p>And from that came the title text for this blog post. It&#8217;s not enough to have great technology if that technology is either incomprehensible, inaccessable, or incapable of answering (or even providing) the proper questions. People still drive the business.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/11/technology-needs-people-too/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rumors, I&#8217;ve Got Rumors&#8230;</title>
		<link>http://www.dagira.com/2008/08/08/rumors-ive-got-rumors/</link>
		<comments>http://www.dagira.com/2008/08/08/rumors-ive-got-rumors/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 12:53:35 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[Conferences]]></category>

		<category><![CDATA[GBN]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=104</guid>
		<description><![CDATA[A few days ago I posted about the new GBN (Global BusinessObjects Network) organization. They&#8217;re going to be responsible for the user conference this fall that is replacing the &#8220;Insight&#8221; conferences run by Business Objects in the past. One of the questions posted as a comment to that post was this:
Will the Global BO Network [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I posted about the new GBN (Global BusinessObjects Network) organization. They&#8217;re going to be responsible for the user conference this fall that is replacing the &#8220;Insight&#8221; conferences run by Business Objects in the past. One of the questions posted as a comment to that post was this:</p>
<blockquote><p>Will the Global BO Network be organising the conferences around the world?</p>
<p>We over here in the Asia-Pac haven’t had one for awhile&#8230;</p></blockquote>
<p>I did some digging and asking around and some guessing, and at this point I have some rumors to share. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> From what I can tell, the intent is to sponsor several conferences a year. If that is the case, then the Asia-Pacific Rim area should be on the short list of options to consider. I suspect that we will see plans for GBN-sponsored events in both Europe and Asia-Pac in 2009 along with at least one large &#8220;Insight-style&#8221; event in the US. Part of the reason for me guessing this is they will want to put their best foot forward in order to secure long-term support and interest for their program, and the best way to do that will be to get out in front of the users. By doing that, they can share their vision and mission with the largest group of people&#8230; which should ultimately prove beneficial for both parties if they can deliver. And from our first conference call (in my earlier post I mentioned that I was selected to the steering committee for the GBN) one of the focal points was the &#8220;G&#8221; or &#8220;Global&#8221; nature of the program.</p>
<p>Getting global events running would be the best way to reinforce that concept, yes? <img src='http://www.dagira.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>The EU-Insight from earlier this year was in Berlin along with the SAPPHIRE conference. Given that the GBN wants to emphasize the independence from the product company I would expect that future conferences will <strong>not</strong> be held in conjunction with SAPPHIRE but will instead be a separate venue. Most of this is guess-work at this point as the new organization is just getting off of the ground. If I learn anything concrete I will be sure to share it when I can.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/08/rumors-ive-got-rumors/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What We Do Without Business Objects Knowing About It&#8230;</title>
		<link>http://www.dagira.com/2008/08/06/what-we-do-without-business-objects-knowing-about-it/</link>
		<comments>http://www.dagira.com/2008/08/06/what-we-do-without-business-objects-knowing-about-it/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 07:46:59 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Rants]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=100</guid>
		<description><![CDATA[I got a comment from someone new recently who said:
Sigh. There is so much about Business Objects that makes me scream &#8220;WHY??? Who designed this thing? Nobody who has ever used it in the real world, that’s for sure!&#8221;
First it made me laugh. But then it made me think. At various points Business Objects has [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://www.dagira.com/2008/02/16/making-the-best-use-of-your-time-in-a-prompt/#comment-286">got a comment</a> from someone new recently who said:</p>
<blockquote><p>Sigh. There is so much about Business Objects that makes me scream &#8220;WHY??? Who designed this thing? Nobody who has ever used it in the real world, that’s for sure!&#8221;</p></blockquote>
<p>First it made me laugh. But then it made me think. At various points Business Objects has done things that made their users extremely frustrated, and it seems that sometimes it&#8217;s because they don&#8217;t know what people are doing with their products. The best example that I can think of happened a very long time ago, but it was a &#8220;biggie&#8221; as they say. It happened during the update from 3.1 to 4.0. Anyone else remember those exciting times? <img src='http://www.dagira.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> </p>
<p><span id="more-100"></span>In version 3.1 a query and its associated reports were all stored as separate files. One file contained the data, one file contained the query definition, and there were various files that contained the report layouts. It was fairly complicated, but it worked. The file was stored in a folder that was based on the report name, and that folder was inside a folder for the universe that the query was based on. That last bit is the important part.</p>
<p>You see, what some enterprising folks figured out was that if you moved (or copied) the report folder and all of the contents into a new parent folder (owned by a different universe) then you could effectively move the report to a new universe. Everything was matched based on object names so as long as your new universe had the expected classes and objects you were fine.</p>
<p>When 4.0 came out, the report file structure was gone, and in its place was the combined .REP file that we still use today. Nothing wrong with that, except Business Objects didn&#8217;t put anything into their application to allow folks to move reports to a new universe! <img src='http://www.dagira.com/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' /> That was a problem. Ultimately the issue got addressed with the 4.1 release but that took well over a year to come out.</p>
<p>But they learned their lesson and made sure that we could switch the source universe(s) for our Web Intelligence documents from the very first release, right? Nope. But they fixed it in release 2, of course. Nope, wrong again. If my memory is correct, it wasn&#8217;t until the XI release that we could actually repoint a Web Intelligence document from one data source to another. Why did it take so long?</p>
<p>Even with this feature in the product life is still not perfect. If I have two (or more) data providers in a Webi document that are sharing the same data source, I cannot move one of them and leave the other alone. No, when I move one data provider I am required to move all of the data providers that share the same universe. &lt;sigh&gt;</p>
<p>I can close on a positive note by saying that the process to swap data providers in Webi XI is much more powerful (despite the limitation in the prior paragraph) and I think they did a very good job with it. I can opt to remap objects if there is no exact match, which is something that you could not do with the full client applications. If the target universe did not have an exact match then I was prevented from repointing the data provider in the full client application. With the new process in Webi I can either remap the object by browsing the target universe or I can opt to let that object drop from the data provider. That part is quite nice.</p>
<p>How about you? Can you think of a time when an &#8220;upgrade&#8221; broke a feature of the product that you had been using? If so, has that feature come back in a later version? Feel free to share your stories. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/06/what-we-do-without-business-objects-knowing-about-it/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Introducing the Global Business Objects Network</title>
		<link>http://www.dagira.com/2008/08/04/introducing-the-global-business-objects-network/</link>
		<comments>http://www.dagira.com/2008/08/04/introducing-the-global-business-objects-network/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 13:28:15 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[GBN]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=103</guid>
		<description><![CDATA[The Business Objects Community Alliance is going to be rebranded as the Global Business Objects Network. There are various reasons for the change, some of which have to do with naming conflicts but mostly having to do with the desire to emphasize the independence from anything run by SAP. The new organization is going to [...]]]></description>
			<content:encoded><![CDATA[<p>The Business Objects Community Alliance is going to be rebranded as the Global Business Objects Network. There are various reasons for the change, some of which have to do with naming conflicts but mostly having to do with the desire to emphasize the independence from anything run by SAP. The new organization is going to be launched in a more formal fashion at the upcoming fall conference in October, but work has already started.</p>
<p>The new organization is going to exist along with but separate from the existing ASUG (Americas SAP User Group). Unlike ASUG, which is focused on the US, our goal is to attempt from the start to become a truly global organization. Thus, the name. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Over the coming months I will probably be posting more about this as I have the honor to have been selected as one of the initial steering committee members. We had our first conference call on Friday and will be talking regularly over the coming weeks in order to best prepare for the more formal launch at the fall conference this October.</p>
<p>In keeping with my belief in being &#8220;open&#8221; (whether it is using and supporting open source software or open organizations like BOB) I plan to post updates on the process here on my blog. If anyone has questions or input, do please post a comment. I ask that you do this rather than email me directly so that my responses can also be in the open and any interested party can follow the conversation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/04/introducing-the-global-business-objects-network/feed/</wfw:commentRss>
		</item>
		<item>
		<title>48 Hours in the Life of a Business Objects Trainer Part II</title>
		<link>http://www.dagira.com/2008/08/02/48-hours-in-the-life-of-a-business-objects-trainer-part-ii/</link>
		<comments>http://www.dagira.com/2008/08/02/48-hours-in-the-life-of-a-business-objects-trainer-part-ii/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 10:41:11 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=102</guid>
		<description><![CDATA[So here&#8217;s how the rest of the &#8220;48 hours&#8221; went.
Friday 

6:30 am: Wake up and groan. I&#8217;m starting to feel pain from the last few late nights.
7:00 am: Heading down to the office with the donuts Ginger picked up for me, and a container of cookies, and a lunch. Traffic was light so I made [...]]]></description>
			<content:encoded><![CDATA[<p>So here&#8217;s how the rest of the &#8220;48 hours&#8221; went.</p>
<p>Friday <span id="more-102"></span></p>
<ul>
<li>6:30 am: Wake up and groan. I&#8217;m starting to feel pain from the last few late nights.</li>
<li>7:00 am: Heading down to the office with the donuts Ginger picked up for me, and a container of cookies, and a lunch. Traffic was light so I made it there just fine.</li>
<li>7:30 am: After arriving I set out the donuts and unlock the doors, then open the training universe and try to figure out where the &#8220;incompatible combination of objects&#8221; message was coming from. Can&#8217;t recreate the issue. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_evil.gif' alt=':evil:' class='wp-smiley' /> </li>
<li>8:00 am: Students start to arrive, so I ask them about the error from the day before. They remember the same query objects that I do, but they&#8217;re working today without being fixed. Frustrating.</li>
<li>8:30 am: Class officially starts. We chat a bit about the day before, then start working on the chapter. This one is about more advanced prompts using sub-query techniques. So we build a condition, then build another as a correlated sub-query. The book has us do the correlated sub-query join with the client name, which is dumb. So I use the client_id instead. Guess what; the reason they use name is because there are duplicate names in the database. And when we try to pull the Client ID object into the report to verify this, we get a #MULTIVALUE error, because the training universe has Client ID as a detail object of Client Name. We have fun poking holes in the training universe design as a result. A good discussion of why you use detail objects in the first place takes place.</li>
<li>10:00 am: First break. I made sure I remembered to take a break earlier today since I made them wait to long the day before. Not many folks from Integra around today, so the donuts aren&#8217;t going nearly as fast. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>11:25 am: Break for lunch as I have a conference call soon.</li>
<li>11:30 am: Dial into the conference call for the initial GBN steering committee meeting.</li>
<li>12:15 pm: While on the call I&#8217;ve tried to pay attention and answer where appropriate, but now I get a bunch of emails in on my blackberry. I also get an IM from a client wanting to know about some updates to a universe so I can give them some SQL code. Arg. They had originally told me they didn&#8217;t need it until Monday. Now it&#8217;s a crisis. Or maybe not, it seems they&#8217;re okay with Monday after I reminded them.</li>
<li>12:33 pm: I have to duck out on the call because students are coming back. You&#8217;ll notice that I&#8217;ve not posted about eating lunch. I open the cookies and pass them out to the class, and eat one really fast for my lunch.</li>
<li>12:45 pm: Class starts up again.</li>
<li>1:30 pm: We start the fan / chasm trap chapter. I ask the class how many tables are required to have a fan trap (two) and most of them say three. I show them a two-table fan trap. Then I ask how many tables are required for a chasm trap, and they correctly say three. I draw a lot on the whiteboard, then we try to do the workshop in the chapter.</li>
<li>2:30 pm: The workshop universe is terrible. It doesn&#8217;t make sense, nobody in the class can figure out the data, and the examples are not appropriate at all. They made price a measure! <img src='http://www.dagira.com/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' /> We give up on the workshop because it doesn&#8217;t make sense and move on to the next chapter.</li>
<li>3:00 pm: First student leaves. It&#8217;s not unusual for students to leave early at the end of a multi-day class, especially on a Friday. Travel schedules and all that.</li>
<li>3:02 pm: As I&#8217;m handing out the rest of the course certificates I find out that one student has her name spelled wrong. Ack. Call to Pam, who logs into the network from Louisiana and prints a new certificate with the proper name. Crisis averted. Thanks, Pam!</li>
<li>3:15 pm: Another student leaves at 3:15, and the class basically is done by 3:30.</li>
<li>4:00 pm: Finish answering questions from the last student to leave, then I clean up (but don&#8217;t eat this time) the donuts, clean off the whiteboard, shutdown all of the training room computers except for the instructor machine.</li>
<li>4:30 pm: Finally eat my lunch (sandwhich) while checking in on BOB and answering a few emails.</li>
<li>4:45 pm: Log off of BOB, shut down the instructor computer. Lock up the room and head home. Carefully look for gum in the parking lot. (The paper is still on the floor mat, and I wonder what the 100+ degree heat did to it during the day today.)</li>
<li>5:30 pm: Arrive at the store to pick up milk, eggs, and bread. Oh, and some XBox games that were on sale. Don&#8217;t quite know why, as I haven&#8217;t had time to play in months. Oh well, I saved some money. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>6:00 pm: Arrived home, turned remaining cookies over to the kids (also the left-over donuts, which will probably be really nasty by tomorrow morning).
<li>7:00 pm: Finished this blog post. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> </li>
</ul>
<p>So there you have it, 48 hours in the life of a Business Objects trainer. Now I have to get back to my universe work, which should be good because I haven&#8217;t cussed in a while and it has been good for that lately&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/02/48-hours-in-the-life-of-a-business-objects-trainer-part-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>48 Hours in the Life of a Business Objects Trainer</title>
		<link>http://www.dagira.com/2008/08/01/48-hours-in-the-life-of-a-business-objects-trainer/</link>
		<comments>http://www.dagira.com/2008/08/01/48-hours-in-the-life-of-a-business-objects-trainer/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 23:41:11 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=101</guid>
		<description><![CDATA[As I write this I am just getting ready to welcome my students back for day 2 of the Advanced Designer course. How did I get here? It&#8217;s an interesting story. Or maybe it&#8217;s not, you get to decide.  
I have been assigned essentially full time to one particular client for quite a while. [...]]]></description>
			<content:encoded><![CDATA[<p>As I write this I am just getting ready to welcome my students back for day 2 of the Advanced Designer course. How did I get here? It&#8217;s an interesting story. Or maybe it&#8217;s not, you get to decide. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-101"></span>I have been assigned essentially full time to one particular client for quite a while. We are in the middle of pulling together the first release of a brand new universe, and one that has some particularly complex challenges due to hierarchical data. So my time is already fully allocated. Yet I got a call last week from my boss who informed me that I would need to teach a training class this week. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_eek.gif' alt=':shock:' class='wp-smiley' /> It happens&#8230; our web site contains the full training class schedule and sometimes the classes fill up and sometimes they don&#8217;t. If they all fill up we sometimes run short on trainers and I have to fill in. But I&#8217;m still responsible for meeting my client delivery dates too. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' /> So here&#8217;s what the last 48 hours has been like.</p>
<p>Wednesday night</p>
<ul>
<li>9:30 pm: Worked on project universe and cussed about the weirdness of the hierarchical data that I am having to deal with. Cussed a lot, actually.</li>
<li>11:00 pm: Reviewing the first half of the new Advanced Designer course material</li>
<li>1:30 am: Go to bed</li>
</ul>
<p>Thursday morning</p>
<ul>
<li>6:00 am: Up early to head down to the office early in order to make sure that the training room computers are all ready to go</li>
<li>6:35 am: Talk to the security guard because my key card doesn&#8217;t let me in to your new training rooms. He can&#8217;t help me because of building policy, so I have to wait a bit.</li>
<li>6:50 am: Another security guard comes by and verifies who I am and lets me into the room</li>
<li>7am: Penny arrives (one of our primary Integra trainers) with donuts, a key to the room, and the time to make sure that all of the computers are set up for today&#8217;s class.  (Thanks Penny!)</li>
<li>8am: Students start to arrive</li>
<li>8:30am: Class is supposed to start, but we&#8217;re one person short. We wait about 10 minutes and then we have our full class.</li>
<li>10:30-ish: We take our first break, and I realize that we&#8217;ve been going for two hours and I&#8217;m only half-way through the first chapter. (It&#8217;s supposed to take 2 hours.) I decide it&#8217;s okay because we have covered a lot of extra material that the students seem to appreciate because they&#8217;re asking great questions.</li>
<li>11:45-ish: We break for lunch. I stay in the room because I&#8217;m going to log on to my client&#8217;s VPN and work more on my universe. More cussing ensues.</li>
<li>1:00 pm: Students return from lunch, and one of them comments about the fact that they really feel they&#8217;re getting good information from the class. This makes me feel really good since we&#8217;re not following the material. Well, we are some, but not exactly. I&#8217;m using it more as a &#8220;framework&#8221; or &#8220;suggestion&#8221; for course material rather than following it page by page. I am glad that they feel they&#8217;re getting an appropriate value.</li>
<li>2:00 pm-ish: We&#8217;re getting a strange &#8220;Incompatible Combination of Objects&#8221; error from the course universe. Irritation ensues. I look quickly at the most obvious things, but can&#8217;t find the reason for the error. I suspect a conflict between the contexts and the @Aggregate_Aware settings in the universe but don&#8217;t have the time in the middle of class to figure it out.</li>
<li>3:00 pm-ish: We&#8217;re now back on track as far as time, since one of the chapters in the Advanced Designer guide lists a bunch of parameters and goes into great detail to explain them. Rather than read page-by-page I suggest that this chapter is a great reference for future use, I pick about 3 of the parameters (like JOIN_BY_SQL and ANSI91) to discuss in detail, then we move on.</li>
<li>4:30 pm: We&#8217;re done for the day as we&#8217;ve just finished a chapter and it&#8217;s a great place to stop.</li>
<li>5:30 pm: After taking care of a few things from the office (confirming my keycard works now, checking in on BOB, talking to my boss, cleaning out (eating) the last donut from class) I head home.</li>
<li>5:35 pm: Cuss because I stepped in gum in the parking lot and didn&#8217;t notice before I got in my truck. Now I have gum on the floor mat. Put some paper over it and let it stick so I don&#8217;t track it around anymore.</li>
<li>6:00 pm: Dinner with the family, then some house stuff, followed by a Magic Treehouse book for bedtime.</li>
<li>8:30 pm: Work on some blog posts for a while, then get the class manual out to review for tomorrow&#8217;s class. There&#8217;s a class on chasm / fan traps (I think I could teach that in my sleep), one on advanced prompts and LOV&#8217;s and stuff, and a chapter on external strategies. Who ever thought that strategies were worth an entire chapter in a training manual anyway?</li>
<li>9:00 pm: Bake cookies to take to class tomorrow. Yes, if you come to a class that I teach, I feed you cookies. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>9:30 pm: Eat a few cookies. Hey, they&#8217;re warm out of the oven, you expect me to ignore them?</li>
<li>10:00 pm: Open my client universe and cuss some more. I&#8217;m really beginning to hate this data model. It works great for certain things but doesn&#8217;t fit the report structure.</li>
<li>11:30 pm: Browse a few boards, and check for the new daily release of my favorite web comics and bloggers.</li>
<li>Midnight: Decide that it&#8217;s time to call it a day.</li>
</ul>
<p>To be continued&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/08/01/48-hours-in-the-life-of-a-business-objects-trainer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using a &#8220;Magic Date&#8221; Value in Prompts</title>
		<link>http://www.dagira.com/2008/07/21/using-a-magic-date-value-in-prompts/</link>
		<comments>http://www.dagira.com/2008/07/21/using-a-magic-date-value-in-prompts/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 12:21:45 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=98</guid>
		<description><![CDATA[In the first post on designing universe prompts I talked about the idea of having a default date value present in a prompt. In case you don&#8217;t want to read the entire post, here is the executive summary:
You can&#8217;t do it, sorry.
At the end of that post I mentioned something called a &#8220;magic date&#8221; that [...]]]></description>
			<content:encoded><![CDATA[<p>In the first post on designing universe prompts I talked about the idea of having a default date value present in a prompt. In case you don&#8217;t want to read <a href="http://www.dagira.com/2008/07/15/how-can-i-make-today-my-default-prompt-value/">the entire post</a>, here is the executive summary:</p>
<blockquote><p>You can&#8217;t do it, sorry.</p></blockquote>
<p>At the end of that post I mentioned something called a &#8220;magic date&#8221; that I frequently use in my universes to get past this limitation. That&#8217;s my subject for today.</p>
<h3>Problem Definition</h3>
<p>I have a date prompt in my universe. I would like to be able to provide a default value of today&#8217;s date. This would allow my users to click-n-go on the report without having to update the date value each time. It is also essential for scheduled reports, which is something I didn&#8217;t really touch on last time. When I schedule a report, I have to provide values for every prompt. I have a long <a href="http://www.dagira.com/category/design/dynamic-dates/">series of posts on how to create some dynamic date objects</a> that can be used for scheduling, but those were not prompts.</p>
<p>In a nutshell: I need a way to accept a prompt value and convert it to today&#8217;s date for user convenience and for scheduling. Can I make that happen?</p>
<p><span id="more-98"></span><br />
<h3>Defining the Magic Date</h3>
<p>First, a quick recap. When I set up a prompt in the universe, one of the required arguments is the datatype. A &#8216;D&#8217; designates a prompt as a date value. That means that anything entered in that date prompt field has to pass the basic validation that will be done by the application. I can&#8217;t put the word &#8220;Today&#8221; in this prompt, as &#8220;Today&#8221; is not anywhere close to being a valid date. That&#8217;s where the concept of a &#8220;magic date&#8221; comes from.</p>
<p>What I do is define a specific date as the magic date. Quite frequently I will use something like January 1, 1900, as it is highly unlikely that any of my records will include that date as a valid entry. That is the first important point about this concept: I must pick a date that will never appear as part of my normal data. That&#8217;s my magic date.</p>
<h3>Defining the Prompt</h3>
<p>Once I have selected my magic date I can now create my prompt using the basic five parameters. It might look something like this:</p>
<p><code>@prompt('Enter shipping date','D',,mono,free)</code></p>
<p>In this prompt I am asking for a shipping date, I am expecting a valid date value, there is no list of values, and the user will enter only one value. There&#8217;s nothing magical about that prompt. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> The magic comes in when I create the condition object that includes that prompt. Imagine that I have a report that is designed to show orders that shipped today. Suppose that my magic date is January 1, 1900, as I mentioned before. Here&#8217;s what the code looks like (I will explain it after):</p>
<p><code>orders.ship_date = case when @prompt('Enter shipping date','D',,mono,free) = '1900-01-01' then DATE else @prompt('Enter shipping date','D',,mono,free) end</code></p>
<p>I&#8217;ve used Teradata syntax here but the concept applies to any database. (Teradata offers several options to return the date for &#8220;today&#8221; and DATE is the example I selected here.) One of two things will happen in this condition. A user will either enter a standard date, or they will enter the magic date. If they enter a standard date the code resolves to this:</p>
<p><code>orders.ship_date = case when '2008-07-21' = '1900-01-01' then DATE else '2008-07-21' end</code></p>
<p>In this case the case logic eliminates the first option and takes the second option and the net logic becomes:</p>
<p><code>orders.ship_date = '2008-07-21'</code></p>
<p>What if the user enters the magic date? Using the same process the code first resolves to this:</p>
<p><code>orders.ship_date = case when '1900-01-01' = '1900-01-01' then DATE else '1900-01-01' end</code></p>
<p>Which is logically the same as this:</p>
<p><code>orders.ship_date = DATE</code></p>
<p>So, there I have it. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> By applying a case statement to the right-hand side of this database condition, I can react in two different ways. In one case I take the user parameter value exactly as entered. In the other case I convert a special date (magic date) into the system current date instead. Now if one of my users schedules a report with this prompt, all they have to do is enter 1900-01-01 as their date parameter and each time their scheduled report is executed the parameter value will change.</p>
<h3>Conclusion</h3>
<p>With some creative date logic I can convert the magic date to today, yesterday, end of this week, end of last week, end of the month&#8230; just about anything else that I&#8217;ve already covered in my dynamic date series of posts. I can use the concept of a &#8220;magic number&#8221; for numeric prompts and a &#8220;magic string&#8221; for text prompts as well, although those are generally not used as frequently.</p>
<p>Would it be nice if I could use a variable in a prompt to avoid this sort of extra work? Sure, I think it would. I listed a bunch of different prompt enhancements that I have been looking for, in some cases for years, in my last post on prompts. One of those enhancements that I (and a gazillion other folks) would like to see is proper cascading prompts. I plan to have that as my next post on prompts. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/07/21/using-a-magic-date-value-in-prompts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How Can I Make &#8220;Today&#8221; My Default Prompt Value?</title>
		<link>http://www.dagira.com/2008/07/15/how-can-i-make-today-my-default-prompt-value/</link>
		<comments>http://www.dagira.com/2008/07/15/how-can-i-make-today-my-default-prompt-value/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 04:18:40 +0000</pubDate>
		<dc:creator>Dave Rathbun</dc:creator>
		
		<category><![CDATA[Prompts]]></category>

		<category><![CDATA[Universe Design]]></category>

		<guid isPermaLink="false">http://www.dagira.com/?p=97</guid>
		<description><![CDATA[I have seen this question come up frequently on BOB lately. And if the question keeps coming up, it becomes an easy idea for a blog post. That way, once I document a concept or a solution I have somewhere consistent to link to. The short answer to the question, unfortunately, is no. But let&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I have seen this question come up frequently on BOB lately. And if the question keeps coming up, it becomes an easy idea for a blog post. That way, once I document a concept or a solution I have somewhere consistent to link to. The short answer to the question, unfortunately, is no. But let&#8217;s investigate and explain a bit further than that, shall we?</p>
<p><span id="more-97"></span><br />
<h3>Problem Description</h3>
<p>I have a report. The report has a date prompt. I want the date prompt to have a default value (partially possible) and I want the default value to be &#8220;today&#8221; instead of a standard date. The question is quite reasonable, in my opinion. Prompt handling has been one of the weakest points of the Business Objects tools for a long, looonnng time. A prompt can be created on a report or in the universe. If the prompt is defined in the universe there is a standard syntax. So I will start with a brief review of that syntax and move on from there.</p>
<h3>@Prompt() Me One More Time&#8230;</h3>
<p>The standard prompt syntax has five arguments. The first two are generally considered required while the remaining three are optional. Here is the syntax:</p>
<pre>@prompt('Enter prompt text here','A',LOV Source,mono/multi,free/constrained)</pre>
<p>I&#8217;ll break down each of those five parameters next. First, the prompt text. The first argument is required and is the most obvious&#8230; it contains the text that the user will react to. It&#8217;s a good idea to let the user know what&#8217;s going on and to provide some clue as to how the prompt will operate. For example, if you are using a prompt in an equality test, you should inform the user that they can only select a single value. If you are using the prompt in a list, then let them know they can select one or more values.</p>
<p>The next argument has three options: A, N, or D. These match with the datatype expected from the prompt. The &#8216;A&#8217; represents alphanumeric data, and any data entered is accepted as it was entered. Using an &#8216;N&#8217; denotes a numeric prompt and only valid numeric values are accepted. Finally, a &#8216;D&#8217; represents a date prompt. With this type of prompt Webi will include a spiffy calendar that a user can use to select their entry. This is available even if the LOV has been turned off.</p>
<p>The third parameter is a reference to a potential list of values for the prompt. There are two possible options: either a hard-coded list, or an object from the universe. If I wanted to make a hard coded list with the values &#8220;Yes&#8221; and &#8220;No&#8221; on it here is the syntax:</p>
<pre>{'Yes','No'}</pre>
<p>The values are surrounded with curly braces { } and entered as a comma-separated list. Character data is in quotes. Simple enough, yes? no? <img src='http://www.dagira.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>If I wanted to use an existing object in the universe for the list of values I would enter that choice without the curly braces and in the format <code>'Class Name\Object Name'</code> instead. One common designer mistake is attempting to use a table.column syntax here. The table.column is of course the eventual source for the list of values, but the LOV query is defined as part of an object definition. That&#8217;s why you enter an object here rather than a table column.</p>
<p>The last two parameters are optional, but even if you leave them out you have to include the commas for the prompt syntax. In other words, this is valid:</p>
<pre>@Prompt('Do you like BOB?','A',{'Yes','Yes, of course'},,)</pre>
<p>Even though the values are missing the commas remain. What do the values do if you include them? The fourth parameter allows you to specify whether the prompt is a multi-select option or not. The value <code>mono</code> (no quotes here) says the prompt is restricted to a single value. The value <code>multi</code> (again, no quotes) allows for multiple values to be selected. The fifth parameter determines whether the user can type the prompt response or if they are required to pick from the list of values. The value <code>free</code> does the former, and the value <code>constrained</code> requires the LOV selection. Here&#8217;s a hint: don&#8217;t make a prompt constrained without providing a valid list of values source. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>So those are the five basic arguments for the @Prompt() function. Most of you will have noticed that none of them have anything to do with providing a default value. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_confused.gif' alt=':-?' class='wp-smiley' /> </p>
<h3>@Prompt() Extended Syntax for Web Intelligence</h3>
<p>We got some new prompt options starting with Web Intelligence 6.x. One of the options a report writer could use was whether or not the last prompt value entered was the default for the next report run or not. Another option was whether the prompt had a default value or not. And finally, report prompts could appear in a user-specified order rather than in alphabetical order as before. But all of these options were <strong>report specific</strong> and not supported in Universe Designer. </p>
<p>Here&#8217;s what the extended prompt syntax looks like:</p>
<p><code>@Prompt('Enter value(s) for Something:','A','Class\Something',Multi,Free,Persistent,{'Default Option'},User:0)</code></p>
<p>I&#8217;ve already covered the first five parameters so now I&#8217;ll detail the last three. The sixth parameter has the value <code>Persistent</code> or <code>Not_Persistent</code>. The default value is to retain the last value entered (Persistent). This is also the legacy behavior; previous versions of the reporting tools only worked in a persistent manner.</p>
<p>The seventh parameter has a syntax that looks a bit like the hard-coded LOV from earlier with the curly braces. This is where a default value for the prompt can be stored. And finally, the last parameter determines the order of the prompt, starting with zero (0) as the first prompt and incrementing from there.</p>
<p>To reiterate something I stated earlier: <strong>These are report options only.</strong> These parameters can be entered into a prompt object definition in the universe, but they are unlikely to parse because of the extended syntax. In order to test this syntax I would have to export my universe and test in a Web Intelligence query.</p>
<h3>What About That Default Value?</h3>
<p>Extended prompt parameter number six: a default value. That brings me back to the original subject for this post, doesn&#8217;t it? I wanted to have a value like &#8220;sysdate&#8221; or a formula of some kind like CurrentDate() plugged into that parameter. Unfortunately, it doesn&#8217;t work. Any value entered for that parameter is treated as data, and no formulas or calculations will be calculated. So anything like sysdate or getdate() or CurrentDate() is going to fail. </p>
<p>The next trick is to try to reference an object, and store the formula as the object definition instead. Unfortunately, again, it fails. The object name becomes the default value for the prompt which is generally not the intended result.</p>
<h3>Conclusion</h3>
<p>What it boils down to, as I see it, is this: you can&#8217;t do it. There is no way to create a prompt syntax that will substitute in a value like &#8220;today&#8217;s date&#8221; for a prompt default value. It would be nice, but it doesn&#8217;t work.</p>
<p>However, I do have a work-around that I&#8217;ve used for many years. I create a &#8220;magic date&#8221; and some creative logic within the prompt to do the substitution <strong>after</strong> the user has already responded to the prompt. That&#8217;s the subject for the next post in this series. Stay tuned for details. <img src='http://www.dagira.com/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> </p>
<h3>Things I really REALLY wish prompts could do&#8230;</h3>
<ol>
<li>Set a default with a variable. It&#8217;s the subject of this post, need I say more?</li>
<li>Be optional! With XI 3.0 a report writer can create optional prompts now, but we still can&#8217;t do them in Designer. Boo.</li>
<li>Do cascading prompts effectively. This has been on my wish list for-EVER. I have another post about cascading prompts coming up soon so I&#8217;ll save the majority of my whining until then.</li>
<li>We have free and constrained, I want a third option: validated. This would be the best of both worlds. A user would be &#8220;free&#8221; to enter the value if they wanted to, but it would be validated against the LOV provided in the universe. Today I have to allow the user to shoot themself in the foot by typing the wrong value, or I have to force them to use the LOV.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dagira.com/2008/07/15/how-can-i-make-today-my-default-prompt-value/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
