Want to know The Truth About CPM?

07 August 2010

Stupid programming tricks #1

Introduction

This is going to be one of an occasional, short (can it be true), little techniques that I’ve picked up along the way.  This one isn’t even original, but it works so well I just have to write about it.

I had to do an inventory of calc scripts, rule files, and report scripts.

There were lots of them.  Lots.  More than you could ever imagine.  And, I needed to get a list of all of them quickly.

Oh, I could have used the Most awesome excellent Language ever, and entered:
display calculation all ;

But that would only have given me the calc scripts.  What about reports?  What about rules?

I could have used MaxL again with a different display command, display object, but the syntax for that command confuses my simple brain.

A better way

It occurred to me that those items were all available at the OS level as they are all files with .csc, .rul, and rep extensions.

How could I quickly, painlessly, consistently, etc., etc., get this information into a text file so I could hoover it into SQL or Excel to report on?

Why good old DOS, of course.  Yes, I am old enough to remember DOS 1.0, and DOS-compatible PCs (which were not the same as PC compatible), and CPM, and when dinosaurs walked the earth with me and my good buddy down at the quarry, Fredrick Joseph Flintstone.  And I like DOS, heaven help me.  Succinct, powerful-ish, and cryptic.  What’s a hacker not to like?

And guess, what, DOS has this nifty little recursion function called FOR.  If you care to read all about it, type FOR /? at the command prompt on your PC or check out this nice blog series that I wish I had found before I figured this out.

What’s it look like?

So simple it hurts:

for /r %d in (*.msh) do echo %d >> c:\temp\MaxLOutput.txt

Enter that from whatever directory you care to start in and FOR /R will do the rest for every single MaxL script that’s in the descendants of the launching directory.

And here’s the output (I launched it from c:\tempdir):
C:\Tempdir\ODTUG_2009\CatchThatError.msh
C:\Tempdir\ODTUG_2009\connect.msh
C:\Tempdir\ODTUG_2009\disconnect.msh
C:\Tempdir\ODTUG_2009\encryptionpost.msh
C:\Tempdir\ODTUG_2009\HelloMurphy.msh
C:\Tempdir\ODTUG_2009\local.msh
C:\Tempdir\ODTUG_2009\nested.msh
C:\Tempdir\ODTUG_2009\NoError.msh
C:\Tempdir\ODTUG_2009\parameters.msh
C:\Tempdir\ODTUG_2009\parameters_environment.msh
C:\Tempdir\ODTUG_2009\properties.msh
C:\Tempdir\ODTUG_2009\shell.msh
C:\Tempdir\ODTUG_2009\SpoolMe.msh
C:\Tempdir\ODTUG_2009\tobeencrypted.msh
C:\Tempdir\ODTUG_2009\tobeencrypted.mshs
C:\Tempdir\ODTUG_2009\9.2 metaread\Copy of
C:\Tempdir\ODTUG_2009\9.2 metaread\Metaread\deprecated\filename.msh
C:\Tempdir\ODTUG_2009\deprecated\Copy of sample3.msh
C:\Tempdir\ODTUG_2009\deprecated\sample3.msh
C:\Tempdir\ODTUG_2009\deprecated\sample3a.msh
C:\Tempdir\ODTUG_2009\deprecated\sample4.msh
C:\Tempdir\ODTUG_2009\deprecated\sample5.msh
C:\Tempdir\ODTUG_2009\deprecated\sample6.msh
C:\Tempdir\ODTUG_2009\deprecated\sample3.mshs
C:\Tempdir\ODTUG_2009\deprecated\sample3a.mshs
C:\Tempdir\ODTUG_2009\deprecated\sample4.mshs
C:\Tempdir\ODTUG_2009\ODTUG_2009\call_metaread_add_filters.msh
C:\Tempdir\ODTUG_2009\ODTUG_2009\call_metaread_add_filters.mshs
C:\Tempdir\ODTUG_2009\ODTUG_2009\Metaread_Add_Filters.msh
C:\Tempdir\ODTUG_2009\ODTUG_2009\Write_Filters_To_Disc.msh
C:\Tempdir\ODTUG_2009\ODTUG_2009\write_filters_to_disc.mshs

