Friday, July 19, 2024

Kscope24





 

I returned from Kscope24 in Nashville last night and wanted to shared a few thoughts about the conference.



Sunday Symposiums

The conference before the conference is a great way to get a feel for the trends in the EPM space. There was much talk about AI -- more on that later. The Essbase Symposium covered Federated Partitions and the Redwood interface in Essbase 21.6. If you're a customer with a large (slow) Essbase cube that needs real-time data loading, Oracle wants to work with you to test it out with Federated Partitions. Shoot me an email and I can put you in contact with the right people. Their goal is to get 10 referenceable customers within the next year.


Sessions

The technical sessions are the heart of Kscope. I'm really just coming up to speed on the EPM Cloud side of things so those were valuable to me. I attended a great session by Harsh Dave on the Enterprise Profitability and Cost Management tool. In it I realized that I basically built the homegrown version of this 10 years ago at Sears Holdings. It also cemented my belief that ASO is superior to BSO in just about every way possible. I can't believe how many times people mentioned block creation issues -- the same thing people were talking about 25 years ago when I started with Essbase. If you're serious about Essbase performance you should at least investigate ASO.


Dodeca Customer Panel

On Tuesday we had standing room only at the Dodeca Customer Panel. In it Kroger, LexisNexis, ADT and Principal talked about how they're leveraging Dodeca to run their business. All of them are using our new EPM Cloud connector to get the most of their EPM Cloud investment.


Groovy

There were 17 sessions with Groovy either in the title or the description. I get it, you need it to do your job due to limitations in EPM Cloud but it scares the heck out of me. Let me be clear, the syntax doesn't scare me (but avoid throwing 40 lines of code in a presentation slide, please). The fact that so many companies are writing hundreds, if not thousands of lines of custom Groovy code worries me tremendously. I'm afraid Groovy is the new VBA. The backlash of managers who got burned by having to deal with unmaintainable VBA is still going on to this day.


AI

There was much discussion of AI. It's the buzzword of the day. Very little of it impacts me... yet. I'm sure it will. Similar to the ubiquitous mentions of THE CLOUD a decade ago. Eventually it took hold and I'm sure AI will too. Most of what I saw isn't ready for the real world. 



Wednesday Night Event

We had a great time partying on a the General Jackson Showboat and Broadway. Kscope is a bit like drinking technical content from a firehose and the Wednesday night event is a great way to unwind. I probably ate and drank too much. Oh well...


GO!

If you were there this year, thank-you for helping making Kscope the best tech conference. If you weren't, start figuring out how you can be there next year. Start thinking of ideas for presentations. I'm available as a co-presenter if you need help. Do whatever you need to do to make sure you're in Grapevine for Kscope25.



Wednesday, July 10, 2024

Shared Member Problems in BSO Calcs

Shared members are an amazing feature of Essbase but they seem to always present challenges and many of those are not easy to spot.

A question arose on the Planning Cloud Customer Connect recently where the issue the poster was having was related to a shared member/alternate hierarchy. For some reason, it's never immediately apparent that this is the problem. Several people suggested a number of reasons before it dawned on me that a shared member was the culprit.

In a nutshell, they were requesting the parent of a shared member, expecting to get back the shared member's parent. However, they were getting back the protype's parent.

Suppose the following hierarchy:


If you had a calc script that was iterating through the level 0 members under Diet, and you requested the parent of each, you wouldn't get back the member name Diet. For 100-20 you'd get back 100, for 200-20 you'd get back 200 and for 300-30 you'd get back 300.

This problem shows up when you have a formula with something like the following:

@PARENT("Products")

Note: The @PARENT calculation function for Essbase returns the parent of the current member being calculated in the specified dimension.

The workaround the poster settled on was to add a new alias table and look up based upon that using the @ALIAS() function. It would be nice if there was a function, maybe @SPARENT(), that would return the parent of a shared member.

Update: I'm told that @SPARENT() does exist as an undocumented function. I tested the function and it returns the parent of the first instance of a shared member. If you need the second or greater instance, it seems, you're out of luck. Use at your own risk.


Thursday, June 27, 2024

Kscope24 Preview



In just over two weeks I'll be flying to Nashville for the best tech conference ever! I'm looking forward to catching up with friends and colleagues from around the world. The Denim & Diamonds event on Wednesday night looks like it will be a blast.

The conference will kick off early on Sunday morning with the Essbase Symposium. I'm hopeful that there will be some cool innovations as the Essbase space has been stagnant for a very long time now.

Following the Essbase session will be the Dodeca Symposium. Tim Tow will be sharing our roadmap and his vision for the future of the product. We've been heavily investing in our EPM Cloud Connector and will be showing that off. If you use EPM Cloud, you'll want to stop by and see what we've been up to.

I've been reviewing the session agenda and picked out three sessions that I'm most looking forward to attending. All three are fantastic speakers and respected experts in their field.

Monday July 15, 4:00 pm - 5:00 pm
Joe Aultman -- Converting an Excel Model into Planning -- A New Approach

Tuesday July 16, 4:00 pm - 5:00 pm
Peter Nitschke -- Form Fundamentals: From Zero to Planning Hero

Wednesday July 17, 1:30 pm - 2:30 pm
Jake Turrell -- From Manual to Magical: Transforming Oracle EPM with PowerShell Automation

Be sure to stop by the Applied OLAP booth to say hello. I look forward to meeting many new people this year. Safe travels...

Monday, June 24, 2024

EPM Cloud Planning Smart Lists

The Backstory:

I never had much use for Smart Lists in Essbase. I remember people asking for the functionality since I started working with Essbase in 1998. Here's a post from the Essbase Network 54 Board in 2000 essentially asking for this capability.


They finally got around to adding "Typed Measures" to Essbase somewhere around 2007. Here's a link to Tim Tow blogging about them in 2008.


A Basic Primer on Smart Lists:

Essbase stores numerical data, specifically 8-byte floating point numbers. Essbase is what Planning/PBCS/EPM Cloud Cubes use to store data. As a work-around to store some text, you can create a list of text values, assign them some numerical value and store that in the database. The application layer then interprets those values as text using the Smart List.


Some Use Cases:

Displaying some status for an Account/Entity/Product/etc.

Displaying the hire month for an employee.

You want an indicator for a member but don't want to create an Attribute dimension.

You want to show text in the numeric area of a report.


How to Create a Smart List in EPM Cloud Planning:

Step 1: Create a Smart List

Find the Create and Manage menu and select Smart Lists.


Press the + sign to add a new Smart List.

Now name your Smart List and decide on options. In this case the Label will be Status. Any missing values will show as Active by default.

Click on the Entries tab and edit your list of values. The Name needs to be alphanumeric and contain no spaces but the Label can contain spaces. Once this is complete, save the Smart List.


Step 2: Update The Outline

Navigate to the Create and Manage menu and select Dimensions.
Add a new member in a dimension and change its Data Type to SmartList. Then set the Smart List value. In this case I added a member in the Account dimension called Entity Status and assigned it the Status Smart List.



Before leaving the Dimensions editor, click on the Evaluation Order tab. This setting tells the application how to resolve conflicts if you have Smart Lists in multiple dimensions. You will need to select the dimension in which your Smart List resides and Save this setting. 

Once the dimension change is saved, be sure to refresh your database.

Step 3: Test Your Change in Smart View

Now you can go into Smart View and retrieve some data to see the Smart List working.

When you click on a cell, you'll get a drop-down box allowing you to change the cell's value. You can write this back to the database.

Good luck using Smart Lists! Let me know the creative ways you're using this feature.