<?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-8893509811619900128</id><updated>2012-01-03T06:42:20.745-08:00</updated><category term='Essbase'/><category term='Vista'/><category term='Twitter'/><category term='EAS'/><category term='Windows 8'/><category term='Installer'/><category term='CDF'/><category term='Hyperion'/><category term='Formatting'/><category term='MSI'/><category term='Butterfly Report'/><category term='Keyboard'/><category term='Custom Defined Functions'/><category term='JDeveloper'/><category term='11.1.2.1.102'/><category term='Kaleidoscope 2010'/><category term='11.1.2.1'/><category term='Calculation Scripts'/><category term='Oracle XE'/><category term='Planning'/><category term='Fiddler'/><category term='shortcuts'/><category term='Classic Add-in'/><category term='Setting'/><category term='Office 2007'/><category term='JAPI'/><category term='Calc Scripts'/><category term='Cloud'/><category term='Sample Code'/><category term='Revocation'/><category term='HFM'/><category term='Essbase Studio'/><category term='MaxL'/><category term='Cloud Computing'/><category term='Essbase JAPI'/><category term='Add-in'/><category term='Amazon Elastic Compute Cloud'/><category term='Extensions'/><category term='Office 2010'/><category term='JDev'/><category term='Kaleidoscope 2009'/><category term='ODTUG'/><category term='Install Shield'/><category term='Report Script'/><category term='TextPad'/><category term='VBA'/><category term='OTN'/><category term='UAC'/><category term='Install'/><category term='Administrative Services'/><category term='SmartView'/><category term='64 Bit'/><category term='Certificate'/><category term='ODTUG Kaleidoscope 2010'/><category term='Oralce Express Edition'/><category term='Debug'/><category term='Internet Explorer'/><category term='Smart View'/><category term='Kaleidoscope'/><category term='samplecode.oracle.com'/><category term='MDX'/><category term='11.1.2'/><category term='Excel'/><title type='text'>Essbase Labs</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>55</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2910026962464989191</id><published>2011-12-15T07:42:00.001-08:00</published><updated>2011-12-15T07:42:57.569-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='MSI'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Install'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Installer'/><category scheme='http://www.blogger.com/atom/ns#' term='Install Shield'/><title type='text'>Smart View Command Line Install</title><content type='html'>&lt;p&gt;Though this is in the documentation I thought I would push this out with a few more details as we get a good amount of requests on this topic.&amp;nbsp; Most are looking for two things:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Install SV silently (no prompts)&lt;/li&gt; &lt;li&gt;Install SV and pass in the Shared Connections URL&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;The Smart View installer is built with Install Shield and therefore it supports most Install Shield command line switches along with standard windows installer switches.&amp;nbsp; To properly understand how these switches work you should understand the basics of the Smart View install along with most windows installers.&amp;nbsp; There are really two main parts:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Setup.exe this is a bootstrapper that does thing like handles languages and dependencies and also contains and launches an MSI. &lt;/li&gt; &lt;li&gt;Smart View MSI file is the windows installer file that controls the rest of the setup like laying down files and writing to the registry among other things.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Each part of the installation accepts various command line switches:&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="656"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;Switch&lt;/td&gt; &lt;td valign="top" width="342"&gt;Description&lt;/td&gt; &lt;td valign="top" width="176"&gt;Applies To&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;/s&lt;/td&gt; &lt;td valign="top" width="342"&gt;Runs in silent mode&lt;/td&gt; &lt;td valign="top" width="176"&gt;Setup.exe&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;/v&lt;/td&gt; &lt;td valign="top" width="342"&gt;Passes command line parameters to the MSI file&lt;/td&gt; &lt;td valign="top" width="176"&gt;Setup.exe&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;/a&lt;/td&gt; &lt;td valign="top" width="342"&gt;Runs as an administrator&lt;/td&gt; &lt;td valign="top" width="176"&gt;Setup.exe&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;/qn&lt;/td&gt; &lt;td valign="top" width="342"&gt;Runs in silent mode&lt;/td&gt; &lt;td valign="top" width="176"&gt;MSI File&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;URL=&lt;/td&gt; &lt;td valign="top" width="342"&gt;Shared Connections URL&lt;/td&gt; &lt;td valign="top" width="176"&gt;MSI File&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Note:&amp;nbsp; Any thing you need to pass to the MSI must be passed from setup.exe using /v and must be in quotes.&lt;/p&gt; &lt;p&gt;Examples:&lt;/p&gt; &lt;p&gt;Run in silent mode: &lt;/p&gt; &lt;p&gt;&lt;em&gt;SmartView.exe /s /v"/qn"&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Run in silent mode with the Shared Connection URL: &lt;/p&gt; &lt;p&gt;&lt;em&gt;SmartView.exe /s /v"/qn URL=http://server:port/workspace/SmartViewProviders"&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Run in normal mode with the Shared Connection URL:&lt;/p&gt; &lt;p&gt;&lt;em&gt;SmartView.exe /v" URL=http://server:port/workspace/SmartViewProviders"&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can also find this documentation in the Oracle Hyperion Enterprise Performance Management System Installation and Configuration Guide:&lt;/p&gt; &lt;p&gt;&lt;a href="http://docs.oracle.com/cd/E17236_01/epm.1112/epm_install_11121/frameset.htm?ch03s07s01.html"&gt;http://docs.oracle.com/cd/E17236_01/epm.1112/epm_install_11121/frameset.htm?ch03s07s01.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2910026962464989191?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2910026962464989191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2910026962464989191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2910026962464989191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2910026962464989191'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/12/smart-view-command-line-install.html' title='Smart View Command Line Install'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7690244319412359591</id><published>2011-12-12T11:21:00.001-08:00</published><updated>2011-12-12T11:21:41.922-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Debug'/><category scheme='http://www.blogger.com/atom/ns#' term='Fiddler'/><title type='text'>Using Fiddler to Debug Smart View Issues</title><content type='html'>&lt;p&gt;When we get customer issues with Smart View often the first thing we ask for is a “Fiddler” log.&amp;nbsp; The first response is often “What is Fiddler?” so I thought I would take some time to go over what fiddler is and how it can be used to debug a Smart View issue.&lt;/p&gt; &lt;h3&gt;What is Fiddler?&lt;/h3&gt; &lt;p&gt;&lt;a href="http://www.fiddler2.com/fiddler2/"&gt;http://www.fiddler2.com/fiddler2/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;From the fiddler web site: &lt;em&gt; “Fiddler is a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect traffic, set breakpoints, and "fiddle" with incoming or outgoing data.”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Simply put for Smart View; it is a tool that can be used to monitor the HTTP/XML traffic that Smart View uses to communicate with most of it’s providers.&lt;/p&gt; &lt;p&gt;Example Request/Response for Smart View:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-O_TJXBA92UQ/TuZUODorFmI/AAAAAAAAAqQ/O8vjpbd4bSc/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-f8-CijQe954/TuZUOiV8CsI/AAAAAAAAAqY/PZO7ifjD0fs/image_thumb%25255B2%25255D.png?imgmax=800" width="640" height="411"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;How To Use Fiddler with Smart View&lt;/h3&gt; &lt;ol&gt; &lt;li&gt;Download and install fiddler on the client where you are experiencing the Smart View issue.&amp;nbsp; &lt;a href="http://www.fiddler2.com/fiddler2/"&gt;http://www.fiddler2.com/fiddler2/&lt;/a&gt; – Remember this is a client tool and needs to be installed on the same machine as the Smart View add-in.&amp;nbsp; There is no need to install fiddler on any server (provider).&lt;/li&gt; &lt;li&gt;Launch Fiddler and make sure you are capturing traffic (File | Capture Traffic)&lt;/li&gt; &lt;li&gt;Recreate the Smart View issue while fiddler is capturing traffic.&amp;nbsp; When doing this is best if other applications are closed as many application use http requests and these will also be captured.&amp;nbsp; Things like email, iTunes, and any browser based application.&amp;nbsp; This will not be an issue but when sharing logs with support you do not want to share traffic dealing with emails or other personal items.&amp;nbsp; Plus it will be a lot easier to read if the only traffic is related to Smart View.&lt;/li&gt; &lt;li&gt;The last step is to share these logs with Smart View support or development.&amp;nbsp; It is always best to have this along with a SR logged.&amp;nbsp; This way the issue can be properly tracked.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;How to Read the Fiddler Log&lt;/h3&gt; &lt;p&gt;There are tons of options in Fiddler but there are a few things we are looking for and a few areas in Fiddler where we find this information.&lt;/p&gt; &lt;p&gt;Statistics:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-gK2yuukyHVI/TuZUPY4QHUI/AAAAAAAAAqc/EE4Xx2eHsHA/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-fu6GuqAd58w/TuZUP7AwlBI/AAAAAAAAAqo/9HHWU4tLPRE/image_thumb%25255B5%25255D.png?imgmax=800" width="640" height="411"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Inspectors:&lt;/p&gt; &lt;p&gt;Inspectors has many sections be we are usually looking at the XML sections and seeing what is happening with each request/response to narrow down the issue.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-iiUGgoDVI4E/TuZUQgI3gSI/AAAAAAAAAqw/zx9rQh7yLf8/s1600-h/image%25255B14%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-PDhhXHCbIGo/TuZURO4Kg4I/AAAAAAAAAq4/9rD6y_tT0aw/image_thumb%25255B8%25255D.png?imgmax=800" width="640" height="411"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Fiddler is a great tool for debugging but be sure to have a support case opened so that support can help guide you and interpret what you are seeing.&amp;nbsp; For additional details you can review a short tutorial on this same topic.&amp;nbsp; &lt;a href="http://www.oracle.com/webfolder/technetwork/tutorials/demos/hyp/CollectingLogs/CollectingLogs.htm"&gt;http://www.oracle.com/webfolder/technetwork/tutorials/demos/hyp/CollectingLogs/CollectingLogs.htm&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7690244319412359591?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7690244319412359591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7690244319412359591' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7690244319412359591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7690244319412359591'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/12/using-fiddler-to-debug-smart-view.html' title='Using Fiddler to Debug Smart View Issues'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-f8-CijQe954/TuZUOiV8CsI/AAAAAAAAAqY/PZO7ifjD0fs/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8516222220626146613</id><published>2011-11-22T10:24:00.001-08:00</published><updated>2011-11-22T10:24:33.177-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='64 Bit'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 8'/><title type='text'>Smart View R&amp;D–Clearly Not Supported Yet…</title><content type='html'>&lt;p&gt;Doing a little R&amp;amp;D and thought I would share that I am having some good success with Smart View on Windows 8 Developer Preview (64-Bit) running in Office 2010 (64-Bit).&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-y2TMaCtymW4/Tsvo3afCXCI/AAAAAAAAApI/9SUSEKd54Pw/s1600-h/image%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/-UPx6CUzCQCU/Tsvo4Nazj2I/AAAAAAAAApQ/zMxhufY9IO4/image_thumb%25255B1%25255D.png?imgmax=800" width="644" height="404"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;We all know this is not supported but it is nice to see that on the surface it works.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Don’t even think about calling support on this…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8516222220626146613?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8516222220626146613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8516222220626146613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8516222220626146613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8516222220626146613'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/11/doing-little-r-and-thought-i-would.html' title='Smart View R&amp;amp;D–Clearly Not Supported Yet…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-UPx6CUzCQCU/Tsvo4Nazj2I/AAAAAAAAApQ/zMxhufY9IO4/s72-c/image_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8916607370393254729</id><published>2011-11-16T15:34:00.001-08:00</published><updated>2011-11-16T15:34:33.143-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Calc Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Defined Functions'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>CDF Sample Code</title><content type='html'>&lt;p&gt;Recently the Essbase CDF sample code was moved and I thought it would be a good idea to let every one know where the new code can be found.&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.oracle.com/technetwork/indexes/samplecode/essbase-sample-522117.html" href="http://www.oracle.com/technetwork/indexes/samplecode/essbase-sample-522117.html" target="_blank"&gt;http://www.oracle.com/technetwork/indexes/samplecode/essbase-sample-522117.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;or &lt;/p&gt; &lt;p&gt;&lt;a href="http://download.oracle.com" target="_blank"&gt;download.oracle.com&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Click Sample Code Index on the left&lt;/p&gt; &lt;p&gt;Click on Essbase&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--VuIMhjGlH8/TsRIhnl47JI/AAAAAAAAAo0/FqnJk85kSo0/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-S7pDbCwi1lA/TsRIiN5AtQI/AAAAAAAAAo8/hLbi90TXlcs/image_thumb%25255B5%25255D.png?imgmax=800" width="605" height="480"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8916607370393254729?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8916607370393254729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8916607370393254729' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8916607370393254729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8916607370393254729'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/11/recently-essbase-cdf-sample-code-was.html' title='CDF Sample Code'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-S7pDbCwi1lA/TsRIiN5AtQI/AAAAAAAAAo8/hLbi90TXlcs/s72-c/image_thumb%25255B5%25255D.png?imgmax=800' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-600064708424857092</id><published>2011-10-28T12:22:00.000-07:00</published><updated>2011-10-30T06:20:28.445-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Setting'/><category scheme='http://www.blogger.com/atom/ns#' term='Add-in'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Revocation'/><category scheme='http://www.blogger.com/atom/ns#' term='Certificate'/><title type='text'>Add-in Load Times</title><content type='html'>&lt;p&gt;Recently we found a setting that improves add-in load time drastically, this setting applies to any Office add-in but Smart View will gladly benefit.&lt;/p&gt; &lt;p&gt;In Internet Explorer options uncheck the option “Check for publisher's certificate revocation".&amp;nbsp; Doing this should noticeably speed up the time for add-in loading.&amp;nbsp; We have only done informal tests but the results have been positive.&amp;nbsp; If you want to check out some of the boring details you can read this &lt;a title="http://office.microsoft.com/en-us/office-2003-resource-kit/how-office-performs-certificate-revocation-HA001140308.aspx" href="http://office.microsoft.com/en-us/office-2003-resource-kit/how-office-performs-certificate-revocation-HA001140308.aspx" target="_blank"&gt;http://office.microsoft.com/en-us/office-2003-resource-kit/how-office-performs-certificate-revocation-HA001140308.aspx&lt;/a&gt; or you can just uncheck it and see if it loads faster…&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-I4HTjwaxf4A/TqsBF-qSUyI/AAAAAAAAAoc/cyUFoiyHBpU/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-aF9DFuxxxcs/TqsBGXcoA_I/AAAAAAAAAok/zmZexZWcsxs/image_thumb%25255B2%25255D.png?imgmax=800" width="375" height="480"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;My Excel now loads fully in less than 3 seconds (2.66s)!&lt;/p&gt; &lt;p&gt; &lt;hr&gt; Update:&lt;/p&gt; &lt;p&gt;Please work with IT departments and understand the security implications prior to making any change like this.&amp;nbsp; This TechNet article describes why the setting was put in place for Windows Vista and above.&amp;nbsp; &lt;a title="http://technet.microsoft.com/en-us/library/ee619730(WS.10).aspx" href="http://technet.microsoft.com/en-us/library/ee619730(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/ee619730(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-600064708424857092?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/600064708424857092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=600064708424857092' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/600064708424857092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/600064708424857092'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/10/add-in-load-times.html' title='Add-in Load Times'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-aF9DFuxxxcs/TqsBGXcoA_I/AAAAAAAAAok/zmZexZWcsxs/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-4965622042364033602</id><published>2011-09-30T07:52:00.001-07:00</published><updated>2011-09-30T07:52:42.700-07:00</updated><title type='text'>Smart View is 2 words…</title><content type='html'>&lt;p&gt;OK I wanted to do a mindless post so I selected a stupid topic.&amp;nbsp; Just so everyone knows it is 2 words; “Smart View”.&amp;nbsp; Not SmartView, I see this&lt;strong&gt; a lot&lt;/strong&gt; (also 2 words) and wanted folks to know.&lt;/p&gt; &lt;p&gt;I suck at grammar so feel free to rip me in the comments.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-4965622042364033602?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/4965622042364033602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=4965622042364033602' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4965622042364033602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4965622042364033602'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/09/smart-view-is-2-words.html' title='Smart View is 2 words…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5679154881641525047</id><published>2011-09-22T08:48:00.001-07:00</published><updated>2011-09-22T08:48:36.063-07:00</updated><title type='text'>PSU 102 New Features Tutorial</title><content type='html'>&lt;p&gt;Some folks have told me that are interested in the new features in Smart View 11.1.2.1.102 but are not ready to upgrade.&amp;nbsp; If you want to see the features prior to doing an upgrade check out this awesome tutorial.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a title="http://www.oracle.com/technetwork/middleware/smart-view-for-office/tutorials/index.html" href="http://www.oracle.com/technetwork/middleware/smart-view-for-office/tutorials/index.html"&gt;http://www.oracle.com/technetwork/middleware/smart-view-for-office/tutorials/index.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5679154881641525047?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5679154881641525047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5679154881641525047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5679154881641525047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5679154881641525047'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/09/psu-102-new-features-tutorial.html' title='PSU 102 New Features Tutorial'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-6339667845446909425</id><published>2011-09-16T07:48:00.001-07:00</published><updated>2011-09-16T07:48:32.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='11.1.2.1.102'/><category scheme='http://www.blogger.com/atom/ns#' term='Butterfly Report'/><category scheme='http://www.blogger.com/atom/ns#' term='11.1.2.1'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyperion'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Smart View had emerged from the chrysalis…</title><content type='html'>&lt;p&gt;OK that is a bad butterfly reference but I want to point out one of the new Smart View 11.1.2.1.102 features.&amp;nbsp; Butterfly reports are reports that have metadata in the middle of 2 data columns.&amp;nbsp; With Smart View they can now be created, formatted, and interacted with!&amp;nbsp; You can also use multi-range grids to have many butterfly reports on one sheet from various Essbase sources.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-saTvJeNZkHo/TnNhs7I3zvI/AAAAAAAAAnU/LGQ8oHDyCUI/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-ixQdfBIxGL4/TnNhvi8qzpI/AAAAAAAAAnY/aCZe9OfkfsM/image_thumb%25255B2%25255D.png?imgmax=800" width="640" height="383"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;If you do this at work you may get fired but it is sure pretty!&amp;nbsp; And yes this is refreshable and more…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-6339667845446909425?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/6339667845446909425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=6339667845446909425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6339667845446909425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6339667845446909425'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/09/smart-view-had-emerged-from-chrysalis.html' title='Smart View had emerged from the chrysalis…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-ixQdfBIxGL4/TnNhvi8qzpI/AAAAAAAAAnY/aCZe9OfkfsM/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-364990121697892615</id><published>2011-09-15T08:27:00.001-07:00</published><updated>2011-09-16T07:21:32.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Classic Add-in'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>If you like the Classic Add-in, check this out…</title><content type='html'>&lt;p&gt;Smart View 11.1.2.1.102 is the highly anticipated release with a number of new features for improved interaction with Essbase, making Smart View compelling for the Essbase Addin Community. &lt;br&gt;&lt;/p&gt; &lt;p&gt;Customers can now take advantage of a new forward looking architecture, along with the features they enjoy in the Essbase Addin. &lt;br&gt;&lt;/p&gt; &lt;p&gt;For current Smart View users, the new features provides a rich user experience over the current functionality. &lt;br&gt;&lt;/p&gt; &lt;p&gt;What’s New – Smart View 11.1.2.1.102 &lt;br&gt;• Member Name and Alias on Rows &lt;br&gt;• Formula Preservation &lt;br&gt;• Formula Fill &lt;br&gt;• Sheet Level Options &lt;br&gt;• New Zoom Options &lt;br&gt;• Range-Based operations &lt;br&gt;• Sheet level Options &lt;br&gt;• Linked Reporting Objects &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You can download this patch from Oracle Support.&lt;/p&gt; &lt;hr&gt; Check out the following link to sign up for a webcast on the new features for Smart View 11.1.2.1.102 &lt;a title="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1356368.1" href="https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1356368.1"&gt;https://support.oracle.com/CSP/main/article?cmd=show&amp;amp;type=NOT&amp;amp;id=1356368.1&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-364990121697892615?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/364990121697892615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=364990121697892615' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/364990121697892615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/364990121697892615'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/09/if-you-like-classic-add-in-check-this.html' title='If you like the Classic Add-in, check this out…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2574908608411541437</id><published>2011-09-01T09:44:00.001-07:00</published><updated>2011-09-01T09:44:10.177-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Keyboard'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='shortcuts'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyperion'/><title type='text'>Short Cut Keys and Smart View</title><content type='html'>&lt;p&gt;I hear a lot of discussion and sometime complaints about what shortcut keys do or do not exist for Smart View and being a ‘mouse’ centric guy I really never paid much attention.&amp;nbsp;&amp;nbsp; Recently I saw a demo of the Ribbon interface where someone explained the model Office used for Keyboard shortcuts and I took notice.&amp;nbsp; I took notice because basically you can do anything you want in Smart View with keyboard shortcuts and you can customize some of your favorites to be really quick and easy.&amp;nbsp; &lt;/p&gt; &lt;p&gt;To get really familiar with keyboard shortcut you need to start by understanding what Office give us for free.&amp;nbsp; Frankly Smart View does not do anything special here, we are simply leveraging the ribbon and just get this stuff.&lt;/p&gt; &lt;p&gt;&lt;a title="http://office2010.microsoft.com/en-us/excel-help/keyboard-shortcuts-in-excel-2010-HP010342494.aspx" href="http://office2010.microsoft.com/en-us/excel-help/keyboard-shortcuts-in-excel-2010-HP010342494.aspx"&gt;http://office2010.microsoft.com/en-us/excel-help/keyboard-shortcuts-in-excel-2010-HP010342494.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;This applies to Office 2007 and Office 2010 because this is where the ribbon is available.&amp;nbsp; It will also apply better to more recent releases of Smart View where we have heavily integrated with the Office ribbon.&lt;/p&gt; &lt;p&gt;The &lt;strong&gt;magic&lt;/strong&gt; key to remember is the ‘ALT’ key.&amp;nbsp;&amp;nbsp; Open Office and press the ‘ALT’ and all the shortcuts in Office will be revealed even for Smart View.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-K79nH-Lg75E/Tl-2Tp5nqAI/AAAAAAAAAm4/NiILX0SjSgU/s1600-h/image%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/-1kOyzxb-hFU/Tl-2UC6ZM-I/AAAAAAAAAm8/uc6HoghnwbA/image_thumb%25255B2%25255D.png?imgmax=800" width="640" height="374"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;ALT-S activates the Smart View ribbon and once I have a specific query in play I can also activate my provider specific ribbons.&amp;nbsp; ALT-Y-AZ-N does a zoom in on an Essbase Ad-Hoc query.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-U-tIbk0NPMU/Tl-2Ui66qWI/AAAAAAAAAnA/BdAQETBf6pU/s1600-h/image%25255B9%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/-U_HFmlS95WE/Tl-2VHQWlsI/AAAAAAAAAnE/rqwCVYsU8UI/image_thumb%25255B5%25255D.png?imgmax=800" width="640" height="374"&gt;&lt;/a&gt;o&lt;/p&gt; &lt;p&gt;I know that is a lot of key strokes!&amp;nbsp; And the key to making this useful is the &lt;a href="http://office.microsoft.com/en-us/help/customize-the-quick-access-toolbar-HA001234105.aspx" target="_blank"&gt;Office Quick Access toolbar&lt;/a&gt;.&amp;nbsp; Any item you place in this toolbar get a simple shortcut key.&amp;nbsp; I added zoom-in an refresh among other items to this toolbar and in the picture below you see the much simpler shortcut keys.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-_3u-88xx4Fs/Tl-2VyDCijI/AAAAAAAAAnI/JIjAZUqnadc/s1600-h/image%25255B14%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/-fcy-yBhCF9E/Tl-2WX67DOI/AAAAAAAAAnM/BplmHEYbJf8/image_thumb%25255B8%25255D.png?imgmax=800" width="640" height="374"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;ALT-7 for Refresh and ALT-8 for Zoom-In.&lt;/p&gt; &lt;p&gt;I hope this helps all you keyboard junkies out there!&amp;nbsp; I, however easy this is, will stick with the mouse…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2574908608411541437?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2574908608411541437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2574908608411541437' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2574908608411541437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2574908608411541437'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/09/short-cut-keys-and-smart-view.html' title='Short Cut Keys and Smart View'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-1kOyzxb-hFU/Tl-2UC6ZM-I/AAAAAAAAAm8/uc6HoghnwbA/s72-c/image_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3111862994211899885</id><published>2011-04-12T15:21:00.001-07:00</published><updated>2011-04-12T15:21:41.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='HFM'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='11.1.2.1'/><category scheme='http://www.blogger.com/atom/ns#' term='Formatting'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Hyperion'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Smart View 11.1.2.1 – Some Cool New Features</title><content type='html'>&lt;p&gt;Smart View 11.1.2.1 has many new features but I thought I would point out a few that I found to be very cool.&amp;nbsp; &lt;/p&gt; &lt;p&gt;1 – Office 2010 support – this is not really a feature but it is something many folks have been looking for so I thought I would point it out.&amp;nbsp; Keep in mind this is only the 32 bit version of Office 2010 and not the 64 bit version.&amp;nbsp; For the 64 bit version there seems to be a lot to think about aside from Smart View support so I wonder how many are considering moving.&amp;nbsp; Here is an article on that very topic. &lt;a href="http://office.microsoft.com/en-us/word-help/choose-the-32-bit-or-64-bit-version-of-microsoft-office-HA010369476.aspx"&gt;http://office.microsoft.com/en-us/word-help/choose-the-32-bit-or-64-bit-version-of-microsoft-office-HA010369476.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/TaTQbPrljRI/AAAAAAAAAfk/M6szT86-vpM/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/TaTQbeRcZnI/AAAAAAAAAfo/VTpPKptr-dY/image_thumb%5B2%5D.png?imgmax=800" width="640" height="379"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;2 – Type in the POV toolbar – When doing an ad hoc analysis users can not type member names in the POV toolbar.&amp;nbsp; If you know your dimension member name than this will make your life much easier.&amp;nbsp; In the screen capture below I am almost done typing in Diet Cola.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/TaTQbiMAdiI/AAAAAAAAAfs/pxo4iOTSJyk/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/TaTQb7-evdI/AAAAAAAAAfw/L6CWpFWQBuU/image_thumb%5B18%5D.png?imgmax=800" width="113" height="121"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;3 – Docking and Hiding the POV toolbar – The POV toolbar can now be vertically or horizontally docked and the selections will re-orient to maximize screen real estate based on how they are docked.&amp;nbsp; Docking works for all connection types (Essbase, Planning, HFM, etc.) and analysis types (ad hoc or forms).&amp;nbsp; Also you can now show and hide the POV toolbar and your preference will be remembered.&amp;nbsp; The days of the toolbar re-appearing on refresh after you close it are gone.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/TaTQcCsEVnI/AAAAAAAAAf0/SVCciQAyHKE/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/TaTQcbySrYI/AAAAAAAAAf4/_dJxW7Cdo8A/image_thumb%5B21%5D.png?imgmax=800" width="640" height="379"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;4 – Use Excel Formatting – Now this option does exactly what it says, it will leave your Excel formatting alone in all cases.&amp;nbsp; This is good and bad, but mostly good.&amp;nbsp; If I format the cell ‘b4’ red then cell ‘b4’ stays red, even when a user pivots.&amp;nbsp; Some users might expect the formatting to shift on the pivot but this does not happen; likely there is no way to predict what the user may want in all cases so it is just left alone.&amp;nbsp; Even with this ‘hazard’ I still love this one.&amp;nbsp; It is nice to have refreshable drillable reports like the one below.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/TaTQcxDd2fI/AAAAAAAAAf8/DV2nt6NW_bM/s1600-h/image%5B29%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/TaTQdaZLPrI/AAAAAAAAAgA/r0OXTmqTbAw/image_thumb%5B28%5D.png?imgmax=800" width="640" height="421"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;There are a bunch more but I like to keep these short.&amp;nbsp; This should be enough to get most excited and in the coming days I will highlight more features.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3111862994211899885?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3111862994211899885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3111862994211899885' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3111862994211899885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3111862994211899885'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/04/smart-view-11121-some-cool-new-features.html' title='Smart View 11.1.2.1 – Some Cool New Features'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yqfa5Z1-l1g/TaTQbeRcZnI/AAAAAAAAAfo/VTpPKptr-dY/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2644176505335848024</id><published>2011-03-02T14:32:00.000-08:00</published><updated>2011-03-02T14:56:30.569-08:00</updated><title type='text'>Broken Links: A workaround for Smart View cell functions</title><content type='html'>One issue found by those who use Smart View cell functions (i.e. HsGetValue) is that the functions can get "disoriented" when distributed to other users or used in a Citrix environment.  The result of this disorientation is that the functions in the cells get preceeded by by the full path of the source system (C:\Oracle\SmartView\bin\HsTbar.xla!HsGetValue....) and no longer are valid.&lt;br /&gt;&lt;br /&gt;There is a workaround that has proven successful for those who are confronted with this problem.  It is simply to add a BAS file to a working Smart View workbook and in this BAS file put the following function declarations and conversion routine:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;' Function Smartview VBA Declaration.&lt;br /&gt;Declare Function HsGetValue Lib "HsAddin" (ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsSetValue Lib "HsAddin" (ByVal Value As Variant, ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsGetText Lib "HsAddin" (ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsSetText Lib "HsAddin" (ByVal text As Variant, ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsLabel Lib "HsAddin" (ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsDescription Lib "HsAddin" (ParamArray MemberList() As Variant) As Variant&lt;br /&gt;Declare Function HsCurrency Lib "HsAddin" (ParamArray MemberList() As Variant) As Variant&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'**************************************************************************&lt;br /&gt;'  For converting existing XLA cell functions to use a local function reference&lt;br /&gt;'**************************************************************************&lt;br /&gt;&lt;br /&gt;Sub ConvertFunctionsToLocal()&lt;br /&gt;&lt;br /&gt;    ActiveWorkbook.ChangeLink "HsTbar.xla", ThisWorkbook.FullName, XlLinkType.xlLinkTypeExcelLinks&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Running the conversion routine will change all of the current cell functions to use the functions declared in the workbook instead of the functions declared in HsTbar.xla.  &lt;br /&gt;&lt;br /&gt;And that's it.  The workbook will be a self-contained solution that can be passed around or placed in a Citrix environment without the worry of broken links.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2644176505335848024?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2644176505335848024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2644176505335848024' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2644176505335848024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2644176505335848024'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2011/03/broken-links-workaround-for-smart-view.html' title='Broken Links: A workaround for Smart View cell functions'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-6060065868619612826</id><published>2010-11-22T07:21:00.000-08:00</published><updated>2010-11-22T07:32:51.735-08:00</updated><title type='text'>Use compression to boost performance in Smart View</title><content type='html'>We have been working on the performance of Smart View in recent months.  One of the areas of improvement that has been identified is the communication between the server and the client.  &lt;br /&gt;&lt;br /&gt;The good news is that all of the main providers (APS, Planning and HFM) have the ability to use GZIP compression when sending data back and forth with the Smart View client.  As you can expect, the performance gains can be significant with large queries.&lt;br /&gt;&lt;br /&gt;The bad news is that APS and Planning do not turn on this compression by default.  You must enable this feature.&lt;br /&gt;&lt;br /&gt;In APS, there is a setting in the essbase.properies file which must be set to false:&lt;br /&gt;&lt;br /&gt;smartview.webservice.gzip.compression.disable=false&lt;br /&gt;&lt;br /&gt;In Planning, a SYSTEM PROPERTY must be set (with the lowest value = 1):&lt;br /&gt;&lt;br /&gt;SMARTVIEW_COMPRESSION_THRESHOLD&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Experiment with the settings, you might be pleasantly surprised with the results.  I know I have been.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-6060065868619612826?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/6060065868619612826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=6060065868619612826' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6060065868619612826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6060065868619612826'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/11/use-compression-to-boost-performance-in.html' title='Use compression to boost performance in Smart View'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-196796202233472221</id><published>2010-07-12T15:06:00.001-07:00</published><updated>2010-07-12T15:06:04.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Classic Add-in'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Converting Legacy Add-in VBA to Smart View Add-in VBA</title><content type='html'>&lt;p&gt;If you attended my session at &lt;a href="http://odtugkaleidoscope.com/"&gt;ODTUG Kaleidoscope '10&lt;/a&gt; you found out that if you want to convert legacy (classic) add-in VBA solutions to Smart View that there will be some work.&amp;#160; In the session I broke the conversion process into 3 steps; Evaluate, Redesign, and Rewrite.&lt;/p&gt;  &lt;h4&gt;Evaluate :&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Are there new Smart View features that user want or need to leverage?&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Maybe the custom code has been replaced with a standard Smart View feature.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Does my current VBA application use the Essbase Visual Basic API?&amp;#160; &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;If yes conversion will take longer or may not be possible.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Are there calls I am making that are deprecated or no longer valid with Smart View?&amp;#160;&amp;#160; For Example:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;EssVGetHctxFromSheet&lt;/li&gt;      &lt;li&gt;EssVGetDataPoint&lt;/li&gt;      &lt;li&gt;EssMenuLock&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Perform a code review and understand the scope of the changes you will need to make.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This is key, make sure you treat the conversion like a ‘real’ development effort!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Determine if the application can be done with Smart View.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;There will be some cases where conversion is not possible; YET.&amp;#160; This will likely be the case for solutions that heavily leverage the VB API for Essbase.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Does it make sense to convert.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;What is the size of the applications user base and how long will it be in service.&amp;#160; Maybe the conversion effort is just not worth it and another solution will be better.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Is there another application that will do the job?&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Maybe your organization has outgrown planning in Spreadsheet and looking at a the &lt;a href="http://www.oracle.com/appserver/business-intelligence/hyperion-financial-performance-management/hyperion-planning.html" target="_blank"&gt;Planning&lt;/a&gt; product might be a good idea.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Answering these questions and reviewing these points will help you determine when to convert and how large the conversion effort will be.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Redesign:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Consider what Smart View features can be used to redesign the application.&amp;#160;&amp;#160; There maybe new features that will influence how your application works.&amp;#160; For Example:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;POV Toolbar&lt;/li&gt;      &lt;li&gt;Reporting Objects&lt;/li&gt;      &lt;li&gt;Smart Slices&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Understanding the improved Smart View architecture may also guide the redesign.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;TCP/IP vs HTTP(s)&lt;/li&gt;      &lt;li&gt;New Connectivity Model (providers and connections)&lt;/li&gt;      &lt;li&gt;Single Sign On (SSO)&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;All of these items and more will likely make so that a redesign to some degree is needed and wanted.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h4&gt;Rewtrite:&lt;/h4&gt;  &lt;blockquote&gt;   &lt;p&gt;This is the one that most people hate to hear about.&amp;#160; &lt;strong&gt;You cannot do a find and replace and make this work!&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Be sure to back up all your code.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Do not rewrite on the fly in the project files.&lt;/li&gt;      &lt;li&gt;Use some kind of source control if possible.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Treat this like a new project and do not roll it out before it is ready.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Run a test and beta cycle to make sure all the bugs are flushed out prior to releasing your custom application.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Get a partner involved if you do not have the skill sets in house.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;During the session I demo’ed a conversion utility that will assist during the Evaluate stage of this process and it is going to be posted on &lt;a href="http://www.oracle.com/technology/software/products/bi/performance-management/plugins/index.html" target="_blank"&gt;OTN&lt;/a&gt; shortly so be on the look out.&amp;#160; I will be sure to do a blog post when the utility is available.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-196796202233472221?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/196796202233472221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=196796202233472221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/196796202233472221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/196796202233472221'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/07/converting-legacy-add-in-vba-to-smart.html' title='Converting Legacy Add-in VBA to Smart View Add-in VBA'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5051326335467639776</id><published>2010-07-02T09:29:00.001-07:00</published><updated>2011-05-02T10:59:49.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Smart View Extensions</title><content type='html'>&lt;p&gt;If you attended my session at &lt;a href="http://odtugkaleidoscope.com/" target="_blank"&gt;ODTUG Kaleidoscope '10&lt;/a&gt; you got some great information on one of the latest in Smart View features; Smart View Extensions.&amp;nbsp; If you missed I will provided a summarized version here.&lt;/p&gt; &lt;p&gt;Smart View extensions are a framework for creating applications or add-ons that run within Smart View.&amp;nbsp;&amp;nbsp; In Smart View 11.1.2 these extensions are already in use by Oracle product teams (Disclosure Management) and some additional free extensions are available for anyone to download.&lt;/p&gt; &lt;p&gt;Here are some cool extensions that you can download and use with Smart View 11.1.2. &lt;a href="http://www.oracle.com/technology/software/products/bi/performance-management/plugins/index.html" target="_blank"&gt;&lt;strike&gt;http://www.oracle.com/technology/software/products/bi/performance-management/plugins/index.html&lt;/strike&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;New Link: &lt;a href="http://www.oracle.com/technetwork/middleware/smart-view-for-office/overview/index.html"&gt;http://www.oracle.com/technetwork/middleware/smart-view-for-office/overview/index.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Options Tree - The Power Pack Quick Options extension allows users to view and change common options without having to launch the options dialog. To access this panel, from the Smart View Panel Home dropdown, select ‘Quick Options’.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/TC4T5DJMVHI/AAAAAAAAASk/k-C1f5fakvc/s1600-h/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/TC4T5oNH2QI/AAAAAAAAASo/Xkk5NvosfSc/image_thumb2.png?imgmax=800" width="640" height="469"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Substitution Variables - The Power Pack Substitution Variables extension allows users to view and use Essbase Substitution Variables in there queries. To access this panel, from the Smart View Panel Home dropdown, select ‘Substitution Variables’.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/TC4T6avgPnI/AAAAAAAAASs/w1WIdScP20Q/s1600-h/image9.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/TC4T6z4mJ1I/AAAAAAAAASw/-TZoKiiJRCY/image_thumb5.png?imgmax=800" width="640" height="469"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Table of Contents - The Power Pack Table of Contents extension allows users to see what workbooks are open and if they are connected or not. From the Smart View Panel Home dropdown select ‘Table of Contents’ and a panel will be displayed that allows you to see all of your connected worksheets and workbooks. In the panel the sheets can be sorted by connection, sheet name or book name.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/TC4T7krEafI/AAAAAAAAAS0/neYPFVd-dSE/s1600-h/image%5B10%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/TC4T8LF78WI/AAAAAAAAAS4/ksHgxNeeUUE/image_thumb%5B5%5D.png?imgmax=800" width="611" height="480"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;MDX Script Library - The Power Pack MDX Script Library extension allows users to view and launch MDX scripts stored on their local machine. The script results can be used as a starting point for new Essbase queries. To access this panel, from the Smart View Panel Home dropdown, select ‘MDX Script Library’.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/TC4T8053-gI/AAAAAAAAAS8/Jd_YcAEvnVg/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/TC4T9zdkcmI/AAAAAAAAATA/raHKPx_J5CI/image_thumb%5B8%5D.png?imgmax=800" width="610" height="480"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Adjust Data - The Power Pack Adjust Data extension allows users to quickly make adjustment to data in a cell or range of cells. This panel will allow you to work within the sheet while making simple 1 click adjustments using common math operations. To access this panel, from the Smart View Panel Home dropdown, select ‘Adjust Data’.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/TC4T-a_GGhI/AAAAAAAAATE/yGjPf4b5Ji0/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/TC4T_XtAZsI/AAAAAAAAATM/N4EoAfYVHeo/image_thumb%5B2%5D.png?imgmax=800" width="611" height="480"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5051326335467639776?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5051326335467639776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5051326335467639776' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5051326335467639776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5051326335467639776'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/07/smart-view-extensions.html' title='Smart View Extensions'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yqfa5Z1-l1g/TC4T5oNH2QI/AAAAAAAAASo/Xkk5NvosfSc/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7993173556084390718</id><published>2010-06-25T06:07:00.001-07:00</published><updated>2010-06-25T06:07:44.696-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Smart View at ODTUG Kaleidoscope '10</title><content type='html'>&lt;p&gt;OK I am totally bias but here are some key sessions that you will want to check out at &lt;a href="http://odtugkaleidoscope.com/" target="_blank"&gt;ODTUG Kaleidoscope '10&lt;/a&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;06/29/2010     &lt;br /&gt;3:30 PM-4:30 PM      &lt;br /&gt;Washington 3      &lt;br /&gt;Oracle® Hyperion Smart View for Office, Fusion Edition      &lt;br /&gt;Toufic Wakim&lt;/p&gt;    &lt;p&gt;For those working with a financial application, Oracle Essbase or Oracle Business Intelligence Suite Enterprise Edition Plus, Oracle Hyperion Smart View for Office brings access to data and report templates and the ability to author reports in the Microsoft Office framework. This session gives an overview of this product and demonstrates new features. It also shows how to use it with Oracle Hyperion Planning, Oracle Hyperion Financial Management, Oracle Business Intelligence Suite Enterprise Edition Plus, and Oracle Essbase.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;07/01/2010     &lt;br /&gt;8:30 AM-9:30 AM      &lt;br /&gt;Washington 6      &lt;br /&gt;First Look - Smart View Extensions      &lt;br /&gt;Matt Milella&lt;/p&gt;    &lt;p&gt;This session will cover the Smart View extension framework and some of the new extensions that will be available for Smart View. Participants will get a look at extensions that add many ease-of-use features like Essbase calculations, substitution variables, quick options, and will also see an extension for advanced MDX style queries. This session will also cover the extension architecture and information on installing and deploying an extension.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;07/01/2010     &lt;br /&gt;11:00 AM-12:00 PM      &lt;br /&gt;Washington 6      &lt;br /&gt;Convert Legacy Add-in Solutions in VBA to Smart View VBA or .Net      &lt;br /&gt;Matt Milella&lt;/p&gt;    &lt;p&gt;Moving custom spreadsheet solutions built with the legacy (Essbase) add-in can be intimidating. This session will get you comfortable with the idea of moving these solutions to Smart View. This session will focus on the following: VBA equivalents in Smart View; new options in Smart View VBA, not in the classic add-in; creating .NET add-ins with VSTO (Visual Studio Tools for Office); and a development approach for successful conversions.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;If you have not seen all the new features in 11.1.2 or you want to know more about Smart View you will want to check out these sessions.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7993173556084390718?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7993173556084390718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7993173556084390718' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7993173556084390718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7993173556084390718'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/06/smart-view-at-odtug-kaleidoscope.html' title='Smart View at ODTUG Kaleidoscope &amp;#39;10'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2302889495587117003</id><published>2010-05-11T06:36:00.000-07:00</published><updated>2010-05-11T07:09:43.336-07:00</updated><title type='text'>Cell Functions: Smart View 11.1.2 vs. Classic Add-In</title><content type='html'>The HsGetVal function has been improved significantly in Smart View over the classic add-in EssCell function.  The difference in performance is attributed to Smart View HsGetVal using a parallel batch process approach to retrieving the data versus the single cell, serial approach of EssCell.&lt;br /&gt;&lt;br /&gt;Here are some statistics for refreshing an Excel 2007 worksheet containing 7,225 cell functions:&lt;br /&gt;&lt;br /&gt;Classic Essbase Add-In (EssCell) = 724 seconds to complete&lt;br /&gt;&lt;br /&gt;Smart View 11.1.2 (HsGetVal using Function Builder) = 20 seconds to complete&lt;br /&gt;&lt;br /&gt;Smart View 11.1.2 (HsGetVal using Copy DataPoints) = 7 seconds to complete&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For those wondering, the "Copy DataPoints" based HsGetVal function achieves better performance than the regular HsGetVal function by using a special POV link:&lt;br /&gt;&lt;br /&gt;HsGetValue("", "Measures#Profit %", "Market#New York", "Year#Jan", "SVLink12605407100EOL", "Row1", "Col15")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This breakthrough in cell function performance in Smart View should be welcome news to the thousands of classic Essbase add-in users who love the control of querying data using cell functions but were not happy with the performance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2302889495587117003?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2302889495587117003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2302889495587117003' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2302889495587117003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2302889495587117003'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/05/cell-functions-smart-view-1112-vs.html' title='Cell Functions: Smart View 11.1.2 vs. Classic Add-In'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5825510162718877640</id><published>2010-04-30T08:55:00.001-07:00</published><updated>2011-05-02T11:01:40.262-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2007'/><title type='text'>Smart View Extensions and Utilities Page</title><content type='html'>&lt;p&gt;Today the Smart View Extensions and Utilities page was launched on OTN.&amp;nbsp; &lt;a href="http://www.oracle.com/technetwork/middleware/smart-view-for-office/overview/index.html"&gt;http://www.oracle.com/technetwork/middleware/smart-view-for-office/overview/index.html&lt;/a&gt;&lt;/p&gt; &lt;p&gt;One of the non-visible changes to Smart View 11.1.2 was a framework for extensibility.&amp;nbsp; For now this framework is internal Oracle only but it will allow us to put out extensions for end users and quickly support new providers.&amp;nbsp;&amp;nbsp; We have 5 extensions and 1 utility (xlam file that works with any 11.x version) posted and we will be adding more shortly.&amp;nbsp; I will do some posts on specific extension soon and if you want to know more about this framework and the extensions then sign up for my session at &lt;a href="http://odtugkaleidoscope.com/hardcorehyperion.html" target="_blank"&gt;Kaleidoscope (First Look - Smart View Extensions)&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you have idea for new extensions or questions or comments on the ones out there than let us know!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5825510162718877640?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5825510162718877640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5825510162718877640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5825510162718877640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5825510162718877640'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/04/smart-view-extensions-and-utilities.html' title='Smart View Extensions and Utilities Page'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-1737356194939318490</id><published>2010-04-23T07:51:00.001-07:00</published><updated>2010-04-23T07:51:18.794-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='11.1.2'/><category scheme='http://www.blogger.com/atom/ns#' term='Planning'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Smart View 11.1.2 – Ribbons</title><content type='html'>&lt;p&gt;One of the major changes you will notice with Smart View 11.1.2 is context specific ribbons and menus.&amp;#160; So now when you use Smart View you will no longer have to browse through a list of grayed out items on a huge ribbon or menu.&amp;#160; &lt;/p&gt;  &lt;p&gt;When you are in Smart View doing various things (ad-hoc analysis, form data entry, etc.) you see ribbons and items that are specific to the task.&amp;#160; In Office you get this same effect when you insert a chart or a specific object.&amp;#160; When the object is active specific menus and ribbons are available.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/S9GzzzS0V_I/AAAAAAAAASA/zt7O9e3KW7o/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/S9Gz0nu1nnI/AAAAAAAAASE/fxSDCOTMVTI/image_thumb%5B2%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/S9Gz1Rl6Q3I/AAAAAAAAASI/F-OQWwMTLt0/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/S9Gz2Y4GEHI/AAAAAAAAASM/bai-ZFwLx_A/image_thumb%5B5%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The ribbon and menu items have also been revised to make sure they are organized logically and the things you do most are easy to access.&lt;/p&gt;  &lt;p&gt;Even context menus are specific, down to the cell level, and excel right click options can be shown or hidden based on a user preference.&amp;#160;&amp;#160; Also for forms we have introduced a ‘Mini Toolbar’.&amp;#160;&amp;#160; The new &amp;quot;Mini Toolbar&amp;quot; is a type of context menu that is automatically shown (by default) when a cell is selected.&amp;#160; The purpose of this feature is to provide easy access to the most-used commands without requiring a right-mouse-button click.&amp;#160; This works a lot like the Office 2007 formatting toolbar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/S9Gz3E3QTuI/AAAAAAAAASQ/GxWj7r-Uo_4/s1600-h/image%5B14%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_yqfa5Z1-l1g/S9Gz39gGTRI/AAAAAAAAASU/zh5-PHd9BjY/image_thumb%5B8%5D.png?imgmax=800" width="640" height="475" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/S9Gz4gkYibI/AAAAAAAAASY/1tLDr3aDnHI/s1600-h/image%5B28%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/S9Gz5SfmxyI/AAAAAAAAASc/S6YuHlm1tdo/image_thumb%5B18%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I am sure users will find this much easier to work with!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-1737356194939318490?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/1737356194939318490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=1737356194939318490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1737356194939318490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1737356194939318490'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/04/smart-view-1112-ribbons.html' title='Smart View 11.1.2 – Ribbons'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_yqfa5Z1-l1g/S9Gz0nu1nnI/AAAAAAAAASE/fxSDCOTMVTI/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3626814004760983645</id><published>2010-04-21T14:49:00.001-07:00</published><updated>2010-04-21T14:49:57.877-07:00</updated><title type='text'>Smart View 11.1.2 - Connections</title><content type='html'>&lt;p&gt;Now that Smart View 11.1.2 is out I can share some key changes that I think most users will like.&amp;#160;&amp;#160;&amp;#160; In this update I will focus on connections and the revised Smart View Panel.&amp;#160;&amp;#160; But before I get to that I want to mention that you can download the Smart View client from &lt;a href="http://edelivery.oracle.com" target="_blank"&gt;edelivery&lt;/a&gt; without downloading the entire foundation.&amp;#160; A mere 80 megabytes!&lt;/p&gt;  &lt;p&gt;Now back to connections.&amp;#160; Connections in this release have been revised quite a bit and things should be much simpler, no more APS vs. independent vs. favorites.&amp;#160; In this release there are 2 types of connections, shared and private.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Shared Connections&lt;/b&gt; - Connections that are defined by an administrator and all users can see them. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Private Connections&lt;/b&gt; - Locally stored connections or URL based connections.&amp;#160; &lt;/p&gt;  &lt;p&gt;Most of the time users will find all of their data sources listed under shared connections.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/S89yuCYP-eI/AAAAAAAAARg/5df03AGRnF4/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/S89yu2OthKI/AAAAAAAAARk/7w1OXYOU2TE/image_thumb%5B3%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If a data source is not listed under shared connections (ex. a development server) the end user can use the ‘quick connect’ feature in private connections and just type a URL in the drop down and click the ‘go’ button.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/S89yvpm8LLI/AAAAAAAAARo/KP1f9nzCo8s/s1600-h/image%5B10%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/S89ywHK6UVI/AAAAAAAAARs/A_hOcv7YSS0/image_thumb%5B6%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;If you have a connection that you use all the time simply add it to the list of private connections and it will always be there in the dropdown.&amp;#160; Plus URL’s you type will also be remembered.&amp;#160; Also note that when you click on a connection you get a context sensitive list of key ‘actions’ that can be performed on that connection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/S89yws_VnuI/AAAAAAAAARw/qUoD9XNbxWE/s1600-h/image%5B15%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/S89yx-cvC8I/AAAAAAAAAR0/2R81c76uL9U/image_thumb%5B9%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you use a connection a few times you will be able to access that connection from the home panel by simply clicking it’s MRU (Most Recently Used) item.&amp;#160; MRU’s are a great for single click access to your most common tasks like starting an ad-hoc analysis or opening a form.&amp;#160; MRU’s can be ‘pinned’ so they are always where you expect them to be.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/S89yyl0vvoI/AAAAAAAAAR4/jEMSk4cOUdc/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/S89yzq6LGaI/AAAAAAAAAR8/afWkn-SATuU/image_thumb%5B12%5D.png?imgmax=800" width="640" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Alright, it is that simple.&amp;#160; I will be sharing more new features and more on connections in the next few days and weeks so stay tuned!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3626814004760983645?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3626814004760983645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3626814004760983645' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3626814004760983645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3626814004760983645'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/04/smart-view-1112-connections.html' title='Smart View 11.1.2 - Connections'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yqfa5Z1-l1g/S89yu2OthKI/AAAAAAAAARk/7w1OXYOU2TE/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5477706472944530884</id><published>2010-02-22T13:32:00.000-08:00</published><updated>2010-02-22T14:05:13.321-08:00</updated><title type='text'>Smart View Timeout Settings</title><content type='html'>For those Smart View users who perform large Essbase queries or have to suffer with a slow Internet connection, during Smart View operations you may have experienced an error message that says "The request timed out. Contact administrator to increase NetRetryCount and NetRetryInterval." Unfortunately, this error message can be a little misleading in how to remedy the situation. There are two areas to adjust and they have nothing to do with NetRetry.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First, within the Smart View options under the Provider tab. Select Provider Services from the drop down and increase the Session Timeout setting. I set mine to 600 seconds.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Second, there need to be 3 DWord items added to the registry under&lt;br /&gt;&lt;br /&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings&lt;br /&gt;&lt;br /&gt;ReceiveTimeout 900000&lt;br /&gt;KeepAliveTimeout 900000&lt;br /&gt;ServerInfoTimeout 900000&lt;br /&gt;&lt;br /&gt;These values are in milliseconds. So, 900000 is the equivalent of 15 minutes.&lt;br /&gt;&lt;br /&gt;After making these adjustments, I was able to query almost a million cells using Office 2007 (via Internet Explorer 8 HTTP) without a timeout error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5477706472944530884?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5477706472944530884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5477706472944530884' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5477706472944530884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5477706472944530884'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/02/smart-view-timeout-settings.html' title='Smart View Timeout Settings'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-613740058561786737</id><published>2010-02-01T09:38:00.001-08:00</published><updated>2010-02-01T09:38:11.584-08:00</updated><title type='text'>Smart View Features You Never Knew Existed – NumericZero.</title><content type='html'>&lt;p&gt;In previous versions of Smart View you could put the number 0 in as a missing label and instead of queries showing #missing they would show 0.&amp;#160; At some point this went away for various reasons but many do not know that this functionality still exists. You just have to use the replacement term #NumericZero to get the same effect.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/S2cRe-bfKHI/AAAAAAAAARM/CYQSFrjzPgI/s1600-h/image%5B5%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/S2cRfnFOFrI/AAAAAAAAARQ/on0tGRTmLuw/image_thumb%5B3%5D.png?imgmax=800" width="431" height="470" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This option change will result in a grid with 0’s instead of text…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/S2cRgGEPINI/AAAAAAAAARU/zcQIqzbbhdA/s1600-h/image%5B9%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_yqfa5Z1-l1g/S2cRgmhFf_I/AAAAAAAAARY/LaSHoVRG8qE/image_thumb%5B5%5D.png?imgmax=800" width="544" height="407" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-613740058561786737?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/613740058561786737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=613740058561786737' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/613740058561786737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/613740058561786737'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/02/smart-view-features-you-never-knew.html' title='Smart View Features You Never Knew Existed – NumericZero.'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yqfa5Z1-l1g/S2cRfnFOFrI/AAAAAAAAARQ/on0tGRTmLuw/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2166779717604507814</id><published>2010-01-26T20:54:00.001-08:00</published><updated>2010-01-26T20:54:23.528-08:00</updated><title type='text'>Smart View Features You Never Knew Existed – POV Printing.</title><content type='html'>&lt;p&gt;So ever wish you could print the Point of View with your Smart View reports in excel?&amp;#160; Maybe you insert a row, or a textbox, or use some VBA trickery to do this.&amp;#160; Well there is actually a built in way to do this.&lt;/p&gt;  &lt;p&gt;Just use the standard dialog to modify the Excel header or footer and add the following text: POV:{}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/S1_G9eNGEGI/AAAAAAAAAQ8/rQV3EBkKgC4/s1600-h/image%5B22%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/S1_G92yq4WI/AAAAAAAAARA/LYDoVA7ooMQ/image_thumb%5B11%5D.png?imgmax=800" width="375" height="164" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Smart View translate this to the POV when the sheet is printed or print preview is launched.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/S1_G-akR5nI/AAAAAAAAARE/XKqmsMEO87c/s1600-h/image%5B23%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/S1_G_G6I2OI/AAAAAAAAARI/GWAsyVtS22s/image_thumb%5B12%5D.png?imgmax=800" width="375" height="306" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There are no options with this so you get the POV as displayed in the screenshot above.&lt;/p&gt;  &lt;p&gt;I am hopeful that this will become a multi-part series as I find more things that I think are useful but not everyone know about.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2166779717604507814?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2166779717604507814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2166779717604507814' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2166779717604507814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2166779717604507814'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/01/smart-view-features-you-never-knew.html' title='Smart View Features You Never Knew Existed – POV Printing.'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_yqfa5Z1-l1g/S1_G92yq4WI/AAAAAAAAARA/LYDoVA7ooMQ/s72-c/image_thumb%5B11%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7028275966580113272</id><published>2010-01-20T14:31:00.001-08:00</published><updated>2010-01-20T14:31:08.803-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SmartView'/><category scheme='http://www.blogger.com/atom/ns#' term='Office 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Smart View'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Sparklines with Smart View</title><content type='html'>&lt;p&gt;I was checking out Office 2010 and noticed a new feature called Sparklines.&amp;#160;&amp;#160; Sparklines are a new feature that let you essentially chart data within a cell.&amp;#160; Here is a link to a blog that describes the feature in detail. &lt;a href="http://blogs.msdn.com/excel/archive/2009/07/17/sparklines-in-excel.aspx"&gt;http://blogs.msdn.com/excel/archive/2009/07/17/sparklines-in-excel.aspx&lt;/a&gt;&amp;#160; This seemed really cool, so I thought it would be even more powerful if I could put this feature into action with live, refreshable Essbase data so I installed the latest 11.x version of Smart View and got it working.&lt;/p&gt;  &lt;p&gt;Here is a screen shot, if anything this will make for some cool demos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/S1eEKfCb62I/AAAAAAAAAQE/p0_N_aNKk7o/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/S1eEK4c9-gI/AAAAAAAAAQI/xtD__cGS6Qg/image_thumb%5B3%5D.png?imgmax=800" width="533" height="300" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Please note that Office 2010 is not supported and I do not recommend trying to install Smart View with it as it will likely have issues and you will not be able to get assistance from support.&lt;/p&gt;  &lt;p&gt;More CYA on this one:&lt;/p&gt;  &lt;p&gt;Opinions expressed by the authors of this blog are entirely their own and do not reflect the position of Oracle or any other corporation. Any advice or recommendations discussed on these sites (or sites they link to) are not validated by Oracle.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7028275966580113272?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7028275966580113272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7028275966580113272' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7028275966580113272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7028275966580113272'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2010/01/sparklines-with-smart-view.html' title='Sparklines with Smart View'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yqfa5Z1-l1g/S1eEK4c9-gI/AAAAAAAAAQI/xtD__cGS6Qg/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-1159968684744161191</id><published>2009-12-15T10:53:00.001-08:00</published><updated>2009-12-15T10:54:25.468-08:00</updated><title type='text'>Performance Survey…</title><content type='html'>&lt;p&gt;To help use understand the scale of queries that are in use please answer this short 4 question survey.&amp;#160; This is regardless of if you are using the Legacy Add-In or Smart View.&lt;/p&gt;  &lt;p&gt;&lt;a title="http://surveys.polldaddy.com/s/4081F5643A88381C/" href="http://surveys.polldaddy.com/s/4081F5643A88381C/"&gt;http://surveys.polldaddy.com/s/4081F5643A88381C/&lt;/a&gt;&lt;noscript&gt;&lt;/noscript&gt;&lt;/p&gt;  &lt;p&gt;Thanks!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-1159968684744161191?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/1159968684744161191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=1159968684744161191' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1159968684744161191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1159968684744161191'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/12/performance-survey.html' title='Performance Survey…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7314613238933789210</id><published>2009-12-01T12:02:00.001-08:00</published><updated>2009-12-01T12:02:06.699-08:00</updated><title type='text'>More Questions…</title><content type='html'>&lt;p&gt;OK here is our second question, this one related to features in the Essbase Legacy (Classic) Add-in.&amp;#160; Please feel free to comment if you have more details to add. &lt;/p&gt; &lt;script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/2327088.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;/noscript&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7314613238933789210?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7314613238933789210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7314613238933789210' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7314613238933789210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7314613238933789210'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/12/more-questions.html' title='More Questions…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-1289098992547143589</id><published>2009-11-25T09:16:00.001-08:00</published><updated>2009-11-25T09:16:02.596-08:00</updated><title type='text'>Leveraging Excel 2007 features in Smart View</title><content type='html'>&lt;p&gt;So my days of living in a spreadsheet are behind me and I really do not get a chance to use all the spreadsheet has to offer.&amp;#160; Because of this I took some time to re-familiarize myself with some of the new features in Excel 2007.&amp;#160; A bunch of these items may be in 2003 I just did not try it and know that some are 2007 specific.&amp;#160; I found many of these features very cool but combined with live data from Smart View (Essbase) they were way cooler!&lt;/p&gt;  &lt;p&gt;Ok to set the stage I am not going to provide every step just the major ones and hopefully you can figure this out as I did.&amp;#160; For this I am leveraging a feature in Smart View call function grids.&amp;#160; A function grid is simply a series off cells with cell functions in them.&amp;#160; This eliminates the issue of formatting and Excel features going away when the data is refreshed.&amp;#160; Function grids can be added in a number&amp;#160; of ways:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Copy and Paste Data options on the Hyperion ribbon. &lt;/li&gt;    &lt;li&gt;Reporting objects created using a Smart Slice. &lt;/li&gt;    &lt;li&gt;Using the function builder. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;For what I am doing I am going to use option 1.&amp;#160; So to get started I am going to drill around an ad hoc grid until i have the data I want to use in play.&amp;#160;&amp;#160; I select that data and click Copy Data from the Hyperion ribbon.&amp;#160; I go to a new worksheet or workbook and click Paste Data from the ribbon.&amp;#160; This gets me a refreshable function grid.&lt;/p&gt;  &lt;p&gt;Once I have the data in this format I can apply Excel formats with out worry.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/Sw1mL8UlggI/AAAAAAAAAO0/DOZ67MvtohY/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/Sw1mMoV8v3I/AAAAAAAAAO4/KezZkfQh5d4/image_thumb%5B2%5D.png?imgmax=800" width="504" height="365" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Format as Table (On Home tab in the Styles group)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/Sw1mNd7AjsI/AAAAAAAAAO8/ivdLRTZkzzU/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/Sw1mOBkkJiI/AAAAAAAAAPA/f7MAEcYPb5k/image_thumb%5B8%5D.png?imgmax=800" width="504" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Table formats allow the user to easily sort, rank and filter.&amp;#160; This is really powerful when the data is static and even better when the data is dynamic and can be refreshed.&amp;#160; In the screenshot I sorted on spending for 2007 and filtered on the top 15.&amp;#160;&amp;#160; Looks like FL and CA are the big spenders…&lt;/p&gt;  &lt;p&gt;Conditional Formatting (On Home tab in the Styles group)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/Sw1mO8Pr2LI/AAAAAAAAAPE/Dniy3oTc8KE/s1600-h/image%5B20%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/Sw1mPlT5lTI/AAAAAAAAAPI/YQBhl8DIWjI/image_thumb%5B10%5D.png?imgmax=800" width="504" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Conditional Formats can help you to build cool reports that are great for users who need visual cues as to where issue are.&amp;#160; In this example I changed the POV for the data grid to % Change in spending from the previous year and creates a threshold table so used can dynamically change the tolerances.&amp;#160; Wow in most states spending is growing by 5% or more…&lt;/p&gt;  &lt;p&gt;Data Grouping (On Data tab in the Outline group)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/Sw1mQCVRvPI/AAAAAAAAAPM/Z3nfPblSqaI/s1600-h/image%5B24%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_yqfa5Z1-l1g/Sw1mQzWGCiI/AAAAAAAAAPQ/3osm87U6qNA/image_thumb%5B12%5D.png?imgmax=800" width="504" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is a nice way to organize large data sets for users and keep a large report from getting out of control.&amp;#160; In this example I group states based on their spending growth and kept the conditional formatting from above.&lt;/p&gt;  &lt;p&gt;Data Validation (On Data tab in the Data Tool group)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/Sw1mRhZkJ2I/AAAAAAAAAPU/CJstpgIv1ao/s1600-h/image%5B28%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/Sw1mSX-GQkI/AAAAAAAAAPY/42SIN9Xiwbo/image_thumb%5B14%5D.png?imgmax=800" width="504" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Nice way to see if data rules are being enforced also can be used to see if amount are beyond thresholds set. In this work book I have asked that all states that spent more than $100,000,000,000 in a year get circled.&lt;/p&gt;  &lt;p&gt;Combined Features&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/Sw1mTdfivUI/AAAAAAAAAPc/d0leOBKOb9g/s1600-h/image%5B32%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/Sw1mUS-iX8I/AAAAAAAAAPk/Iw47WfvpHBc/image_thumb%5B16%5D.png?imgmax=800" width="504" height="360" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ok this last sample is just crazy but you get the point.&amp;#160; Again all of these are just Excel features but with the Function Grid in Smart View they are even more powerful because of live, refreshable data.&lt;/p&gt;  &lt;p&gt;Oh one more thing, the screenshots are of actual US government spending data.&amp;#160; Government Transparency + Mike’s Essbase skills = Cool Sample Application!&amp;#160; Thanks Mike.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-1289098992547143589?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/1289098992547143589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=1289098992547143589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1289098992547143589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1289098992547143589'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/11/leveraging-excel-2007-features-in-smart.html' title='Leveraging Excel 2007 features in Smart View'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_yqfa5Z1-l1g/Sw1mMoV8v3I/AAAAAAAAAO4/KezZkfQh5d4/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2217658136722261205</id><published>2009-11-17T13:25:00.001-08:00</published><updated>2009-11-17T13:25:56.488-08:00</updated><title type='text'>What office product do you use to access Oracle BI/EPM data sources?</title><content type='html'>&lt;p&gt;Lately we have been doing&amp;#160; a lot of work with Smart View and are trying to get some feedback from users about the product.&amp;#160; So we decided to try polls.&amp;#160; Here is our first question and based on the answers we will have more polls and surveys to follow.&amp;#160;&amp;#160; All with the goal of helping make the product better.&lt;/p&gt; &lt;script type="text/javascript" charset="utf-8" src="http://static.polldaddy.com/p/2267735.js"&gt;&lt;/script&gt;&lt;noscript&gt;&lt;/noscript&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2217658136722261205?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2217658136722261205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2217658136722261205' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2217658136722261205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2217658136722261205'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/11/what-office-product-do-you-use-to.html' title='What office product do you use to access Oracle BI/EPM data sources?'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5261122452750370729</id><published>2009-09-02T15:00:00.001-07:00</published><updated>2009-09-02T15:00:03.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='samplecode.oracle.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='MaxL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Defined Functions'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>More Sample Code…</title><content type='html'>&lt;p&gt;OK Mike is on a roll posting CDF samples.&amp;nbsp; Check out the latest list:&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="https://codesamples.samplecode.oracle.com/servlets/tracking/action/ExecuteQuery?query=essbase1"&gt;https://codesamples.samplecode.oracle.com/servlets/tracking/action/ExecuteQuery?query=essbase1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Keep checking for updates, as we get time we will continue to post more.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5261122452750370729?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5261122452750370729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5261122452750370729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5261122452750370729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5261122452750370729'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/09/more-sample-code.html' title='More Sample Code…'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-6442935611590941412</id><published>2009-07-27T11:29:00.001-07:00</published><updated>2009-07-27T11:29:57.651-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Calc Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='samplecode.oracle.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Sample Code'/><category scheme='http://www.blogger.com/atom/ns#' term='MaxL'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='OTN'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Defined Functions'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Sample Code</title><content type='html'>&lt;p&gt;At the last ODTUG conference&amp;nbsp; and over the course of writing on this blog we have had a bunch of requests to get some of our code posted.&amp;nbsp; For the most part we handled this on a case by case basis with email, ftp and other means…&lt;/p&gt; &lt;p&gt;Well the code sharing problem is officially solved thanks to &lt;a href="http://samplecode.oracle.com " target="_blank"&gt;samplecode.oracle.com&lt;/a&gt;.&amp;nbsp; Here is the description from the site.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;Welcome to samplecode.oracle.com, where employees and Oracle Technology Network members collaboratively build and share sample applications, code snippets, skins and templates, and more.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;We are just starting to post some of the CDF that are requested most often; we only have a few up there but we will be posting more over the next few weeks.&amp;nbsp; &lt;/p&gt; &lt;p&gt;We also plan to share other stuff like Java API code, MaxL scripts, Calculation Scripts, and maybe some spreadsheet toolkit stuff.&amp;nbsp; We will also get this linked from the &lt;a href="http://www.oracle.com/technology/products/bi/essbase/index.html" target="_blank"&gt;Essbase OTN page&lt;/a&gt; but until then here is the direct link.&lt;/p&gt; &lt;p&gt;&lt;a href="https://codesamples.samplecode.oracle.com/servlets/tracking/action/ExecuteQuery?query=essbase1"&gt;https://codesamples.samplecode.oracle.com/servlets/tracking/action/ExecuteQuery?query=essbase1&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-6442935611590941412?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/6442935611590941412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=6442935611590941412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6442935611590941412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6442935611590941412'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/07/sample-code.html' title='Sample Code'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-594853915584932931</id><published>2009-07-07T09:07:00.001-07:00</published><updated>2009-07-08T06:04:47.206-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Kaleidoscope 2009 Hands on Lab - Oracle Essbase Java API - Building Your First Application (S656)</title><content type='html'>&lt;p&gt;I know it has been while since the show but I wanted to make sure this got posted.&amp;nbsp; The plan for this lab was to build on &lt;a href="http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009-hands-on-lab-oracle.html" target="_blank"&gt;S655&lt;/a&gt; and &lt;a href="http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009-hands-on-lab.html" target="_blank"&gt;S654&lt;/a&gt; and for the end result to be a useable Essbase utility written with the Java API in JDeveloper.&amp;nbsp; &lt;/p&gt; &lt;p&gt;The lab was focused on the Outline API and was centered around the idea of creating an Outline Extractor.&amp;nbsp; The lab can be downloaded &lt;a href="http://mmilella.startlogic.com/files/ODTUG/Hands-On Lab - Oracle Essbase Java API - Creating Your First Application.pdf" target="_blank"&gt;here&lt;/a&gt;.&amp;nbsp; This lab will get you started but here is a more complete code sample with XML output.&lt;/p&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; com.oracle.essbase.japi;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.base.EssException;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.base.IEssIterator;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.datasource.IEssCube;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.datasource.IEssOlapServer;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.domain.IEssDomain;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.metadata.IEssCubeOutline;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.metadata.IEssDimension;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.metadata.IEssGeneration;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.metadata.IEssLevel;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.metadata.IEssMember;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.essbase.api.session.IEssbase;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; java.util.ResourceBundle;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.parsers.DocumentBuilder;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.parsers.DocumentBuilderFactory;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.parsers.ParserConfigurationException;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.OutputKeys;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.Transformer;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.TransformerException;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.TransformerFactory;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.dom.DOMSource;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; javax.xml.transform.stream.StreamResult;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.w3c.dom.DOMImplementation;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.w3c.dom.Document;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.w3c.dom.Element;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; org.w3c.dom.Node;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; OutlineExtractor {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; String s_userName = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; String s_password = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; String s_olapSvrName = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; String s_provider = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IEssOlapServer olapSvr = null;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IEssbase ess = null;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; Document doc;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; OutlineExtractor() {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        olapSvr = Connect();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; main(String[] args) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        OutlineExtractor outlineExtractor = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; OutlineExtractor();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        outlineExtractor.ReadOutline(&lt;span style="color: #006080"&gt;"Sample"&lt;/span&gt;,&lt;span style="color: #006080"&gt;"Basic"&lt;/span&gt;, true);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        outlineExtractor.Disconnect();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IEssOlapServer Connect() {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        readProperties();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// Create JAPI instance.&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            ess = IEssbase.Home.create(IEssbase.JAPI_VERSION);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// Sign On to the Provider&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            IEssDomain dom = ess.signOn(s_userName, s_password, false, null, s_provider);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            IEssOlapServer olapSvr = dom.getOlapServer(s_olapSvrName);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            olapSvr.connect();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; olapSvr;                    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                } &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            Disconnect();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; null;   &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }   &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Disconnect(){&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #008000"&gt;//Try to sign off&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (olapSvr != null &amp;amp;&amp;amp; olapSvr.isConnected() == true){&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                olapSvr.disconnect();   &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ess != null &amp;amp;&amp;amp; ess.isSignedOn() == true){&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                ess.signOff();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;             System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;             e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; readProperties() {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        ResourceBundle settings = ResourceBundle.getBundle(&lt;span style="color: #006080"&gt;"Essbase"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        s_userName=settings.getString(&lt;span style="color: #006080"&gt;"Common.UserName"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        s_password=settings.getString(&lt;span style="color: #006080"&gt;"Common.Password"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        s_olapSvrName = settings.getString(&lt;span style="color: #006080"&gt;"Common.ServerName"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        s_provider = settings.getString(&lt;span style="color: #006080"&gt;"Common.Provider"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    } &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ReadOutline(String ApplicationName, String DatabaseName, Boolean IncludeAttributes){&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        IEssCube cube;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            cube = olapSvr.getApplication(ApplicationName).getCube(DatabaseName);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            readOutline(cube,DatabaseName,IncludeAttributes);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; readOutline(IEssCube cube, String DatabaseName, Boolean IncludeAttributes) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; EssException {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            IEssCubeOutline otl = null;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                otl = cube.openOutline();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                IEssIterator dims = otl.getDimensions();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                DocumentBuilder builder = factory.newDocumentBuilder();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                DOMImplementation impl = builder.getDOMImplementation();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                doc = impl.createDocument(null,null,null);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                Element elementCube = doc.createElement(&lt;span style="color: #006080"&gt;"Cube"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                elementCube.setAttribute(&lt;span style="color: #006080"&gt;"ApplicationName"&lt;/span&gt;, cube.getApplicationName());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                elementCube.setAttribute(&lt;span style="color: #006080"&gt;"DatabaseName"&lt;/span&gt;, DatabaseName);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                elementCube.setAttribute(&lt;span style="color: #006080"&gt;"CubeType"&lt;/span&gt;, cube.getCubeType().stringValue());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                doc.appendChild(elementCube);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; dims.getCount(); i++) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    IEssDimension dim = (IEssDimension)dims.getAt(i);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (IncludeAttributes) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        Element elementDim = doc.createElement(&lt;span style="color: #006080"&gt;"Dimension"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        elementDim.setAttribute(&lt;span style="color: #006080"&gt;"DimensionName"&lt;/span&gt;, dim.getName());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        elementDim.setAttribute(&lt;span style="color: #006080"&gt;"Category"&lt;/span&gt;, dim.getCategory().stringValue());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        elementDim.setAttribute(&lt;span style="color: #006080"&gt;"StorageType"&lt;/span&gt;, dim.getStorageType().stringValue());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        elementCube.appendChild(elementDim);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        getMembersIterator(dim.getDimensionRootMember(),elementDim);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;{&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(dim.getCategory() != IEssDimension.EEssDimensionCategory.ATTRIBUTE &amp;amp;&amp;amp; dim.getCategory() != IEssDimension.EEssDimensionCategory.ATTRIBUTE_CALC){&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            Element elementDim = doc.createElement(&lt;span style="color: #006080"&gt;"Dimension"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            elementDim.setAttribute(&lt;span style="color: #006080"&gt;"DimensionName"&lt;/span&gt;, dim.getName());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            elementDim.setAttribute(&lt;span style="color: #006080"&gt;"Category"&lt;/span&gt;, dim.getCategory().stringValue());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            elementDim.setAttribute(&lt;span style="color: #006080"&gt;"StorageType"&lt;/span&gt;, dim.getStorageType().stringValue());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            elementCube.appendChild(elementDim);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                            getMembersIterator(dim.getDimensionRootMember(),elementDim);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            otl.close();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            otl = null;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;// transform the Document into a String&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            DOMSource domSource = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DOMSource(doc);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            TransformerFactory tf = TransformerFactory.newInstance();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            Transformer transformer = tf.newTransformer();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #008000"&gt;//transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");&lt;/span&gt;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            transformer.setOutputProperty(OutputKeys.METHOD, &lt;span style="color: #006080"&gt;"xml"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            transformer.setOutputProperty(OutputKeys.ENCODING,&lt;span style="color: #006080"&gt;"ISO-8859-1"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            transformer.setOutputProperty(&lt;span style="color: #006080"&gt;"{http://xml.apache.org/xslt}indent-amount"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"4"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            transformer.setOutputProperty(OutputKeys.INDENT, &lt;span style="color: #006080"&gt;"yes"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            java.io.StringWriter sw = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; java.io.StringWriter();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            StreamResult sr = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StreamResult(sw);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            transformer.transform(domSource, sr);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            String xml = sw.toString();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            System.out.println(xml);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (ParserConfigurationException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                   System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                   e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;               } &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (TransformerException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            } &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (otl != null) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    &lt;span style="color: #0000ff"&gt;try&lt;/span&gt; {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        otl.close();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    } &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (EssException e) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        System.out.println(e.getMessage());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                        e.printStackTrace(System.out);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; getMembersIterator(IEssMember mbr,Element ParentElement) &lt;span style="color: #0000ff"&gt;throws&lt;/span&gt; EssException{&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        Element elementMember = doc.createElement(&lt;span style="color: #006080"&gt;"Member"&lt;/span&gt;);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"MemberName"&lt;/span&gt;, mbr.getName());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"UniqueName"&lt;/span&gt;, mbr.getUniqueName());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"MemberFormula"&lt;/span&gt;, mbr.getFormula());&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"LevelNumber"&lt;/span&gt;, String.valueOf(mbr.getLevelNumber()));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"GenerationNumber"&lt;/span&gt;, String.valueOf(mbr.getGenerationNumber()));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        elementMember.setAttribute(&lt;span style="color: #006080"&gt;"ChildCount"&lt;/span&gt;, String.valueOf(mbr.getChildCount()));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        ParentElement.appendChild(elementMember);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        IEssIterator mbrs = mbr.getChildMembers();&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; mbrs.getCount(); i++) {&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;            getMembersIterator((IEssMember)mbrs.getAt(i),elementMember);&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    }&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;}&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Here is what my properties file looks like.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Common.UserName=admin&lt;br&gt;Common.Password=password&lt;br&gt;Common.ServerName=localhost&lt;br&gt;Common.Provider=Embedded&lt;/p&gt;&lt;br /&gt;&lt;p&gt;If you complete this lab you may run into a bug with connections.&amp;nbsp; Tim Tow has documented this fix very well… &lt;a href="http://timtows-hyperion-blog.blogspot.com/2007/12/essbase-api-error-fix-geeky.html"&gt;http://timtows-hyperion-blog.blogspot.com/2007/12/essbase-api-error-fix-geeky.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-594853915584932931?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/594853915584932931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=594853915584932931' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/594853915584932931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/594853915584932931'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/07/kaleidoscope-2009-hands-on-lab-oracle.html' title='Kaleidoscope 2009 Hands on Lab - Oracle Essbase Java API - Building Your First Application (S656)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-4513224727208669293</id><published>2009-06-26T09:48:00.001-07:00</published><updated>2010-03-11T07:25:19.762-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Kaleidoscope 2009 Hands on Lab - Oracle Essbase Java API - The Basics (S655)</title><content type='html'>&lt;p&gt;The goal of this lab was to introduce the to Essbase Java API and teach the basics.&amp;#160; It walked through the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Setting up J-Developer to work with the Essbase Java API (check out my earlier &lt;a href="http://essbaselabs.blogspot.com/2009/05/using-essbase-java-api-with-jdeveloper.html" target="_blank"&gt;blog&lt;/a&gt; on this topic) &lt;/li&gt;    &lt;li&gt;Connecting to Essbase &lt;/li&gt;    &lt;li&gt;Creating a grid view (grid API, similar to what the classic add-in uses) &lt;/li&gt;    &lt;li&gt;Filling in and querying the grid view &lt;/li&gt;    &lt;li&gt;Basic output of the results &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The Essbase Java API objects covered in this lab:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;IEssbase - The Essbase API instance object. &lt;/li&gt;    &lt;li&gt;IEssOlapServer - The connection to the Essbase server. &lt;/li&gt;    &lt;li&gt;IEssCube - The Essbase cube object. &lt;/li&gt;    &lt;li&gt;IEssCubeView &amp;amp; IEssGridView - The Essbase grid API. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you did not get a chance to sign up for this hands on lab or just want to try it you can get the lab here. &lt;/p&gt;  &lt;p&gt;Please note that this lab was based on a pre-built image so some of the directories, URL's, username,etc. will vary. &lt;/p&gt;  &lt;p&gt;Here is the complete code for the lab: &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:1b7691c5-5dfc-458a-9ba4-d3388adbc124" class="wlWriterEditableSmartContent"&gt;&lt;pre class="brush: java;"&gt;package myproject;&lt;br /&gt;&lt;br /&gt;import com.essbase.api.base.*;&lt;br /&gt;import com.essbase.api.dataquery.*;&lt;br /&gt;import com.essbase.api.session.*;&lt;br /&gt;import com.essbase.api.datasource.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class Essbase {&lt;br /&gt;    private static String username = "admin";&lt;br /&gt;    private static String password = "password";&lt;br /&gt;    private static String essbaseServer = "localhost"; &lt;br /&gt;    private static String provider = "http://localhost:13080/aps/JAPI"; &lt;br /&gt;    private static String application = "Sample"; &lt;br /&gt;    private static String database = "Basic";&lt;br /&gt;    &lt;br /&gt;    public Essbase() {&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        IEssbase essbase = null;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            essbase = IEssbase.Home.create(IEssbase.JAPI_VERSION);&lt;br /&gt;            IEssOlapServer olapServer = essbase.signOn(username,password,&lt;br /&gt;                                                       false,null,provider,essbaseServer);&lt;br /&gt;            IEssCube cube = olapServer.getApplication(application).getCube(database);&lt;br /&gt;            IEssCubeView cubeView = cube.openCubeView("default");&lt;br /&gt;            cubeView.setAliasNames(true);&lt;br /&gt;            cubeView.updatePropertyValues();&lt;br /&gt;            &lt;br /&gt;            IEssGridView gridView = cubeView.getGridView();&lt;br /&gt;            gridView.setSize(3,5);&lt;br /&gt;            gridView.setValue(0,2,"Product");&lt;br /&gt;            gridView.setValue(0,3,"Market");&lt;br /&gt;            gridView.setValue(1, 2, "Jan"); &lt;br /&gt;            gridView.setValue(1, 3, "Feb"); &lt;br /&gt;            gridView.setValue(1, 4, "Mar"); &lt;br /&gt;            gridView.setValue(2, 0, "Actual"); &lt;br /&gt;            gridView.setValue(2, 1, "Sales");&lt;br /&gt;            &lt;br /&gt;            IEssOperation essOp = cubeView.createIEssOpRetrieve(); &lt;br /&gt;            cubeView.performOperation(essOp);&lt;br /&gt;            &lt;br /&gt;            int rowCount = gridView.getCountRows(); &lt;br /&gt;            int colCount = gridView.getCountColumns(); &lt;br /&gt;            for (int i = 0; i &amp;lt; rowCount; i++) { &lt;br /&gt;                for (int j = 0; j &amp;lt; colCount; j++) { &lt;br /&gt;                    System.out.print(gridView.getStringValue(i, j) + "\t"); &lt;br /&gt;                    } &lt;br /&gt;                System.out.print("\n"); &lt;br /&gt;                }&lt;br /&gt;            &lt;br /&gt;            &lt;br /&gt;        } &lt;br /&gt;        catch(EssException e) &lt;br /&gt;        { &lt;br /&gt;            System.out.println("Error: " + e.getMessage()); &lt;br /&gt;        } &lt;br /&gt;        finally &lt;br /&gt;        { &lt;br /&gt;            try &lt;br /&gt;            { &lt;br /&gt;                if (essbase != null &amp;amp;&amp;amp; essbase.isSignedOn() == true) essbase.signOff(); &lt;br /&gt;            } &lt;br /&gt;            catch (EssException e1) &lt;br /&gt;            {&lt;br /&gt;                System.err.println("Error: " + e1.getMessage()); &lt;br /&gt;            } &lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can download the lab &lt;a href="http://mmilella.startlogic.com/files/ODTUG/Hands-On Lab - Oracle Essbase Java API - The Basics.pdf" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-4513224727208669293?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/4513224727208669293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=4513224727208669293' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4513224727208669293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4513224727208669293'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009-hands-on-lab-oracle.html' title='Kaleidoscope 2009 Hands on Lab - Oracle Essbase Java API - The Basics (S655)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8676396344951772269</id><published>2009-06-26T08:27:00.001-07:00</published><updated>2009-06-26T08:27:37.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2009'/><title type='text'>Kaleidoscope 2009 Hands on Lab - Introducing J-Developer (S654)</title><content type='html'>&lt;p&gt;If you did not get a chance to sign up for the hands on lab I wanted to give you a chance to get some of the content.&amp;nbsp; This lab is intended to be a intro to J-Developer so that you can begin using J-Developer. If you follow this online &lt;a href="http://www.oracle.com/technology/obe/obe11jdev/11/ide/introjdevide.htm" target="_blank"&gt;tutorial&lt;/a&gt; you will get all the same content and more.&amp;nbsp; If you are interested in using J-Developer with the Essbase Java API check out my earlier &lt;a href="http://essbaselabs.blogspot.com/2009/05/using-essbase-java-api-with-jdeveloper.html" target="_blank"&gt;blog&lt;/a&gt; on this topic.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8676396344951772269?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8676396344951772269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8676396344951772269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8676396344951772269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8676396344951772269'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009-hands-on-lab.html' title='Kaleidoscope 2009 Hands on Lab - Introducing J-Developer (S654)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-6391720607279792922</id><published>2009-06-22T18:16:00.001-07:00</published><updated>2009-06-22T18:17:12.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Kaleidoscope 2009 Top 5 Essbase CDF's (S605)</title><content type='html'>&lt;p&gt;I am about to present at &lt;a href="http://www.odtugkaleidoscope.com/index.html"&gt;Kaleidoscope 2009&lt;/a&gt; and thought I should do a blog about the session so that if anyone missed the session or fell asleep they could get the information they need.&amp;nbsp; Before I start I need to give credit to Mike and Toufic for sharing their code with my and thanks to Mike for helping me get up to speed on CDF's&lt;/p&gt; &lt;p&gt;&lt;strong&gt;So What is a CDF?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;A CDF or custom defined function is any java class written so that is can interact with the Essbase calculator.  &lt;ul&gt; &lt;li&gt;Data, metadata or both can be passed from the calculator to the CDF.  &lt;li&gt;Data or metadata be returned to the calculator.  &lt;li&gt;The CDF can call any outside Java process.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Basically if it can be done it Java it can be run in an Essbase Calculation.  &lt;p&gt;&lt;strong&gt;What are the Ways I can run a CDF?&lt;/strong&gt;  &lt;ul&gt; &lt;li&gt;Register a Function.&lt;br&gt;&lt;br&gt;Static methods can be registered with Essbase so they can be run in a calculation script as if they were a native function.&amp;nbsp; You also want to do this is the person creating the calculation script will not be the same person who developed the function.&amp;nbsp; The registered function is then run in a calculation script like any other Essbase calculator function.&amp;nbsp; Here are some docs on registering functions &lt;a href="http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/maxl/ddl/cdf/examples/register.htm"&gt;http://download.oracle.com/docs/cd/E10530_01/doc/epm.931/html_esb_techref/maxl/ddl/cdf/examples/register.htm&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;RUNJAVA Command&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;This command will run a ‘Main’ method in a java class by calling it in a calculation script like this &lt;em&gt;RUNJAVA somejavaclass “Parameters String []";&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Most CDF’s should and can be written to support both methods and in many cases you may need both to support the function.&amp;nbsp; For instance if you have a system you want to log into and then pass a bunch of data or Essbase and then log out.&amp;nbsp; You might use RUNJAVA at the top of the script to do the login and then use a function to get the data and then use RUNJAVA to logout at the end.&amp;nbsp; This way you do not have to log into the system over and over again as you pull in data.&amp;nbsp; I show the use of both methods in my blog entry on integrating Twitter with Essbase. &lt;a href="http://essbaselabs.blogspot.com/2009/05/ashton-kutcher-can-now-get-my-essbase.html"&gt;http://essbaselabs.blogspot.com/2009/05/ashton-kutcher-can-now-get-my-essbase.html&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;How do I install a CDF?&lt;/strong&gt;  &lt;ul&gt; &lt;li&gt;Create the JAR file and make sure it does what you want.  &lt;li&gt;Copy the JAR file or files and any related files like properties files to the Essbase server in the directory $HYPERION_HOME /products/Essbase/EssbaseServer/java/udf&amp;nbsp; For new installations this folder may not exist and you may need to create it.  &lt;li&gt;Modify the file udf.policy and grant the appropriate permissions if needed $HYPERION_HOME /products/Essbase/EssbaseServer/java/udf.policy&amp;nbsp; For Example:&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;grant codeBase "file:${essbase.java.home}/essbase.jar" {&lt;/em&gt;  &lt;p&gt;&lt;em&gt;permission java.security.AllPermission;&lt;/em&gt;  &lt;p&gt;&lt;em&gt;};&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Register the function if needed.  &lt;li&gt;You should follow the same rules and syntax as a standard Java Policy file and always error on the side of more secure.  &lt;li&gt;CDF are loaded when the server starts and changes to the JAR file will require that you stop and start the server.  &lt;li&gt;You can view an application log to see the your function loaded correctly.  &lt;p&gt;&lt;em&gt;[Thu May 07 12:54:02 2009]Local/Sample///Info(1200445)&lt;/em&gt;  &lt;p&gt;&lt;em&gt;External [GLOBAL] function [@JechoString] registered OK&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;Top 5 CDF's&lt;/strong&gt;  &lt;p&gt;Beyond all the geeky coding stuff is some cool and really functional CDF's and instead of doing a top 5 specific list I have broken them down into the top 5 CDF categories and many of the categories have more than 1 useful function.  &lt;ul&gt; &lt;li&gt;Data Functions - Functions like these allow a developer to get at data not normally accessible to Essbase.&amp;nbsp; In the example I provided (see below) I go after stock data from a free Yahoo http quote service.&amp;nbsp; This concept can be applied to any number of web service or internal systems.  &lt;li&gt;Essbase Java API based functions - Ever wanted at add a member while doing a calculation, well you can you just need to put the correct files in place and call the Essbase JAVA API in your CDF.&amp;nbsp; The sky is the limit with the JAPI and I include moving data from one cube to another and creating substitution variables but if you can do it in the JAPI you can do it in a CDF.  &lt;li&gt;J-Alert - Ever wanted to know the progress of your calculation with out having to check the logs?&amp;nbsp; If so this function is perfect!&amp;nbsp; It can send emails with various content at any point in the process.  &lt;li&gt;String Functions are ideal for debugging your calculation scripts and enhancing.&amp;nbsp; Things like string concatenation that are difficult in the Essbase are a breeze with these functions.  &lt;li&gt;J-Export - This has got the be the most asked about CDF in the field and among internal teams.&amp;nbsp; This allows you to do exports of targeted data to various output types and it does it all screaming fast!&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://mmilella.startlogic.com/files/CDF/Top5CDFs.zip" target="_blank"&gt;Sample Files&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-6391720607279792922?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/6391720607279792922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=6391720607279792922' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6391720607279792922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6391720607279792922'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009-top-5-essbase-cdf.html' title='Kaleidoscope 2009 Top 5 Essbase CDF&amp;#39;s (S605)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-4536454142732329444</id><published>2009-06-22T12:20:00.000-07:00</published><updated>2009-06-22T15:06:13.868-07:00</updated><title type='text'>Speeding Up ASO Extracts</title><content type='html'>I recently had the opportunity to work on coming up with the fastest way to extract data from an ASO database. The result of this extract was to be used in another application so the format of the data was important. This requirement ruled out using the Export feature of ASO since the format of the data from an Export is optimized for loading back into an Essbase database and cannot be configured. However, if you do not care about the format of the output, this is the fastest way to export all level zero data from an ASO database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That left me with 2 options: MDX script and Report Writer script.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MDX really is not meant to be a bulk extractor of data. It has a number of drawbacks.  One is that it has set size limitations (2^32) when performing crossjoins.  One can work around this limitation (to a point) by pre-processing the sets using filtered named sets and then using the named sets in the crossjoin. Even when the MDX ran successfully, it was still slower than using the Report Writer.&lt;br /&gt;&lt;br /&gt;The Report Writer method of extraction turns out to be the fastest &lt;strong&gt;IF&lt;/strong&gt; the report script is written in the correct manner.  The key to using the Report Writer with an ASO database is to order the dimensions from the smallest dimension to the largest dimension in the ROW command.  Using this proper order will speed up a report writer query in some cases by a factor of 10 or more!&lt;br /&gt;&lt;br /&gt;Finally, I found that a properly ordered Report Writer script does not benefit by increasing the Retrieval Buffer.  Leave it at the default setting.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sample extract report writer and MDX scripts can be found &lt;a href="http://mmilella.startlogic.com/files/Extract.zip"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-4536454142732329444?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/4536454142732329444/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=4536454142732329444' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4536454142732329444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4536454142732329444'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/speeding-up-aso-extracts.html' title='Speeding Up ASO Extracts'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3529103493322223615</id><published>2009-06-22T06:55:00.000-07:00</published><updated>2009-06-26T13:40:55.164-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Calc Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>CDF: Logging Functions</title><content type='html'>There are three different ways to perform logging using a CDF. The first is using the JAPI logging capabilities. The second is using a third party logging package like “Log4J”. Finally, the Essbase calculator provides for a way to use Essbase logging. I will be discussing the latter two methods in this blog.&lt;br&gt;&lt;br&gt;&lt;br&gt;The Essbase calculator allows for logging within the Essbase application log itself through the use of the Essbase context. Using the logging CDF, this can only be accessed using the RUNJAVA command in a calc script. An example of this would be as follows:&lt;br&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br&gt;&lt;strong&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;RUNJAVA com.hyperion.essbase.cdf.LogFunctions &lt;span style="color: #006080"&gt;"The calc script has finished"&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br&gt;Using a third party logger like Log4J, there are dependency files that must be included in the UDF directory along with the CDF jar file. In this case, the log4j-1.2.8.jar file (which can be found under the Hyperion/Common directory structure) and the log4j.properties file. The properties file will need to be modified to direct the log output file to the appropriate location on your machine. There are two functions in the logging CDF:&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #cc6633"&gt;@JlogDebug&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; array, &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; array)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;Logs a debug message to the Log4J log file.&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;@JlogDebug(&lt;span style="color: #006080"&gt;"On Budget"&lt;/span&gt; ,@LIST(@NAME(@CURRMBR(Year)) ,@NAME(@CURRMBR(Market)) ,@NAME(@CURRMBR(Measures)) ,@NAME(@CURRMBR(Product)) ,@NAME(Actual) ,@NAME(Budget)) ,@LIST(Actual,Budget));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;“2009-04-21 15:49:41,875 DEBUG On Budget :: Jan New York Profit 100-10 Actual Budget 0.0 -2.0E-15”&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #cc6633"&gt;@JlogError&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; array, &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; array)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;Logs an error message to the Log4J log file.&lt;br&gt;&lt;br&gt;&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;@JlogError(&lt;span style="color: #006080"&gt;"Over Budget"&lt;/span&gt; ,@LIST(@NAME(@CURRMBR(Year)) ,@NAME(@CURRMBR(Market)) ,@NAME(@CURRMBR(Measures)) ,@NAME(@CURRMBR(Product)) ,@NAME(Actual) ,@NAME(Budget)) ,@LIST(Actual,Budget));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;@JlogError(&lt;span style="color: #006080"&gt;"Over Budget"&lt;/span&gt; ,@LIST(@NAME(@CURRMBR(Year)) ,@NAME(@CURRMBR(Market)) ,@NAME(@CURRMBR(Measures)) ,@NAME(@CURRMBR(Product)) ,@NAME(Actual) ,@NAME(Budget)) ,@LIST(Actual,Budget));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;“2009-04-21 15:49:41,875 ERROR Over Budget :: Dec New York Profit 100-10 Actual Budget 51.0 40.0”&lt;br&gt;&lt;br&gt;&lt;br&gt;Source for these functions can be found &lt;a href="http://mmilella.startlogic.com/files/CDF/Log.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3529103493322223615?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3529103493322223615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3529103493322223615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3529103493322223615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3529103493322223615'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/cdf-logging-functions.html' title='CDF: Logging Functions'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8580317683662905660</id><published>2009-06-19T07:36:00.001-07:00</published><updated>2009-06-19T07:36:09.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='ODTUG'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Kaleidoscope 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Kaleidoscope 2009</title><content type='html'>&lt;p&gt;Check out my sessions at &lt;a href="http://www.odtugkaleidoscope.com/index.html" target="_blank"&gt;Kaleidoscope 2009&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;&lt;a title="http://www.odtugkaleidoscope.com/abstracts.html#Milella" href="http://www.odtugkaleidoscope.com/abstracts.html#Milella"&gt;http://www.odtugkaleidoscope.com/abstracts.html#Milella&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Top Five Essbase CDF's&lt;/strong&gt;&lt;br&gt;In this session we will demonstrate how to install and use a CDF (Custom Defined Function) in Essbase. We will also walk through some of the most popular CDF categories including an overview of J-Export. CDF categories include; exporting data (J-Export), importing data, accessing Web content (stock quotes, other Web services), outline changes with the Essbase JAPI, and general utility functions for tuning and debugging Essbase calculations. &lt;p&gt;Bonus CDF - Integrate Essbase with Twitter &lt;a href="http://essbaselabs.blogspot.com/2009/05/ashton-kutcher-can-now-get-my-essbase.html"&gt;http://essbaselabs.blogspot.com/2009/05/ashton-kutcher-can-now-get-my-essbase.html&lt;/a&gt; &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;Hands on Labs&lt;/strong&gt; &lt;p&gt;I will also be joining &lt;a href="http://timtows-hyperion-blog.blogspot.com/" target="_blank"&gt;Tim Tow&lt;/a&gt; in some hands on labs: &lt;p&gt;&lt;strong&gt;Introducing JDeveloper&lt;/strong&gt;&lt;br&gt;In this session, you will learn how to download, install and perform the basic configuration, with a focus on the Essbase Java API, of the Oracle JDeveloper Java Integrated Development Environment.&amp;nbsp;&amp;nbsp; You will also learn basic Java concepts including how to create a new Java application and project and how to create a new Java class by creating the classic Java ‘Hello World’ application. &lt;p&gt;&lt;strong&gt;Java API: The Basics&lt;/strong&gt;&lt;br&gt;In this session, you will learn the basic structure of the Essbase Java API, how to use it to connect to a given Essbase server, application and database, how to layout a data retrieval grid and how to retrieve data into the grid. &lt;p&gt;&lt;strong&gt;Java API: Building Your First App&lt;/strong&gt;&lt;br&gt;In this session, you will learn how to use the Essbase Java API to write an application, we will focus our efforts on building an outline extractor.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8580317683662905660?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8580317683662905660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8580317683662905660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8580317683662905660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8580317683662905660'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/06/kaleidoscope-2009.html' title='Kaleidoscope 2009'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2735362268724673090</id><published>2009-05-20T11:37:00.001-07:00</published><updated>2009-05-20T11:37:58.971-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase JAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Using the Essbase Java API with JDeveloper</title><content type='html'>&lt;p&gt;Not sure if this is covered in any document or on any other blog but I could not find it so I thought I would share the steps I took to do this.&lt;/p&gt; &lt;p&gt;Pre Requites:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Essbase is installed and working and is accessible from the machine where you plan to do your development work.&lt;/li&gt; &lt;li&gt;APS (Analytic Provider Services) is installed, this does not have to be running to use the API but you will need files from this installation.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.oracle.com/technology/products/jdev/index.html" target="_blank"&gt;JDeveloper&lt;/a&gt; is installed.&amp;nbsp; I am using JDeveloper 11.1.1.0.1 but I am sure earlier versions will also work.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;In JDeveloper create a new 'Generic Application' by selecting File New...&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShRNmVoEb6I/AAAAAAAAANE/3D0TW3LTa6E/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="457" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNnufefCI/AAAAAAAAANI/wpU_xnqrU9E/image_thumb%5B5%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Give your application a name (i.e. Essbase Java API) and click finish.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNohyKjSI/AAAAAAAAANM/wiyNsNzWjXI/s1600-h/image%5B47%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="480" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNplJeRgI/AAAAAAAAANQ/0v6iz31Q6w4/image_thumb%5B31%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;With the new application selected create a new 'Generic Project' by selecting the File New menu or right clicking on the application in the application navigator.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNq6rBL-I/AAAAAAAAANU/9OdXw1rG3Oc/s1600-h/image%5B46%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="457" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNsXz7-UI/AAAAAAAAANY/YHELcA80QWw/image_thumb%5B30%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Give the new project a name and select Java for it's technology.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShRNtSXg9tI/AAAAAAAAANc/Nuukx8GmttI/s1600-h/image%5B44%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="480" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShRNuX48A3I/AAAAAAAAANg/uCVKwOn9CBs/image_thumb%5B28%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Click Next and enter a default package name (i.e. com.oracle.essbase.japi) and click finish.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/ShRNvWlF5VI/AAAAAAAAANk/NK5NlZPBeyU/s1600-h/image%5B43%5D.png"&gt;&lt;img height="480" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRNwu9lUaI/AAAAAAAAANo/v9NdC63Y2GA/image_thumb%5B27%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;On the server where you have installed APS and Essbase copy the following files and put them in a directory that will be accessible from the JDeveloper project:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;%HYPERION_HOME%\products\Essbase\aps\lib\cpld14.jar&lt;/li&gt; &lt;li&gt;%HYPERION_HOME%\products\Essbase\aps\lib\ess_es_server.jar&lt;/li&gt; &lt;li&gt;%HYPERION_HOME%\products\Essbase\aps\lib\ess_japi.jar&lt;/li&gt; &lt;li&gt;%HYPERION_HOME%\common\loggers\Log4j\1.2.8\lib\log4j-1.2.8.jar&lt;/li&gt; &lt;li&gt;%HYPERION_HOME%\products\Essbase\aps\bin\essbase.properties&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;When copying these files to your machine make sure you have following directory structure:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Local Folder\lib - This folder has all the jar files.&lt;/li&gt; &lt;li&gt;Local Folder\bin - This folder has properties file.&lt;/li&gt; &lt;li&gt;Local Folder\data - This folder is empty and when you run your first application a file will be created there for you called domain.db.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRNxsSNw0I/AAAAAAAAANs/lAG_ehzVHFU/s1600-h/image%5B36%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="480" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShRNzKgp-ZI/AAAAAAAAANw/eNQOa61a_m0/image_thumb%5B20%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;In JDeveloper right click on the project created above and select 'Project Properties'.&lt;/p&gt; &lt;p&gt;Select the section named 'Libraries and Classpath' and add a reference to the 4 jar files from above.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShRN0FNBKJI/AAAAAAAAAN0/qdatg9saF68/s1600-h/image%5B52%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="457" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRN2khl5II/AAAAAAAAAN4/R-FNc38DwpU/image_thumb%5B34%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Select the section ' Run/Debug/Profile' and edit the default profile.&lt;/p&gt; &lt;p&gt;In the Java Options for the client JVM add the following parameter:&lt;/p&gt; &lt;p&gt;-DESS_ES_HOME=&amp;lt;Path to the files from above or the APS_HOME directory&amp;gt; (i.e. -DESS_ES_HOME=C:\JDeveloper\mywork\EssbaseJAPI\japi)&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/ShRN34mHQHI/AAAAAAAAAN8/Arhr7bgOQaM/s1600-h/image%5B57%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="457" alt="image" src="http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRN5RTXcPI/AAAAAAAAAOA/uhIAoTeFvR0/image_thumb%5B37%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Now you are ready to program using the JAPI to do this you will need a Java class.&amp;nbsp; Right click on the project and select New...&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRN6zuQJhI/AAAAAAAAAOE/X13GFL52nQ8/s1600-h/image%5B66%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="457" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRN8Tt6JlI/AAAAAAAAAOI/3cmILOAYEJU/image_thumb%5B44%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Select New Java Class and click OK.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/ShRN9Rh5MgI/AAAAAAAAAOM/Reasaldm7Es/s1600-h/image%5B72%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="357" alt="image" src="http://lh4.ggpht.com/_yqfa5Z1-l1g/ShRN-qFJIEI/AAAAAAAAAOQ/xdpBWo0cioE/image_thumb%5B48%5D.png?imgmax=800" width="333" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Give the class a name and select any of the options you want.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You are now ready to start writing code against Essbase using the JAPI in JDeveloper.&amp;nbsp; You can find code samples in the directory %HYPERION_HOME%\products\Essbase\aps\samples\japi&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_yqfa5Z1-l1g/ShROAEO-5mI/AAAAAAAAAOU/N3JHrx1lnLY/s1600-h/image%5B77%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="441" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/ShROBZRY9jI/AAAAAAAAAOY/06XHWR17ols/image_thumb%5B51%5D.png?imgmax=800" width="640" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2735362268724673090?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2735362268724673090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2735362268724673090' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2735362268724673090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2735362268724673090'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/05/using-essbase-java-api-with-jdeveloper.html' title='Using the Essbase Java API with JDeveloper'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_yqfa5Z1-l1g/ShRNnufefCI/AAAAAAAAANI/wpU_xnqrU9E/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3132781479382535159</id><published>2009-05-07T14:09:00.001-07:00</published><updated>2009-06-26T13:36:55.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Calc Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='JDev'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='JDeveloper'/><category scheme='http://www.blogger.com/atom/ns#' term='CDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Custom Defined Functions'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Ashton Kutcher can now get my Essbase calculation updates...</title><content type='html'>&lt;p&gt;So for an upcoming &lt;a href="http://www.odtugkaleidoscope.com/essbase.html" target="_blank"&gt;ODTUG&lt;/a&gt; presentation I needed to create some basic CDF's to show as examples; so I decide I had to do something more fun than just logging data or running an executable.&amp;nbsp; As I was updating my Twitter status I realized there may be an actual business case for having a Twitter account and my CDF example was born... The use case is to follow an Essbase server on Twitter and get updates as calculations are run on the server.&lt;/p&gt; &lt;p&gt;Here is what I did:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Set up a new Twitter account (did not want to mess with my own account) &lt;a href="http://twitter.com/essbaseserver"&gt;http://twitter.com/essbaseserver&lt;/a&gt;  &lt;li&gt;Using &lt;a href="http://www.oracle.com/technology/products/jdev/index.html" target="_blank"&gt;JDeveloper&lt;/a&gt; I created a new CDF that sends string updates to twitter.&amp;nbsp; I did this using &lt;a href="http://www.winterwell.com/software/jtwitter.php" target="_blank"&gt;JTwitter&lt;/a&gt; an open source Java library for access to twitter.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/SgNN8Qd4SiI/AAAAAAAAAM0/MaQEPapIr6E/s1600-h/image%5B19%5D.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 45px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://lh6.ggpht.com/_yqfa5Z1-l1g/SgNN9XBhlqI/AAAAAAAAAM4/h0QzqYnYPBM/image_thumb%5B13%5D.png?imgmax=800" width="500" height="425"&gt;&lt;/a&gt; &lt;/p&gt; &lt;ul&gt; &lt;li&gt;Registered the CDF and created a calculation script to run while sending the Twitter account status updates.&lt;/li&gt;&lt;/ul&gt; &lt;div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper"&gt; &lt;div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;RUNJAVA com.oracle.essbase.cdf.EssbaseTweet &lt;span style="color: #006080"&gt;"Running a Calculaiton on the Cube Sample.Basic"&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;Calc ALL;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;fix(&lt;span style="color: #006080"&gt;"Market"&lt;/span&gt;,&lt;span style="color: #006080"&gt;"Sales"&lt;/span&gt;,&lt;span style="color: #006080"&gt;"Jan"&lt;/span&gt;,@LEVMBRS (&lt;span style="color: #006080"&gt;"Product"&lt;/span&gt;, 0))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #006080"&gt;"Actual"&lt;/span&gt;(&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #cc6633"&gt;@EssbaseTweet&lt;/span&gt; (&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #cc6633"&gt;@CONCATENATE&lt;/span&gt; (&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;    &lt;span style="color: #cc6633"&gt;@CONCATENATE&lt;/span&gt; (        &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;        &lt;span style="color: #cc6633"&gt;@CONCATENATE&lt;/span&gt; (&lt;span style="color: #006080"&gt;"Sales for "&lt;/span&gt;, @AlIAS(@CURRMBR(&lt;span style="color: #006080"&gt;"Product"&lt;/span&gt;)))&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;                                , &lt;span style="color: #006080"&gt;" are "&lt;/span&gt;), &lt;span style="color: #cc6633"&gt;@JgetStringFromDouble&lt;/span&gt; (@CURRMBR (&lt;span style="color: #006080"&gt;"Product"&lt;/span&gt;),@_false,@_false)));&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;)&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;endfix &lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;RUNJAVA com.oracle.essbase.cdf.EssbaseTweet &lt;span style="color: #006080"&gt;"Calculation Complete on the Cube Sample.Basic"&lt;/span&gt;;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;nbsp;&lt;/pre&gt;&lt;!--CRLF--&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;This runs a calc all and then updates the Twitter account status with sales for level 0 products.&amp;nbsp; If you follow this twitter &lt;a href="http://twitter.com/essbaseserver"&gt;http://twitter.com/essbaseserver&lt;/a&gt; account you will get updates for all of my testing.&amp;nbsp; Here is the &lt;a href="http://mmilella.startlogic.com/files/CDF/TwitterSample.zip" target="_blank"&gt;source&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_yqfa5Z1-l1g/SgNN-WWcKBI/AAAAAAAAAM8/eaOQIcX4jO0/s1600-h/image%5B18%5D.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 30px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="image" src="http://lh3.ggpht.com/_yqfa5Z1-l1g/SgNN_AJvEeI/AAAAAAAAANA/8cIXUwlFGkM/image_thumb%5B12%5D.png?imgmax=800" width="504" height="388"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3132781479382535159?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3132781479382535159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3132781479382535159' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3132781479382535159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3132781479382535159'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/05/ashton-kutcher-can-now-get-my-essbase.html' title='Ashton Kutcher can now get my Essbase calculation updates...'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_yqfa5Z1-l1g/SgNN9XBhlqI/AAAAAAAAAM4/h0QzqYnYPBM/s72-c/image_thumb%5B13%5D.png?imgmax=800' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-4367349032511450001</id><published>2009-04-21T12:19:00.001-07:00</published><updated>2009-04-21T13:51:14.034-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MaxL'/><category scheme='http://www.blogger.com/atom/ns#' term='TextPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Organizing MaxL Scripts</title><content type='html'>&lt;p&gt;If you have been using Essbase for any amount of time then you surely have found yourself writing a number of MaxL scripts.&amp;nbsp; Often times these scripts can become as complex as writing code using an API but the scripts have no real development environment and quickly get out of control.&amp;nbsp; I am going to discuss one technique I use to organize MaxL scripts.&lt;/p&gt; &lt;p&gt;If you have never used MaxL or you use Notepad to write MaxL scripts then you may want to read my post on &lt;a href="http://essbaselabs.blogspot.com/2008/08/working-with-essbase-files.html" target="_blank"&gt;working with Essbase Files&lt;/a&gt; before continuing with this post.&lt;/p&gt; &lt;p&gt;The key for script organization is to break the scripts down in to 'mini' scripts in separate files and then have a calling script to run all the functional mini scripts.&amp;nbsp; For example I always have a connect script, a disconnect script and a properties script.&amp;nbsp; The properties script is just a list of all my set commands (variables).&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; ApplicationName = &lt;span class="str"&gt;'Sample'&lt;/span&gt;;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; DatabaseName = &lt;span class="str"&gt;'Basic';&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; SpoolFile = &lt;span class="str"&gt;'../logs/MAXL_Build_Process.log'&lt;/span&gt;;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; ServerName = &lt;span class="str"&gt;'SomeServerName'&lt;/span&gt;;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; UserName = &lt;span class="str"&gt;'SomeEssbaseUser'&lt;/span&gt;;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;set&lt;/font&gt; Password = &lt;span class="str"&gt;'Password'&lt;/span&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;You will want to include anything in here that might vary, including username and password.&amp;nbsp; Be careful about saving user information in clear text!!&lt;/p&gt; &lt;p&gt;The connect script is simply the login command that accepts the variables from the &lt;/p&gt; &lt;p&gt;properties script.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;LOGIN&lt;/font&gt; $UserName $Password &lt;span class="kwrd"&gt;ON&lt;/span&gt; $ServerName;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The disconnect script is even easier as it is just the logout and exit commands.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;LOGOUT&lt;/font&gt;;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;span class="kwrd"&gt;&lt;font color="#008080"&gt;EXIT&lt;/font&gt;&lt;/span&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Now that you have 3 script files you can pull them together and call them from one file and run the entire script.&lt;/p&gt; &lt;blockquote&gt; &lt;div class="csharpcode"&gt; &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;msh&lt;/font&gt; Properties.msh;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;msh&lt;/font&gt; &lt;font color="#000000"&gt;&lt;span class="kwrd"&gt;Connect&lt;/span&gt;.msh;&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008080"&gt;msh&lt;/font&gt; &lt;font color="#000000"&gt;&lt;span class="kwrd"&gt;Disconnect&lt;/span&gt;.msh;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;This file simply calls the other files in the specified order.&amp;nbsp; This allows you to be flexible and easily edit what parts of the script are run.&amp;nbsp; Also over time you can accumulate a library of mini scripts that can be used to create multiple scripts to automate almost any process.&lt;/p&gt; &lt;p&gt;I know this example does nothing functional (login then logout) but it should help you to understand how to break a script down for organizational purposes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-4367349032511450001?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/4367349032511450001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=4367349032511450001' title='41 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4367349032511450001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4367349032511450001'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/04/organizing-maxl-scripts.html' title='Organizing MaxL Scripts'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-1124024411163488958</id><published>2009-04-20T08:54:00.000-07:00</published><updated>2009-04-27T08:44:52.905-07:00</updated><title type='text'>CDF: Miscellaneous Functions</title><content type='html'>Over the years, we have created a variety of custom functions to solve particular business problems. The following list is a variety that one can only categorize as miscellaneous.&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;JgetConcatenate&lt;/span&gt; (string array)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;Unlike the native function @&lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;CONCAT&lt;/span&gt; which will combine only two strings into a single string, @&lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;JgetConcatenate&lt;/span&gt; is a very useful function for combining many strings into one string.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@JgetConcatenate(@LIST("More","-","than","-","two","-","strings."))&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;Jequals&lt;/span&gt; (string) and @&lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;JequalsIgnoreCase&lt;/span&gt; (string)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;Jequals&lt;/span&gt; compares two strings and returns a Boolean. @ &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;JequalsIgnoreCase&lt;/span&gt; compares two strings regardless of their case and returns a Boolean.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@Jequals(@ALIAS(@CURRMBR("Product")),@SUBSTRING("&lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;GoodColas&lt;/span&gt;",4))&lt;br /&gt;&lt;br /&gt;@JequalsIgnoreCase(@ALIAS(@CURRMBR("Product")),@SUBSTRING("&lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;goodcolas&lt;/span&gt;",4))&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;JcompareStringToDouble&lt;/span&gt; (string, double)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;JcompareStringToDouble&lt;/span&gt; compares a string with a double value and returns a Boolean.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@JcompareStringToDouble(@NAME(@CURRMBR("Product")),100)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;JgetString&lt;/span&gt; (double)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;JgetString&lt;/span&gt; compares a string with a double value and returns a Boolean.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@Jequals(@NAME(@CURRMBR("Product")),@JgetString(100))&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;JgetDouble&lt;/span&gt; (string)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;JgetDouble&lt;/span&gt; returns the double of a string.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@JgetDouble(@NAME(“2004”))&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;JgetDoubleQuote&lt;/span&gt; (string)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;JgetDoubleQuote&lt;/span&gt; returns a string enclosed within double quotes.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@&lt;span id="SPELLING_ERROR_17" class="blsp-spelling-error"&gt;JgetDoubleQuote&lt;/span&gt;(“20040927”)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;@&lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;JsortStrings&lt;/span&gt; (string array, &lt;span id="SPELLING_ERROR_19" class="blsp-spelling-error"&gt;boolean&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;@ &lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;JsortStrings&lt;/span&gt; returns a sorted array of strings. The &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;boolean&lt;/span&gt; parameter determines ascending or descending ordering.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;@JsortStrings(@LIST("c","a","b"),@_False)&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;blockquote&gt;&lt;em&gt;&lt;strong&gt;Update:  Source for these functions can be found &lt;/strong&gt;&lt;a href="http://mmilella.startlogic.com/files/CDF/String.zip"&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-1124024411163488958?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/1124024411163488958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=1124024411163488958' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1124024411163488958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1124024411163488958'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/04/cdf-miscellaneous-functions.html' title='CDF: Miscellaneous Functions'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-1924660266511070239</id><published>2009-04-16T07:58:00.000-07:00</published><updated>2009-04-27T08:46:55.766-07:00</updated><title type='text'>CDF: @JEcho</title><content type='html'>One of the most useful functions that we have ever written is @Jecho. This function allows for sending any output to the Essbase database window during the execution of a calc script. Have you ever wondered to yourself “This calc script is taking too long…what the heck is it doing?” Well, with @Jecho you can insert this function into areas of the calculation script and very quickly see what is being calculated, both data and metadata, and in what order. This function has been a life saver for countless Essbase calc performance optimizations over the years because it can identify inefficiencies in a calc script such as calculating un-intended members or calculating empty blocks when they do not need to be calculated.&lt;br /&gt;&lt;br /&gt;There are three variations to this function: @JechoString, @JechoDouble and @JechoBoth. @JechoString allows for the output of an array of strings. @JechoDouble allows for the output of an array of double values. @JechoBoth allows for the output of an array of strings and an array of double values. The output is tab delimited.&lt;br /&gt;&lt;br /&gt;Note: In Essbase, the native function @LIST will create an array of items. The native function @NAME will return the string name of an Essbase member. The native function @ALIAS will return the string alias of an Essbase member.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 304px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5325308861239387506" border="0" alt="" src="http://4.bp.blogspot.com/__g-tFk5tt0Q/SedMMdFp5XI/AAAAAAAAACo/wB865z4JQ6w/s400/EAS.PNG" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 198px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5325306147544999650" border="0" alt="" src="http://2.bp.blogspot.com/__g-tFk5tt0Q/SedJufyfpuI/AAAAAAAAACg/qsR4SKmizoI/s400/window.PNG" /&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;em&gt;&lt;blockquote&gt;&lt;p&gt;&lt;em&gt;Update:  Source code for these functions can be found &lt;a href="http://mmilella.startlogic.com/files/CDF/String.zip"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-1924660266511070239?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/1924660266511070239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=1924660266511070239' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1924660266511070239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/1924660266511070239'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2009/04/cdf-jecho.html' title='CDF: @JEcho'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/__g-tFk5tt0Q/SedMMdFp5XI/AAAAAAAAACo/wB865z4JQ6w/s72-c/EAS.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8304284917568008601</id><published>2008-10-15T07:54:00.001-07:00</published><updated>2008-10-15T07:54:56.911-07:00</updated><title type='text'>CDF: JExport and Dynamic Members</title><content type='html'>&lt;p&gt;One of the most frequently asked questions by people who use the JExport function is “How do I output the dynamically calculated members along with the stored members in a cube?” By default, the Essbase calculator will skip over the dynamically calculated members for performance reasons. It is only until you explicitly make the calculator evaluate a dynamic calculation that it will include dynamic calculations in its output.&lt;/p&gt;  &lt;p&gt;There are 2 ways to make this happen. For both solutions, it is required that the formula be based upon a DENSE member. In my examples to follow, the formula is for the member “Jan” which is from the Time dimension in the Sample|Basic cube. The Time dimension is a dense dimension.&lt;/p&gt;  &lt;p&gt;The first way to get all dynamic members to be output by the JExport function is to include an evaluation statement in the script that uses a dynamic member in the evaluation. In the example script, the evaluation statement is “IF(“Variance” &amp;gt;=0 OR “Variance” &amp;lt;= 0)”. The member “Variance” is a dynamically calculated member. Note: The IF statement has been purposefully written so that it always evaluates to True.&lt;/p&gt;  &lt;p&gt;The second way to get all dynamic members to be output by the JExport function is similar to the first but instead of introducing an evaluation statement into the script you include a dynamic member as an output member in the JExport function. In this example, the “Variance” member is being output along with the “Actual” and “Budget” members.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mikelarimer/SPYEObudLTI/AAAAAAAAAB8/095fpDBXocs/s1600-h/image%5B19%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="484" alt="image" src="http://lh5.ggpht.com/mikelarimer/SPYEP7IHhKI/AAAAAAAAACA/aDwwh6wtX7k/image_thumb%5B11%5D.png?imgmax=800" width="636" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Remember, extracting dynamic members using JExport will degrade the performance of your script since the calculator has to perform the calculations before it can output the data.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8304284917568008601?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8304284917568008601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8304284917568008601' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8304284917568008601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8304284917568008601'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/10/cdf-jexport-and-dynamic-members.html' title='CDF: JExport and Dynamic Members'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/mikelarimer/SPYEP7IHhKI/AAAAAAAAACA/aDwwh6wtX7k/s72-c/image_thumb%5B11%5D.png?imgmax=800' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8410988754451006335</id><published>2008-10-03T08:37:00.001-07:00</published><updated>2008-10-03T08:37:46.687-07:00</updated><title type='text'>Custom Defined Functions</title><content type='html'>&lt;p&gt;I am a huge fan of the Essbase Custom Defined Function (CDF). My colleague Toufic Wakim and I have built a library of CDFs over the years to do a variety of things that extend the capabilities of Essbase. Probably the most famous CDF we created is JExport. JExport is a function that uses the powerful Essbase calculator to extract data from Essbase into a file or SQL database. The main benefits of JExport are that it is very fast and allows for conditional extracts.&lt;/p&gt;  &lt;p&gt;Anyway, I will be blogging about the various functions within the CDF library for the next few months. By doing so, I am hoping that those new to Essbase will discover this powerful extensibility feature of Essbase and those veteran Essbase designers will get new inspiration for how to use Essbase to solve new business problems.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8410988754451006335?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8410988754451006335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8410988754451006335' title='46 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8410988754451006335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8410988754451006335'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/10/custom-defined-functions.html' title='Custom Defined Functions'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>46</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3060858687506935480</id><published>2008-10-03T08:35:00.001-07:00</published><updated>2008-10-03T08:50:23.320-07:00</updated><title type='text'>PAGELESS CUBES</title><content type='html'>&lt;p&gt;Did you know that it is possible to create a cube that is completely real-time? Where there is NO data stored in the cube or any other cube for that matter. How can this be, you ask yourself? It can’t be through partitioning because there is not any data stored in any cube. It can’t be through the use of an XREF function for the same reason. The answer is through the use of dynamically calculated members and customer defined functions (CDF).&lt;/p&gt;  &lt;p&gt;I have always wanted to build my own personal Essbase stock market database that would give me investment information. I wanted it to use freely available market information and to have real-time stock prices. I found my source of this data on Yahoo Finance. You pass in a URL with parameters to Yahoo and it returns comma separated data.&lt;/p&gt;  &lt;p&gt;My plan was to create a simple CDF that would generate the Yahoo URL and insert the necessary parameters. This would return the stock price for any stock symbol in real-time. I would use this CDF function in the calculation of a dynamically calculated member. When the dynamically calculated member is queried, it launches the URL and retrieves the data just as if it existed in the cube.&lt;/p&gt;  &lt;p&gt;I was able to achieve my dream cube and it works great. This technique of using a CDF within a dynamically calculated member works for other data sources as well. I have CDF functions that retrieve data from a flat file, SQL database and an in-memory variable.&lt;/p&gt;  &lt;p&gt;One caveat to this solution: the query performance is not sub-second. But for me, I can live with slower performance to have my dream cube.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mikelarimer/SOY_OIkq06I/AAAAAAAAABo/5oAlQcUJ2uU/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="401" alt="image" src="http://lh3.ggpht.com/mikelarimer/SOY_Pgy68jI/AAAAAAAAABs/UjiftFvErHo/image_thumb%5B3%5D.png?imgmax=800" width="420" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3060858687506935480?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3060858687506935480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3060858687506935480' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3060858687506935480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3060858687506935480'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/10/pageless-cubes.html' title='PAGELESS CUBES'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/mikelarimer/SOY_Pgy68jI/AAAAAAAAABs/UjiftFvErHo/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-9189501226538346273</id><published>2008-09-30T12:26:00.001-07:00</published><updated>2008-09-30T12:29:25.634-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Elastic Compute Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Essbase in the Clouds</title><content type='html'>&lt;p&gt;So after the Oracle’s &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;taxonomyName=software&amp;amp;articleId=327029&amp;amp;taxonomyId=18&amp;amp;intsrc=kc_top" target="_blank"&gt;announcement&lt;/a&gt; about putting the database and other tools in the cloud I thought is would be timely to do a post on some work being done by a partner, &lt;a href="http://www.full360.com/" target="_blank"&gt;Full360&lt;/a&gt;, with Essbase and the &lt;a href="http://aws.amazon.com/ec2/" target="_blank"&gt;Amazon Cloud&lt;/a&gt;.&amp;#160; Here is a blog from Full360 that gives you step by step instructions on getting a copy of their Essbase image up in the Amazon Cloud.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.full360.com/content/using-cubeflex-basic-edition-ami-start-using-essbase-amazon-ec2"&gt;http://www.full360.com/content/using-cubeflex-basic-edition-ami-start-using-essbase-amazon-ec2&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is a real cutting edge thing and it is nice to see Essbase at the front end of it.&amp;#160; The possibilities are endless with Essbase and the vast amounts scale the cloud can provide.&lt;/p&gt;  &lt;p&gt;To learn more about cloud computing check out this link. &lt;a title="http://www.google.com/search?hl=en&amp;amp;q=cloud+computing" href="http://www.google.com/search?hl=en&amp;amp;q=cloud+computing"&gt;http://www.google.com/search?hl=en&amp;amp;q=cloud+computing&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-9189501226538346273?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/9189501226538346273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=9189501226538346273' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/9189501226538346273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/9189501226538346273'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/09/essbase-in-clouds.html' title='Essbase in the Clouds'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5795993194232531193</id><published>2008-09-15T07:54:00.001-07:00</published><updated>2008-09-15T07:55:01.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MaxL'/><category scheme='http://www.blogger.com/atom/ns#' term='TextPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Database Settings with MaxL</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/mmilella/SM53InfKkZI/AAAAAAAAAKg/yFK575V3pc0/s1600-h/image%5B7%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 5px 0px 0px; border-right-width: 0px" height="176" alt="image" src="http://lh6.ggpht.com/mmilella/SM53JOn7g6I/AAAAAAAAAKk/1Fl_nERgzlU/image_thumb%5B5%5D.png?imgmax=800" width="244" align="left" border="0" /&gt;&lt;/a&gt; For a project I wrote a script that changes key database settings with MaxL.&amp;#160; Nothing too special here just thought it would be a nice one to share.&amp;#160; Here is a link to &lt;a href="http://mmilella.startlogic.com/files/MaxLDBSettings.zip"&gt;download&lt;/a&gt; the files.&amp;#160; Once extracted use the file properties.msh to edit the settings and enter key fields like username and password. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5795993194232531193?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5795993194232531193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5795993194232531193' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5795993194232531193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5795993194232531193'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/09/database-settings-with-maxl.html' title='Database Settings with MaxL'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/mmilella/SM53JOn7g6I/AAAAAAAAAKk/1Fl_nERgzlU/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7531763115510314332</id><published>2008-08-26T08:16:00.001-07:00</published><updated>2008-08-26T08:16:09.628-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='Calculation Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Calc Scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='Administrative Services'/><category scheme='http://www.blogger.com/atom/ns#' term='EAS'/><category scheme='http://www.blogger.com/atom/ns#' term='MaxL'/><category scheme='http://www.blogger.com/atom/ns#' term='TextPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Working with Essbase Files</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/mmilella/SLQeD4uOi1I/AAAAAAAAAJE/4SNIDSI8REw/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; margin: 0px 5px 0px 0px; border-left: 0px; border-bottom: 0px" height="204" alt="image" src="http://lh5.ggpht.com/mmilella/SLQeFA38x6I/AAAAAAAAAJI/5fQYSATUKBw/image_thumb%5B3%5D.png?imgmax=800" width="244" align="left" border="0" /&gt;&lt;/a&gt; Working on a project I found myself writing a bunch of &lt;a href="http://download.oracle.com/docs/cd/E12825_01/epm.111/esb_techref/frameset.htm?maxl_ovrvw.htm" target="_blank"&gt;MaxL&lt;/a&gt; scripts.&amp;#160; So for this I started using Administrative Service and as the scripts got bigger I realized I needed to start using my favorite text editor, &lt;a href="http://www.textpad.com/" target="_blank"&gt;TextPad&lt;/a&gt;.&amp;#160;&amp;#160; If you don’t have it already it is really a fine text editor and I have been using it for years, but working with MaxL I was missing the syntax highlighting and function lists that I had in Administrative Services.&amp;#160; I remembered that TextPad has features that allow you to define things like highlighting and function lists, you just need to build the definition files for this stuff.&amp;#160; Here are the steps I took to get my MaxL files working the way I wanted.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Set up TextPad to run MaxL scripts and capture the output.&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Open TextPad.&lt;/li&gt;      &lt;li&gt;Select Configure | Preferences.&lt;/li&gt;      &lt;li&gt;Select the ‘Tools’ item.&lt;/li&gt;      &lt;li&gt;On the screen click the ‘Add’ button and choose ‘Program’.&lt;a href="http://lh5.ggpht.com/mmilella/SLQeG9JljwI/AAAAAAAAAJM/bjrg2bowYKQ/s1600-h/image%5B16%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="image" src="http://lh5.ggpht.com/mmilella/SLQeHXzzxTI/AAAAAAAAAJQ/WQb-5rS8OPs/image_thumb%5B10%5D.png?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;Browse to the location of the MaxL executable and select it.&amp;#160; (useally - %HYPERION_HOME%\products\Essbase\EssbaseClient\bin\essmsh.exe).&lt;/li&gt;      &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mmilella/SLQeITs3I6I/AAAAAAAAAJU/7CgoOyTR6YA/s1600-h/image%5B17%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="164" alt="image" src="http://lh4.ggpht.com/mmilella/SLQeJKOHxnI/AAAAAAAAAJY/Zlz4tRN7eP0/image_thumb%5B11%5D.png?imgmax=800" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;li&gt;Once in the tools list you can select it and make edits if needed.&lt;/li&gt;      &lt;li&gt;Now you can run MaxL scripts in TextPad.&amp;#160; Select Tools | External Tools and select the item you want to run.&lt;/li&gt;      &lt;li&gt;Repeat for things like Esscmd and anything else you might want to run from TextPad.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Set up Syntax Highlighting&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Open TextPad.&lt;/li&gt;      &lt;li&gt;Select Configure | New Document Class.&lt;/li&gt;      &lt;li&gt;Type the name you want for the new document type (MaxL or Essbase MaxL).&lt;a href="http://lh4.ggpht.com/mmilella/SLQeJqTp1EI/AAAAAAAAAJc/tSLcPTKrYJY/s1600-h/image%5B20%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="181" alt="image" src="http://lh3.ggpht.com/mmilella/SLQeKZYpy0I/AAAAAAAAAJg/2Clko8tPWDw/image_thumb%5B12%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;Select the class members or file extensions that will identify the file (*.msh, *.mxl).&lt;a href="http://lh4.ggpht.com/mmilella/SLQeK3vUorI/AAAAAAAAAJk/6DPBBx2Rg2s/s1600-h/image%5B26%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="181" alt="image" src="http://lh4.ggpht.com/mmilella/SLQeLkeFkbI/AAAAAAAAAJo/PKb6Srtq-1E/image_thumb%5B14%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;Enable syntax highlighting and select the file to be used.&amp;#160; The files need to be located in the TextPad ‘samples’ directory. (C:\Program Files\TextPad 5\Samples)&amp;#160; Files are posted below.&lt;a href="http://lh4.ggpht.com/mmilella/SLQeML23DvI/AAAAAAAAAJs/paepxtBIIvI/s1600-h/image%5B29%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="181" alt="image" src="http://lh4.ggpht.com/mmilella/SLQeM23oY9I/AAAAAAAAAJw/vble5L9x2zk/image_thumb%5B15%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;Click ‘Next’ and then ‘Finish’.&lt;/li&gt;      &lt;li&gt;You now have a new document class that understands syntax highlighting; repeat this for other file types like MDX, Essbase Calculation Scripts, Etc.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Set up clip Libraries.&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;Make sure the clip library files are located in the TextPad ‘samples’ directory. (C:\Program Files\TextPad 5\Samples) Files are posted below.&lt;/li&gt;      &lt;li&gt;Open TextPad.&lt;/li&gt;      &lt;li&gt;Select View | Clip Library.&lt;/li&gt;      &lt;li&gt;Select the clip library you want.&lt;a href="http://lh4.ggpht.com/mmilella/SLQeNY9WZ_I/AAAAAAAAAJ0/7-MKKc2nQQ4/s1600-h/image%5B32%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="205" alt="image" src="http://lh3.ggpht.com/mmilella/SLQeODiKVHI/AAAAAAAAAJ4/8bwdRDC8IJQ/image_thumb%5B16%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;   &lt;/ol&gt; &lt;/ul&gt;  &lt;p&gt;Now TextPad it set up to handle all the Essbase Script development you would ever want.&amp;#160; You can also set up things like ‘File Name Filters’ and ‘Associated Files’ to make things even easier.&lt;/p&gt;  &lt;p&gt;Thanks to Dave Roberts for providing the initial TextPad files used for &lt;a href="http://mmilella.startlogic.com/files/EssbaseTextPad.zip" target="_blank"&gt;syntax highlighting and clip libraries&lt;/a&gt;.&amp;#160; Please note the some of the files need updating for new features in Essbase but all are pretty close…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7531763115510314332?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7531763115510314332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7531763115510314332' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7531763115510314332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7531763115510314332'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/08/working-with-essbase-files.html' title='Working with Essbase Files'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/mmilella/SLQeFA38x6I/AAAAAAAAAJI/5fQYSATUKBw/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-2388957335747752601</id><published>2008-08-18T07:42:00.001-07:00</published><updated>2008-08-18T07:42:14.857-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle XE'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Oralce Express Edition'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Essbase Studio First Impressions (Part 2)</title><content type='html'>&lt;p&gt;So let me start out with a quick review of &lt;a href="http://essbaselabs.blogspot.com/2008/08/essbase-studio-first-impressions-part-1.html" target="_blank"&gt;part 1&lt;/a&gt;.&amp;#160; In part one I set out to rebuild sample basic with Essbase Studio.&amp;#160;&amp;#160;&amp;#160; I extracted data and the outline, loaded it into &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html" target="_blank"&gt;Oracle XE&lt;/a&gt; and created all the connections from XE to Studio.&amp;#160;&amp;#160; I left off with a mini schema built and I stated that I was ready to create metadata.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/mmilella/SKmKPTeYDSI/AAAAAAAAAI0/JI_K8ee9UmE/s1600-h/image%5B4%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="image" src="http://lh4.ggpht.com/mmilella/SKmKQXKpafI/AAAAAAAAAI4/HwE8q_ZB2pc/image_thumb%5B2%5D.png?imgmax=800" width="103" align="left" border="0" /&gt;&lt;/a&gt;In Studio metadata is considered things like dimensions, dimension elements,&amp;#160; measures, cube schemas, drill through reports, etc. and it all lives in a free form panel in studio.&amp;#160; This panel is called the ‘Metadata Navigator’ and it is the place for all the ‘pieces’ that you will need to build the cubes you want.&amp;#160; For example you may have a hierarchy stored here that is used in many cube schemas.&amp;#160;&amp;#160;&amp;#160; I mention that it is free form only because it is a good idea to come up with a system to organize this section.&amp;#160; You can create folders and put new objects in the folders but you cannot move anything.&amp;#160; Once it is there it stays unless you delete it and when building a cube or series of cubes you will have lots of metadata!&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt; The first bit of metadata I wanted to create was my hierarchies.&amp;#160; In my mini schema tables I had all of my dimensions laid out with a parent column and a child column.&amp;#160;&amp;#160; So when creating the hierarchies I simply dragged the parent column and to the new hierarchy window and then dragged the child right below the parent. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/mmilella/SKmKQ1VPEUI/AAAAAAAAAI8/KxX3MtF3LgE/s1600-h/image%5B9%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="303" alt="image" src="http://lh3.ggpht.com/mmilella/SKmKRY20C7I/AAAAAAAAAJA/brRrH113QiU/image_thumb%5B5%5D.png?imgmax=800" width="368" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;For each new hierarchy this process would create 3 new pieces of metadata.&amp;#160; A dimension element for the parent column, a dimension element for the child column and the hierarchy itself.&amp;#160; I repeated this process for all my main dimensions, market, product, scenario, and year.&amp;#160;&amp;#160; This was a breeze.&lt;/p&gt;  &lt;p&gt;Next I had to create the measures dimension and for this I used the columns in the fact and dragged them to the measures hierarchy window.&amp;#160;&amp;#160; For now I left the measures dimension flat.&amp;#160; We will get to the measure hierarchy in another post.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Creating hierarchies was simple and easy once I had the proper mini schema set up.&amp;#160; In the next blog on this topic I will address creating the cube schema and some to the key Essbase properties available.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-2388957335747752601?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/2388957335747752601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=2388957335747752601' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2388957335747752601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/2388957335747752601'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/08/essbase-studio-first-impressions-part-2.html' title='Essbase Studio First Impressions (Part 2)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/mmilella/SKmKQXKpafI/AAAAAAAAAI4/HwE8q_ZB2pc/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-3012143720322693217</id><published>2008-08-12T14:26:00.001-07:00</published><updated>2008-08-12T14:42:23.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Not your fathers Essbase</title><content type='html'>&lt;p&gt;I have spent some time lately installing and using Essbase 11.x and I have started to notice more and more that this is not the same Essbase of years back.   This has been happening over the years but I guess I have really taken note as of late.    I will start by saying that change can be scary but it that does not mean it is wrong or bad.  So this morning I did a fresh install of Essbase and it’s client tools, and I figured I would point out some of the changes that you fellow old timers might encounter.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Gone are the days of 1 floppy or even 1 cd.  For this stack you will need a DVD or just a big enough hard drive.   The installer is way bigger (many gigs) and this is because you are getting much more than just Essbase you are also getting a number of various foundation components that all you you to do a bunch of great things.  You have to think of Essbase as part of an enterprise stack and things like authentication, scaling, administration, etc. additional software is needed.   I do wish they would package the client stuff in a small simple windows installer so in the rare case you are installing on a windows client you don’t have to lug down such a big installer.&lt;/li&gt;&lt;li&gt;Native security is being used less and less, and in fact with this installation you have to check a box if you want Essbase to run in native mode.  At first glance this seemed like a bummer but if you want to hook Essbase to a LDAP source or Active Directory you have to do this.  Plus I bet there are a bunch of Essbase installations with a native admin user name and password of Admin/Password or Essbase/Password. &lt;/li&gt;&lt;li&gt;Running Essbase in the foreground is not so easy… Used to be that you would do the install then launch cmd prompt or your shell and type ‘essbase’ to get things rolling.  Now by default there is a service that you start and stop.  The service has been there for a long time it is just that now it the default.  You just have to trust that Essbase is running and use the logs to see messages, like any other piece of enterprise software.  If you really want to start Essbase in the foreground there is a command file for it $HYPERION_HOME/products/Essbase/EssbaseServer/bin/startEssbase.cmd&lt;/li&gt;&lt;li&gt;Speaking of logs they are no longer in the application directory.  They are all in a common directory.  ($HYPERION_HOME/logs) You see most customer don’t just have Essbase any more they now have many products (see point 1) so it is nice that the logs are all in one place.  The old school folks will harp about this when looking for logs on their laptop but it is good for enterprise customers.&lt;/li&gt;&lt;li&gt;Directory structure has changed.  I know all the Essbase’ers had the old structure memorized, but  don’t worry, it is about the same once you get down to the Essbase directory.  $HYPERION_HOME/products/Essbase/EssbaseServer  This is to accommodate the many products in the EPM stack you may install on the same machine and I think a little organization is a good thing.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;So these are some of the key things that hit me this AM when I installed Essbase.  I guess I still thought of Essbase as this cool little OLAP engine when it has grown up to be part an EPM system.  For the old timers who are now freaking out (Mike), don’t worry there is still an essbase.cfg!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-3012143720322693217?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/3012143720322693217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=3012143720322693217' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3012143720322693217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/3012143720322693217'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/08/not-your-fathers-essbase.html' title='Not your fathers Essbase'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-5181425691929880111</id><published>2008-08-06T08:07:00.001-07:00</published><updated>2008-08-06T08:21:11.913-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle XE'/><category scheme='http://www.blogger.com/atom/ns#' term='Report Script'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Oralce Express Edition'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase'/><title type='text'>Essbase Studio First Impressions (Part 1)</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;So last week I started using &lt;a href="http://www.oracle.com/technology/products/bi/essbase/studio.html" target="_blank"&gt;Essbase Studio&lt;/a&gt; and figured I would start to share some of my first impressions.&amp;#160; When I installed Studio I had planned on working on a simple test case so that I could learn the product.&amp;#160; The plan was to build a version of sample basic but because I don’t have a relational schema with the sample basic content I had to do some prep work…&lt;/p&gt;  &lt;p&gt;Step 1: Extract the data from sample basic in some form that resembles a fact table.&lt;/p&gt;  &lt;p&gt;Step 2: Extract the dimension structures.&lt;/p&gt;  &lt;p&gt;Step 3: Load the extracts into a relational database and build a star-schema.&lt;/p&gt;  &lt;p&gt;For step 1 I used report scripts and found them to work really well except for the fact that I had to re-learn them.&amp;#160; Here is the script I ended up with to get my rough fact table:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;{ROWREPEAT}      &lt;br /&gt;{DECIMAL 2}       &lt;br /&gt;{SUPMISSINGROWS}       &lt;br /&gt;{SUPFEED}       &lt;br /&gt;{SUPFORMATS}       &lt;br /&gt;{SUPPAGEHEADING}       &lt;br /&gt;{SUPCOMMAS}       &lt;br /&gt;{TABDELIMIT}       &lt;br /&gt;{MISSINGTEXT &amp;quot;&amp;quot;}       &lt;br /&gt;&amp;lt;SUPSHARE       &lt;br /&gt;&amp;lt;ROW (Year, Product, Market, Scenario)       &lt;br /&gt;&amp;lt;COLUMN (Measures)       &lt;br /&gt;&amp;lt;DIMBOTTOM&amp;#160; Year       &lt;br /&gt;&amp;lt;DIMBOTTOM&amp;#160; Measures       &lt;br /&gt;&amp;lt;DIMBOTTOM&amp;#160; Product       &lt;br /&gt;&amp;lt;DIMBOTTOM&amp;#160; Market       &lt;br /&gt;Actual       &lt;br /&gt;Budget       &lt;br /&gt;!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This gave me a file with all my dimensions in rows and all my measures in columns.&amp;#160; No keys or indexes but good enough for a quick fact table…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/mmilella/SJnBNV75YFI/AAAAAAAAAIE/wSE8PfVeLgA/s1600-h/image%5B65%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="153" alt="image" src="http://lh3.ggpht.com/mmilella/SJm9uX9YYwI/AAAAAAAAAII/HLUGOWhT5_Y/image_thumb%5B53%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On step 2 I totally cheated, for this step Mike gave me some old dimension extracts he had with parent/child columns.&amp;#160; Not sure where he got them but they were perfect so I did not care.&lt;/p&gt;  &lt;p&gt;Step 3 was a step I was hoping to avoid, Studio has a cool new feature for supporting text files as tables.&amp;#160; Not knowing the limitations I spent some time trying to build a “mini schema” with the text files.&amp;#160; Eventually I would find that text files have too many limitations in studio to use them for an entire model.&amp;#160; They would be great for some ancillary data but not the main fact and dimensions.&amp;#160; The main issue is that you cannot join 2 text files together in a “mini schema” like you can join 2 tables.&amp;#160; So I downloaded &lt;a href="http://www.oracle.com/technology/products/database/xe/index.html" target="_blank"&gt;Oracle Express Edition&lt;/a&gt;, installed it and had the files imported in about 30 minutes.&amp;#160; Oracle XE is not supported by Studio and is not meant for any sort of enterprise deployment but it worked for what I needed and is quite a nice entry level database.&lt;/p&gt;  &lt;p&gt;Once I finished my setup up I was ready to work with Studio to build my model.&amp;#160; The first thing to do is to create the data sources. Studio has a nice wizard to walk you through this and it was really easy.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/mmilella/SJm9x9kxj2I/AAAAAAAAAIM/bbxrOPYcxn4/s1600-h/image%5B66%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="340" alt="image" src="http://lh3.ggpht.com/mmilella/SJm90C0VptI/AAAAAAAAAIQ/z6bIEF7IjE8/image_thumb%5B54%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The product supports a number of relational source and some other sources that might be handy like &lt;a href="http://www.oracle.com/technology/products/bi/business-intelligence-foundation.html" target="_blank"&gt;OBI&lt;/a&gt;.&amp;#160; It also lists Essbase as a source but don’t be fooled this, it is only so you can set up a target for your cubes to be deployed to later.&amp;#160; Right away I set up 2 sources one to my XE database and the other to the Essbase server where I was going to deploy my cube.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Once I had my source all set up I was able to create my Mini Schema and define all the relationships between my tables.&amp;#160; This can be done in the wizard for creating the data source, manually after the source is created, or skipped altogether if the joins are already defined in the relational database.&amp;#160; For this there is also a wizard to get you started:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mmilella/SJm92W2eDGI/AAAAAAAAAIU/9AEjo4UBqyU/s1600-h/image%5B67%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="347" alt="image" src="http://lh5.ggpht.com/mmilella/SJm97NX3v0I/AAAAAAAAAIY/cDRXjlqsIpc/image_thumb%5B55%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One you have the Mini Schema created you can begin to define joins, this is as simple as drag and drop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/mmilella/SJm98oOmM_I/AAAAAAAAAIc/owIdLpSr1-M/s1600-h/image%5B68%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="316" alt="image" src="http://lh3.ggpht.com/mmilella/SJm-CV040TI/AAAAAAAAAIg/6AN0mEP8jfs/image_thumb%5B56%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;For each dimension table I needed to create 2 joins.&amp;#160; The first join was to the fact table; and this the normal join I would expect.&amp;#160; The second join was to join my parent column to my child column in each of the dimension tables.&amp;#160; If you have your dimension tables laid out like I did with a parent child relationship this has to be there for hierarchies to work properly later.&amp;#160; I’ll attempt to explain this better…&lt;/p&gt;  &lt;p&gt;Each of my dimension tables have a column for Parent and a column for child and the hierarchy could be ragged.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;ex:&lt;/p&gt;    &lt;table cellspacing="0" cellpadding="2" width="353" border="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="169"&gt;Parent&lt;/td&gt;          &lt;td valign="top" width="182"&gt;Child&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="169"&gt;Market&lt;/td&gt;          &lt;td valign="top" width="182"&gt;East&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="169"&gt;Market&lt;/td&gt;          &lt;td valign="top" width="182"&gt;West&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="169"&gt;East&lt;/td&gt;          &lt;td valign="top" width="182"&gt;New York&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="169"&gt;East&lt;/td&gt;          &lt;td valign="top" width="182"&gt;Florida&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="169"&gt;West&lt;/td&gt;          &lt;td valign="top" width="182"&gt;Utah&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is opposed to having a column for each level in the dimension.&amp;#160; With the parent and child columns joined you will get the following resulting dimension; and this is what you want.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/mmilella/SJm-D8ZSLEI/AAAAAAAAAIk/TFBZb2aTl-g/s1600-h/image%5B70%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="396" alt="image" src="http://lh3.ggpht.com/mmilella/SJm-GY_cVNI/AAAAAAAAAIo/jdPcWTIXhFo/image_thumb%5B58%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Without the join you will get the following hierarchy and your build will fail with duplicate member names later in the process.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mmilella/SJm-KKLrP0I/AAAAAAAAAIs/nMAWce9atmQ/s1600-h/image%5B71%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="396" alt="image" src="http://lh5.ggpht.com/mmilella/SJm-MDXzAyI/AAAAAAAAAIw/LDDJpbri3QA/image_thumb%5B59%5D.png?imgmax=800" width="370" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you get the mini schema just right you are ready to begin creating metadata.&amp;#160; The next part of this post will dive into this topic so stay tuned!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-5181425691929880111?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/5181425691929880111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=5181425691929880111' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5181425691929880111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/5181425691929880111'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/08/essbase-studio-first-impressions-part-1.html' title='Essbase Studio First Impressions (Part 1)'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/mmilella/SJm9uX9YYwI/AAAAAAAAAII/HLUGOWhT5_Y/s72-c/image_thumb%5B53%5D.png?imgmax=800' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-7913654907916013988</id><published>2008-08-04T12:57:00.001-07:00</published><updated>2008-08-04T12:58:57.368-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Administrative Services'/><category scheme='http://www.blogger.com/atom/ns#' term='EAS'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Essbase Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='UAC'/><title type='text'>Running Essbase Clients on Windows Vista</title><content type='html'>&lt;p&gt;I recently installed the stack of Essbase clients on my Windows vista machine and found that some the the products needed some tweaks to work.&amp;#160; The products in question were Essbase Studio (new tool for building cubes) and&amp;#160; the Administrative Services Console.&amp;#160; These products need administrative right and with UAC (user access control) turned on in Essbase Studio they will not run properly.&lt;/p&gt;  &lt;p&gt;Essbase Studio would not launch at all for this I had to create a new shortcut to the EssbaseStudio.exe file and not use the batch file.&amp;#160; This can be found in:&lt;/p&gt;  &lt;p&gt;%Hyperion_Home%\products\Essbase\EssbaseStudio\Console\&lt;/p&gt;  &lt;p&gt;After creating the shortcut go to the compatibility tab and check the box ‘Run this program as an administrator’.&amp;#160; This will cause UAC to prompt you to elevate privileges when you launch the shortcut.&lt;/p&gt;  &lt;p&gt;For Administrative Services Console the shortcut seems to work fine and the client launches but when you try to open a calc, or outline or just about anything nothing happens.&amp;#160; To fix this just modify the existing shortcut and also check the box ‘Run this program as an administrator’ on the compatibility&amp;#160; tab.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here are some screen shots:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mmilella/SJdfJMmJMxI/AAAAAAAAAFM/9EVgzG9yBwM/s1600-h/image%5B9%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="image" src="http://lh6.ggpht.com/mmilella/SJdfJ7AL9hI/AAAAAAAAAFQ/Qi5oBw3ABhs/image_thumb%5B5%5D.png?imgmax=800" width="395" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lh6.ggpht.com/mmilella/SJdfK9h7nOI/AAAAAAAAAFU/ynlXoPUfqSE/s1600-h/image%5B14%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="image" src="http://lh4.ggpht.com/mmilella/SJdfLAm0kPI/AAAAAAAAAFY/6IAlYqn_Enc/image_thumb%5B10%5D.png?imgmax=800" width="395" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/mmilella/SJdfLiW_G8I/AAAAAAAAAFc/JDKe2JQ-f20/s1600-h/image%5B22%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="image" src="http://lh3.ggpht.com/mmilella/SJdfMD-fwoI/AAAAAAAAAFg/tHgaEuFGMus/image_thumb%5B14%5D.png?imgmax=800" width="395" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lh3.ggpht.com/mmilella/SJdfNYwq2UI/AAAAAAAAAFk/maltSFLIgw0/s1600-h/image%5B24%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="480" alt="image" src="http://lh5.ggpht.com/mmilella/SJdfNqeDtcI/AAAAAAAAAFo/-7k4_xyU4TY/image_thumb%5B16%5D.png?imgmax=800" width="395" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here is an example of the UAC prompt you will get each time you run these. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/mmilella/SJdfOBf5JnI/AAAAAAAAAFs/R-zl-xmI77U/s1600-h/image%5B35%5D.png"&gt;&lt;img title="image" style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="image" src="http://lh3.ggpht.com/mmilella/SJdfOAojFrI/AAAAAAAAAFw/R9O6fymLfe8/image_thumb%5B21%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You will just have to deal with this unless you turn UAC off and that is a pretty bad idea…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-7913654907916013988?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/7913654907916013988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=7913654907916013988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7913654907916013988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/7913654907916013988'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/08/running-essbase-clients-on-windows.html' title='Running Essbase Clients on Windows Vista'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/mmilella/SJdfJ7AL9hI/AAAAAAAAAFQ/Qi5oBw3ABhs/s72-c/image_thumb%5B5%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-4070418100818157952</id><published>2008-07-30T10:34:00.001-07:00</published><updated>2008-07-30T10:34:12.450-07:00</updated><title type='text'>Essbase Studio as a Windows Service – Defining the DataFile Directory</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;After working with Essbase Studio as a Windows Service for a couple of days, I discovered that the ability to use text files as a data source was not working properly.&amp;#160; The fix is to add this line to the server.properties file in the Studio server directory to point Studio to the desired location for the text files (&lt;strong&gt;must use double backslashes&lt;/strong&gt;):&lt;/p&gt;  &lt;p&gt;server.datafile.dir=F:\\Hyperion\\products\\Essbase\\EssbaseStudio\\Server\\datafiles&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Thanks go to Aneel on the Essbase product management team for this fix.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-4070418100818157952?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/4070418100818157952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=4070418100818157952' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4070418100818157952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/4070418100818157952'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/07/essbase-studio-as-windows-service_30.html' title='Essbase Studio as a Windows Service – Defining the DataFile Directory'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-8359785438648550201</id><published>2008-07-28T13:15:00.001-07:00</published><updated>2008-07-28T13:15:45.068-07:00</updated><title type='text'>Essbase Studio as a Windows Service</title><content type='html'>&lt;p&gt;Essbase Studio is a new application that is included with the latest release of the Essbase family of products.&amp;#160; The Essbase Studio server is a pure Java application, not deployed to an application server like many of the other server products.&amp;#160; Therefore, it is not possible to make the Essbase Studio server a Windows service without a third-party product.&lt;/p&gt;  &lt;p&gt;As our group uses many “lights out” servers for our project work, we always run our server products as Windows services.&amp;#160; Luckily, we were exposed to an application that takes a Java application and allows you to run it as a Windows service during our last project called JavaService (&lt;a title="http://sourceforge.net/projects/wrapper/" href="http://sourceforge.net/projects/wrapper/"&gt;http://sourceforge.net/projects/wrapper/&lt;/a&gt;).&amp;#160; We used JavaService to run an OBIEE server using OC4J as a Windows Service.&amp;#160; It worked well for our needs.&lt;/p&gt;  &lt;p&gt;The key to using JavaService is knowing the correct parameters to use when defining the Windows service.&amp;#160; Refer to the link above for the documentation.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here are the parameters for OC4J:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;javaservice -install &amp;quot;Oracle BI: OC4J Service&amp;quot; &amp;quot;F:\jdk1.6.0_06\jre\bin\client\jvm.dll&amp;quot; -XX:MaxPermSize=128m -Xmx512m &amp;quot;-Djava.class.path=D:\OracleBI\oc4j_bi\j2ee\home\oc4j.jar&amp;quot; -start oracle.oc4j.loader.boot.BootStrap -description &amp;quot;Oracle BI Oc4J Service&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Here are the parameters for Essbase Studio server:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;javaservice -install &amp;quot;Hyperion Essbase Studio&amp;quot; F:\Hyperion\common\jre\sun\1.5.0\bin\server\jvm.dll -XX:MaxPermSize=128m -Xmx512m -DESS_ES_HOME=F:\Hyperion\products\Essbase\EssbaseStudio\Server\ess_japihome -Djava.class.path=F:\Hyperion\products\Essbase\EssbaseStudio\Server\server.jar -Dpassword=password -Dserver.runInBackground=true -start&amp;#160; com.hyperion.cp.server.ServerMain&amp;#160; -description &amp;quot;Hyperion Essbase Studio Service&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;So, if you are ever in need of running a Java application as a Windows service, we have had good success using JavaService.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-8359785438648550201?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/8359785438648550201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=8359785438648550201' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8359785438648550201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/8359785438648550201'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/07/essbase-studio-as-windows-service.html' title='Essbase Studio as a Windows Service'/><author><name>Mike Larimer</name><uri>http://www.blogger.com/profile/12929354990967513503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8893509811619900128.post-6567438984279652760</id><published>2008-07-23T08:06:00.001-07:00</published><updated>2008-07-23T08:06:08.620-07:00</updated><title type='text'>Welcome Post</title><content type='html'>&lt;p&gt;Welcome to the Essbase Labs blog.&amp;#160; On this blog we will discuss anything and everything Essbase.&amp;#160; The contributors (still recruiting) have many years of experience with Essbase and have implemented 100’s if not 1000’s of applications for customers.&amp;#160; &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8893509811619900128-6567438984279652760?l=essbaselabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://essbaselabs.blogspot.com/feeds/6567438984279652760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8893509811619900128&amp;postID=6567438984279652760' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6567438984279652760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8893509811619900128/posts/default/6567438984279652760'/><link rel='alternate' type='text/html' href='http://essbaselabs.blogspot.com/2008/07/welcome-post.html' title='Welcome Post'/><author><name>Matt Milella</name><uri>http://www.blogger.com/profile/01499059624941319870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_yqfa5Z1-l1g/SRS4ey8mdoI/AAAAAAAAAMM/BZ_DQDMG7mY/S220/n1132105861_30157548_6045%5B1%5Dsm.jpg'/></author><thr:total>1</thr:total></entry></feed>