How about calcs?

for /r %d in (*.csc) do echo %d >> c:\temp\CalcOutput.txt

And here’s the output (I launched it from c:\tempdir):
C:\Tempdir\NOTTELLING\NOTTELLING\XPort.csc
C:\Tempdir\NOTTELLING\NOTTELLING\Bad order FinPlan4_GLTest\ActCmbnd.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.ActCmbnd.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.allocav2.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.AllocAvg2.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.FillQBR.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.QBRTEST2.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\GL\GL.X.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\PGM\AdvaLiqn.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\PGM\OPSCopy.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\PGM\PopActE.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\PGM\ProgRecp.csc
C:\Tempdir\NOTTELLING\NOTTELLING\NOTTELLING Backup\NOTTELLING Backup\PGM\RecvBal.csc
C:\Tempdir\NOTTELLING\NOTTELLING\FinPlan4\ActCalc.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\$calc.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\$test.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\71937158.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\AdminOH.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\AggCMth.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\BaseAct.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\BB2YTD.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\BR2.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\CComp.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\ClrAdj.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Comp.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Fringe.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Pipeline.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\RevCycle.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Revenue.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Seed7699.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\SeedCalc.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Taxes.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\Transfer.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\WSGrant.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\YTD2BB.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\Adj_calcs\YTDAct.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\TUSMFRBS_PandL\$calc.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\TUSMFRBS_PandL\$test.csc
C:\Tempdir\REDACTED\Phase I\Adjustment\TUSMFRBS_PandL\$test2.csc

Conculsion

And that’s it – this isn’t Oracle EPM based – it can be for any kind of file.

Not exactly hacking Essbase, but it’s a little out of the ordinary and a *huge* timesaver if you’re trying to get lists fast.

13 July 2010

Mortal man can do it

Install 11.1.2 that is.

Introduction

This is thankfully going to be a relatively short one, both for you and for me, as I’m busy working on other (hopefully) cool things to blog about.  Dodeca is coming back as are a series of Planning posts.

 

This is not a post on how to install EPM 11.1.2 as John Goodwin (and others) took care of that.  Nor am I going to review all of the good things 11.1.2 brings to Essbase geeks, as it’s been more than adequately covered here, and here, and here, and goodness knows how many other places.  Besides, you all went to ODTUG Kaleidoscope 2010 and know all of this already.

 

What follows is just my general impression of the 11.1.2 install from a non-infrastructure consultant’s perspective and a few tips and tricks I picked up along the way.

The last one just about killed me

I had sort of a love/hate relationship with my just-on-my-laptop VM 11.1.1.3 installation.  I don’t know if I was having the mental block of the ages, was plain stupid, or just unlucky, but that install was hellacious, especially getting EPMA to work.  I probably reinstalled that product eight or nine times.  If VM Ware didn’t have a snapshot feature for me to restore to a clean pre-install view of the VM, I’d likely still be installing 11.1.1.3.

Heavy Lifting

Well, the 11.1.2 install is still big.  The install footprint of 32-bit Foundation, Essbase, Planning, ERPi, Financial Data Quality Management, Financial Reports, and Hyperion Profitability and Cost Management is 8.37 gigabytes.  All I can say is downloading the install files on my meager DSL line took a looooong time.

 

But we like big in America, right?  (Some day I will bore you all with my housewares-are-built-for-aircraft-carries-but-alas-I-live-in-a-submarine analogy about old urban houses, but not today.  Lucky you.)  So big is in, big is bold, and as far as Oracle EPM is concerned, big is here to stay.

 

Memory requirements are big as well.  11.1.2 uses significantly more than 11.1.1.3.  Where the four gigabytes available to Windows 2003 Standard Edition 32 bit was more than adequate for 11.1.1.3, it isn’t really for 11.1.2.  It’s time to move on up to Enterprise Edition, or in my case, a 64 bit version of Windows 2008 Standard Edition.  I didn’t use the 64 bit OS for this first install, but for all of you consultants (no one puts everything onto a single box in the real world, right?) out there with 32 bit machines – ask not for whom the bell tolls, it tolls for your x86 box.

