<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8880416463963401464</id><updated>2012-02-02T09:08:57.386+01:00</updated><category term='10.1.3.4.1'/><category term='string manipluation'/><category term='flash'/><category term='answers'/><category term='DWH'/><category term='ETL'/><category term='cache'/><category term='column sort'/><category term='table view'/><category term='dimension'/><category term='community'/><category term='Exadata'/><category term='braindump'/><category term='event'/><category term='gourl'/><category term='myoraclesupport'/><category term='ranking'/><category term='nqsconfig.ini'/><category term='essbase'/><category term='forum'/><category term='various'/><category term='web catalog'/><category term='lts'/><category term='OBIA'/><category term='firefox'/><category term='bi applications'/><category term='data source'/><category term='mapviewer'/><category term='presentation server'/><category term='fact'/><category term='sun'/><category term='instanceconfig.xml'/><category term='nonsense'/><category term='measure hierarchy'/><category term='open world'/><category term='training'/><category term='variables'/><category term='rant'/><category term='database'/><category term='patch'/><category term='xml'/><category term='EVALUATE'/><category term='personal'/><category term='fragmentation'/><category term='google maps'/><category term='Informatica'/><category term='UDML'/><category term='mdx'/><category term='security'/><category term='hierarchy'/><category term='DAC'/><category term='usefull'/><category term='BI Apps'/><category term='dashboard'/><category term='initialization blocks'/><category term='joy'/><category term='blog'/><category term='time series'/><category term='oracle'/><category term='rpd'/><category term='OTN'/><category term='rittmanmead'/><category term='brighton'/><category term='marketing'/><category term='ODI'/><category term='fun'/><category term='maps'/><category term='release'/><category term='add column to physical layer from essbase'/><category term='obiee'/><title type='text'>The 100 facets of Oracle Business Intelligence</title><subtitle type='html'>OBIEE, OBI Apps, ODI, Informatica, Essbase, BI Publisher...you name it. The OBI suite entails them all and more.
I will talk mainly about its technical aspects, interesting findings and noteworthy solutions, but will definitely throw in some random weirdness.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7231774400309902318</id><published>2011-09-16T16:05:00.001+02:00</published><updated>2011-09-16T16:06:50.493+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='personal'/><title type='text'>Too true to miss</title><content type='html'>Hello everybody,this blog has been dormant for quite a while now. Today, my buddy &lt;a href="http://rnm1978.wordpress.com/"&gt;Robin&lt;/a&gt; tweeted on a blog post which was imply too true and too good not to share. This prompted me to rethink my decision to abandon blogging and get this blog going again.So without much further ado, here's the promised link:&lt;a href="http://jamesmorle.wordpress.com/2011/09/16/right-practice/"&gt;http://jamesmorle.wordpress.com/2011/09/16/right-practice/&lt;/a&gt;James is spot-on with this one. Adding to his line "Best Practices are being used as an alternative to rational thought." I would like to point out one more thing which I see happening more and more often: Best Practices are being used as an excuse for not doing proper analyses or worse, justifications for sub-par implementations.Situational context can have a profound impact on the basic reasoning underyling a practice. Make sure to take it into account when choosing your Right practices.See ya!Thought of the day: Fas est et ab hoste doceri&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7231774400309902318?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7231774400309902318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2011/09/too-true-to-miss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7231774400309902318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7231774400309902318'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2011/09/too-true-to-miss.html' title='Too true to miss'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6132513842868919613</id><published>2010-05-24T22:35:00.004+02:00</published><updated>2010-05-24T23:14:26.937+02:00</updated><title type='text'>BI Forum - consolidated geekness awards</title><content type='html'>According to &lt;a href="http://obibb.wordpress.com/2010/05/24/rittmanmead-bi-forum-2010-wrap-up/"&gt;Daan Bakboord over here&lt;/a&gt;, Robin and me reached ultimate twitter geekness when I watched Daan tweeting, took a pic of him and tweeted it and Robin took a pic of me taking a pic of Daan tweeting...&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/zqXMIlb9lQuS1mJSKICY8dY46AZyKQ_wfXoUy88W5sw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S_rnp5PdkhI/AAAAAAAABOQ/8A42zmPa7DA/s800/tweet_daan.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/V8vxZytvNJuGPRiNmXoj7tY46AZyKQ_wfXoUy88W5sw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S_rnpQzdlLI/AAAAAAAABOI/O5ahK9qrXbc/s800/tweet_nephentur.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/M5ySeCR17gXh_-klfScjDNY46AZyKQ_wfXoUy88W5sw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S_rnps_Dl3I/AAAAAAAABOM/sA0-WgdtI2k/s800/tweet_rnm1978.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Well agreed it was kinda geeky in a web 2.0orhea kind of way. Still, I vote for this pic as the winner of the generic geek award, category t-shirt:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/nH6W9Eco8bj-4mPm8H4eVA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S_kZix_KOeI/AAAAAAAABLw/QiLYunprgeE/s400/IMAG0025.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So after this, here's all the pics I took:&lt;br /&gt;&lt;br /&gt;&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.com/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.com/christian.b.berg/BIBrightonForum?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S_kbZYCd4wE/AAAAAAAABMg/mz0vvg5Uipg/s160-c/BIBrightonForum.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.com/christian.b.berg/BIBrightonForum?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;BI Brighton Forum&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6132513842868919613?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6132513842868919613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/05/bi-forum-consolidated-geekness-awards.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6132513842868919613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6132513842868919613'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/05/bi-forum-consolidated-geekness-awards.html' title='BI Forum - consolidated geekness awards'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/S_rnp5PdkhI/AAAAAAAABOQ/8A42zmPa7DA/s72-c/tweet_daan.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3227856059992342593</id><published>2010-05-23T14:00:00.004+02:00</published><updated>2010-05-23T16:03:27.862+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='brighton'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='ODI'/><category scheme='http://www.blogger.com/atom/ns#' term='rittmanmead'/><category scheme='http://www.blogger.com/atom/ns#' term='forum'/><category scheme='http://www.blogger.com/atom/ns#' term='OBIA'/><title type='text'>BI Forum Brighton 2010</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;well what can I say...the &lt;a href="http://www.rittmanmead.com/biforum2010/"&gt;BI forum at the Brighton Marina&lt;/a&gt; was a blast. Almost the whole european blogger community was there and we had a real good time and extremely good discussions. Plus as of Friday we even had goo weather!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/U9Hp8k7kUrXj_UXxkJL_DA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S_kZzc2gBnI/AAAAAAAABL4/D_n4hI8329c/s400/IMAG0027.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Last things first, at the end we voted for the best speaker of the event and &lt;a href="http://rnm1978.wordpress.com/"&gt;Robin Moffatt&lt;/a&gt; won this year. Especially cool for him since we popped his speaker-cherry at this event ;-) So congrats Robin.&lt;br /&gt;&lt;br /&gt;The first day of the event was a masterclass on OBIEE with Kurt Wolff. I'm sure you all know him, but to re-iterate: he was part of the original nQuire team and is - as he says - responsible for some of the things which confuse people today.&lt;br /&gt;It's amazing to see how much of concepts and design decisions which were made by people like Kurt or Ed Suen back in 1998 are still the basis of what we do today...in almost unaltered form. @lex has a nice write-up &lt;a href="http://siebel-essentials.blogspot.com/2010/05/bi-forum-brighton-2010-day-1.html"&gt;over here&lt;/a&gt; and all I want to add to this is: thanks for your excellent presentation, Kurt. Brilliant explanantions and insights!&lt;br /&gt;&lt;br /&gt;At night before the dinner we had Phil Bates rocking up together with Mike Durran and Adam Bloom to give a keynote speech for this event on the topic of "a future version of one of their products that they're working on in the labs". So you might guess that he could have meant 11g but we can't be sure since the Oracle guys continued to use that phrase throughout the next 2 days ;-)&lt;br /&gt;Phil had some nice slides and we finally saw most of them demoed on a lab-version...so obviously no screenshots from there.&lt;br /&gt;&lt;br /&gt;Day 2 started off with Mike Durran again who seems to be getting the early-bird sessions every time. At least this time he got Wednesday so no real danger of too much impact from the "entertainment committee" aka "Ragnar and Borkur" (more on that later).&lt;br /&gt;Mike showed us the future architecture and systems management features of 11g. So obviously he had hard time finishing a single topic without questions and everyone was volunteering his speaker time to stay on subject (equally obviously that didn't happen). That first in-depth presentation clearly showed us all several things: first of all the learning curve won't be linear...not even exponential...it will be logarithmic. Can't really say much more but be prepared to be astonished. Unfortunately I was so concentrated on the topic that I didn't take a picture :-S (neither Kurt the day before actually...).&lt;br /&gt;&lt;br /&gt;Next up was speaker-award winner Robin Moffatt on "Performance Testing OBIEE". I think his example was the most thorough, well-structured and thought-through performance testing strategy I have seen at any clients side in the last 5 years. There's huge misconceptions on this topic out there and Robins presentation is a good guideline which covers the most important questions you have to ask yourself before going off to test your solution for performance. And here he is in action:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/UQX9LC4DoAH-1UTUuY-SNg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S_kXMSWdGsI/AAAAAAAABKc/S3SzJ1t_1d0/s400/IMAG0004.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next up was Elio Idema on "Complex Modelling with OBIEE". It was funny to see him more or less hitting similar topics as Kurt had the day before since it really enforced the main theme of this whole forum and the single most important recurring point in OBIEE projects: data modelling. He had some excellent points on how to procede in transforming entity-relationship data models into analysis-oriented star schemas in the physical layer and I would really suggest to anyone attempting such a feat to check out his slides and follow his main points. (I'll try and get him to blog on this as well).&lt;br /&gt;I only caught him on camera afterwards so here he is (on the right):&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/aGjsWh6hRxvkrZRPxTjYKA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S_kY2rs5hOI/AAAAAAAABLQ/66A3DzqUPto/s400/IMAG0017.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After lunch there was Emial van Bockel who hit the same spot with "The art of modelling with OBIEE". Like last year he had some interesting slides on the way his company models information, what concepts lie beneath these models and how they evolve. Quite obviously he spawned a lively debate; here we have &lt;a href="http://picasaweb.google.com/lh/photo/rLhC1GkrPKO9110TNVB_DA?feat=directlink"&gt;John Minkjan (left hand, turned), Robin Moffatt, Sukesh and Michal Zima&lt;/a&gt;: then we have &lt;a href="http://picasaweb.google.com/lh/photo/8helzknSTC7wUVi16asx8g?feat=directlink"&gt;Justin Townsend, Peter Scott and Michael Krantz.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next up we pestered Adam Bloom...i.e. he had his presentation and we constantly asked for more since his topic was "BI in and on the Business Process – New Innovations between BI 11g and BPM 11g". Adam is the Oracle Product Manager for the whole action framework so you can imagine that we took the liberty of going down to the nitty-gritty. The scope of the whole topic is so vast though that time ran out way too early.&lt;br /&gt;Here he is as he was most of the time: hacking away at a "future product that's in the lab":&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/tr1SbIS73mMLrnmG7b2fNA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S_kX7oN_HqI/AAAAAAAABK0/TMTxoMrJtwM/s400/IMAG0011.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After that we had a debate on "What should drive your modelling strategy from ELT to front end?" presented by Emial and myself. Obviously no pic I've taken, but good ol' @lex took one and I'm sure you agree we had &lt;a href="http://3.bp.blogspot.com/_f689sAiiG-E/S_ZlgYHlgWI/AAAAAAAABNk/Nr-DAld6dpQ/s1600/biforum-business-models.jpg"&gt;THE opening slide&lt;/a&gt; ;-)))&lt;br /&gt;&lt;br /&gt;With this we ended day 2 and after a short round of drinks in the bar, headed out for dinner. But this is a geek blog, so fast-forward to day 3.&lt;br /&gt;&lt;br /&gt;In order to slow him down and not have him win speaker-of-the-event by default, Antony Heljula got the morning session this time and in the audience you could see some victims of Ragnar-and-Borkurs "entertainment blitzkrieg". Well some you couldn't see because of follow-up negotionions with their pillows, but I disgress...&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/8puhjoVNoXK56b2djWnPPQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S_kXfZ65JHI/AAAAAAAABKs/jUUcuPDgIZU/s400/IMAG0009.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;Tony talked about "BI EE Architectures and Sizing" with several key hints and helps for sizing your architecture. Like Robins the day before, this presentation covers a topic which should be one of the core topics for each project but often "falls through the cracks" and results in either badly set up environments, hugely overpowered ones or awfully undersized ones.&lt;br /&gt;&lt;br /&gt;As a little intermezzo from my side: those three days in Brighton would have been a boon to any project out there and if you have 5 minutes, then get over to rittmanmead.com, get the contact details, get the presentations wherever possible, read them and learn from them.&lt;br /&gt;I don't think we re-invented the wheel or anything, but most of the topis covered simply can't be ignored in any project and were presented in a exquisitly researched form. Again, kudos to all of you guys. That's why I more or less booked my place for 2011 already.&lt;br /&gt;&lt;br /&gt;Next up we had a real celebrity. Mr. "Oracles Person of the year"...Mark Rittman! Here he is &lt;a href="http://picasaweb.google.com/lh/photo/iHuQeq6ZIMDtwWJkikR7cw?feat=directlink"&gt;scratching his nose&lt;/a&gt; ;-)&lt;br /&gt;Ok jokes aside not all of you may know the person-of-the-year story, so here's &lt;a href="http://www.rittmanmead.com/2010/04/23/what-happens-at-collaborate/"&gt;what Mark has to say&lt;/a&gt; but of course we knew before that &lt;a href="http://www.oraclenerd.com/2010/04/oracles-person-of-year.html"&gt;it's oraclenerds fault&lt;/a&gt;.&lt;br /&gt;Mark covered "Inside the Oracle BI Server" which was clearly one of the most nerdy tech topics. (Loved it and obviously voted for it). If you were ever wondering what a level 5 log file actually contains, what it means and how you influence which part of it...that's your presentation to look out for. I had done a fair share of log file archeology but Mark had some really cool new stuff in his presentation and thanks to the presence of "the godfather" Kurt Wolff we even got some additional informations which took this one presentation really to the next level.&lt;br /&gt;&lt;br /&gt;"ODI 11g: The New Generation of Data Integration" was then presented by Craig Stewart...&lt;a href="http://picasaweb.google.com/lh/photo/TBUEC_1Tl9nR9Lze4pC0Sg?feat=directlink"&gt;smile Craig!&lt;/a&gt;&lt;br /&gt;He reminded us first that 11g ODI was still not out there but we got the feeling that it's closer to us than another future-product-that's-still-in-the-lab. All in all I have to say that ODI grew quite a bit and contains neat new knowledge modules. Coming more from an OBIA background that plain ETL/ELT I obviously tried to get more information out of him regarding the next OBIA releases and ODIs importance within them but to no avail :-(  Still it was very nice to see in which direction ODI is evolving.&lt;br /&gt;&lt;br /&gt;The arrival of John Minkjan on the stage as the next presenter heralded a hugely funny intro to his presentation "OBIEE Customizations: When you are in the kitchen, learn to cook." Plus he looked quite neat as the only guy presenting in a suit&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/rTj2s8Nyf2fAUmUv_RsGCg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S_kZdBHL9nI/AAAAAAAABLs/0hb8fGzTVgs/s400/IMAG0024.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;John gave us a good beating on the different aspects of GUI design for dashboards. He has some major points I have to say. We all have seen the horror of gradients, 3D charts, animations all over the place and eye-cancer-inducing colour palettes. I agree with John; you really should read up on analysis- and interface-design if you want to present your information in a digestible format.&lt;br /&gt;&lt;br /&gt;Last but not least there was Venkat with his "Fusion Middleware 11g - ADF Business Intelligence Components" presentation. As one of the few things that's widely known and also officially confirmed by Oracle, ADF will become the new graphical layer of OBIEE in its next incarnation just as it has in other parts of the Oracle product stack already. This will definitely be an area where all of us will need to get more experience and dive into its depths since it really seems that for so many of the things we faked or tricked today in order to accommodate user requests for GUI behaviour or specific analysis types, ADF will be the answer.&lt;br /&gt;And here's Venkat gesturing while he explains a dogfight during the Battle of Britain:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/FWSBOeeMPu3G2wz3f4uShQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S_kZnEIGzoI/AAAAAAAABL0/IpXM6hAdN2k/s400/IMAG0026.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;(obviously not but that's the first things that came to my mind when reviewing my pictures).&lt;br /&gt;&lt;br /&gt;His session wrapped up the forum for 2010. If at all possible it was even better than 2009. We had Kurt Wolff over who gave us a history brush-up on OBIEE nee Siebel Analytics nee nQuire and showed us through his in-depth explanations just how well thought-out the concepts were which they defined 12 years ago and which still form the basis of our daily work.&lt;br /&gt;The speakers were high-class, the presentations to the point and on intriguing topics. No sales bladibla or "we are the best" company presentations.&lt;br /&gt;The discussions were very lively and people participated from A to Z with much vigor. That's just the thing that distinguishes this BI forum from others...we're not there to sell; we're not there to "steal" either by just sitting there, not opening our mouth since sharing our project experience is losing competitive advantage or something (you might get who I'm bashing here...). It's just industry-wide recognized cracks sharing, exchanging, learining and discovering together with a healthy portion of networking and most of all...fun!&lt;br /&gt;&lt;br /&gt;Thanks again to Mark, Jon and the whole RittmanMead crew for making this forum a possibility and to al of you other guys for participating.&lt;br /&gt;&lt;br /&gt;Hope to see you all again next year. It was awesome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3227856059992342593?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3227856059992342593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/05/bi-forum-brighton-2010.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3227856059992342593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3227856059992342593'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/05/bi-forum-brighton-2010.html' title='BI Forum Brighton 2010'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/S_kZzc2gBnI/AAAAAAAABL4/D_n4hI8329c/s72-c/IMAG0027.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7744273350097406775</id><published>2010-03-02T17:27:00.002+01:00</published><updated>2010-03-02T17:30:26.239+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><category scheme='http://www.blogger.com/atom/ns#' term='ETL'/><category scheme='http://www.blogger.com/atom/ns#' term='DWH'/><category scheme='http://www.blogger.com/atom/ns#' term='Exadata'/><category scheme='http://www.blogger.com/atom/ns#' term='DAC'/><category scheme='http://www.blogger.com/atom/ns#' term='OBIA'/><title type='text'>OBIA 7.9.6.1 Performance Recommendations</title><content type='html'>Thanks to &lt;a href="http://twitter.com/rnm1978"&gt;rnm1978&lt;/a&gt; for alerting me to the availability of this rather juicy document on MOS:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=870314.1"&gt;https://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=870314.1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And the really cool part?&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Oracle positions Exadata solution as fast and efficient hardware for addressing I/O bottlenecks in large volume environments. The internal benchmarks for running Oracle BI Applications on Exadata will be published soon.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Sweeeet!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7744273350097406775?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7744273350097406775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/03/obia-7961-performance-recommendations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7744273350097406775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7744273350097406775'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/03/obia-7961-performance-recommendations.html' title='OBIA 7.9.6.1 Performance Recommendations'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8258213718918173769</id><published>2010-02-22T16:49:00.003+01:00</published><updated>2010-02-22T22:07:44.223+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maps'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='mapviewer'/><category scheme='http://www.blogger.com/atom/ns#' term='google maps'/><title type='text'>OBIEE - Maps integration</title><content type='html'>I recently was asked about the different options of visualizing data in OBIEE on maps. Since many of the usual suspects (you'll see form the link-list below) have already blogged about this, it is easiest to provide a list with all good and informative articles rather than writing a completely new post. Here goes:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Google Maps:&lt;/span&gt;&lt;br /&gt;www.artofbi.com:&lt;br /&gt;&lt;a href="http://www.artofbi.com/index.php/2009/07/obiee-and-google-maps-integration/"&gt;http://www.artofbi.com/index.php/2009/07/obiee-and-google-maps-integration/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;John:&lt;br /&gt;&lt;a href="http://obiee101.blogspot.com/2008/10/obiee-using-google-maps-q-style.html"&gt;http://obiee101.blogspot.com/2008/10/obiee-using-google-maps-q-style.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Oracle Mapviewer / Oracle Spatial:&lt;/span&gt;&lt;br /&gt;Venkat:&lt;br /&gt;&lt;a href="http://oraclebizint.wordpress.com/2007/09/25/oracle-bi-ee-10133-and-mapviewer-step-by-step-integration-phase1/"&gt;http://oraclebizint.wordpress.com/2007/09/25/oracle-bi-ee-10133-and-mapviewer-step-by-step-integration-phase1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Gerard:&lt;br /&gt;&lt;a href="http://gerardnico.com/wiki/dat/obiee/presentation_service/obiee_dynamic_integration_oracle_map_nsdp"&gt;http://gerardnico.com/wiki/dat/obiee/presentation_service/obiee_dynamic_integration_oracle_map_nsdp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lapp, Conrad &amp; Sharma (OOW 2008):&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/mapviewer/pdf/mapviewer_obiee.pdf"&gt;http://www.oracle.com/technology/products/mapviewer/pdf/mapviewer_obiee.pdf&lt;/a&gt;&lt;br /&gt;Abhinav (OOW 2008):&lt;br /&gt;&lt;br /&gt;Maarten (RittmanMead Forum 2009):&lt;br /&gt;&lt;a href="http://www.rittmanmead.com/files/maarten_jan_kampen_obiee_mapviewer.pdf"&gt;http://www.rittmanmead.com/files/maarten_jan_kampen_obiee_mapviewer.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have any other good links - preferably with examples and code snippets - post a comment and I will update the list. Maybe we will get this into a sticky thread on OTN.&lt;br /&gt;&lt;br /&gt;See ya!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8258213718918173769?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8258213718918173769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obiee-maps-integration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8258213718918173769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8258213718918173769'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obiee-maps-integration.html' title='OBIEE - Maps integration'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8722596994339768485</id><published>2010-02-01T23:02:00.005+01:00</published><updated>2010-02-01T23:12:10.440+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='nqsconfig.ini'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation server'/><category scheme='http://www.blogger.com/atom/ns#' term='instanceconfig.xml'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><title type='text'>OBIEE 10g presentation server cache directory parameter</title><content type='html'>A while back our oraclenerd had a question about presentation server cache settings which he sent out through twitter.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Omqm2CUE1hVZZtZTUO8jkg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dQ6q8sNTI/AAAAAAAABE4/QBii1r4afxI/s800/008.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;rnm1978 and me answered to his distress call (emails not included. twitter's quite useless for sending instanceconfig.xml subsets ;-)).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/zL872-wtCM6QudcDvpw1xQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S2dQ7LvhfmI/AAAAAAAABE8/Qdee1Loe1kE/s800/009.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, I wanted to make it clear through this post, what part of the presentation server cache is actually managed by which parameter since there's a little gotcha in there.&lt;br /&gt;So basically we there are four parameter which exist for the presentation servers instanceconfig.xml (see also &lt;a href="http://knowledge.ciber.nl/weblog/OBIEE/OBIEE10340CONFIGURATIONTAGS.pdf"&gt;Johns pdf extract&lt;/a&gt;). By default they're not explicitly noted in the file so you need to specify them in order to change them. Here's a little sample with already modified paths:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/uv2rqqo9ynAtsoJrzL1-2A?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dRo60Dw0I/AAAAAAAABFE/uGnfgXxJHwU/s288/010.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now normally the cache files for the presentation server reside in the &lt;oraclebidatahome&gt;\tmp directory within the respective subdirectories sawcharts, sawrptcache and sawvc; with the xml cache files lying in the \tmp folder itself. Note that I cleaned out all files in the directory for in the screenshot below to have a clean testing baseline:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ZTWYNGDn6n6SKHXfW2rqCw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S2dO00VNEqI/AAAAAAAABD8/-hakcBNmOr0/s144/000_default_path.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Restarting the presentation server with the additional XML above gives me the following results:&lt;br /&gt;&lt;br /&gt;Chart cache:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/FCTj6TVxFFID3UWryVfA9g?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S2dO037gc3I/AAAAAAAABEA/bDC-gDQi4-0/s144/001_chart_cache.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Report cache:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Q6RCHapl5MO21vso8kcSxQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S2dO0_D6ZMI/AAAAAAAABEE/OGCtpMFb4Ys/s144/002_report_cache.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;State pool cache:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/hMLPZnnvL6gDX27ljOs5Xw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dQLfy5fyI/AAAAAAAABEw/k0Gkq0AzDro/s144/003_statepool_cache.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;XML cache:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/VxWjvnhNyjbCQGUlusn3ow?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dO1H0umFI/AAAAAAAABEI/ZwYUURSUAqE/s144/004_xml_cache.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;XML cache empty? Aha, seems there's an issue. Let's check the original path:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/I0GKJxQIKRzCq9zerkpy3Q?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dO1Rb9PiI/AAAAAAAABEM/Pdli0GUYT2A/s144/005_xml_cache_in_original_path.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The XML cache files are still here. Not really what we wanted. So the XMLCacheDefault CacheDirectory seems to be useless. At this point I actually created an SR on MyOracleSupport to confirm a hunch I had. Result:&lt;br /&gt;"With regards the parameter &lt;xmlcachedefaults&gt;, I have researched this and have not found any documentation on it, internally or published. Infact through my research it appears that it has never been the case that this parameter is used to determine the path of the nqsxxxx temp files.&lt;br /&gt;Previous versions of OBI i.e. Siebel Analytics document that the temp files generated by the Analytics Web server could be redirected by using the parameter 'TempDir' in Instance config or as a registry variable, in conjunction with the work directory path."&lt;br /&gt;&lt;br /&gt;So off to the NQSConfig.ini and change the WORK_DIRECTORY_PATHS:&lt;br /&gt;&lt;br /&gt;#WORK_DIRECTORY_PATHS = "C:\Oracle\OracleBIData\tmp";&lt;br /&gt;WORK_DIRECTORY_PATHS = "C:\DataSources\Cache\tmp";&lt;br /&gt;SORT_MEMORY_SIZE = 4 MB ;&lt;br /&gt;SORT_BUFFER_INCREMENT_SIZE = 256 KB ;&lt;br /&gt;VIRTUAL_TABLE_PAGE_SIZE = 128 KB ;&lt;br /&gt;&lt;br /&gt;After that, restart all the services and check again where the cache files went.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Jij_zHpBy9mnvr95-GHiZQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2dO6g-YGaI/AAAAAAAABEQ/sPGlywl6lJc/s144/006_here_they_are.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok now we know how to make the rest of the cache files elsewhere.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;/xmlcachedefaults&gt;&lt;/oraclebidatahome&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8722596994339768485?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8722596994339768485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obiee-10g-presentation-server-cache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8722596994339768485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8722596994339768485'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obiee-10g-presentation-server-cache.html' title='OBIEE 10g presentation server cache directory parameter'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_kh3-h2s8BmA/S2dQ6q8sNTI/AAAAAAAABE4/QBii1r4afxI/s72-c/008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6539762053663616294</id><published>2010-02-01T11:46:00.003+01:00</published><updated>2010-02-01T11:49:43.697+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='measure hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='fact'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>OBIEE/Essbase: how to handle missing facts</title><content type='html'>A question which I never covered in my blog yet since it was too basic and should normally work at all times when you import an Essbase cube:&lt;br /&gt;How do I get a fact to display in the BMM layer after importing a cube?&lt;br /&gt;&lt;br /&gt;The question came up &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=1019323&amp;tstart=50"&gt;here&lt;/a&gt; and basically has its origin in a bizarre cube outline. Correctly defined cubes will never face this (and hence no one covered it yet, though I already spoke about &lt;a href="http://hekatonkheires.blogspot.com/2009/10/obiee-10gr3-and-essbase-system-911.html"&gt;changing the measure hierarchy&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Let's look at an import without a working "fact" (in OBIEE terms...).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/6KV6Hv67a9oJ9rfB1e_ypg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S2avLWzXmFI/AAAAAAAABDE/BqALJ9aLav8/s800/001_no_facts.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No fact columns...but why? Let's open the properties of the physical cube table and check the properties of the hierarchy "Account" (my measure hierarchy).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/HXZqCLnmY77M2tnXHzBrxA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S2aus0S5d9I/AAAAAAAABCc/htTOIWaV29M/s288/002_wrong.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that's just wrong. The "fact" must be the measure hierarchy. Let's change that.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/r0iEXS7ZT81noZB85ekdHg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S2avLt6n25I/AAAAAAAABDI/q-ZQ_4cJa4I/s144/003_better.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Better. Now we're still missing the actual fact columns (i.e. the members of the measure hierarchy in the Essbase outline.). In my case that should be Costs, Gross Sales, Net Sales, Returns and Sales.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/atORzo_--UER4SM6C73hUg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S2autJ8iTpI/AAAAAAAABCg/mJ3ikXWBBzg/s288/005_cube_col_def.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/L0YpROvMIzMQ_gsppLuoVw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S2avL1OlCHI/AAAAAAAABDM/U-X4ysmxJlI/s288/004_new_cube_column.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Repeat that for the other four.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/oPXaBL2u1tKL_KPm6gMqiA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2auslypn_I/AAAAAAAABCo/LRh1SukS-fc/s800/006_all_done.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now drag-and-drop the whole thing to your BMM layer.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ajVS3VNsJhJZyNQBbjHeQg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S2awsHVTWNI/AAAAAAAABDU/WKmC-lI0Me0/s288/007_bob.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6539762053663616294?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6539762053663616294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obieeessbase-how-to-handle-missing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6539762053663616294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6539762053663616294'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/02/obieeessbase-how-to-handle-missing.html' title='OBIEE/Essbase: how to handle missing facts'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/S2avLWzXmFI/AAAAAAAABDE/BqALJ9aLav8/s72-c/001_no_facts.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6776579724038164800</id><published>2010-01-22T16:34:00.005+01:00</published><updated>2010-01-22T16:40:12.120+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='myoraclesupport'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Issues when using Firefox 3.6 on MyOracleSupport (flash version)</title><content type='html'>During the day I realized that MOS was acting strangely since I upgraded to FireFox 3.6 and @rnm1978 confirmed my findings just now:&lt;br /&gt;You can't directly read MOS knowledge items with Firefox 3.6&lt;br /&gt;&lt;br /&gt;Opening a knowledge items as usual (left-click - which should display the content on the right hand side of the screen) just pulls up a blank display:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kh3-h2s8BmA/S1nGO2Nb7KI/AAAAAAAABAE/QmWDB8wgyZ8/s1600-h/01-22-2010+4-29-03+PM.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 180px;" src="http://2.bp.blogspot.com/_kh3-h2s8BmA/S1nGO2Nb7KI/AAAAAAAABAE/QmWDB8wgyZ8/s400/01-22-2010+4-29-03+PM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5429588784144182434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You have to right-click the item and choose "Open Item in New Window" to see its content.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kh3-h2s8BmA/S1nGjzvgTAI/AAAAAAAABAM/JkKtNGfhsr4/s1600-h/01-22-2010+4-29-41+PM.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 86px;" src="http://3.bp.blogspot.com/_kh3-h2s8BmA/S1nGjzvgTAI/AAAAAAAABAM/JkKtNGfhsr4/s400/01-22-2010+4-29-41+PM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5429589144259021826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not very comfortable but there's always supporthtml.oracle.com as a fallback scenario.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6776579724038164800?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6776579724038164800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/01/issues-when-using-firefox-36-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6776579724038164800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6776579724038164800'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/01/issues-when-using-firefox-36-on.html' title='Issues when using Firefox 3.6 on MyOracleSupport (flash version)'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kh3-h2s8BmA/S1nGO2Nb7KI/AAAAAAAABAE/QmWDB8wgyZ8/s72-c/01-22-2010+4-29-03+PM.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4944478025231293020</id><published>2010-01-19T22:57:00.003+01:00</published><updated>2010-02-02T10:07:35.499+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='add column to physical layer from essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='dimension'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='UDML'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>OBIEE 10.1.3.4.1 / Essbase 9.3.1: UDML for cube outline changes - Part 2</title><content type='html'>First of all a little disclaimer: No, I haven't died in the meantime. Other topics took precedence over writing blog posts.&lt;br /&gt;&lt;br /&gt;Back on track, I recently received a question from Jeff Tam who also works on a hybrid OBIEE-Essbase solution. Funny enough, jsut this morning there was another question on this on the OTN OBIEE forum &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=1014646&amp;tstart=0"&gt;here&lt;/a&gt;. Basically being a follow up on my post &lt;a href="http://hekatonkheires.blogspot.com/2009/10/obiee-101341-essbase-931-udml-for-cube.html"&gt;here&lt;/a&gt; botg JEff and the poster on OTN wanted to know the detailed steps which are to be taken to manually extend dimensional hierarchies of already imported Essbase outlines in the RPD. Oracle has their own MOS Note on this issue &lt;a href="https://support.oracle.com/CSP/main/article?cmd=show&amp;type=NOT&amp;id=565039.1"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;"The workaround that the customer is using now is to copy this into a notepad, correct and paste it back." is a bit too minimalistic for my taste, so I'll take the concept in my previous post more into detail here.&lt;br /&gt;&lt;br /&gt;We'll start off with a 5 generation product hierarchy within an Essbase cube that's already in the RPD.&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/i4Szhn9s_GZ-Qt313W4Eag?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S1YqQSRVozI/AAAAAAAAA_Q/Ig5qOBiH9_A/s800/001_prod_hier.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In Essbase, the outline for the product hierarchy has grown from 5 levels to 6. In order to represent this, we repeat the steps outlined &lt;a href="http://hekatonkheires.blogspot.com/2009/10/obiee-101341-essbase-931-udml-for-cube.html"&gt;earlier&lt;/a&gt; and &lt;br /&gt;&lt;br /&gt;a) create the new physical cube column "Gen6,Product"&lt;br /&gt;b) add the new physical level "Gen6,Product" to the existing "Product" hierarchy object&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/s4LlrQcWgpoHTXw2FsOWPQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/S1YqQtixNpI/AAAAAAAAA_U/50eInDBUPx8/s800/002_prod_hier_extended.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now that we have the structure built in the RPD, off to correcting the external level number (which isn't possible through the Administration Tool!). For this we save the RPD and close the Admin Tool.&lt;br /&gt;&lt;br /&gt;Open a command window and navigate to your &lt;OracleBI&gt;\server\bin folder. Then we run the UDML command line to create a txt representation of the RPD in question (paths and filenames need to be adjusted to your needs of course):&lt;br /&gt;&lt;br /&gt;C:\Oracle\OracleBI\server\Bin&gt;nqudmlgen.exe -u Administrator -p Administrator -r "C:\Oracle\OracleBI\server\Repository\Showcase_002.rpd" -o "C:\Oracle\OracleBI\server\Repository\UDML\Showcase_002.txt" -8 -N&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/_jrIF3q7ocqMcuOA-ezM3Q?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S1YqQvq8JYI/AAAAAAAAA_Y/ktompQ64xFQ/s800/003_nqudmlgen_cmd.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Open the resulting txt file in your trusty notepad and search for DECLARE PHYSICAL LEVEL "Sample Accounts"."LOGIC_A".."LOGIC"."Product"."Gen6,Product"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/-3F1QOPUF4F0JLILXqjsag?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S1YqQwKl0HI/AAAAAAAAA_c/k09Bdapowo0/s400/004_udml_phys_level.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Modify the the "LEVEL NUMBER EXTERNAL" line to reference the correct external level. WARNING: counting starts at 0! So Gen6,Product is &lt;br /&gt;&lt;br /&gt;LEVEL NUMBER 5 EXTERNAL "Gen6,Product"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/7bxsqwVw49NoRtFm4f-lwA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/S1YqQyYvT7I/AAAAAAAAA_g/CEkilfiuNk0/s400/005_udml_phys_level_fixed.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Save the txt file. Switch back to you command window and run the nqudmlexec command to recreate the RPD from the modified definitions:&lt;br /&gt;&lt;br /&gt;C:\Oracle\OracleBI\server\Bin&gt;nqudmlexec.exe -u Administrator -p Administrator -I "C:\Oracle\OracleBI\server\Repository\UDML\Showcase_002.txt" -O "C:\Oracle\OracleBI\server\Repository\Showcase_003.rpd" -8&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/OM315paiJkxb4CCCSbQw3g?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/S1YqT8hxpQI/AAAAAAAAA_k/13tCG6w8Yxs/s800/006_nqudmlexec_cmd.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After that you're done and the dimensional level can now be accomodated normally in your BMM and presentation layers.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4944478025231293020?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4944478025231293020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2010/01/obiee-101341-essbase-931-udml-for-cube.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4944478025231293020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4944478025231293020'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2010/01/obiee-101341-essbase-931-udml-for-cube.html' title='OBIEE 10.1.3.4.1 / Essbase 9.3.1: UDML for cube outline changes - Part 2'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_kh3-h2s8BmA/S1YqQSRVozI/AAAAAAAAA_Q/Ig5qOBiH9_A/s72-c/001_prod_hier.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-1808262865178249166</id><published>2009-12-11T14:34:00.003+01:00</published><updated>2009-12-11T14:38:32.138+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='column sort'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><category scheme='http://www.blogger.com/atom/ns#' term='table view'/><category scheme='http://www.blogger.com/atom/ns#' term='dashboard'/><title type='text'>OBIEE 10gR3 generic: Multiple custom sort on table view</title><content type='html'>Ok, be honest here for a moment guys: who of you was aware that you can &lt;a href="http://translate.googleusercontent.com/translate_c?hl=en&amp;ie=UTF-8&amp;sl=cs&amp;tl=en&amp;u=http://bidwcz.blogspot.com/2009/12/vicenasobne-razeni-sloupcu-v-tabulce-na.html&amp;rurl=translate.google.com&amp;twu=1&amp;usg=ALkJrhjr45kkfJcx_2ghhljDO95QcrTPrQ"&gt;sort on multiple columns in a table view&lt;/a&gt; rendered in a dashboard?&lt;br /&gt;&lt;br /&gt;Kudos to &lt;a href="http://translate.google.com/translate?u=http%3A%2F%2Fbidwcz.blogspot.com%2F&amp;sl=cs&amp;tl=en&amp;hl=en&amp;ie=UTF-8"&gt;Erick&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-1808262865178249166?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/1808262865178249166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/12/obiee-10gr3-generic-multiple-custom.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1808262865178249166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1808262865178249166'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/12/obiee-10gr3-generic-multiple-custom.html' title='OBIEE 10gR3 generic: Multiple custom sort on table view'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2834982538470529663</id><published>2009-10-28T22:24:00.001+01:00</published><updated>2009-10-28T22:26:13.264+01:00</updated><title type='text'>OBIEE 10gR3 and Essbase System 9/11: Changing the measure dimension of a cube import in the RPD</title><content type='html'>Something I wanted to post since a while and was just asked again today: when you import a cube with multiple measure hierarchies into an OBIEE rpd...what are the steps to swtich from using one measure hierarchy to another?&lt;br /&gt;&lt;br /&gt;Let's start with a very simple cube which was imported as uses "Account" as its default measure hierarchy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/q4XlsHk_PdDgNT01aS6uPQ?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Suit5Eplz3I/AAAAAAAAA7A/yn3ZBWSAeXw/s800/0001_Accounts_phys.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the structure you see the second measure hierarchy "Scenario" as one of the dimensions. I want to use "Scenario" as our measure dimension and hence our fact in the Business Model. The first thing to do is to clone the whole physical object "Sample Accounts":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/_XcVL8mz2ZT2oUgpDPvsmg?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Suit5h4DUNI/AAAAAAAAA7E/Gy-63SsR2-s/s800/0002_accounts_clone.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In step 2 I double-click the "Custom" physical cube table, to the hierarchy tab and open the "Account" hierarchy.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/nl1c_Ttd7C7SCh7VlhiQPA?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Suiy-u5waBI/AAAAAAAAA78/Fgr0yHQ2_2s/s800/0003a_accounts_dim.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note the dimension type currently is "Measure Dimension". I change this to "Other" to transform "Account" into a normal dimension where OBIEE is concerned.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/jh3w41Ix7B8zJiVMq8w7nQ?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Suit59XnMaI/AAAAAAAAA7I/6SerKCbKuow/s400/0003_accounts_dim.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now confirming with "Ok" shows us the effect of this change:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/dsZnhBldO1ktTATZPJv4Yg?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/Suit2TdOMqI/AAAAAAAAA6k/KcA_7vYDvfI/s800/0004_both_hierarchies.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now both our dimensions "Account" and "Scenario" are showing as hierarchy objects. The physical cube columns "Net Sales", "Margin" etc. are useless now so I delete them. Next up is the change of "Scenario" into the new measure hierarchy and hence the fact. Again I go into the properties of the hierarchy object and change its dimension type to "Measure Dimension":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/3p5BFwdF9ehsSuMZ6pX6DQ?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Suit2xWfQ_I/AAAAAAAAA6o/v6yrflR86zc/s400/0005_scenarios_dim.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That removes the "Scenario" dimension from the display in the physical layer:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/dslZSHNGcWcVfWth4nt_4A?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/Suit3A1XYjI/AAAAAAAAA6s/neTH0HQuqSk/s800/0006_scenarios_gone.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What is missing now are the actual members inside the Scenario dimension. During import all the account members are created automatically as physical cube columns. A simple change of the dimension type doesn't automatically create the corresponding cube columns, so I do it manually:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ufqNMD4wXBcKSsXLU2knkw?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/Suit3SivCGI/AAAAAAAAA6w/OnRp64_Emok/s400/0007_create_phys_cube_column.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's actually very simple, you just need to take care to exactly match the MEMBER_NAME property or the ALIAS from Essbase. And make sure to follow the standard: if there's an alias, use the alias otherwise use the member name. In my case I just quickly create two physical cube columns "Actual" and "Budget":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/A7J4ipnHi00Ew7pocp6pzQ?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Suit306mQ_I/AAAAAAAAA60/2tDBL1DjFpg/s800/0008_actual_scenario.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/mLp3B4Vw1OuF-GE4idBPTA?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Suit4JGpWaI/AAAAAAAAA64/t3ioloURjUA/s800/0009_budget_scenario.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And with that I'm done. I now have a new representation of my cube using the scenario dimension with its members as the measure dimension for analysis and the fact of the OBIEE Business Model:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/bZWwxmxF17VwlXCeCro8HA?authkey=Gv1sRgCPDZ_c-Z58HBrgE&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Suit4jMcSdI/AAAAAAAAA68/ODodeg-EtXs/s800/0010_full_scenario.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2834982538470529663?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2834982538470529663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-10gr3-and-essbase-system-911.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2834982538470529663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2834982538470529663'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-10gr3-and-essbase-system-911.html' title='OBIEE 10gR3 and Essbase System 9/11: Changing the measure dimension of a cube import in the RPD'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_kh3-h2s8BmA/Suit5Eplz3I/AAAAAAAAA7A/yn3ZBWSAeXw/s72-c/0001_Accounts_phys.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2231158881984237171</id><published>2009-10-21T19:42:00.002+02:00</published><updated>2009-10-21T20:11:02.804+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='data source'/><title type='text'>OBIEE 10.1.3.4.1 - Dynamic data source switching</title><content type='html'>I stumbled upon &lt;a href="http://shivbharti.blogspot.com/2009/10/switching-report-data-source-namedsn-or.html"&gt;a post from Shiv Bharti&lt;/a&gt; and thought I'd expand a bit on this idea. First of all to prevent the necessity of using the "Advanced" tab; one of the "don't do this at home, kids" parts of Answers. Secondly since just recently there was yet another question on OTN asking for advice on how to assign / force new values to a session variable during runtime.&lt;br /&gt;&lt;br /&gt;Let's do the example with an Essbase cube as a data source to showcase that this approach works with any data source. First, I create an initialization block which goes against an Oracle 10gR2 source to be able to write a simple dummy select statement from DUAL indicating CoFSM42 as my default Essbase server. CoFSM41 is a backup instance and hence my Essbase server which I want to switch to in order to see what the backup contains in terms of data loads (in this example, 42 will contain data until today whereas 41 will be the backup from last week, so no data this week).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5Y8RVccolJXmgr_RaU-31A?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/St9E_ubDIHI/AAAAAAAAA5I/uCaKL_kvCTg/s400/0002_init_block.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;select 'CoFSM42' from DUAL&lt;br /&gt;&lt;br /&gt;Of course you can implement more elaborate solutions with control tables holding the servers and schemas of your different environment and instances.&lt;br /&gt;&lt;br /&gt;In the connection pool to my Essbase source, I change the "Essbase Server" parameter to "VALUEOF(NQ_SESSION.Essbase_Server)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/fKuf6hl9wWmL_dOvkXSH0w?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/St9E_iU4neI/AAAAAAAAA5E/uGx74muoGUU/s800/0001_conn_pool.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Starting the server, let's to a quick check of the data through answers by using the approach Shiv proposed. First, I create the request on my standard subject area which currently points to CoFSM42 due to the session variable.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/pQ2qBMIy45SU5an_Q6WGQQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/St9E_OlJgOI/AAAAAAAAA4o/K6XILW7UTPI/s800/0003_request.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/9VK0Qp4RNvYYaHpSx9H1Xg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/St9E_S98VNI/AAAAAAAAA4s/AUGEYmhBqyg/s800/0004_current_results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I see that the data I entered for this week is present. Using the SET VARIABLE prefix, I change the source to CoFSM41.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/2HifHqAWmcd7_v2z6WWN6g?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/St9E_SPUrTI/AAAAAAAAA4w/m9J3se3Hz2w/s400/0005_set_variable_prefix.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/cf3dz4XAvU6utkfuG_rJJQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/St9E_oMaYeI/AAAAAAAAA44/z8ZE9PCDlG8/s400/0006_backup_results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok, that's empty. Now off to making this switch available on the dashboard through a prompt. The prompt is a fake prompt simply unioning my two server names. Here again, you may use a control table which holds your servers.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/sjQlneeaWyP1AsxF47GoEQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/St9E_iqWdxI/AAAAAAAAA5A/pg0siElcOQA/s400/0007_prompt.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The important bit is to choose "Set Variable" as "Request Variable" and in the variable name "Essbase_Server" (my session variable used in the connection pool). Now I combine the prompt and the request in a dashboard to see the effect the "Set Variable" has on the request I've built. Bear in mind that there is no "is prompted" speficication or filter on that request apart from my week specification.&lt;br /&gt;&lt;br /&gt;Here's the results prompted with the current server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/vLpaLWGvP433xz0pvPP6vQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/St9E_rv1KFI/AAAAAAAAA48/SnD3Ej1QASo/s400/0008_dashboard_current.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here the ones for the backup server:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Ydu0y8eqhZePKEh_-IqNCw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/St9E_rqCOAI/AAAAAAAAA40/64PoAQHpSNs/s400/0009_dashboard_backup.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So the prompt nicely switches between the different data sources for us without the need of Answers access or within Answers the need to play with the query prefix. Plus, it has shown the use of prompts to changes the values assigned to session variables during runtime.&lt;br /&gt;&lt;br /&gt;Now for all those who were hoping for another OBIEE/Essbase post or are thinking about using this to switch cubes easily in their architecture:&lt;br /&gt;Unfortunately this approach can NOT be used to easily switch between cubes. And who's to blame? The substitution variables.&lt;br /&gt;&lt;br /&gt;Essbase substitution variables, when defined on database level ("cube" in OBIEE terminology), arrive in the form of "server:application:database:varaiable". E.g.: "CoFSM42:Sample:Basic:vCurQtr".&lt;br /&gt;The "CoFSM42" bit can't be switched out using a variable since the variable name is always interpreted as a literal string. Taking the example from above, doing something like "VALUEOF(NQ_SESSION.Db_Server):Sample:Basic:vCurQtr" won't work since the variable is then actually called "VALUEOF..."&lt;br /&gt;&lt;br /&gt;Pity, since that would make your development and testing of different Essbase sources extremely flexible.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2231158881984237171?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2231158881984237171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-101341-dynamic-data-source.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2231158881984237171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2231158881984237171'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-101341-dynamic-data-source.html' title='OBIEE 10.1.3.4.1 - Dynamic data source switching'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_kh3-h2s8BmA/St9E_ubDIHI/AAAAAAAAA5I/uCaKL_kvCTg/s72-c/0002_init_block.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7497439829072077380</id><published>2009-10-15T21:50:00.002+02:00</published><updated>2009-10-15T22:11:44.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='UDML'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>OBIEE 10.1.3.4.1 / Essbase 9.3.1: UDML for cube outline changes</title><content type='html'>UDML constantly keeps popping up in conversartions, questions I receive and - as can be seen from a quick query - on the OBIEE OTN forum. So before I go on with this post, a reminder: UDML is NOT supported as an rpd modification mechanism! Everything you do is at your own risk.&lt;br /&gt;&lt;br /&gt;Right-o. I'd like to tie my post to the official OBIEE-Essbase modelling guide which can be found &lt;a href="http://www.oracle.com/technology/products/bi/pdf/obiee-essbase-modeling-guide.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Page 8, paragraph 4.1 "Subsequent Changes to the Essbase Outline" mentions the following:&lt;br /&gt;&lt;br /&gt;"Cube structure changes (that is, adding or deleting dimensions, and levels) require either a re-import of the cube, or manual modification to the BI Server physical metadata objects to reflect changes."&lt;br /&gt;&lt;br /&gt;This is something that quite some people have contacted me about and honestly, I doubt that there's really any case which justifies re-import of a cube if you know your way around the Admin Tool and UDML. Even though it's an Essbase source! (I'll stick to using the term "cube" to denominate Essbase "databases" for this post.)&lt;br /&gt;One thing needs to be noted though. It's a small thing, but it basically forces you to use UDML rather than manual modification through the Admin Tool.&lt;br /&gt;&lt;br /&gt;Let's start with a basic cube which I have already imported into my RPD while I was still developing on the Essbase side. So far - where OBIEE is concerned - it only consists several accounts which I can analyze by time.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/RxHGeI8GOUQOXdNLwcJcKg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Std-GfM-b6I/AAAAAAAAA3k/eOVRacJVNJg/s800/0001_rpd_phys_layer_start.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the Essbase side, the cube has grown somewhat and I've added my "Scenario" dimension.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/NyaG995UWo_lWaLng8FfIQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Std-F_3rZ4I/AAAAAAAAA3I/XnLdRVFYvEI/s800/0002_Outline_with_Scenario.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To get this into OBIEE, I have two possibilities: re-import of the cube of manual creation of the dimension in the physical layer. Not wanting to lose my work on the BMM and Presentation layers, I choose the latter.&lt;br /&gt;&lt;br /&gt;Right-clicking on the "Physical Cube Table" object, select "New Object" -&gt; "Hierarchy".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/R7eUCE6HQSMp2xKNcI47oA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Std-GbWWgPI/AAAAAAAAA3g/PAh0Y59VE2Q/s800/0003_rpd_scneario_hierarchy.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then create two new "Physical Cube Columns" below the physical cube table:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Big6YxnnRGleQEgPe8_7SA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Std-GqRM-RI/AAAAAAAAA3o/G7ac_7YDDYo/s800/0004_rpd_phys_cube_column.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now I have the hierarchy and the two columns:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/68yIzuKuJJ9DjBhInOp4rw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Std-GEBT38I/AAAAAAAAA3U/kTooH8TUvCI/s800/0005_rpd_hier_column_objects.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next we create the actual hierarchy tree out of them. "New Physical Level":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5Av3__s811CoeLNvYsMfkg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Std-GZY6qeI/AAAAAAAAA3Y/mZ5nGSPmUEs/s800/0006_rpd_phys_hier_level.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And add the column:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/UCtorvsGzrihyVrEhKv-zw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/Std-GU-IVDI/AAAAAAAAA3c/1y_oDBdJO-o/s800/0007_rpd_phys_level_col.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And the same thing for level 2 giving us this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/sBNAVc7X-LNTEp97tXWNQg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Std-FwMvADI/AAAAAAAAA3E/r82tmmkScI0/s800/0008_scenario_hierarchy.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now this structure is correct, usable and transformable into a corresponding business model:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CzXKfxBehu9qGVwb4fpOxA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Std-FwEHGoI/AAAAAAAAA3M/1UDzlgipnB8/s800/0009_rpd_scenario_bmm.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However in the background there is one little thing going wrong which can give you headache in Answers...especially since tracking down the source of the weird errors this produces is a real pain. I have to admit it took me a while to figure it out.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/7CAUFFhVbMWFgvHRNRF2yQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/Std-GJ0QHtI/AAAAAAAAA3Q/pIrKs18c978/s800/0010_rpd_hierarchy_copy.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's take both the time and the scenario hierarchy and copy+paste them into a text editor.&lt;br /&gt;&lt;br /&gt;Looking at the top level of the exported UDML, the two hierarchies are alike and don't differ:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;DECLARE HIERARCHY "Demo"."Sample".."CustomDemo"."Time" AS "Time" UPGRADE ID 2161957949 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen1,Time",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen2,Time",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen3,Time",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen4,Time",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen5,Time",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Time"."Gen6,Time" ) MEMBER TYPE ALL EXTERNAL "Time"&lt;br /&gt; FULLY BALANCED&lt;br /&gt; BELONGS TO TIME DIMENSION&lt;br /&gt; DIMENSION UNIQUE NAME "Time" TYPE 1&lt;br /&gt; ALIASES NOT UNIQUE&lt;br /&gt; PRIVILEGES ( READ);&lt;br /&gt;DECLARE PHYSICAL LEVEL "Demo"."Sample".."CustomDemo"."Time"."Gen1,Time" AS "Gen1,Time" UPGRADE ID 2161959167 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Gen1,Time" )&lt;br /&gt; KEY "Demo"."Sample".."CustomDemo"."Gen1,Time"&lt;br /&gt; LEVEL NUMBER 0 EXTERNAL "Gen1,Time"&lt;br /&gt; PRIVILEGES ( READ);&lt;br /&gt;&lt;br /&gt;DECLARE HIERARCHY "Demo"."Sample".."CustomDemo"."Scenario" AS "Scenario" UPGRADE ID 2161960605 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Scenario"."Gen1,Scenario",&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Scenario"."Gen2,Scenario" ) MEMBER TYPE ALL EXTERNAL "Scenario"&lt;br /&gt; FULLY BALANCED&lt;br /&gt; DIMENSION UNIQUE NAME "Scenario" TYPE 3&lt;br /&gt; ALIASES NOT UNIQUE&lt;br /&gt; PRIVILEGES ( READ);&lt;br /&gt;DECLARE PHYSICAL LEVEL "Demo"."Sample".."CustomDemo"."Scenario"."Gen1,Scenario" AS "Gen1,Scenario" UPGRADE ID 2161960612 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Gen1,Scenario" )&lt;br /&gt; KEY "Demo"."Sample".."CustomDemo"."Gen1,Scenario"&lt;br /&gt; LEVEL NUMBER 0 EXTERNAL "Gen1,Scenario"&lt;br /&gt; PRIVILEGES ( READ);&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Looking at the two respective extracts for the second level, we see the difference:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;DECLARE PHYSICAL LEVEL "Demo"."Sample".."CustomDemo"."Time"."Gen2,Time" AS "Gen2,Time" UPGRADE ID 2161959169 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Gen2,Time" )&lt;br /&gt; KEY "Demo"."Sample".."CustomDemo"."Gen2,Time"&lt;br /&gt; LEVEL NUMBER 1 EXTERNAL "Gen2,Time"&lt;br /&gt; PRIVILEGES ( READ);&lt;br /&gt;&lt;br /&gt;DECLARE PHYSICAL LEVEL "Demo"."Sample".."CustomDemo"."Scenario"."Gen2,Scenario" AS "Gen2,Scenario" UPGRADE ID 2161960614 HAVING&lt;br /&gt; (&lt;br /&gt;   "Demo"."Sample".."CustomDemo"."Gen2,Scenario" )&lt;br /&gt; KEY "Demo"."Sample".."CustomDemo"."Gen2,Scenario"&lt;br /&gt; LEVEL NUMBER 0 EXTERNAL "Gen2,Scenario"&lt;br /&gt; PRIVILEGES ( READ);&lt;/blockquote&gt;&lt;br /&gt; &lt;br /&gt;For the imported hierarchy "Time", the "LEVEL NUMBER EXTERNAL" is correctly incremented and stored as "1" (and in fact represents the level number in Essbase) while for the manually created hierarchy "Scenario" the external level number stayed at "0".&lt;br /&gt;If you have hierarchies with more than 2 levels, each level from 1 to N has an external level number of "0".&lt;br /&gt;&lt;br /&gt;In the rpd, there is no way for you to affect the external level number, so UDML is your only choice. In all honesty, I normally write my new dimension hierarchies - which should be reflected in the rpd due to cube changes - simply inside a text editor. Starting with an existing hierarchy which I copy+paste, I then write the UDML to fit the Essbase outline and then adapt the external level number to fit the real Essbase level number.&lt;br /&gt;&lt;br /&gt;With that problem out of the way there's really nothing you can't represent in terms of cube outline changes without having to re-import the whole thing.&lt;br /&gt;&lt;br /&gt;So much for today. Until next time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7497439829072077380?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7497439829072077380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-101341-essbase-931-udml-for-cube.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7497439829072077380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7497439829072077380'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/obiee-101341-essbase-931-udml-for-cube.html' title='OBIEE 10.1.3.4.1 / Essbase 9.3.1: UDML for cube outline changes'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/Std-GfM-b6I/AAAAAAAAA3k/eOVRacJVNJg/s72-c/0001_rpd_phys_layer_start.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4403342058833909049</id><published>2009-10-11T13:30:00.003+02:00</published><updated>2009-10-11T13:38:49.883+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><category scheme='http://www.blogger.com/atom/ns#' term='OTN'/><title type='text'>1 kilopost on OTN</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kh3-h2s8BmA/StHB-6ZqFFI/AAAAAAAAA1g/VAAuAAH2940/s1600-h/10-09-2009+2-09-27+PM.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 91px; height: 48px;" src="http://1.bp.blogspot.com/_kh3-h2s8BmA/StHB-6ZqFFI/AAAAAAAAA1g/VAAuAAH2940/s400/10-09-2009+2-09-27+PM.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5391303515512116306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Geeky, I know...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4403342058833909049?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4403342058833909049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/1-kilopost-on-otn.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4403342058833909049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4403342058833909049'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/10/1-kilopost-on-otn.html' title='1 kilopost on OTN'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kh3-h2s8BmA/StHB-6ZqFFI/AAAAAAAAA1g/VAAuAAH2940/s72-c/10-09-2009+2-09-27+PM.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2199585098134702115</id><published>2009-09-03T11:50:00.004+02:00</published><updated>2009-09-03T11:56:04.338+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Thomas Siebel's Hydaspes moment</title><content type='html'>Tom Siebel was attacked by an elephant while on a photo safari back in August, but I actually didn't hear about it until now:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.theregister.co.uk/2009/09/03/siebel_elephant_attack/"&gt;http://www.theregister.co.uk/2009/09/03/siebel_elephant_attack/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What can I say? Damn, what a holiday...wish you a complete recovery!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2199585098134702115?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2199585098134702115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/09/thomas-siebels-hydaspes-moment.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2199585098134702115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2199585098134702115'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/09/thomas-siebels-hydaspes-moment.html' title='Thomas Siebel&apos;s Hydaspes moment'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-997692052265837285</id><published>2009-09-03T10:36:00.003+02:00</published><updated>2009-09-03T10:38:38.894+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Jeff McQuigg's new blog location</title><content type='html'>Jeff McQuigg moved his blog away from IT Toolbox so I thought I'd quickly share this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://greatobi.wordpress.com/"&gt;http://greatobi.wordpress.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-997692052265837285?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/997692052265837285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/09/jeff-mcquiggs-new-blog-location.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/997692052265837285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/997692052265837285'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/09/jeff-mcquiggs-new-blog-location.html' title='Jeff McQuigg&apos;s new blog location'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6768932042533471500</id><published>2009-08-31T11:46:00.002+02:00</published><updated>2010-02-05T10:27:04.536+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>Essbase cube imports do not correctly generate the business model (dimensions, logical tables,…)</title><content type='html'>I realized this one while importing a rather large cube on a test machine. After the initial import of the cube definitions into the physical layer, I pulled everything over into the BMM layer and saw that dimensions I’d expect were missing completely from the business model. Checking back on the physical layer I saw the corresponding hierarchies were missing as well.&lt;br /&gt;&lt;br /&gt;Re-importing and fumbling around didn’t resolve this while doing a cross-check import on my laptop produced a correct representation in both the physical layer and the BMM layer.&lt;br /&gt;&lt;br /&gt;Luckily, it seems I wasn’t the only one hitting this issue since a Metalink search yielded document 872342.1. The issue is, that the Essbase API doesn’t find enough open ports to import the outline successfully.&lt;br /&gt;&lt;br /&gt;Workaround: Open the registry and navigate to:&lt;br /&gt;&lt;br /&gt;\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters&lt;br /&gt;&lt;br /&gt;Modify / create the DWORD parameter “MaxUserPort” to / with value 65534. Then apply the changes, start the Admin Tool again and re-run the import.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/nnPs7k0C7G9wmGlmVb0YMA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/S2vj-jb6YfI/AAAAAAAABHM/cHcx-W0EAUY/s400/DWORD.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6768932042533471500?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6768932042533471500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/08/essbase-cube-imports-do-not-correctly.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6768932042533471500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6768932042533471500'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/08/essbase-cube-imports-do-not-correctly.html' title='Essbase cube imports do not correctly generate the business model (dimensions, logical tables,…)'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kh3-h2s8BmA/S2vj-jb6YfI/AAAAAAAABHM/cHcx-W0EAUY/s72-c/DWORD.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-985071395002682498</id><published>2009-07-28T23:30:00.002+02:00</published><updated>2009-07-28T23:45:15.786+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='bi applications'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='rittmanmead'/><title type='text'>RittmanMead Oracle BI Training Days 2009</title><content type='html'>I'm pleased to announce that the &lt;a href="http://www.rittmanmead.com/trainingdays2009/"&gt;RittmanMead training days&lt;/a&gt; for Oracle BI are now officially open for registration. &lt;br /&gt;&lt;br /&gt;Speakers at this event will be Mark Rittman, Venkat Janakiraman and myself.&lt;br /&gt;&lt;br /&gt;Agenda:&lt;br /&gt;&lt;br /&gt;Day 1&lt;br /&gt;  o Oracle BI and EPM architecture overview – Mark Rittman&lt;br /&gt;  o Oracle BI EE Data Modeling against DW and 3NF sources – Mark Rittman&lt;br /&gt;  o Oracle BI Delivers + Integration with Java and BI Publisher – Venkat Janakiraman&lt;br /&gt;  o What’s new in Oracle BI, DW and EPM from Oracle Open World – Mark Rittman&lt;br /&gt;&lt;br /&gt;Day 2&lt;br /&gt;  o Oracle BI EE Data Modeling against Essbase – Venkat Janakiraman&lt;br /&gt;  o Leveraging MDX functions and calculations in OBIEE – Christian Berg&lt;br /&gt;  o Integrating Security across OBIEE and EPM – Venkat Janakiraman&lt;br /&gt;  o I can do this in Hyperion – how do I do it in OBIEE? – Christian Berg and Venkat Janakiraman&lt;br /&gt;&lt;br /&gt;Day 3&lt;br /&gt;  o OBIEE Systems Management with OEM BI Mgmt Pack – Mark Rittman&lt;br /&gt;  o OBIEE Configuration Management Best Practices – Christian Berg&lt;br /&gt;  o ODI functionality in Oracle BI Applications – Mark Rittman&lt;br /&gt;  o ODI Integration with Essbase, Planning and Oracle EPM Suite – Venkat Janakiraman&lt;br /&gt;&lt;br /&gt;Once more, here's the link to the full event details:&lt;br /&gt;&lt;a href="http://www.rittmanmead.com/trainingdays2009/"&gt;http://www.rittmanmead.com/trainingdays2009/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find the registration page at &lt;a href="http://www.regonline.co.uk/rmtrainingdays2009"&gt;http://www.regonline.co.uk/rmtrainingdays2009&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-985071395002682498?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/985071395002682498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/rittmanmead-oracle-bi-training-days.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/985071395002682498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/985071395002682498'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/rittmanmead-oracle-bi-training-days.html' title='RittmanMead Oracle BI Training Days 2009'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-746009991756469350</id><published>2009-07-23T19:56:00.001+02:00</published><updated>2009-07-23T20:03:02.554+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='web catalog'/><title type='text'>OBIEE 10.1.3.4.1 - Catalog path containing "."</title><content type='html'>I was just testing multiple web catalogs when I realized that it's a bad idea to put version numbers into the web catalog name.&lt;br /&gt;&lt;br /&gt;As an example, I have my web catalog "samplesales_paint_v1.3" sitting ready in OracleBIData\web\catalog and my instanceconfig.xml looking like this:&lt;br /&gt;&lt;br /&gt;&lt; ?xml version="1.0" encoding="utf-8"?&gt;&lt;br /&gt;&lt; WebConfig&gt;&lt;br /&gt;   &lt; ServerInstance&gt;&lt;br /&gt;   &lt; DSN&gt;AnalyticsWeb&lt;/DSN&gt;&lt;br /&gt;&lt; CatalogPath&gt;F:\OracleBIData\web\catalog\samplesales_paint_v1.3&lt;/CatalogPath&gt;&lt;br /&gt;&lt;br /&gt;Starting up the server will not load the refrenced catalog, but rather create a new one from scratch: "samplesales_paint_v1"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5x-jS91FkVovId-eAs2Miw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SmikpdveGMI/AAAAAAAAAxM/1nsCKHCZwDU/s144/0001_empty.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And the Oracle BI Presentation Services Administration duly notes:&lt;br /&gt;&lt;br /&gt;Physical Presentation Catalog Path \\?\F:\OracleBIData\web\catalog\samplesales_paint_v1\root&lt;br /&gt;&lt;br /&gt;The sawlog0.log reads as follows:&lt;br /&gt;&lt;br /&gt;Type: Error&lt;br /&gt;Severity: 40&lt;br /&gt;Time: Wed Jul 21 23:46:36 2009&lt;br /&gt;File: project/webcatalog/localwebcatalog.cpp Line: 1507&lt;br /&gt;Properties: ThreadID-4328&lt;br /&gt;Location:&lt;br /&gt;    saw.catalog.local.loadCatalog&lt;br /&gt;    saw.webextensionbase.init&lt;br /&gt;    saw.sawserver&lt;br /&gt;    saw.sawserver.initializesawserver&lt;br /&gt;    saw.threads&lt;br /&gt;&lt;br /&gt;Could not load catalog F:\OracleBIData\web\catalog\samplesales_paint_v1.3.  Either it does not exist or insufficient permissions.&lt;br /&gt;---------------------------------------&lt;br /&gt;Type: Warning&lt;br /&gt;Severity: 40&lt;br /&gt;Time: Wed Jul 21 23:46:36 2009&lt;br /&gt;File: project/websubsystems/httpserverinit.cpp Line: 49&lt;br /&gt;Properties: ThreadID-4328&lt;br /&gt;Location:&lt;br /&gt;    saw.catalog.local.loadCatalog&lt;br /&gt;    saw.webextensionbase.init&lt;br /&gt;    saw.sawserver&lt;br /&gt;    saw.sawserver.initializesawserver&lt;br /&gt;    saw.threads&lt;br /&gt;&lt;br /&gt;Creating Catalog F:\OracleBIData\web\catalog\samplesales_paint_v1.3.&lt;br /&gt;---------------------------------------&lt;br /&gt;&lt;br /&gt;The log is incorrect on both accounts. "F:\OracleBIData\web\catalog\samplesales_paint_v1.3" does exist and the folder creation in the warning message may use the correct naming but actually creates folder "F:\OracleBIData\web\catalog\samplesales_paint_v1".&lt;br /&gt;&lt;br /&gt;XML normally accepts "." inside the element content so I guess this is a legacy fragment from Siebel Analytics versions where the web catalog was a .webcat file. Why? Well, using this element:&lt;br /&gt;&lt;br /&gt;&lt; CatalogPath&gt;F:\OracleBIData\web\catalog\paint.webcat&lt;/CatalogPath&gt;&lt;br /&gt;&lt;br /&gt;starts my "paint" folder ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/521FYRGIKfLo_KFhYQxPHA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SmikppnGQaI/AAAAAAAAAxQ/xPUfixUx2BE/s144/0002_paint.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Any comments on this are welcome.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-746009991756469350?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/746009991756469350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obiee-101341-catalog-path-containing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/746009991756469350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/746009991756469350'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obiee-101341-catalog-path-containing.html' title='OBIEE 10.1.3.4.1 - Catalog path containing &quot;.&quot;'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kh3-h2s8BmA/SmikpdveGMI/AAAAAAAAAxM/1nsCKHCZwDU/s72-c/0001_empty.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3035996023538056677</id><published>2009-07-20T20:29:00.002+02:00</published><updated>2009-07-21T10:01:54.590+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mdx'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><title type='text'>"in between" filters for MDX sources</title><content type='html'>Fiddling around with some more functional options we've all come to know, like and use frequently, I found that "in between" filters in answers requests going against MDX sources (Essbase, MS Analysis server etc) don't work as expected.&lt;br /&gt;&lt;br /&gt;To showcase this, I have created a simple request. Planning and Current numbers by Fiscal Month within Europe. And I'm interested in all months between Q1 2009 and Q4 2009:&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Y9uwtT1ZRRwnCCV3gBfezw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SmS40q8V8BI/AAAAAAAAAwA/zol2wDZFRmw/s800/0001.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Checking the results tab we see that it's not necessarily what we'd expect:&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/u0SzKM2-Cdu1GHSVf8hATw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SmS40gsq0KI/AAAAAAAAAwE/m_B0Fmmd4U8/s800/0002.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Doing a full data scroll reveals that basically all Fiscal Month members are being pulled up.&lt;br /&gt;&lt;br /&gt;Here's the MDX from the log:&lt;br /&gt;&lt;br /&gt;With &lt;br /&gt;  set [Geo3]  as 'Filter([Geo].Generations(3).members, (([Geo].CurrentMember.MEMBER_ALIAS = "Europe" OR [Geo].CurrentMember.MEMBER_Name = "Europe")))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ( NOT (([Time Period].CurrentMember.MEMBER_ALIAS &lt; "Q1-09" OR [Time Period].CurrentMember.MEMBER_Name &lt; "Q1-09"))) AND ( NOT (("Q4-09" &lt; [Time Period].CurrentMember.MEMBER_ALIAS OR "Q4-09" &lt; [Time Period].CurrentMember.MEMBER_Name))))'&lt;br /&gt;  set [Time Period4]  as 'Generate({[Time Period3]}, Descendants([Time Period].currentmember, [Time Period].Generations(4),SELF), ALL)'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin {[Geo3]},Scenario.[Current])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin {[Geo3]},Scenario.[Planned])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2],&lt;br /&gt;    [Scenario].[MS3]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Time Period4]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [Sample.Sample]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And here's the important bit:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ( NOT (([Time Period].CurrentMember.MEMBER_ALIAS &lt; "Q1-09" OR [Time Period].CurrentMember.MEMBER_Name &lt; "Q1-09"))) AND ( NOT (("Q4-09" &lt; [Time Period].CurrentMember.MEMBER_ALIAS OR "Q4-09" &lt; [Time Period].CurrentMember.MEMBER_Name))))'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've opened an SR for this since there's no mentioning on metalink, the release notes or the new features guides.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3035996023538056677?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3035996023538056677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/in-between-filters-for-mdx-sources.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3035996023538056677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3035996023538056677'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/in-between-filters-for-mdx-sources.html' title='&quot;in between&quot; filters for MDX sources'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kh3-h2s8BmA/SmS40q8V8BI/AAAAAAAAAwA/zol2wDZFRmw/s72-c/0001.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-270899268756821564</id><published>2009-07-20T20:26:00.003+02:00</published><updated>2009-07-20T20:30:55.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><title type='text'>Updated my blog list</title><content type='html'>Added two new Oracle BI blogs to my blog list:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tipsonobiee.blogspot.com"&gt;http://tipsonobiee.blogspot.com&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.artofbi.com"&gt;http://www.artofbi.com &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-270899268756821564?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/270899268756821564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/updated-my-blog-list.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/270899268756821564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/270899268756821564'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/updated-my-blog-list.html' title='Updated my blog list'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7057976241808659259</id><published>2009-07-20T20:14:00.004+02:00</published><updated>2009-07-20T20:25:21.725+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><category scheme='http://www.blogger.com/atom/ns#' term='web catalog'/><title type='text'>Changing print controls through catalog manager</title><content type='html'>Recently I was off to change the print options on all of my dashboard pages. Naturally, as with all setting, this is encoded in the XML and can be mass-manipulated by the catalog manager.&lt;br /&gt;&lt;br /&gt;Here's the section in the XML, changed for landscape format, A4 paper size (yes, no weird US sizes ;-)) and explicit exclusion of headers and footers:&lt;br /&gt;&lt;br /&gt;&lt; ?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt; sawd:dashboardpage sawd="com.siebel.analytics.web/dashboard/v1" saw="com.siebel.analytics.web/report/v1" xmlversion="200705140" isempty="false" duid="hsdfj3478387bs82" personalselections="true"&gt;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt; span style="font-weight:bold;"&gt;  &lt;saw:pageprops orientation="landscape" printrows="visible" pagesize="a4"&gt;&lt;br /&gt;   &lt; saw:pageheader show="false"&gt;&lt;br /&gt;   &lt; saw:pagefooter show="false"&gt;&lt;br /&gt; &lt; /saw:pagefooter&gt;&lt;br /&gt;&lt; /saw:pageheader&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;/saw:pageprops&gt;&lt;/sawd:dashboardpage&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7057976241808659259?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7057976241808659259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/changing-print-controls-through-catalog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7057976241808659259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7057976241808659259'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/changing-print-controls-through-catalog.html' title='Changing print controls through catalog manager'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-1281547930119757408</id><published>2009-07-17T14:38:00.001+02:00</published><updated>2009-07-17T14:40:30.641+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Sun shareholders "ok" Oracle takeover</title><content type='html'>&lt;a href="http://news.cnet.com/8301-1001_3-10288611-92.html"&gt;http://news.cnet.com/8301-1001_3-10288611-92.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes, I know they're always talking about "mergers"...just like they "merged" with Siebel or they "merged" with Peoplesoft ;-)&lt;br /&gt;&lt;br /&gt;"There can be only ONE!"&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-1281547930119757408?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/1281547930119757408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/sun-shareholders-ok-oracle-takeover.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1281547930119757408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1281547930119757408'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/sun-shareholders-ok-oracle-takeover.html' title='Sun shareholders &quot;ok&quot; Oracle takeover'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6177696526880602598</id><published>2009-07-14T09:49:00.002+02:00</published><updated>2009-07-14T09:50:37.442+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='fragmentation'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><title type='text'>Venkats magic box on multiple hierarchy reporting</title><content type='html'>Leave it to Doctor Venkat to sum this one up so nicely:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rittmanmead.com/2009/07/13/oracle-bi-ee-10-1-3-4-1-multi-hierarchy-reporting-shared-parents-and-shared-childs-fragmentation/"&gt;http://www.rittmanmead.com/2009/07/13/oracle-bi-ee-10-1-3-4-1-multi-hierarchy-reporting-shared-parents-and-shared-childs-fragmentation/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6177696526880602598?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6177696526880602598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/venkats-magic-box-on-multiple-hierarchy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6177696526880602598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6177696526880602598'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/venkats-magic-box-on-multiple-hierarchy.html' title='Venkats magic box on multiple hierarchy reporting'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3431416493770984436</id><published>2009-07-13T15:55:00.003+02:00</published><updated>2009-07-13T15:58:32.871+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='open world'/><title type='text'>OOW 2k8 and 2k7 presentations</title><content type='html'>Thanks to Steven Chan for &lt;a href="http://blogs.oracle.com/stevenChan/2009/07/downloading_older_openworld_presentations.html"&gt;reposting&lt;/a&gt; the links to the OOW presentations. Very useful since I had lost the URL myself a while ago.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   &lt;a style="color: rgb(0, 0, 0);" href="http://www28.cplan.com/cc208/login.jsp"&gt;OpenWorld 2008 Presentations&lt;/a&gt;&lt;br /&gt;  Userid:  cboracle&lt;br /&gt;  Passworld:  oracle&lt;b&gt;&lt;span style="color:#ff0000;"&gt;c&lt;/span&gt;&lt;/b&gt;6&lt;br /&gt;   &lt;/li&gt;&lt;li&gt;   &lt;a href="http://www28.cplan.com/cc176/catalog.jsp"&gt;OpenWorld 2007 Presentations&lt;/a&gt;&lt;br /&gt;  Userid:  cboracle&lt;br /&gt;  Password:  oracle&lt;b&gt;&lt;span style="color:#ff0000;"&gt;c&lt;/span&gt;&lt;/b&gt;6&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3431416493770984436?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3431416493770984436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/oow-2k8-and-2k7-presentations.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3431416493770984436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3431416493770984436'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/oow-2k8-and-2k7-presentations.html' title='OOW 2k8 and 2k7 presentations'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-928672969014601939</id><published>2009-07-09T09:08:00.002+02:00</published><updated>2009-07-09T09:10:05.594+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>You now you're surrounded by geeks when...</title><content type='html'>...on orana.info, there's a posting on the return of Monkey Island!&lt;br /&gt;&lt;br /&gt;http://www.bluestudios.co.uk/blog/?p=778&lt;br /&gt;&lt;br /&gt;God I love this industry. And yes, I have the game on order already and fdefinitely will get me each and any incarnation of the old classics from Steam and then the ones they're preparing for the Wii ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-928672969014601939?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/928672969014601939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/you-now-youre-surrounded-by-geeks-when.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/928672969014601939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/928672969014601939'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/you-now-youre-surrounded-by-geeks-when.html' title='You now you&apos;re surrounded by geeks when...'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3495119192684819388</id><published>2009-07-07T22:08:00.001+02:00</published><updated>2009-07-07T22:11:16.233+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>OBIEE / Essbase MDX generation issues finally resolved</title><content type='html'>In one of my &lt;a href="http://hekatonkheires.blogspot.com/2009/05/update-on-obieeessbase-security.html"&gt;recent posts&lt;/a&gt; I was talking about the different patch levels for 10.1.3.4.0 and 10.1.3.4.1 and their impact on functionality and the MDX produced. Interestingly enough not all of the problems appear with every cube outline imported into OBIEE. Oracle initially had troubles reproducing some of the errors (using the normal OOB Essbase sample cubes).&lt;br /&gt;&lt;br /&gt;To recap: the changes to the connectivity DLLs first introduced in patch 7349048 (for 10.1.3.4.0) enabled OBIEE / Essbase security integration, but had some side effects. Performance dropped up to 3000% in some cases, standard report level totals or pivot totals stopped working etc. This is mostly due wrongly produced MDX. Especially for the grand totals the situation is quite clear:&lt;br /&gt;&lt;br /&gt;With&lt;br /&gt;  set [Currency2]  as 'Filter([Currency].&lt;wbr&gt;Generations(2).members, (([Currency].CurrentMember.&lt;wbr&gt;MEMBER_ALIAS = "US Dollar" OR [Currency].CurrentMember.&lt;wbr&gt;MEMBER_Name = "US Dollar")))'&lt;br /&gt;   set [Time Period2]  as 'Filter([Time Period].Generations(2).&lt;wbr&gt;members, (([Time Period].CurrentMember.MEMBER_&lt;wbr&gt;ALIAS = "2009" OR [Time Period].CurrentMember.MEMBER_&lt;wbr&gt;Name = "2009")))'&lt;br /&gt;  set [Time Period3]  as 'Filter(Generate({[Time Period2]}, Descendants([Time Period].currentmember, [Time Period].Generations(3),SELF), ALL), (([Time Period].CurrentMember.MEMBER_&lt;wbr&gt;ALIAS = "Quarter 1" OR [Time Period].CurrentMember.MEMBER_&lt;wbr&gt;Name = "Quarter 1")))'&lt;br /&gt;   member [Currency].[&lt;wbr&gt;CurrencyCustomGroup]as 'Sum([Currency2])', SOLVE_ORDER= AGGREGATION_SOLVEORDER&lt;br /&gt;  member [Time Period].[Time PeriodCustomGroup]as 'Sum([Time Period3])', SOLVE_ORDER= AGGREGATION_SOLVEORDER&lt;br /&gt; select&lt;br /&gt;  { [Account].[Sales]&lt;br /&gt;  } on columns&lt;br /&gt;from [Sample.Sample]&lt;br /&gt;where ([Currency].[&lt;wbr&gt;CurrencyCustomGroup],[Time Period].[Time PeriodCustomGroup])&lt;br /&gt;&lt;br /&gt;The MDX simply contains no "on rows" specification. These changes remained in all subsequent patches and are also part of 10.1.3.4.1. Hence, this release suffers from the same problems.&lt;br /&gt;&lt;br /&gt;On 10.1.3.4.0, there exists patch 8444119 which basically was constructed after 10.1.3.4.1. 8444119 itself does not solve any of the issues mentioned above. It does however include a small, non-documented switch which resolves all these issues. NOTE: this is NOT documented and will only work on 10.1.3.4.0! Oracle told me they're working on a similar fix for 10.1.3.4.1 and on updating the patch information, but no sign of either yet.&lt;br /&gt;&lt;br /&gt;In a 10.1.3.4.0 environment, install patch 8444119, then create a new environment variable: "&lt;span style="font-size: small;"&gt;OBIS_Essbase_CustomGroup_&lt;wbr&gt;Generation". Set the value to "0" (without the quotes). This will correct the issues and correct the MDX fired against Essbase. Also, performance will be stabilized and go back to the level of an unpatched 10.1.3.4.0.&lt;br /&gt;&lt;br /&gt;Oracle unfortunately didn't specify in detail what this &lt;/span&gt;&lt;span style="font-size: small;"&gt;OBIS_Essbase_CustomGroup_&lt;wbr&gt;Generation "performance knob" (as they call it)&lt;/span&gt; does behind the scene and what the other two available settings "1" and "2" entail. Hopefully they update patch 8444119 soon since its documentation still says nothing about the existance of this environment variable.&lt;br /&gt; &lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;a href="https://metalink3.oracle.com/od/faces/secure/km/DocumentDisplay.jspx?id=845594.1"&gt;Document 845594.1&lt;/a&gt;&lt;a href="https://metalink3.oracle.com/od/faces/secure/km/DocumentDisplay.jspx?id=845594.1" target="_blank"&gt;&lt;/a&gt; has been created an published on Metalink. This is the only document existing which points to or mentions &lt;/span&gt;&lt;span style="font-size: small;"&gt;OBIS_Essbase_CustomGroup_&lt;wbr&gt;Generation. So if you're out there, going against Essbase cubes and running 10.1.3.4.0 with 8444119 (or any MDX-influencing other patch below) or a full blown 10.3.4.1 then check it out.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;WARNING: While document &lt;/span&gt;&lt;span style="font-size: small;"&gt;845594.1&lt;/span&gt;&lt;span style="font-size: small;"&gt; outlines the issue and the solution, the version it refers to is WRONG!&lt;br /&gt;&lt;br /&gt;"&lt;b&gt;Applies to:&lt;/b&gt;&lt;br /&gt;Business Intelligence Suite Enterprise Edition - Version: 10.1.3.4.1 [1900] - Release: 10g"&lt;br /&gt;&lt;br /&gt;Patch 8444119 and the use of environment variable &lt;/span&gt;"&lt;span style="font-size: small;"&gt;OBIS_Essbase_CustomGroup_&lt;wbr&gt;Generation" do only apply for patch 10.1.3.4.0. You can not use this solution with 10.1.3.4.1.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;br /&gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3495119192684819388?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3495119192684819388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obiee-essbase-mdx-generation-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3495119192684819388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3495119192684819388'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obiee-essbase-mdx-generation-issues.html' title='OBIEE / Essbase MDX generation issues finally resolved'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-5202591121674494667</id><published>2009-07-06T22:54:00.001+02:00</published><updated>2009-07-06T22:56:17.515+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Informatica'/><category scheme='http://www.blogger.com/atom/ns#' term='ODI'/><category scheme='http://www.blogger.com/atom/ns#' term='BI Apps'/><title type='text'>OBI Apps 7.9.5.2 ODI vs. 7.9.6 Informatica</title><content type='html'>I just was asked what's actually in the BI Applications release which comes with ODI rather than Informatica. In general, the ODI release is 7.9.5.2 while the newest Informatica one is 7.9.6&lt;br /&gt;&lt;br /&gt;Here's the link to the ODI Apps (Controlled Availability Release) documentation: &lt;a href="http://download.oracle.com/docs/cd/E14224_01/welcome.html" target="_blank"&gt;http://download.oracle.com/&lt;wbr&gt;docs/cd/E14224_01/welcome.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So BI Apps with ODI is an Oracle eBusiness-exclusive release with eBusiness being required to be at release 11.5.10. These are the Applications covered in the release:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Oracle Financial Analytics&lt;/li&gt;&lt;li&gt;Oracle Human Resources Analytics&lt;/li&gt;&lt;li&gt;Oracle Supply Chain and Order Management Analytics&lt;/li&gt;&lt;li&gt;Oracle Procurement and Spend Analytics&lt;/li&gt;&lt;/ul&gt;The newest DAC on the other hand (it's no longer included in the files you download for 7.9.5.2 or 7.9.6) is 10.1.3.4.1 and can be found here: &lt;a href="http://download.oracle.com/otn/nt/ias/101341/dac_windows_x86_101341.zip" target="_blank"&gt;http://download.oracle.com/&lt;wbr&gt;otn/nt/ias/101341/dac_windows_&lt;wbr&gt;x86_101341.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-5202591121674494667?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/5202591121674494667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obi-apps-7952-odi-vs-796-informatica.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5202591121674494667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5202591121674494667'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/07/obi-apps-7952-odi-vs-796-informatica.html' title='OBI Apps 7.9.5.2 ODI vs. 7.9.6 Informatica'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4841441798175605847</id><published>2009-06-27T19:40:00.002+02:00</published><updated>2009-06-27T19:42:26.508+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='time series'/><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='lts'/><category scheme='http://www.blogger.com/atom/ns#' term='fragmentation'/><title type='text'>Time Series and Fragmentation</title><content type='html'>I received a hint on OBIEE time series functions from my friend Peter S. Apparently the time series functions AGO and TO_DATE don't work when you're using it on tables with fragmented LTS.&lt;br /&gt;&lt;br /&gt;A quick test yielded this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kh3-h2s8BmA/SkZZrpzkO3I/AAAAAAAAAY4/u2YozTvWhCA/s1600-h/06-26-2009+2-12-05+PM.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 104px;" src="http://3.bp.blogspot.com/_kh3-h2s8BmA/SkZZrpzkO3I/AAAAAAAAAY4/u2YozTvWhCA/s400/06-26-2009+2-12-05+PM.jpg" alt="" id="BLOGGER_PHOTO_ID_5352063813667797874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;State: HY000.  Code: 10058.  [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 22042] AGO function may not be used on 'Amount' because its source is horizontally partitioned. (HY000)&lt;br /&gt;&lt;br /&gt;Checking metalink, I found document &lt;span&gt;739584.1&lt;/span&gt; - &lt;span&gt;AGO function with combined multiple sources&lt;/span&gt;. Enhancement request #&lt;span style="font-size:small;"&gt;7438154 has been raised and is targeted for 11g.&lt;br /&gt;&lt;br /&gt;Cheers all!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4841441798175605847?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4841441798175605847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/06/time-series-and-fragmentation.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4841441798175605847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4841441798175605847'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/06/time-series-and-fragmentation.html' title='Time Series and Fragmentation'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kh3-h2s8BmA/SkZZrpzkO3I/AAAAAAAAAY4/u2YozTvWhCA/s72-c/06-26-2009+2-12-05+PM.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8043412116446340792</id><published>2009-06-11T20:35:00.002+02:00</published><updated>2009-06-11T20:41:09.552+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Silence of the posts</title><content type='html'>My blog is somewhat playing the sounds of silence recently. I don't really have the chance to write posts a lot these days. At least not if I want to blog with sufficient details. And yes, I know I still owe you several posts / topics.&lt;br /&gt;&lt;br /&gt;Sorry guys. Content coming up soon ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8043412116446340792?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8043412116446340792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/06/silence-of-posts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8043412116446340792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8043412116446340792'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/06/silence-of-posts.html' title='Silence of the posts'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-9159122832748634118</id><published>2009-05-28T11:34:00.001+02:00</published><updated>2009-05-28T11:36:31.084+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><category scheme='http://www.blogger.com/atom/ns#' term='fun'/><title type='text'>The vendor client relatioship</title><content type='html'>Thanks for tipping me off on &lt;a href="http://www.youtube.com/watch?v=R2a8TRSgzZY&amp;amp;eurl=http%3A%2F%2Fwww.b3ta.com%2Flinks%2F&amp;amp;feature=player_embedded"&gt;this one&lt;/a&gt; Mark...it really made me laugh :-D  Plus, it is SO true!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-9159122832748634118?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/9159122832748634118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/vendor-client-relatioship.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/9159122832748634118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/9159122832748634118'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/vendor-client-relatioship.html' title='The vendor client relatioship'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-813352560786240030</id><published>2009-05-21T12:34:00.002+02:00</published><updated>2009-05-21T12:38:11.987+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Update on the OBIEE/Essbase security integration</title><content type='html'>Hi guys,&lt;br /&gt;&lt;br /&gt;Just quickly to let you all know. I'm not cutting you out of the loop by not writing on the details, but if I'd have to document all tests I run and all issues I find, I will still be here next month.&lt;br /&gt;&lt;br /&gt;Bottom line:&lt;br /&gt;- watch out for 10.1.3.4.0 with 734908&lt;br /&gt;- watch out for 10.1.3.4.0 with 844119&lt;br /&gt;- watch out for 10.1.3.4.1&lt;br /&gt;&lt;br /&gt;With those three versions be VERY careful that you test each and every report you have running against Essbase.&lt;br /&gt;&lt;br /&gt;I will update you as soon as I can with a finalized overview. Probably only once Oracle has come back...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-813352560786240030?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/813352560786240030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/update-on-obieeessbase-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/813352560786240030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/813352560786240030'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/update-on-obieeessbase-security.html' title='Update on the OBIEE/Essbase security integration'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3299315327149582992</id><published>2009-05-20T19:54:00.002+02:00</published><updated>2009-05-20T19:55:30.270+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>What..the...frak?!</title><content type='html'>Ummm this is possible?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://girlgeek-oracle.blogspot.com/2009/05/making-problems-for-myself.html"&gt;http://girlgeek-oracle.blogspot.com/2009/05/making-problems-for-myself.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Geezus...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3299315327149582992?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3299315327149582992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/whatthefrak.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3299315327149582992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3299315327149582992'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/whatthefrak.html' title='What..the...frak?!'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-5886197457499219582</id><published>2009-05-19T23:53:00.000+02:00</published><updated>2009-05-19T23:54:05.933+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='event'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='community'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>Reminiscing Brighton</title><content type='html'>Last week I had the chance an (honestly) privilege to take part in the BI Forum in Brighton. First and foremost, I'd like to say a huge thanks to the team of RittmanMead for organizing this and giving us geeks a chance to unite. We've got to do this more often!&lt;br /&gt;&lt;br /&gt;Next up, something personal. I was extremely happy to finally meet Venkat face to face. We seem to have developed one of those friendships that start online and when you meet, it's like you know each other since years. Also, I was extremely content to meet Ed again. Damn already a year since we finished our last project together.&lt;br /&gt;&lt;br /&gt;Let's get back to business. The lineup of speakers was quite something to say the least. I'm not going to name anyone in special since I then need to name each and every one of them.......ok here we go: Craig Stewart, Edward Roske (We're not wooorthy!), Mark Rittman, John Minkjan, Venkat (I think, you're actually entitled to carry "Venkat" as your sole identifier. Everyone else must change his name ;-)), Adam Bloom, Andreas Nobbmann, Mike Durran, Emiel von Bockel, Maarten-Jan Kampen, Adrian Ward, Antony Heljula and Peter Brink. Total quality in all presentations and here's my 10 cents on them:&lt;br /&gt;&lt;br /&gt;a) "BI Apps with ODI" from Craig Stewart: Now here we have an interesting new piece in Oracles product portfolio. Good for new customers. Questionable (at best) for existing ones.&lt;br /&gt;&lt;br /&gt;b) Edward Roskes "Internals of Essbase". What can I say? Edward Roske. On Essbase. Ocean. Lots of Water. Understatement. And I just loooved his texan humour.&lt;br /&gt;&lt;br /&gt;c) Mark Rittman spoke about "BI Apps Optimization". Do have to say "see b) ?". Didn't think so.&lt;br /&gt;&lt;br /&gt;d) John Minkjan had a very nice presentation on caching. I would have like to taped it and hit a lot of people over the head with the tape (and the camera). Listen to him, people. Caching is a tool, a technique, something that can help you. It's NOT the solution for your problems! Thanks John.&lt;br /&gt;&lt;br /&gt;e) Venkat had a cool gimmick prepared. He had actually written a program to keep OBIEE and Essbase security in line. Extremely nice stuff! It was his first presentation in a forum like this and in Europe. Well done! I'm going to steal that ;-)&lt;br /&gt;&lt;br /&gt;f) Then we "blew up a BI server" with Adam Bloom. Talk about small cuase with huge effect. Ouch.&lt;br /&gt;&lt;br /&gt;g) Andreas Nobbmanns "UDML and XML for grown-ups" session. I vote for his presentation to be judged "Too dangerous to be known widely!". Please don't let kids touch that one. They destroy enough as it is. Personally...I loved it ;-)&lt;br /&gt;&lt;br /&gt;h) Friday started with Mike Durran on 11g. I won't say more. Or I will have to kill you. Seriously. Ed Roske has the gun.&lt;br /&gt;&lt;br /&gt;i) Emiel von Bockels presentation. Now THAT spawned discussions. Great stuff! I'd love to see how their solution evolves over the nexst 3 to 5 years. I hope he keeps us up to date.&lt;br /&gt;&lt;br /&gt;j) Oh yeah...I'm still not over Maarten-Jan Kampens statement on using "a bit of code" for his "OBIEE and Mapviewer" integration. Dude...copyright that stuff.&lt;br /&gt;&lt;br /&gt;k) Adrian gave me permission to skip his session since I had stuff to do, so not much to say here.&lt;br /&gt;&lt;br /&gt;l) Antony Heljulas "SOA" bit was cool. Reminded me of my first trials after Marks mastclass last year. Gotta say though. Very nicely presented. Better than most of Oracles sales force.&lt;br /&gt;&lt;br /&gt;m) Peter Brinks "Cube Organized Materialized views". Essbase cubes? Oracle OLAP? Cube Organized Materialized Views? It seems we're actually getting too many options from Oracle right now. Would be interesting to see how Oracle positions those options with the clients.&lt;br /&gt;&lt;br /&gt;Wrapping the whole event up in one word sounds like this: awesome. In two words: fraking awesome! Loved it, look forward to the next, want to do one myself in Switzerland now. (Check my blog or Andreas for news on that idea).&lt;br /&gt;&lt;br /&gt;That's it from my side for today. Off to catch some sleep.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-5886197457499219582?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/5886197457499219582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/reminiscing-brighton.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5886197457499219582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5886197457499219582'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/reminiscing-brighton.html' title='Reminiscing Brighton'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4287283644103829353</id><published>2009-05-19T22:13:00.003+02:00</published><updated>2009-05-20T16:06:01.887+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='10.1.3.4.1'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>Grand Totals in Essbase sourced requests after 10.1.3.4.1</title><content type='html'>I noticed something very disturbing after applying 10.1.3.4.1 to our development environment: report grand totals for tables and row totals for pivots don't yield any results anymore unless you manually set all fact columns to "Sum" or "Avg" in the report. The "Aggr_External" which has normally had its effect (by importing it from the cube through the physical to the BMM layer to presentation layer) no longer takes care of this.&lt;br /&gt;&lt;br /&gt;Let's look at the issue in detail:&lt;br /&gt;&lt;br /&gt;Upgrading to 10.1.3.4.1, this is what we find as a default behaviour in a simple table report:&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/TSP8RXDVWS23wwTK0FENxw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/ShMWLKJpLbI/AAAAAAAAAV8/d-zcaCOQ9h0/s144/0001_table_grand_totals.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And in a pivot:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/W7vx1NhKRhIZ9W-GsRKLgA?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/ShMXShJ5WII/AAAAAAAAAWw/mo6kp-UAfGc/s288/0002_pivot_row_totals.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now think about the concept behind building an rpd on top of an Essbase source for a second. Ponder what Venkat wrote about aggregations in for 4-article series &lt;a href="http://oraclebizint.wordpress.com/2009/04/06/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-1/"&gt;here&lt;/a&gt;, &lt;a href="http://oraclebizint.wordpress.com/2009/04/07/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-2/"&gt;here&lt;/a&gt;, &lt;a href="http://oraclebizint.wordpress.com/2009/04/09/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-3/"&gt;here &lt;/a&gt;and &lt;a href="http://oraclebizint.wordpress.com/2009/04/13/oracle-bi-ee-10134-and-essbase-connectivity-understanding-aggregations-part-4/"&gt;here&lt;/a&gt;. No longer utilizing Aggr_External and just no longer aggregating at all is just plain stupid. (Yes, I'm on kind of a rant here...)&lt;br /&gt;&lt;br /&gt;Now to correct that quick &amp;amp; dirty in the report, we assign an aggregation rule in the column formula:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/OoZBGVkmGOfJW03n4_N2cQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/ShMWLX_6jYI/AAAAAAAAAWI/HV391EqJJpk/s144/0003_sum.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And...oh miracle...we have data again:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/uakm2pFgzTDXCAoX1zwijw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/ShMWLTGhMgI/AAAAAAAAAWE/gvfTuhqGI7g/s144/0004_table_with_sum.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now as I said, I find this nothing but retarded.&lt;br /&gt;Why has this been changed? Is this actually expected behaviour? If so...what's the rationale behind that? Normally, aggregation rules set on the BMM layer always persist unless they are explicitly overwritten either in the column formula or for pivots in the measures. Why drop this all of a sudden?&lt;br /&gt;&lt;br /&gt;My manual intervention is a workaround, but I'm facing several cubes and almost a hundred reports. Furthermore, one of the Account dimensions has more than 400 members. So manually changing 400 potentially mapped account members isn't fun...&lt;br /&gt;&lt;br /&gt;So the solution (if I will actually keep 10.1.3.4.1 and not just drop if for a downgrade) would be to modify the BMM layer and change all normal account members to "Sum" and all percentages to "Avg" as aggregation rule.&lt;br /&gt;&lt;br /&gt;Stay tuned for my upcoming rant on dimension members and filters. Another extremely intelligent change with 10.1.3.4.1.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;Update:&lt;/span&gt;&lt;br /&gt;Venkat reacted to my post &lt;a href="http://oraclebizint.wordpress.com/2009/05/20/oracle-bi-ee-10-1-3-4-1-and-essbase-connectivity-report-based-and-essbase-based-grand-totals-answers-based-aggregation/"&gt;here&lt;/a&gt;. I tested it and it seems that despite having label only top level members like he mentioned, some analyses seem to work with totals and grand totals. This will need more investigating.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/sVz8VpXVNZ0d2tB4ooSFvA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/ShQOFJM_SGI/AAAAAAAAAXQ/2fK6WdDxsnw/s288/label_only_product.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheerioh,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4287283644103829353?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4287283644103829353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/grand-totals-in-essbase-sourced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4287283644103829353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4287283644103829353'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/grand-totals-in-essbase-sourced.html' title='Grand Totals in Essbase sourced requests after 10.1.3.4.1'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_kh3-h2s8BmA/ShMWLKJpLbI/AAAAAAAAAV8/d-zcaCOQ9h0/s72-c/0001_table_grand_totals.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8122858495206766398</id><published>2009-05-19T16:45:00.002+02:00</published><updated>2009-05-19T16:48:36.675+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>Interjection</title><content type='html'>I still haven't blogged about the BI Forum in Brighton, the things I saw there, the things I wanted to test afterwards OR the things I need to blog in detail to explain my ad-hoc speech...&lt;br /&gt;&lt;br /&gt;...all because of bloody 10.1.3.4.1! God that release is a pain when you're using Essbase. I know it's bad form to blog about what you're about to blog about, but I will definitely fire off a huge rant with detailed descriptions soon.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8122858495206766398?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8122858495206766398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/interjection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8122858495206766398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8122858495206766398'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/05/interjection.html' title='Interjection'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-1700734916820843741</id><published>2009-04-25T13:37:00.002+02:00</published><updated>2009-04-25T13:43:18.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><title type='text'>OBIEE 10.1.3.4.1 is out</title><content type='html'>John Minkjan has won the race for the first post on 10.1.3.4.1!&lt;br /&gt;&lt;br /&gt;http://obiee101.blogspot.com/2009/04/obiee-10341-is-out.html&lt;br /&gt;http://obiee101.blogspot.com/2009/04/obiee-10341-first-impressions.html&lt;br /&gt;&lt;br /&gt;You just gotta love the little things he immediately found.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;100% installation&lt;br /&gt;&lt;/li&gt;&lt;li&gt;old samplesales&lt;/li&gt;&lt;li&gt;BIP still not working OOB&lt;/li&gt;&lt;/ul&gt;Well let's hope that the background looks better and all the bugs have been fixed that plagued us in the base release. Off to searching for a list of fixed bugs and patches included.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-1700734916820843741?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/1700734916820843741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/obiee-101341-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1700734916820843741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1700734916820843741'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/obiee-101341-is-out.html' title='OBIEE 10.1.3.4.1 is out'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8603113251220809795</id><published>2009-04-23T17:43:00.003+02:00</published><updated>2009-04-23T17:45:57.642+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Swiss readers?</title><content type='html'>No use hiding, folks. I see that there's people from CH browsing my blog. Yes, and I've also seen the connection from Baden and the Oracle CH offices ;-)&lt;br /&gt;&lt;br /&gt;So please leave a comment. I'd like to see who's actually interested in this here in Switzerland.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8603113251220809795?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8603113251220809795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/swiss-readers.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8603113251220809795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8603113251220809795'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/swiss-readers.html' title='Swiss readers?'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2785259925968946700</id><published>2009-04-21T19:57:00.003+02:00</published><updated>2009-04-21T20:10:10.252+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>The ominous patch 8293083</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;Back on April 3rd, when I initially wanted to get patch #8293083, I hit a wall.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Description&lt;/span&gt;     OBIEE GENERATED MDX CAUSES PERFORMANCE ISSUE&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Product&lt;/span&gt;     Oracle BI Suite EE&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Release&lt;/span&gt;     10.1.3.4.0   &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Last Updated&lt;/span&gt;     18-MAR-2009&lt;br /&gt;&lt;br /&gt;The patch had been made obsolete over night. So I raised an SR with Oracle. First response on the 14th:&lt;br /&gt;&lt;br /&gt;"Bug 8293083 is a duplicate of Bug 8332167.&lt;br /&gt;&lt;br /&gt;Bug 8332167 is fixed in 10.1.3.4.410&lt;br /&gt;Also in patch for Linux ARU 11105211&lt;br /&gt;No patch for Windows."&lt;br /&gt;&lt;br /&gt;Sweet. So because it was a duplicate of a Linux patch the Windows patch was made obsolete? My mind boggles trying to understand that logic, but anyways I insisted on getting the patch and voilà! The patch exists again for Windows since the 17th.&lt;br /&gt;&lt;br /&gt;Sounds good? No, not really.&lt;br /&gt;&lt;br /&gt;8293083 is actually QF420 and in order to install it, you need to replace your whole OracleBI\server\bin folder. In itself, not an issue, but there's also patch 8290868 (QF410), which is a patch for 7482937 which resolves a rather serious issue for MDX generation for and/or filters.&lt;br /&gt;&lt;br /&gt;The issue being that 8290868 - like 8293083 - replaces the whole bin folder. And Oracle still can't confirm that 8293083 is an incremental patch and includes all of 8290868.&lt;br /&gt;&lt;br /&gt;So right now there's a choice.&lt;br /&gt;a) Use 8293083, but not be sure that 8290868 and 7482937  function correctly&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;b) Use 8290868and 7482937 and wait for a final statement from Oracle.&lt;br /&gt;&lt;br /&gt;I've gone for b) since it's extremely difficult to track down each and every weird behaviour in the MDX generation for all filters, EVALUATE statements, unions etc etc.&lt;br /&gt;&lt;br /&gt;Of course I will keep you guys updated with my latest findings and Oracles statements.&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2785259925968946700?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2785259925968946700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/ominous-patch-8293083.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2785259925968946700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2785259925968946700'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/ominous-patch-8293083.html' title='The ominous patch 8293083'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4724765828290023505</id><published>2009-04-21T18:54:00.009+02:00</published><updated>2009-04-21T19:18:20.477+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><title type='text'>Troubleshooting problems with Target Level – Sampling Tables</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;A little excursion into the little-known world of Marketing Analytics. Namely sampling tables for target levels. Here's some tips for getting them to work correctly:&lt;br /&gt;&lt;br /&gt;I.) Check that there is a physical table mapped that to the W_ table defined as SAMPLE_W_ has Object Type “None”…otherwise you can’t select a dynamic name for the table. “General” tab:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kh3-h2s8BmA/Se37W0Qw4QI/AAAAAAAAASI/uJne49v7tBw/s1600-h/001_physical_table_mapping.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 249px; height: 277px;" src="http://3.bp.blogspot.com/_kh3-h2s8BmA/Se37W0Qw4QI/AAAAAAAAASI/uJne49v7tBw/s400/001_physical_table_mapping.png" alt="" id="BLOGGER_PHOTO_ID_5327190303653814530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;II.) Check that the correct Sampling Table identifier is associated with the physical table in the “Dynamic Name” tab:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kh3-h2s8BmA/Se37in9Du6I/AAAAAAAAASQ/4roj8PuRJt4/s1600-h/002_sampling_table_identifier.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 260px; height: 289px;" src="http://1.bp.blogspot.com/_kh3-h2s8BmA/Se37in9Du6I/AAAAAAAAASQ/4roj8PuRJt4/s400/002_sampling_table_identifier.png" alt="" id="BLOGGER_PHOTO_ID_5327190506508368802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;III.) Creating new target levels in Siebel Analytics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;After creating new target levels for marketing segmentation, it is necessary to administer them correctly in the Presentation Server&lt;/li&gt;&lt;li&gt;Start the BI Server with the new rpd&lt;/li&gt;&lt;li&gt;Go to “Admin”&lt;/li&gt;&lt;li&gt;Go to “Manage Marketing Defaults”&lt;/li&gt;&lt;li&gt;Choose the “Default Campaign Load File Format”, the “Default Global Audience Segment” and the “Profile Dashboard” for each Target Level&lt;/li&gt;&lt;li&gt;If you don’t yet have these items, create them&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;IV.) Creating an Answer request as "Profile Dashboard" for a target level:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create the request as usual with the columns you want to have displayed.&lt;/li&gt;&lt;li&gt;To make it work for the drill down on the segment count, add a filter that prompts for the ID. E.g.: "ROW_ID is prompted"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4724765828290023505?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4724765828290023505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/troubleshooting-problems-with-target.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4724765828290023505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4724765828290023505'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/troubleshooting-problems-with-target.html' title='Troubleshooting problems with Target Level – Sampling Tables'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kh3-h2s8BmA/Se37W0Qw4QI/AAAAAAAAASI/uJne49v7tBw/s72-c/001_physical_table_mapping.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-1532192238435688645</id><published>2009-04-20T18:18:00.003+02:00</published><updated>2009-04-20T18:35:57.879+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mdx'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='EVALUATE'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><title type='text'>Special characters in EVALUATE-wrapped MDX</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;Something I ran into recently is a little bug in the way OBIEE 10.1.3.4.0 produces MDX out of an EVALUATE wrapper when the MDX contains special characters. (yes, it is a bug)&lt;br /&gt;&lt;br /&gt;Let's start with a basic and pure OBIEE report. We want to see the average coverage % by the 3rd generation of our product hierarchy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/sDameD7LKalW0OJFwW0zVg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SexTlXsbWFI/AAAAAAAAAR0/ijRufy-IbvM/s288/001_obiee_criteria.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/8wzyYqA18G-Rllj_SlPAoQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SexTlGRWfuI/AAAAAAAAARs/rzPWKBzPVXE/s144/002_obiee_results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now let's switch out the presentation column for an EVALUATE function with MDX as what we really want is the average coverage % for the scenario "Actual":&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/SYnQaHdSPazidctvXnYSSw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SexTlZbRk0I/AAAAAAAAAR8/5_AJhGkD-pA/s144/003_MDX_column_formula.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('(%1.dimension.currentmember, [Scenario].[Actual],[Account].[Coverage % Avg]).value' as INTEGER, Product."Gen3,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let's run it.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Zap5lMLKPig-HfyS6g6Q3w?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SexTlId9g1I/AAAAAAAAARo/yOdRYYZ61aM/s144/004_MDX_display_error.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Unknown Member Coverage % Avg"? Liar. I see it directly in front of me. Off to checking the log:&lt;br /&gt;&lt;br /&gt;With &lt;br /&gt;  set [Product3]  as 'Generate([Product].Generations(2).members, Descendants([Product].currentmember, [Product].Generations(3), leaves))'&lt;br /&gt;  member [Account].[MS1] as '([Product].Generations(3).dimension.currentmember,[Scenario].[Actual],[Account].&lt;span style="font-weight:bold;"&gt;[Coverage %  Avg]&lt;/span&gt;)).value'&lt;br /&gt;  member [Account].[MS2] as 'RANK([Product].Generations(3).dimension.currentmember,[Product].Generations(3).members)'&lt;br /&gt;&lt;br /&gt;select &lt;br /&gt;  {MS1,&lt;br /&gt;MS2} on columns,&lt;br /&gt;  {{[Product3]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube.Ess931_ASO]&lt;br /&gt;&lt;br /&gt;-------------------- Query Status: Query Failed: Essbase Error: Unknown &lt;span style="font-weight:bold;"&gt;Member Coverage %  Avg&lt;/span&gt; used in query&lt;br /&gt;&lt;br /&gt;Do you see the difference? While on the guy, it states "Coverage % Avg", the log and the MDX which is actually fired, reference "Coverage %  Avg". TWO spaces!&lt;br /&gt;So let's work around this by changing the EVALUATE to include the "StrToMbr" function:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/-rwt-YvXX8x7FV32Xzxe5Q?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SexTlGuW3fI/AAAAAAAAARw/f28otmB-MAE/s144/005_corrected_MDX.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('(%1.dimension.currentmember, [Scenario].[Actual],StrToMbr("[Account].[Coverage % Avg]")).value' as INTEGER, Product."Gen3,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When running this, we get the correct results again:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/N2DsT8ZIxzIWCfj5hTSjrg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SexTleicT3I/AAAAAAAAAR4/EvbWLmQ13WI/s144/006_MDX%20results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So if you want to reference members containing special characters, use StrToMbr since otherwise you will get a non-functioning MDX from the BI server.&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-1532192238435688645?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/1532192238435688645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/special-characters-in-evaluate-wrapped.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1532192238435688645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/1532192238435688645'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/special-characters-in-evaluate-wrapped.html' title='Special characters in EVALUATE-wrapped MDX'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_kh3-h2s8BmA/SexTlXsbWFI/AAAAAAAAAR0/ijRufy-IbvM/s72-c/001_obiee_criteria.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3193583830776087838</id><published>2009-04-20T16:07:00.002+02:00</published><updated>2009-04-20T16:11:42.560+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle - Sun</title><content type='html'>Larry definitely has got too much money:&lt;br /&gt;&lt;br /&gt;http://www.oracle.com/sun/index.html&lt;br /&gt;&lt;br /&gt;I vote for naming his next yacht "Ra"...or even cooler. "Sol Invictus" ;-))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3193583830776087838?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3193583830776087838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/oracle-sun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3193583830776087838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3193583830776087838'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/oracle-sun.html' title='Oracle - Sun'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6928175728330567771</id><published>2009-04-17T13:11:00.003+02:00</published><updated>2009-04-20T18:35:18.453+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>CAF update</title><content type='html'>Ha...ha...ha... very funny.&lt;br /&gt;&lt;br /&gt;Ok all. CAF is really ONLY supported with 10.1.3.4.1 right now and that's not out yet. Sorry to have gotten you all exited.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christian&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6928175728330567771?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6928175728330567771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/caf-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6928175728330567771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6928175728330567771'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/caf-update.html' title='CAF update'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-397246817508663150</id><published>2009-04-16T09:52:00.008+02:00</published><updated>2009-04-17T15:28:04.284+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='OTN'/><category scheme='http://www.blogger.com/atom/ns#' term='web catalog'/><title type='text'>OTN: Content Accelerator Framework</title><content type='html'>When going on OTN this morning, I saw something that I hadn't seen before in the download section of the OBIEE site. CAF?! Hmmm...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/l9IJCt6Y2zPpvR8ByZlZBQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/Sebj9SV1ODI/AAAAAAAAAOQ/S2alrbR-F-Q/otn_download%20section.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Of course I downloaded it (what a question!)...and I couldn't have had a nicer start for my day! The thing's called Content Accelerator Framework or in short: "CAF". Please update your geek brains, section acronyms, accordingly. It basically is a tool for facilitating migration of rpd and webcat objects between environments. Ace!&lt;br /&gt;&lt;br /&gt;Direct links to the zip and the pdf documentation here:&lt;br /&gt;&lt;a href="http://download.oracle.com/technology/products/bi/files/OracleBIEE_CAFV1_Setup.zip"&gt;http://download.oracle.com/technology/products/bi/files/OracleBIEE_CAFV1_Setup.zip&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/bi/pdf/oraclebiee-cafv1-usage-instructions.pdf"&gt;http://www.oracle.com/technology/products/bi/pdf/oraclebiee-cafv1-usage-instructions.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's two quick screenshots from the pdf to give you an overview:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/A8AR5uaNQn5FnygCwsdJxQ?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Sebj9WRL-oI/AAAAAAAAAOU/-1qMtvY6INs/s288/architecture.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/njhCakFB-X6TiTZ4ymnOlA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/Sebj9QIoglI/AAAAAAAAAOY/8oRCrMSEkuQ/s288/overview.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Off to trying it out!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Update:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://oraclebizint.wordpress.com/2009/04/16/oracle-bi-ee-10134-content-accelerator-framework-v1-free-utility-released-migrating-reportsdashboardsrpd/"&gt;Venkat&lt;/a&gt; beat me to it...hehe.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/iY4t8geEuBOUuoJa7zB3VQ?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SeboIJ89YYI/AAAAAAAAAO8/mnkiO3KaDuk/venkat_beat_me.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Update 2:&lt;/span&gt;&lt;br /&gt;10.1.3.4.1? Really? Guys, we're not like you and have access to patches before they're released. ;-)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ukmUu1ggLy0ta3lndAfNgg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Seg-ZggTPlI/AAAAAAAAAPc/c_NQkQkKVus/s288/errrm...10.1.3.4.1.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-397246817508663150?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/397246817508663150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/otn-content-accelerator-framework.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/397246817508663150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/397246817508663150'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/otn-content-accelerator-framework.html' title='OTN: Content Accelerator Framework'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_kh3-h2s8BmA/Sebj9SV1ODI/AAAAAAAAAOQ/S2alrbR-F-Q/s72-c/otn_download%20section.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7210380289789908990</id><published>2009-04-15T19:23:00.003+02:00</published><updated>2009-04-15T19:25:21.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usefull'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Screentoaster</title><content type='html'>Justin just sent out this link on twitter:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.screentoaster.com"&gt;http://www.screentoaster.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Check out the demo. It's really cool for a free, no-download tool! Looking forward to using this the first time for one of my posts.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7210380289789908990?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7210380289789908990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/screentoaster.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7210380289789908990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7210380289789908990'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/screentoaster.html' title='Screentoaster'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-9166340874835488520</id><published>2009-04-08T21:16:00.004+02:00</published><updated>2009-04-20T18:35:45.360+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mdx'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='EVALUATE'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><title type='text'>Dynamic multi-level filtering with MDX</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;Following up on my &lt;a href="http://hekatonkheires.blogspot.com/2009/03/ranking-on-essbase-from-obiee.html"&gt;Essbase ranking post&lt;/a&gt; and a &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=882835&amp;tstart=0"&gt;question from OTN&lt;/a&gt;, I’d like to elaborate on the ranking and filtering of the rank results.&lt;br /&gt;&lt;br /&gt;Again, we start with a basic report showing the top10 products by actual sales. We’re not using OBIEE functions due to the performance constraints mentioned in the first article.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ozuE7V_v9GiH0eCZmvvx-w?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Sdz7bezZ0II/AAAAAAAAANE/8-sNB-4NECg/s144/01_base_topcount_request.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The core MDX function retrieving the dimension members being:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('TOPCOUNT(%1.members,10,[Actual])',Product."Gen6,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IeM5kAebxzosAJkT7mtTJg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/Sdz7b-d1etI/AAAAAAAAANQ/SFYkIb4SHD4/s144/02_top10_prodtypes.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Business now wants to implement filters on Gen2 through Gen5 of the product hierarchy in order to be able to more specifically choose their top10 products. This normally means four “is prompted” filters and a dashboard prompt containing Gen2 through 5 as hierarchically constrained prompt column. Let’s keep it simple and try one of the generations as a fixed filter before creating the prompts and testing in a dashboard context.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/kipAAKTAN0EHC1j4-w3Pyw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/Sdz7bJO8sSI/AAAAAAAAAM8/zsBjCBMlfN0/s144/03_busprods_filter.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/nA3X71S4LQqUHGsI9oRfaw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Sdz7bngc60I/AAAAAAAAANI/vCMpmym6B6A/s144/04_top10_wrong_aggr.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As already stated, the grain of the query changes to the one of the filter and renders the whole request useless.&lt;br /&gt;&lt;br /&gt;MDX without filter:&lt;br /&gt;With &lt;br /&gt;  set [Account3]  as 'Filter([Account].Generations(3).members, (([Account].CurrentMember.MEMBER_ALIAS = "Net Sales" OR [Account].CurrentMember.MEMBER_Name = "Net Sales")))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, (([Market].CurrentMember.MEMBER_ALIAS = "Europe" OR [Market].CurrentMember.MEMBER_Name = "Europe")))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, (([Time Period].CurrentMember.MEMBER_ALIAS = "Q4-09" OR [Time Period].CurrentMember.MEMBER_Name = "Q4-09")))'&lt;br /&gt;  set [Evaluate0]  as '{TOPCOUNT([Product].Generations(6).members,10,[Actual]) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual LY])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;MDX with filter:&lt;br /&gt;With &lt;br /&gt;  set [Account3]  as 'Filter([Account].Generations(3).members, (([Account].CurrentMember.MEMBER_ALIAS = "Net Sales" OR [Account].CurrentMember.MEMBER_Name = "Net Sales")))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, (([Market].CurrentMember.MEMBER_ALIAS = "Europe" OR [Market].CurrentMember.MEMBER_Name = "Europe")))'&lt;br /&gt;  set [Product4]  as 'Filter([Product].Generations(4).members, (([Product].CurrentMember.MEMBER_ALIAS = "SMU PF - Business Products" OR [Product].CurrentMember.MEMBER_Name = "SMU PF - Business Products")))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, (([Time Period].CurrentMember.MEMBER_ALIAS = "Q4-09" OR [Time Period].CurrentMember.MEMBER_Name = "Q4-09")))'&lt;br /&gt;  set [Evaluate0]  as '{TOPCOUNT([Product].Generations(6).members,10,[Actual]) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},crossjoin ({[Product4]},{[Time Period3]}))),Scenario.[Actual LY])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},crossjoin ({[Product4]},{[Time Period3]}))),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;Lets' forget about OBIEE filtering. This means that we have to do the filtering within the MDX and make that filter respond to the prompts. For this we will use presentation variables and a new MDX statement:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/MCZDo2AGO1z80amhfSHmqg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/Sdz7a5rbnUI/AAAAAAAAAM4/4dPRu5SePd8/s144/05_topcount_for_prompts.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('TOPCOUNT(Intersect(%1.dimension.members,Descendants([@{vPromptedProdHier}{SMU}],[Product].[Gen6,Product])),10,[Actual])',Product."Gen6,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And here's the prompt to go with it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/jbKRKwrpQdUeKCZTNjiVIg?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Sdz7a6tmpdI/AAAAAAAAAM0/NdjXSLcw-PM/s144/06_filters_for_topcount.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The multiple usage of the same presentation variable ensures that we will always have the lowest level currently chosen populated in the hierarchy, which will nicely adapt our MDX statement to constrain the results to the descendants of the chosen dimension member.&lt;br /&gt;&lt;br /&gt;Family:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Ucz_q4bLyNBZGlSnaWXjsQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/Sdz7b7UCrZI/AAAAAAAAANM/rq7hWiHBh4A/s144/07_prompted_for_family.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With &lt;br /&gt;  set [Account3]  as 'Filter([Account].Generations(3).members, (([Account].CurrentMember.MEMBER_ALIAS = "Net Sales" OR [Account].CurrentMember.MEMBER_Name = "Net Sales")))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, (([Market].CurrentMember.MEMBER_ALIAS = "Europe" OR [Market].CurrentMember.MEMBER_Name = "Europe")))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, (([Time Period].CurrentMember.MEMBER_ALIAS = "Q4-09" OR [Time Period].CurrentMember.MEMBER_Name = "Q4-09")))'&lt;br /&gt;  set [Evaluate0]  as '{TOPCOUNT(Intersect([Product].Generations(6).dimension.members,Descendants([SMU PF - Business Products],[Product].[Gen6,Product])),10,[Actual]) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual LY])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;Group:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/V-a7jS5GN4HMayy6wjQtFg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/Sdz7bOujHWI/AAAAAAAAANA/VL81Xde0KQg/s144/08_prompted_for_group.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With &lt;br /&gt;  set [Account3]  as 'Filter([Account].Generations(3).members, (([Account].CurrentMember.MEMBER_ALIAS = "Net Sales" OR [Account].CurrentMember.MEMBER_Name = "Net Sales")))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, (([Market].CurrentMember.MEMBER_ALIAS = "Europe" OR [Market].CurrentMember.MEMBER_Name = "Europe")))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, (([Time Period].CurrentMember.MEMBER_ALIAS = "Q4-09" OR [Time Period].CurrentMember.MEMBER_Name = "Q4-09")))'&lt;br /&gt;  set [Evaluate0]  as '{TOPCOUNT(Intersect([Product].Generations(6).dimension.members,Descendants([SMU PG - BP Video],[Product].[Gen6,Product])),10,[Actual]) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual LY])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin ({[Account3]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-9166340874835488520?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/9166340874835488520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/dynamic-multi-level-filtering-with-mdx.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/9166340874835488520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/9166340874835488520'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/dynamic-multi-level-filtering-with-mdx.html' title='Dynamic multi-level filtering with MDX'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/Sdz7bezZ0II/AAAAAAAAANE/8-sNB-4NECg/s72-c/01_base_topcount_request.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2279213219856486849</id><published>2009-04-06T16:50:00.004+02:00</published><updated>2009-04-06T16:59:13.622+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><title type='text'>10.1.3.4.1 on the horizon</title><content type='html'>Just got this update from metalink while working on an SR:&lt;br /&gt;&lt;br /&gt;"If it is, please note that there is a patch for windows 32 bits to fix this bug in 10.1.3.4, and also this bug is fixed in the patch set 10.1.3.4.1 which should come out at the end of april.&lt;br /&gt;Please note that a number of fixes will be included in the patch set 10.1.3.4.1, and it might be better to apply this patch when it comes out."&lt;br /&gt;&lt;br /&gt;Finally. Currently it's a real "patchwork" (pun intended) with all the stuff flying around.&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2279213219856486849?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2279213219856486849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/101341-on-horizont.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2279213219856486849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2279213219856486849'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/101341-on-horizont.html' title='10.1.3.4.1 on the horizon'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7082499109987223959</id><published>2009-04-06T14:59:00.003+02:00</published><updated>2009-04-08T21:59:15.234+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='various'/><category scheme='http://www.blogger.com/atom/ns#' term='braindump'/><title type='text'>Notepad++ regexp / entended</title><content type='html'>Gotta remember this link for once:&lt;br /&gt;&lt;br /&gt;http://markantoniou.blogspot.com/2008/06/notepad-how-to-use-regular-expressions.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7082499109987223959?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7082499109987223959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/notepad-regexp-entended_06.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7082499109987223959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7082499109987223959'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/notepad-regexp-entended_06.html' title='Notepad++ regexp / entended'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4706915930549550513</id><published>2009-04-03T22:31:00.001+02:00</published><updated>2009-04-03T22:32:56.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='joy'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>w00t!</title><content type='html'>Guys, check this out: http://oraclebizint.wordpress.com/2009/04/03/mr-winker-has-arrived/&lt;br /&gt;&lt;br /&gt;How cool is that! All rush over and congratulate Venkat properly :-D&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4706915930549550513?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4706915930549550513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/w00t.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4706915930549550513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4706915930549550513'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/w00t.html' title='w00t!'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-2285832999132840800</id><published>2009-04-03T11:06:00.003+02:00</published><updated>2009-04-03T11:15:21.050+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>Patch day</title><content type='html'>Still experiencing quite some connectivity issues with the Essbase integration. I've finally split the service requests, so that the Essbase team doesn't need to go through me every time.&lt;br /&gt;&lt;br /&gt;Patches currently to be tested (alone and in conjunction):&lt;br /&gt;&lt;br /&gt;7482937  &lt;-- already running&lt;br /&gt;7568985  &lt;-- didn't really help so far&lt;br /&gt;8290868&lt;br /&gt;8293083&lt;br /&gt;&lt;br /&gt;8293083 will be interesting since this morning when I logged in I saw that the SR has been obsoleted over night:&lt;br /&gt;&lt;br /&gt;================&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;This patch is obsolete in this platform and language. Please see the reason stated below. Please contact Oracle Support for replacement patch.&lt;br /&gt; &lt;br /&gt;Reason for Obsolescence&lt;/span&gt;&lt;br /&gt;Additional fix required.&lt;br /&gt;================&lt;br /&gt;&lt;br /&gt;I wonder how they answer to my pending patch request now...&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-2285832999132840800?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/2285832999132840800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/patch-day.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2285832999132840800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/2285832999132840800'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/patch-day.html' title='Patch day'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-8079063998526353794</id><published>2009-04-02T19:09:00.001+02:00</published><updated>2009-04-02T19:13:52.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nonsense'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>Does this layout make me look fat?</title><content type='html'>/me points to the subject&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-8079063998526353794?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/8079063998526353794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/does-this-layout-make-me-look-fat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8079063998526353794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/8079063998526353794'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/does-this-layout-make-me-look-fat.html' title='Does this layout make me look fat?'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-5961716289007748718</id><published>2009-04-02T18:43:00.004+02:00</published><updated>2009-04-02T19:07:23.818+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><title type='text'>Cleansing cube imports</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;After Venkat just recently wrote about one task usually done after a cube import - namely the &lt;a href="http://oraclebizint.wordpress.com/2009/03/30/oracle-bi-ee-10134-and-hyperion-essbase-11110-ago-and-todate-functions-custom-mdx-and-evaluate_aggr-achieving-time-based-shifting-and-period-to-date-calculations/"&gt;setup of the time dimensions&lt;/a&gt; - I'd like to continue a bit on this topic.&lt;br /&gt;&lt;br /&gt;One thing that gets many people and can lead to raised eyebrows (in a questionable fashion) is the way, the dimension objects are built in the business model when dragging a cube over.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/DQ_CgjjDni1jfCdIr8OqPg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SdTr9TDlhyI/AAAAAAAAAKE/oA2KJHOzMyQ/s288/imported_dim.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The blue's a dead giveaway that something changes as of Gen3. Let's look at the keys for the lowest level.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/CFQXYWp0ogMsdgBDN-E6kA?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdTr9QFyE3I/AAAAAAAAAJ8/v9KgGcasCbE/s288/imported_llkeys.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And in detail:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/1a5NGkxt1OGk3fqX2H5iWg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdTr9ZV-4II/AAAAAAAAAJ4/AsT0AGqrFXo/s288/imported_llkey_columns.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Gen8,Department#1" only has Gen8,Department as key column.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/xBLh-hRyFj_yCPT_wtLdHw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SdTr9RDEWvI/AAAAAAAAAJs/iqMeWLu0HFQ/s288/imported_llkey_%231.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To see how this behaves if we do nothing, we create a request. Just Gen7,Department, constrained to a specific member.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/07P1gQ3-egHxXyNo43Hlug?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SdTr9stPJNI/AAAAAAAAAKQ/6G2HjLdFx_I/s288/Gen7_request.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Results&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/6ww7XwS_r687UsXyW0hIWw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdTr9XGir1I/AAAAAAAAAKI/P106yB7qGjE/Gen7_results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drill&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/qAMCei20cbc3J9w8oqOR_g?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdTr9ln10PI/AAAAAAAAAKM/kpakGoUjJoI/s288/Gen7_drillresult.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'd call that "suboptimal"...so back to the rpd. Kill the multi-column key. Keep the other and rename it (yes, I'm pedantic with stuff like that). Do the same on all other levels.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/0OTXgUTJ-9qhOrTpvX3AQw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SdTr9SQdIaI/AAAAAAAAAKA/jSbyXrmQYx0/s288/delete_key.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Back to our report and let's look at the results now:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/yNVOG6l2UgLQOSAAnUX_Hw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SdTr9W3lvDI/AAAAAAAAAJw/o7iybITK30s/corrected_drill_results.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Much better. Depending on how your cubes are built, don't forget to ensure that the option "Use unqualified member name for performance" is unchecked.&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-5961716289007748718?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/5961716289007748718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/cleansing-cube-imports.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5961716289007748718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/5961716289007748718'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/cleansing-cube-imports.html' title='Cleansing cube imports'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_kh3-h2s8BmA/SdTr9TDlhyI/AAAAAAAAAKE/oA2KJHOzMyQ/s72-c/imported_dim.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-7728167726171048011</id><published>2009-04-01T12:46:00.003+02:00</published><updated>2009-04-01T12:50:13.984+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='string manipluation'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><title type='text'>Showing numbers as string while retaining the thousand separator</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;Something that came up on &lt;a href="http://forums.oracle.com/forums/thread.jspa?threadID=879389&amp;tstart=0"&gt;OTN&lt;/a&gt;:&lt;br /&gt;Cast a metric (number) as char but still have the thousand separator. E.g.: if "Sales" &gt; 1000 then "Nothing to report" else 1'000?&lt;br /&gt;&lt;br /&gt;Here's a formula you can use:&lt;br /&gt;&lt;br /&gt;case when (LENGTH(cast(Fact.Sales as char)) &gt; 12) then &lt;br /&gt;(SUBSTRING(cast(Fact.Sales as char) FROM LENGTH(cast(Fact.Sales as char)) - 15 FOR 3) || '''') &lt;br /&gt;else '' END || &lt;br /&gt;case when (LENGTH(cast(Fact.Sales as char)) &gt; 9) then &lt;br /&gt;SUBSTRING(cast(Fact.Sales as char) FROM LENGTH(cast(Fact.Sales as char)) - 12 FOR 3) || ''''&lt;br /&gt;else '' END ||  &lt;br /&gt;case when (LENGTH(cast(Fact.Sales as char)) &gt; 6) then &lt;br /&gt;SUBSTRING(cast(Fact.Sales as char) FROM LENGTH(cast(Fact.Sales as char)) - 9 FOR 3) || ''''&lt;br /&gt;else ''  END || &lt;br /&gt;case when (LENGTH(cast(Fact.Sales as char)) &gt; 0) then &lt;br /&gt;SUBSTRING(cast(Fact.Sales as char) FROM LENGTH(cast(Fact.Sales as char)) - 6 FOR 7)&lt;br /&gt;else 'Nothing to report' END&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-7728167726171048011?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/7728167726171048011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/showing-numbers-as-string-while.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7728167726171048011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/7728167726171048011'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/04/showing-numbers-as-string-while.html' title='Showing numbers as string while retaining the thousand separator'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4295440514865539711</id><published>2009-03-30T17:00:00.004+02:00</published><updated>2009-04-20T18:36:29.411+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><category scheme='http://www.blogger.com/atom/ns#' term='gourl'/><title type='text'>GoURL with Essbase dimension members</title><content type='html'>Little reminder for myself. GoURL doesn't like essbase generation names:&lt;br /&gt;&lt;br /&gt;saw.dll?Go&amp;Path=/users/administrator/SMU&amp;Options=rd&amp;Action=Navigate&amp;P0=1&amp;P1=eq&amp;P2=Product."Gen2,Marketing Product"&amp;P3=SMU'&lt;br /&gt;&lt;br /&gt;Gotta URL encode it...&lt;br /&gt;&lt;br /&gt;saw.dll?Go&amp;Path=/users/administrator/SMU&amp;Options=rd&amp;Action=Navigate&amp;P0=1&amp;P1=eq&amp;P2=Product.%22Gen2,Marketing Product%22&amp;P3=SMU'&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Unfortunately I can forget that Idea since I can't wrap the GoURL around an EVALUATE function. Keep you posted...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4295440514865539711?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4295440514865539711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/gourl-with-essbase-dimension-members.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4295440514865539711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4295440514865539711'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/gourl-with-essbase-dimension-members.html' title='GoURL with Essbase dimension members'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4696251373705055167</id><published>2009-03-30T15:46:00.007+02:00</published><updated>2009-04-20T18:36:45.461+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mdx'/><category scheme='http://www.blogger.com/atom/ns#' term='rpd'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='initialization blocks'/><category scheme='http://www.blogger.com/atom/ns#' term='variables'/><title type='text'>Creating your own variables with MDX in the rpd</title><content type='html'>Greeting, programs!&lt;br /&gt;&lt;br /&gt;A while ago I had an issue with reporting against Essbase, namely in the area of the time dimension. More precise: getting the reports to react to rolling weeks, months, quarters etc.&lt;br /&gt;&lt;br /&gt;Now we all know and use variables all the time. CurrentQuarter, CurrentFiscalYear etc. are used all over the place and if you look into your average BI apps repository you'll find the one or the other dozen variables. &lt;br /&gt;The premise here was, that all variables had to be based on Essbase since the cubes were the "single source of truth" for all derived reports and all definitions should be consistent. Fair enough. Alas, when getting down to business and defining all the variables needed for the reports, there was some reluctance with regards to the creation of all these new variables in Essbase.&lt;br /&gt;&lt;br /&gt;As you all know, variables in Essbase have a scope of either&lt;br /&gt; - server&lt;br /&gt; - application&lt;br /&gt; - cube&lt;br /&gt;The fear was, that with numerous cubes running on the same server, the variable management and especially their automation (refresh) would get out of hand. So I was asked to work around that...keeping the original premise in mind: the governance of the cube. All variables have to be sourced from there.&lt;br /&gt;&lt;br /&gt;To start out with, I imported the existing variables relevant to the time dimension with a server-wide scope.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/NEXU3NkEHpbZrCytd4mHsw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdDHzuEFk8I/AAAAAAAAAG0/LZkGiR6KVxI/s288/variables_after_import.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you look at the details of the initialization block behind those variables, you'll see that there's no script in the "Data Source" section but rather a string saying "substitution variables". In UDML this looks like this:&lt;br /&gt;&lt;br /&gt;DECLARE SESSION VARIABLE BLOCK "SUB_VAR_BLOCK_Ess931" AS "SUB_VAR_BLOCK_Ess931" CONNECTION POOL  "Accounts"."Ess931 cube connection"&lt;br /&gt; ASSOCIATED VARIABLES (&lt;br /&gt;    "SUB_VAR_BLOCK_Ess931"."Ess931:vCurQtr",&lt;br /&gt;    "SUB_VAR_BLOCK_Ess931"."Ess931:vCurMo",&lt;br /&gt;    "SUB_VAR_BLOCK_Ess931"."Ess931:vCurWk",&lt;br /&gt;    "SUB_VAR_BLOCK_Ess931"."Ess931:vCurYr" ) RP SCOPE REFRESH PERIODICITY 6000 DATABASE MAP (&lt;br /&gt;   {DefaultMulDB}  AS {substitution variables}  )&lt;br /&gt; PRIVILEGES ( READ);&lt;br /&gt; &lt;br /&gt;So let's create a new init block and a new variable in the "Variable Target" section (here called "vCurMo_01"). Click "Edit Data Source" and choose the connection pool which points to your Essbase server. Then set "Use database specific SQL" to TRUE.&lt;br /&gt;Now for the syntax. What we're looking for is "last month", i.e. the existing "vCurMo" variable - 1 month. Since we're in March (MAR-09), we're expecting February to be our result (FEB-09)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/DM8FWHf_xdsCsFjaAoFhQw?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SdDIXB5vOTI/AAAAAAAAAH8/6Sm5eTCOhGY/s288/initblock_datasource_mdx.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SELECT {} ON COLUMNS, {[Time Period].[&amp;vCurMo].Lag(1)} ON ROWS FROM Ess931_ASO.MyCube&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hit "Test".&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IXCENfCtRi7AfvGIy332Dw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SdDIW9JRofI/AAAAAAAAAH0/XPMh_wmbTE8/s288/variable_filled.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It picks up February in the format of the time dimension in Essbase. All in all, our init block looks like this.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/gS3WnFH75zkd2aekfv_5LA?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SdDIXD0EyfI/AAAAAAAAAIA/oLEDjrBJzyg/s288/initblock_complete.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So far so good for one month. What if we want more months / more quarters / more weeks? Can we just expand the MDX? Let's try it and see if we can get the last 8 months rolling. For that we create 7 more variable targets in the init block called "vCurMo_02" through "vCurMo_08". Then we change the MDX.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/_dLolRLVRF02PCEK-o2mFw?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SdDIXHCuWRI/AAAAAAAAAH4/waFIJwcMFz8/s288/lastperiods_mdx.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SELECT {} ON COLUMNS, LastPeriods (8, [&amp;vCurMo]) ON ROWS FROM Ess931_ASO.MyCube&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, while the query runs fine, the result looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IXCENfCtRi7AfvGIy332Dw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SdDIW9JRofI/AAAAAAAAAH0/XPMh_wmbTE8/s288/variable_filled.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok so back to what we had before and let's adapt that:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/5TFyLlMX5nQxgjU50K_PCg?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SdDIXSxhbnI/AAAAAAAAAIE/Es_KkEmfqKo/s288/lag_twice.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SELECT {} ON COLUMNS, &lt;br /&gt;{[Time Period].[&amp;vCurMo].Lag(1),&lt;br /&gt;[Time Period].[&amp;vCurMo].Lag(2)&lt;br /&gt;} ON ROWS FROM Ess931_ASO.MyCube&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/lh/photo/IXCENfCtRi7AfvGIy332Dw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SdDIW9JRofI/AAAAAAAAAH0/XPMh_wmbTE8/s288/variable_filled.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Still the same. You might have guessed it: if you want to write your own MDX to get a dimension member into a variable, then it's 1 variable = 1 init block. Due to the way MDX queries retrievbe results and the way the variables are populated, you can't fill multiple members variables in one block.&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4696251373705055167?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4696251373705055167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/creating-your-own-variables-with-mdx-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4696251373705055167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4696251373705055167'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/creating-your-own-variables-with-mdx-in.html' title='Creating your own variables with MDX in the rpd'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kh3-h2s8BmA/SdDHzuEFk8I/AAAAAAAAAG0/LZkGiR6KVxI/s72-c/variables_after_import.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-6233116540444007371</id><published>2009-03-30T12:27:00.002+02:00</published><updated>2009-03-30T14:43:47.685+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Confusion</title><content type='html'>Ok, I feel I owe an explanation as to my choice of address for this blog since questions about it kept coming in.&lt;br /&gt;&lt;br /&gt;In ancient Greek mythology (before the age of heroes, even before the age of gods), the hekatonkheires were &lt;a href="http://en.wikipedia.org/wiki/Hecatonchires"&gt;three giants who possessed a hundred and fifty hands&lt;/a&gt;. They were the children of Gaia and Uranos and basically the first beings in existance after the chaos. Cast into Tartaros, &lt;br /&gt;&lt;br /&gt;So while I could have chosen an address directly referencing the topic, I found it more fitting to pay hommage to these mythological entities. If we regard all the aspects that Oracle BI entails nowadays, you really need a hundred hands (or a hundred heads, depending on the source). And who would be better suited for a task like this than those guys.&lt;br /&gt;&lt;br /&gt;Hope that answers your questions.&lt;br /&gt;&lt;br /&gt;Christi@n&lt;br /&gt;Cheers,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-6233116540444007371?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/6233116540444007371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/confusion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6233116540444007371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/6233116540444007371'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/confusion.html' title='Confusion'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-4144442319196329341</id><published>2009-03-27T16:20:00.006+01:00</published><updated>2009-04-20T18:37:10.940+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mdx'/><category scheme='http://www.blogger.com/atom/ns#' term='obiee'/><category scheme='http://www.blogger.com/atom/ns#' term='essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='answers'/><category scheme='http://www.blogger.com/atom/ns#' term='ranking'/><title type='text'>Ranking on Essbase from OBIEE</title><content type='html'>Greetings, programs!&lt;br /&gt;&lt;br /&gt;So I was doing some ranking reports on Essbase sources. From a rather simple request, this developed into a long quest for the best solution in terms of performance, usability, flexibility and making the thing dynamic. For anyone who faces this…here’s a quick overview of the steps I went through and my findings. You might need to scroll somewhat to get to the final solution.&lt;br /&gt;&lt;br /&gt;The report was basically about getting the top N products by “actual versus forecast” “gross sales and backlog” (i.e. two measure hierarchies are taking part in this) on the lowest level of the product dimension with N being a prompted value.&lt;br /&gt;The product dimension itself included two hierarchies: business and marketing. The split beginning at Generation2, the query should only look at the marketing hierarchy and then filter more detailed on the marketing units (Gen3) in a prompt.&lt;br /&gt;&lt;br /&gt;Fair enough. So let’s create this using the normal functionalities in Answers.&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Rp9mqYlBwwAXPVqTa5aVAQ?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_kh3-h2s8BmA/SczvQ3xgA6I/AAAAAAAAAF8/BPtOo7Bk4sg/s288/OBIEE_report_definition.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The important bit being the “Rank” column:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;topn(Scenarios."Act vs Forecast",@{vPromptedRanking}{10})&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Firing this off against the datasource results in…a long while of me staring at “Retrieving data”. Performance is quite bad with this simple example taking 35 seconds. In my other use cases with more members and especially some nasty calculated members in the account hierarchy we are hitting up to 5 minutes in the dashboard with all the prompts and whatnot. Unacceptable. To the log(cave)!&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:24:27&lt;br /&gt;-------------------- Sending query to database named MyCube Scenarios (id: &lt;&lt;154586&gt;&gt;):&lt;br /&gt;With &lt;br /&gt;  set [Account4]  as 'Filter([Account].Generations(4).members, ([Account].currentmember.MEMBER_ALIAS = "Gross Sales &amp; Backlog" OR [Account].currentmember.MEMBER_Name = "Gross Sales &amp; Backlog"))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, ([Market].currentmember.MEMBER_ALIAS = "Europe" OR [Market].currentmember.MEMBER_Name = "Europe"))'&lt;br /&gt;  set [Product2]  as 'Filter([Product].Generations(2).members, ([Product].currentmember.MEMBER_ALIAS = "SMU" OR [Product].currentmember.MEMBER_Name = "SMU"))'&lt;br /&gt;  set [Product8]  as 'Generate({[Product2]}, Descendants([Product].currentmember, [Product].Generations(8),SELF), ALL)'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ([Time Period].currentmember.MEMBER_ALIAS = "Q4-09" OR [Time Period].currentmember.MEMBER_Name = "Q4-09"))'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Market3]},{[Time Period3]}),Scenario.[Act vs Forecast])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE(crossjoin ({[Market3]},{[Time Period3]}),Scenario.[Act vs Forecast %])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS3] as 'AGGREGATE(crossjoin ({[Market3]},{[Time Period3]}),Scenario.[Forecast])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS4] as 'AGGREGATE(crossjoin ({[Market3]},{[Time Period3]}),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2],&lt;br /&gt;    [Scenario].[MS3],&lt;br /&gt;    [Scenario].[MS4]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {crossjoin ({[Account4]},{[Product8]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;&lt;br /&gt;First thing we see: there’s no ranking. No restriction whatsoever with regards to the “Act vs Forecast”. What does this mean for the query? It will actually retrieve me all the members I’ve chosen for all rows in the query. Unconstrained except for the filters in the “With” statement. Not very performing to start with, but that full data stream is then received by the BI server, treated again and everything after number 10 cut off:&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;-------------------- Rows 1363, bytes 774184 retrieved from database query id: &lt;&lt;154586&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;-------------------- Physical query response time 34 (seconds), id &lt;&lt;154586&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;-------------------- Physical Query Summary Stats: Number of physical queries 1, Cumulative time 34, DB-connect time 0 (seconds)&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;-------------------- Rows returned to Client 10&lt;br /&gt;+++Administrator:2e0000:2e0039:----2009/03/27 03:25:02&lt;br /&gt;-------------------- Logical Query Summary Stats: Elapsed time 35, Response time 34, Compilation time 0 (seconds)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Basically the TopN function isn’t translated into its Essbase cousin TopCount which would have neatly given us 10 records right from the start. To cut the story short for this bit: I’ve gotten a confirmation from Metalink: &lt;span style="font-weight:bold;"&gt;“1. Yes none of the Answer based functions are translated into MDX functions for 10G. This may be implemented in 11g.”&lt;/span&gt; Bugger.&lt;br /&gt;&lt;br /&gt;While the SR was pending I already had started with my alternative approach. Do whatever it takes to constrain the data set with the obvious choice being the usage of TopCount. To test faster I shrink the report. The prompts are kicked out and only generic filters kept.&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/itSwk5Req75N4u4jhBu9gQ?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SczvPqKM4oI/AAAAAAAAAF0/6ohs2mS3WRU/s288/topcount_mdx_report.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Major change is the usage of an EVALUATE function which retrieves me the dimension members I want:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('TOPCOUNT(%1.members,10,[Act vs Forecast])',Product."Gen8,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Let’s look at the query:&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0043:----2009/03/27 04:20:07&lt;br /&gt;-------------------- Sending query to database named MyCube Scenarios (id: &lt;&lt;160359&gt;&gt;):&lt;br /&gt;With &lt;br /&gt;  set [Account4]  as 'Filter([Account].Generations(4).members, ([Account].currentmember.MEMBER_ALIAS = "Gross Sales &amp; Backlog" OR [Account].currentmember.MEMBER_Name = "Gross Sales &amp; Backlog"))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, ([Market].currentmember.MEMBER_ALIAS = "Europe" OR [Market].currentmember.MEMBER_Name = "Europe"))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ([Time Period].currentmember.MEMBER_ALIAS = "Q4-09" OR [Time Period].currentmember.MEMBER_Name = "Q4-09"))'&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;set [Evaluate0]  as '{TOPCOUNT([Product].Generations(8).members,10,[Act vs Forecast]) }'&lt;/span&gt;&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account4]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Actual)', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;Ok. 10 rows queried from Essbase. Performance is at 10 seconds for the whole report Next step: I bring back the prompts constraining on the marketing branch of the hierarchy and the marketing units in particular:&lt;br /&gt;&lt;br /&gt;-------------------- Sending query to database named MyCube Scenarios (id: &lt;&lt;84494&gt;&gt;):&lt;br /&gt;With &lt;br /&gt;  set [Account4]  as 'Filter([Account].Generations(4).members, ([Account].currentmember.MEMBER_ALIAS = "Net Sales &amp; Backlog" OR [Account].currentmember.MEMBER_Name = "Net Sales &amp; Backlog"))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, ([Market].currentmember.MEMBER_ALIAS = "Europe" OR [Market].currentmember.MEMBER_Name = "Europe"))'&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;set [Product2]  as 'Filter([Product].Generations(2).members, ([Product].currentmember.MEMBER_ALIAS = "SMU" OR [Product].currentmember.MEMBER_Name = "SMU"))'&lt;/span&gt;&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ([Time Period].currentmember.MEMBER_ALIAS = "Q4-09" OR [Time Period].currentmember.MEMBER_Name = "Q4-09"))'&lt;br /&gt;  set [Evaluate0]  as '{TOPCOUNT([Product].Generations(6).members,5,[Act vs Forecast]) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account4]},crossjoin ({[Market3]},crossjoin ({[Product2]},{[Time Period3]}))),Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/i0_6Hh902ORiWFxSnWl09g?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SczvPBnpjhI/AAAAAAAAAFw/w7vj2Hb-4IE/s144/products_withwrongaggregation.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;br /&gt;&lt;br /&gt;Cute. If I combine TopCount with OBIEE filters and both of them are based on the same dimension, the aggregation level is changed to the one of the filter criteria. Since I use SMU, all numbers are retrieved for this level. Lesson learned.&lt;br /&gt;&lt;br /&gt;New MDX:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('Intersect(TopCount(Descendants([SMU],6,SELF),10,[Act vs Forecast]),%1.dimension.members)',Product."Gen8,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This one’s a bit more complex to read, but we basically force an intersection of the top 10 descendants of the marketing hierarchy starting member called SMU, 6 generations down (since SMU is generation 2) with the lowest level product.&lt;br /&gt;&lt;br /&gt;The results are nothing but staggering in terms of performance increase.&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Sending query to database named MyCube Scenarios (id: &lt;&lt;158447&gt;&gt;):&lt;br /&gt;With &lt;br /&gt;  set [Account4]  as 'Filter([Account].Generations(4).members, ([Account].currentmember.MEMBER_ALIAS = "Gross Sales &amp; Backlog" OR [Account].currentmember.MEMBER_Name = "Gross Sales &amp; Backlog"))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, ([Market].currentmember.MEMBER_ALIAS = "Europe" OR [Market].currentmember.MEMBER_Name = "Europe"))'&lt;br /&gt;  set [Time Period3]  as 'Filter([Time Period].Generations(3).members, ([Time Period].currentmember.MEMBER_ALIAS = "Q4-09" OR [Time Period].currentmember.MEMBER_Name = "Q4-09"))'&lt;br /&gt;  set [Evaluate0]  as '{Intersect(TopCount(Descendants([SMU],4,SELF),10,[Act vs Forecast]),[Product].Generations(6).dimension.members) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE(crossjoin ({[Account4]},crossjoin ({[Market3]},{[Time Period3]})),Scenario.[Act vs Forecast])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {{[Evaluate0]}} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Query Status: Successful Completion&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Rows 10, bytes 2720 retrieved from database query id: &lt;&lt;158447&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Physical query response time 0 (seconds), id &lt;&lt;158447&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Physical Query Summary Stats: Number of physical queries 1, Cumulative time 0, DB-connect time 0 (seconds)&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Rows returned to Client 10&lt;br /&gt;+++Administrator:2e0000:2e0040:----2009/03/27 04:04:14&lt;br /&gt;-------------------- Logical Query Summary Stats: Elapsed time 0, Response time 0, Compilation time 0 (seconds)&lt;br /&gt;&lt;br /&gt;All is done in less than one second. 10 rows received, 10 rows treated. Nice. Let’s make this MDX dynamically reacting to two different prompts for hierarchy and unit as well as the TopN:&lt;br /&gt;&lt;br /&gt;For switching hierarchies:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('TopCount(Intersect(Descendants([@{vPromptedHier}{SMU}],6,SELF),%1.dimension.members), @{vPromptedRanking}{10},[Act vs Forecast])',Product."Gen8,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And for switching the actual units:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('TopCount(Intersect(Descendants([@{vPromptedSMU}{Business Markets}],5,SELF),%1.dimension.members), @{vPromptedRanking}{10},[Act vs Forecast])',Product."Gen8,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Seems perfect. It does everything I need, is dynamic and flexible enough and is quick. So basically you could stop reading here.&lt;br /&gt;Alas, checking the actual result sets I see some differences between the OBIEE TopN based report and the MDX TopCount based one:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TopCount&lt;/span&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/LP859IneudmpmDqCiXBjow?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_kh3-h2s8BmA/SczvQbmpzVI/AAAAAAAAAF4/GtmanVViwDg/s288/MDX_top3.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;TopN&lt;/span&gt;&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/YGj0sANQhtUT9Hzmxzkltw?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_kh3-h2s8BmA/SczvMCqko3I/AAAAAAAAAFs/5zGe8BtucSI/s288/obiee_top3.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The highest in TopCount is only fourth in the TopN while 915-000036, 984-000061 and 984-000061 have been dropped from the TopCount. Finding the reason for this was a bit tedious, but those three members are actually shared members.&lt;br /&gt;My whole product dimension is basically an unbalanced hierarchy. The business hierarchy using the products as its lowest level in generation 7 while the marketing hierarchy uses the products as lowest level in generation 8. Logically inconsistent levels (since the groupings etc. differ) – CHECK. Inconsistent depth (7 vs. 8 generations) - CHECK. With most products being shared members on one branch or the other, this kills TopCount.&lt;br /&gt;&lt;br /&gt;I have the feeling that transforming the hierarchy into a ragged one would solve the issue since both branches would end on generation 8 (the target of my MDX).&lt;br /&gt;But let’s continue down the road where we have control over the bits and pieces: I’m waiting on input on the MDX itself from a new service request I raised. But since I still need a viable solution that supports all my requirements and is fast (everything beyond 10 seconds is slow for me).&lt;br /&gt;&lt;br /&gt;After some trials I meet halfway between the OBIEE and MDX solution:&lt;br /&gt;&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/x8b-YO5uIcws2NXRLVD2NQ?authkey=Gv1sRgCKCt9vj3otKWOA&amp;feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_kh3-h2s8BmA/SczvLZy8jQI/AAAAAAAAAFo/RjPOZcl2V4Y/s288/hybrid_mdxplusrank.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The “Products” column still holds the MDX:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EVALUATE('ORDER(Intersect(%1.dimension.members,Descendants([@{vPromptedSMU}{Business Markets}],5,SELF)), [Act vs Forecast],BDESC)',Product."Gen8,Product")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It now retrieves descendant products of the prompted marketing unit, ordered by actual vs. forecast. This will still retrieve quite some records, but we have the certainty that even shared members are included.&lt;br /&gt;&lt;br /&gt;My search for the TopN now happens again over the filters. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;rank(Scenarios.Act vs Forecast) is less than or equal to @{vPromptedRanking}{10}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I left all additional calculated members etc. in, so you can see that even with the added payload, this is a way to go. So let’s have a look at the log:&lt;br /&gt;&lt;br /&gt;-------------------- Sending query to database named MyCube Scenarios (id: &lt;&lt;174885&gt;&gt;):&lt;br /&gt;With &lt;br /&gt;  set [Account4]  as 'Filter([Account].Generations(4).members, ([Account].currentmember.MEMBER_ALIAS = "Gross Sales &amp; Backlog" OR [Account].currentmember.MEMBER_Name = "Gross Sales &amp; Backlog"))'&lt;br /&gt;  set [Market3]  as 'Filter([Market].Generations(3).members, ([Market].currentmember.MEMBER_ALIAS = "Europe" OR [Market].currentmember.MEMBER_Name = "Europe"))'&lt;br /&gt;  set [Evaluate0]  as '{ORDER(Intersect([Product].Generations(8).dimension.members,Descendants([SMU - Business Markets],5,SELF)), [Act vs Forecast],BDESC) }'&lt;br /&gt;  member [Scenario].[MS1] as 'AGGREGATE({[Market3]},Scenario.[Forecast])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS2] as 'AGGREGATE({[Market3]},Scenario.[Act vs Forecast])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS3] as 'AGGREGATE({[Market3]},Scenario.[Act vs Forecast %])', SOLVE_ORDER = 100&lt;br /&gt;  member [Scenario].[MS4] as 'AGGREGATE({[Market3]},Scenario.[Actual])', SOLVE_ORDER = 100&lt;br /&gt;select &lt;br /&gt;  { [Scenario].[MS1],&lt;br /&gt;    [Scenario].[MS2],&lt;br /&gt;    [Scenario].[MS3],&lt;br /&gt;    [Scenario].[MS4]&lt;br /&gt;  } on columns,&lt;br /&gt;  NON EMPTY {crossjoin ({[Account4]},{[Evaluate0]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows &lt;br /&gt;from [MyCube_A.MyCube]&lt;br /&gt;&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Query Status: Successful Completion&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Rows 603, bytes 342504 retrieved from database query id: &lt;&lt;174885&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Physical query response time 6 (seconds), id &lt;&lt;174885&gt;&gt;&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Physical Query Summary Stats: Number of physical queries 1, Cumulative time 6, DB-connect time 0 (seconds)&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Rows returned to Client 10&lt;br /&gt;+++Administrator:2e0000:2e006c:----2009/03/27 05:33:28&lt;br /&gt;-------------------- Logical Query Summary Stats: Elapsed time 7, Response time 6, Compilation time 0 (seconds)&lt;br /&gt;&lt;br /&gt;6 seconds is an acceptable performance for an interim solution. What’s left now is to replace the normal navigation on dimension members retrieved through the rpd with goURL commands on the column populated by the MDX. Oh yeah…and to hope the service request will give a solution for the Topcount issue with shared members.&lt;br /&gt;&lt;br /&gt;Thanks to Pradeesh for sharing the workload and also trying out some of the weirder options I came up with.&lt;br /&gt;&lt;br /&gt;End of line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-4144442319196329341?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/4144442319196329341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/ranking-on-essbase-from-obiee.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4144442319196329341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/4144442319196329341'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/ranking-on-essbase-from-obiee.html' title='Ranking on Essbase from OBIEE'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_kh3-h2s8BmA/SczvQ3xgA6I/AAAAAAAAAF8/BPtOo7Bk4sg/s72-c/OBIEE_report_definition.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880416463963401464.post-3852440679919995602</id><published>2009-03-27T15:54:00.003+01:00</published><updated>2009-03-30T14:43:58.746+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='various'/><title type='text'>Oracle: Total BI</title><content type='html'>Hello and welcome!&lt;br /&gt;&lt;br /&gt;Last Saturday I had a nice chat with the guys from &lt;a href="http://www.rittmanmead.com"&gt;RittmanMead&lt;/a&gt; and Jon was inquiring as to why I'm not blogging my findings and thoughts, which I frequently send out. Prime reason - and he fully agreed with that - is the "assumed knowledge" factor. &lt;br /&gt;&lt;br /&gt;When I note something for myself (i.e. offline braindumping), I can't help but wonder whether it would be "blog-worthy" or not. Obviously the answer normally was: "Naah. That's too basic" or "That's way too case-specific to be explained in a way useful to others". Some time afterwards, lo and behold! &lt;a href="http://oraclebizint.wordpress.com/"&gt;Venkat&lt;/a&gt;, &lt;a href="http://www.rittmanmead.com/blog"&gt;Mark&lt;/a&gt;, &lt;a href="http://obiee101.blogspot.com/"&gt;John&lt;/a&gt; or one of the other usual suspects write about since they stumbled upon it themselves, someone asked the question (for the hundredth time) on OTN or because they're working through their collected project post-its.&lt;br /&gt;&lt;br /&gt;So he got me thinking. Then this week: enter Chet Justice (aka &lt;a href="http://www.oraclenerd.com/"&gt;oraclenerd&lt;/a&gt;). He basically asked his audience to "pressure" me into blogging.&lt;br /&gt;&lt;br /&gt;Well Jon, Chet (and all the others who kept asking the same)...here I am.&lt;br /&gt;&lt;br /&gt;Cheers guys!&lt;br /&gt;Christi@n&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880416463963401464-3852440679919995602?l=hekatonkheires.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hekatonkheires.blogspot.com/feeds/3852440679919995602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/oracle-total-bi.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3852440679919995602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880416463963401464/posts/default/3852440679919995602'/><link rel='alternate' type='text/html' href='http://hekatonkheires.blogspot.com/2009/03/oracle-total-bi.html' title='Oracle: Total BI'/><author><name>Christian Berg</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://3.bp.blogspot.com/_kh3-h2s8BmA/SVFgpzVAlUI/AAAAAAAAABg/-R7O8pQdpSo/S220/IMG_3480.JPG'/></author><thr:total>7</thr:total></entry></feed>