My “full stack” on 11.1.1.3

11.1.1.3 free memory

My “full stack” on 11.1.2

11.1.2 free memory

Quite a difference there.  Oh well, 64 bit is the future anyway.

Didn’t hurt a bit

Keeping memory considerations in mind, here’s the really important thing – after the tedium of expanding and combining the 11.1.2 installation files into a single directory, the installation was painless with the exception of two issues.

One tiny snag

After installation was complete, I ran the EPM Configurator.  It all worked (slowly, but hey, this is a VM) without a hitch, with the exception of one thing – ERPi.  My VM is Windows Server 2008 SP2 and SQL Server 2008.  The configurator threw an error when it got to ERPi as that only works with Oracle’s own database.  (What, they make something other than the world’s most awesome EPM stack?  Apparently, there’s this product called Oracle 11g.  Who knew?)  That is a change from 11.1.1.3 – ERPi worked just fine with SQL Server 2005.  So, for the time being at least, ERPi isn’t on this box.  Maybe later.

One other snag, not so tiny

If this one is in the documentation, I couldn’t find it.  It’s valid at least for SQL Server installations and if you want EPMA to run, it will behoove you to read on. 

 

I used one great big single database for everything – remember what I wrote about real world considerations not exactly entering into my install?  This is just for testing/education purposes so please don’t use my example as the way to properly install Oracle EPM 11.1.2.

 

Having stated that caveat, when I tried to run EPMA, I got a lulu of an Event Viewer error message, telling me that my SQL Server 2008 database needed to be in ALLOW_SNAPSHOT_ISOLATION and READ_COMMITTED_SNAPSHOT mode.

 

I have read around and am slightly alarmed by the comments here and here about what happens when these settings are turned on.  However, my actual usage will be pretty light and if things get too slow, I’ll reevaluate the settings.  This is probably not a great approach in your real world settings.  I will also caution that I am fairly SQL-stupid, so this may not be a big deal.

 

Using the all-in-one database HYP_EPM, here’s the SQL query I had to run to apply the settings:

ALTER DATABASE HYP_EPM

SET ALLOW_SNAPSHOT_ISOLATION ON

 

ALTER DATABASE HYP_EPM

SET READ_COMMITTED_SNAPSHOT ON

 

VM Ware came to the rescue again, as I had oh-so-cleverly created a VM Snapshot of the bare OS.  Having reverted to that, recreating the HYP_EPM database, and then running the above query, the install (and EPMA) worked, so I’m keeping my fingers crossed on this setting not having any really bad impact. 

 

You can read people who actually have a clue about installations discussing this very subject in this thread on OTN, so it wasn’t just happenstance that I decided to go down this route.

Errata

The word “Hyperion” is almost gone.  It’s not in the directory path.  It’s not in Windows’ Start Menu.  It is however, amusingly the name of the configurator utility. 

Eh, I always preferred Arbor Software anyway, and yes, ARBORPATH lives.

Look Ma, no cavities!

As this is a testing environment only (my VM, that is), I had no fears about installing all of the components into a single SQL Server database.  And that’s it – it installed and configured on the first second go round.  Who’d a thunk it?  Maybe you all had unalloyed success with 11.1.1.3, but that wasn’t my experience. 

Service startup

11.1.1.3 had a service startup script, sort of, that never really worked; 11.1.2 has one and it works.  No more trying different start orders, or reading the official order and knowing that it doesn’t really work for you, or casting the chicken bones to figure out how to get the services running.  Someone at Oracle heard the huddled masses yearning to breathe free and cut The Gordian Knot of service startup with this service start script.  (I hope there’s some sort of award for mixing metaphors, ‘cause I think I have at least a shot at honorable mention with that last sentence.) 

 

Why do I get these warm and fuzzy feelings about Oracle?  They just get it in a way Hyperion never did.  What’s really weird is that so many of the players are the same – what on earth was holding them back?  No matter, Oracle has set them free and we all benefit from it.

Conclusion

  • Oracle EPM 11.1.2 is resource intensive.  Now would be a good time for us my-world-is-on-my-laptop tinkerers to go 64 bit.  I am downloading the 64 bit binaries as I type.
  • At least on SQL Server installations, the EPMA relational data store needs ALLOW_SNAPSHOT_ISOLATION and READ_COMMITTED_SNAPSHOT set to ON.
  • A plain Jane install on a single Windows 2008 Server box can be accomplished by mere mortals, like Yr. Obdt. Srvnt.  I have no idea what it’s like to install in a distributed environment. 

 

Once installed, you’re off to the cool new stuff in Planning and especially those ASO allocations through Calc Manager and MaxL.

 

Happy Essbase hacking until next time.


05 July 2010

What I learned in ODTUG Kaleidoscope Summer Camp


Oh, you missed a good one

I think I’ve finally recovered from 2010’s Kaleidoscope conference.  That is one fun conference. 

Why weren’t you there?  Oh, you were?  How does it feel to be, oh, 30% smarter because of 4.5 days of conference?  Pretty awesome for what is a small amount of money and time.  You know where you should direct your effort and career for at least the next year?  Yup, it’s hard to believe the content is all done by volunteers.

Let’s review it by days.

Saturday

Volunteer time at the Ronald H. Brown Middle School.  I find it revealing that ODTUG sponsors a volunteer activity.  Think about who your fellow ODTUGers (ODTUGians?  ODTUGanese?  ODTUGs?  You choose, and please let me know.) are – they’re people who freely share their knowledge, expertise, and experience so that others may benefit.  This philosophy of giving carries beyond the boundaries of Oracle. 

I thought I would be “clever” and do the inside library work instead of painting outside.  Note to all – when it’s stiflingly hot, fresh air might be better than stale air.   Next time…

Sunday

Did you go to the Symposium on Sunday?  The one with all of the cool stuff that I’m not allowed to blog about?  Yeah, me too.  For the rest of you – what, are you crazy?  Show up next year.  You too will then have The Knowledge.

I will write three things that (hopefully) won’t get me in trouble.
1) Essbase is going to be at the heart of a *lot* of Oracle products.  It’s kind of scary to see how valuable good old Essbase is and will be.  Think that hoary old film, Red Dawn, but instead of knocking off foreign invaders and yelling, “Wolverines”, yell “Essbase!”  The name of this company ain’t Hyperion Solutions, that’s for sure.
2) In the not too distant future, I will actually want to drop the Classic add-in.
3) Essbase Fan, Toufic is looking for you.  He’s not so crazy about ScaryView.

And one thing that I won’t get into trouble for writing – Oracle EPM 11.1.2 is here, and it’s got lots of new features and functions.  Check it out – it’s coming to an installation near you.  The Planning features and ASO procedural calculations alone ought to occupy my spare time for the next six months or so.

Monday

Sessions

There was sort of a theme to Monday – can you spot it?

ASO – Glenn Schwartzberg’s Practical Coding Examples.  Gary Crisci, president of the ODTUG Hyperion SIG, was unable to attend, so I drove whilst Glenn talked.  Gary would have been better but Glenn ran over anyway.  Hmm, maybe Gary would have cracked the whip and kept Glenn on schedule.  :)  Regardless, it was an honor to click for Glenn.

ASO – Gary Crisci’s Essbase ASO:  The Best Thing Since Sliced Data – I believe this was given by an Oracle employee, Dave Collins.  If I have that wrong, someone please drop me a line.  It was an excellent presentation.

ASO – Edward Roske gave his always popular ASO Tuning and Optimization presentation.  I didn’t attend this, but instead attended a Leveraging Essbase Data Types class given by Mike Nader.

ASO – Buland Chowdhury of Orcale gave a presentation on implementing efficient ASO databases.  I have no idea where I was – my notes (and brain) are blank.  I think I had ASO spilling out of my ears because my brain was full so I went back to my room to obsessively rehearse my presentation.  Fun times, fun times.

Midnight (but not actually at midnight) Monday Madness

You know, for someone who has never actually watched an entire episode of Jeopardy, I think I did okay on the answers (I submitted 40+, saw five that I recognized) and being a judge was fun.  Someone (Glenn?) made the comment I was a tough judge.  Happily for the contestants, I didn’t wear a funny looking wig and robe and get to say things like “You shall be taken to the place from whence you came, and from there be taken…” 

Tuesday

A slightly more diverse day than Monday (hey, you have your interests, I have mine).  I checked out the ever-entertaining Tim Tow with his Dodeca presentation (Why doesn’t everyone just use this product?  It’s so obviously the best of the best.  Yes, there are many questions in life I never get satisfactory answers to.) 

My long time friend and colleague Dave Farnsworth gave a presentation on hacking Planning tables.  There have been unofficial and Hyperion-only guides (I saw one, once) that explain the schemas, but little direct documentation of what the tables do, and how to pull information you can actually use out of them.  Go check out his whitepaper if you didn’t download it during the conference.  For those of us who use Planning, this alone was worth the price of conference admission.

I attended two of the training courses – both Studio related.  I’ve had training on Studio before, so I was hoping these would be a quick refresher.  Unfortunately, there was so much material to cover that the training went at double the legal speed limit, and if there was a problem you (that would be me, actually) were lost.  I sat and watched so it wasn’t completely lost on me.

Wednesday

I didn’t attend the ODI 11g presentation so I could be the ambassador to Matthew Holt’s Dodeca presentation.  His was a really interesting session because although it focused on Dodeca the lessons learnt that he related were germane to any technology center of excellence.

Then ASO again, with Glenn Schwartzberg, this time Studio tips and tricks.  He was excellent as always.

I went to a really interesting MDX presentation, but it was sort of counter intuitive.  Dan Pressman introduced a methodology for analyzing the ASO cache so that MDX is not used, or at least is used as little as possible.  I’m sure one day I’ll be smart enough to understand it.  I hope.  :)

HAL is dead, DIM is dying, ODI is rudely healthy

Finally, my ODI presentation with Markus Shipley.  I have to say that I work myself up into way too much of a lather over this stuff.  This presentation was recorded, and I have the recording on my laptop; I am listening to it as I type.  I have figured out who I sound like.  William Holden?  I wish.  Cary Grant?  It seems incredibly unlikely.  Jimmy Stewart?  Getting closer.  Ira Glass of NPR’s This American Life?  I sound and look like him.  Ouch.

ODTUG will soon post this and other presentations for you all to hear.  Enjoy the moments when I say things like “Right here” and “As you can see”.  Were you in the room, such comments might even make sense as you would be able to see my ever dancing hands.  The lack of this visual aid will add an air of mystery to the presentation when webcast.  I think it’s good to have intrigue in one’s daily humdrum life.

I then attended my co-presenter, Markus Shipley’s, Calc Manager session.  When I’ve used Calc Manager in the past I’ve just copied and pasted in Essbase calc script code.  Next time I’ll actually give the graphical approach a try.

Finally, I saw my ex-colleague Tracy McMullen do her always outstanding best with Charles Chew re figuring out if EAS, EIS, or Studio is the right choice.  It was an interesting exercise in product feature comparison.

Just a side note about two of Wednesday’s sessions – both the Dodeca and the EAS, EIS, or Studio presentations were ostensibly about their specific technologies.  Not entirely true.  Both presentations were really a lot more valuable than that because they addressed wider ideas such as what it takes to successfully set up a technology center of excellence and how does a company go through the technology selection process.  I’m not sure how we (that would be ODTUG) should highlight presentations that have this kind of scope but this is the sort of stuff that management consulting companies charge big bucks for.  We (that would be the Kaleidoscope attendees) got it for free along with the tool specific content.  That’s extraordinary value for money and another reason why Kaleidoscope is so awesome.

Thursday

Awww, I was getting sad, the conference was rolling to an end. 

Matt Milella kicked off with 11.1.2’s SmartView Extensions.  Oracle put a lot of work into SmartView to make it less painful in Excel.  Just keep going guys till you reach the nirvana Toufic demoed on Sunday.  I’m waiting with fingers crossed.

I then didn’t leave the room (so convenient) and sat in on Robert Gideon’s SmartView VBA automation session.  Gads, I love sessions with code samples.  I am sad, but there it is.

And the last was like the first, Glenn again, with his Load Rules Advanced To Basic session.  I was his ambassador (it’s just a chance to mock the person you’re introducing, and you get these cool pins for your conference badge) and led the room in a round of applause of appreciation.  Glenn has given so much to ODTUG, even though he’s not on any board.  I am really looking forward to working with him this year on the Hyperion SIG board.

The End, until next year

And that was it.  All that hard work (okay, all I did was help review presentations, but I have a little sweat equity) by ODTUG, and Your Conference Connection really paid off.  I have been and remain incredibly impressed by the time, energy, and enthusiasm everyone brought to the conference.  It showed in the high caliber of the presentations, the roadmaps from Oracle, the training sessions, and the buzz amongst the attendees.  If you can’t tell, I loved it.

Remember, except for YCC who run the business side of the conference, everyone who participates in Kaleidoscope does so voluntarily.  The ODTUG board members and the Kaleidoscope Conference Co-Chairs (hello, Edward, 2011 Conference Supremo) spent countless hours making sure that this conference delivers value.  They have my heartfelt thanks for doing such a great job.  I can’t wait till next year.  You will be there in Long Beach, won’t you?

24 June 2010

Oracle Usability Labs at ODTUG Kaleidoscope

Are you a developer?  Er, likely, else you wouldn’t be reading this blog.

Do you use “Hyperion” products?  Hyperion = the Oracle Enterprise Performance Management stack of Essbase, HFM, Planning, DRM, ODI, EPMA, FDM, SmartView, OBIEE and any number of acronyms I can’t remember.

Would you like to influence the way Oracle develops the EPM stack?  I hope so if you live in them like I do.

Okay, enough leading questions because ODTUG Kaleidoscope comes through again with an opportunity to tell Oracle directly how you like their IDE’s user interface.  And it isn’t just Hyperion or Essbase Oracle is interested in, there are many other tools (what, they sell something other than Essbase?) like: 
  • APEX
  • Essbase
  • Forms
  • Hyperion
  • Java
  • PL/SQL / SQL
  • SOA / BPEL

And do you use IDEs such as:
  • Adobe Flash 
  • Adobe Flex 
  • Borland JBuilder 
  • Eclipse 
  • Essbase 
  • Hyperion 
  • IBM Rational Application Developer 
  • IBM WebSphere 
  • JetBrains IntelliJ IDEA 
  • Microsoft Visual Basic 
  • Microsoft Visual Studio .Net 
  • Oracle Application Express 
  • Oracle Forms/Reports 
  • Oracle JDeveloper/ADF 
  • Oracle NetBeans 
  • Oracle SQL Developer 

If you answer "yes" to any of the above, Oracle is looking for your opinion.

I’m not sure who is the more awesome – ODTUG for getting this into Kaleidoscope or Oracle for actually asking what developers want.  Check it all out here, and tell them that Cameron the Essbase hacker sent you.

See you in DC!

28 May 2010

The Mighty Listbox and Treeview -- part 1

The best member selectors you’ve ever seen

What, he’s still going on about this?  How much can anyone write about member selectors? 

Oh sure, Dodeca’s in-built ad-hoc member selectors are the best.  And yes, you have to admit, may it ever be so reluctantly, dynamically driving comboboxes through delimited lists, API queries, report scripts, and a merger of SQL and Essbase dimensions is pretty intriguing, but more?

Oh yes, more, because those other two posts were but mere preludes to two coolest member selectors:  listboxes and treeviews.

As always, remember, these dimension pickers/member selectors/call them what you will are all code free, unless of course you want to wrap code around it.  Try doing that in Classic, i.e., the Classic Legacy Old-Fashioned Same-As-It-Ever-Was Excel add-in, aka CLOFSAUEWE, aka Clof-Saw-You, or even in Oracle’s latest and greatest client tool, SmartView.

What do they look like?

The path to member selector nirvana is the same as the ‘umble ComoboBox - via the Dodeca toolbar.  Just click on the dimension control.  Note that Dodeca shows a default “Select a market” message as nothing has been selected yet.  Of course, this message is configurable, as we’ll see shortly.

Starting off simple with Listboxes

Remember, the UI to a listbox is, well, a list within a box.  And that isn’t terribly exciting.  But don’t forget that all of those ultra cool ways of populating a combobox apply to Listboxes as well.  Beauty is only skin deep, character goes to the bone.

Names, Aliases, and Alias Tables

If the dimension has both member names and aliases, these buttons flip between the two.  Also, if the Essbase database has multiple alias tables, the table can be selected on the fly.

Top level TreeView

This is where Dodeca’s member selectors get interesting.  An Essbase dimension of any size is almost always (dare I say always) a hierarchy (For those even more pedantic than I, all dimensions are hierarchical by definition, I mean a more than a two generation hierarchy).  Dodeca does an excellent job of displaying them in an easy to navigate TreeView control.

And here is the Market dimension from My Very Favorite Essbase Database In The Whole Wide World, Sample.Basic, aka MVFEDITWWWSB, also aka meph-edit-wysb, in all of its simple glory. 

TreeView’s buttons

Big deal you say – a treeview is a treeview is a treeview.

But as always with Dodoca, even the out of the box controls have high functionality.  See all those buttons at the bottom of the treeview?  Lots and lots of functionality, all there for the taking.

Expand All/Collapse All

Just like the button text states, these modal buttons expand to all descendants/collapse to one generation above whatever is selected, e.g., East or Market collapses to Market, New York collapses to East, West, South, and Central.

Expand Branch/Collapse Branch

Same as Expand All/Collapse All, but limited to a single branch of the hierarchy.

Show Selection

Expands the TreeView to the selected member if the hierarchy has been collapsed.

Cool little doohickey that doesn’t have a name/I shall call it the Member Options control

Did you catch that little downward pointing arrowhead all the way to the right of the Show Selection button?

Member Tips

With this on, hover the mouse over a member name and you see all kinds of cool information about a member including member name, alias, its shared status, and any UDAs that apply to the member.

Member Information

One of the many things I love about Dodeca are the little surprise-and-delight features.  Member Info you say…

Ta-da, more than you ever thought you could possibly know about the member Oregon:

Find

Not much use in Sample.Basic’s Market dimension, but think about your really, really big Product dimension in that mighty ASO reporting cube.  Nice to have, eh?

Tabbed dimension selector

If you have more than one treeview/listbox selector open, you can tab switch between the two.

Pin or Auto Hide

As with seemingly everything in Dodeca, there are options.

Want the member selector to stay firmly in view?  Pin it up.  Want it to slide away to give you more space? Select Auto Hide.

When the member selector is hidden, simply hover over the dimension name and it will reappear.
Awesome.

How do I populate them?

You’ve had the sizzle, now let’s take a bite of the steak.  Vegetarians/vegans can instead have a mouthful of tofu.  I prefer the ultrafirm Japanese tofu – everything else is a bit too slimy for my taste.  I digress, again.

See the previous post on The Humble ComboBox for an definition of a Selector and Selector List.  This is the beauty of a continuing blog series – they build upon each other.

Selector Lists

EssbaseDelimitedString

Before Dodeca can display a selector, it must first have a selector list.  We’ll start with the simplest – a delimited string.  Remember how I wrote “no code required”?  Here it is.

Okay, there is a little bit of code – I need to type the word “Market” into the DelimtedString property

Edit the View property sheet and change the selector.

And we see the default dimension.  Not one line of code – one word of code.  Powerful enough for you yet?

Hmm, no description and guess what, this report is only valid for the West, and the dimension picker ought to open when the View is selected.

AutoOpen

Default message and It’s The Law of the West


And here is the View with a limited Market hierarchy and a default message just for the West.  By the way, the Market TreeView pops up automatically.  Your choice (as always with Dodeca), I just decided to set it up this way.

I’m going to go on again about the coolness of this, just in case you weren’t paying attention.  Here’s the key thing:
There.
Is.
No.
Code.
Required.

Finally a phoneticism (is that a word?) that sounds half-way decent – TINCR.  Remember that TINCRing with Dodeca = awesomeness.

Think about how much code you’d need to do this in Classic or SmartView.  Think long and hard.  Funny, all I can think about is Dodeca.  That and actually having some free time because all of the code  I don’t have to write.

This post’s conclusion

And that’s where I’m going to stop this post because:
1)    What, this isn’t long enough for you?
2)    The next subject of combining Essbase, Dodeca metadata, and SQL to build report and user specifc METAREAD filters without ever touching Essbase.sec ,gets a little, mind, just a little, involved and I want to keep you focused (Mum, Glenn, and one or two other sad individuals whom I’m not related to).
3)    It’s so freaking cool, it really deserves its own topic.  Maybe it’ll be a little shorter.  Maybe.
A plea for feedback
I’m not getting a lot of comments on these Dodeca posts.  Is there interest in this?  I’m enjoying myself with this.  Anyone else?  You can always reach me via LinkedIn if the comments section isn’t your style.

18 May 2010

Kalidoscope 2010 Symposium Agenda is here

And it’s awesome

Did you expect anything else?  I didn’t.  I have ranted and raved before about how big ol’ Oracle lets down its hair and opens a dialog up with us, the people who actually use this stuff.

Marketing drivel?  Nope.

Deep product knowledge?  This is Kaleidoscope, remember?  So, yes.  Lots of content, like future direction.  And interaction with the audience.  And taking notes (that would be Oracle taking notes, btw, not yr. obdnt. srvnt.  Did I not use the word "awesome"?)  And meeting and greeting your fellow EPM geeks.  What’s not to like? 

The interaction last year with the SmartView team was spirited (ahem) and useful for Oracle (I think, they have a great OTN board post last year's conference) and us, the audience.  I’m willing to bet Toufic and his team are up for more of the same.  I hope that the other product managers are as well.

If you want, you can attend just Sunday’s session.  It’s worth it.  Really.  We lucky few wll be there the whole week.  See you there.  I can hardly wait.

The Agenda

ODTUG Conference - Sunday Symposium - Sunday June 27th




Time
Facilitator
Topic
Description
8:00 - 8:15
Ed Roske/ Tim Tow
Welcome/Housekeeping

8:15 - 9:15
Robert Gersten/
Al
Marciante
EPM Strategy and Interactive Keynote

9:15 - 10:15
Toufic Wakim/          
Al
Marciante
New User Interaction Paradigms for EPM
Interactive discussion on adapting the EPM User Interfaces to enhance user experience.  Topics include use of ADF for User Experience, Collaborative features in webcenter, and integrated workflow/task management that spans EPM applications, BI and operational systems.
10:15 - 10:30
All
Break

10:30 - 11:15
Janette
Hollar
Financial Close Solutions Futures
Discussion topics include Hyperion Financial Management, Financial Close Manager, Disclosure Management and CFO Dashboard.
11:15 - 12:00
Toufic \Wakim
Smart View Discussion
This interactive session will discuss Smart View futures, adoption by Essbase customers, plug in architecture extensibility, etc. 
12:00 - 1:00
All
Lunch

1:00 - 2:00
Shankar Viswanathan
Planning and Budgeting Futures
This session will discuss new planning applications and core planning work, including Project Planning, Forecasting, and adapting industry solutions.
2:00 - 2:15
All
Break

2:15 - 3:15
Alan Lee
Essbase
Interactive session on Essbase futures
3:15 - 4:00
Alan Lee
OBIEE
Focus on Answers, BI Publisher and post-Negril strategies.