Showing posts with label Dodeca. Show all posts
Showing posts with label Dodeca. Show all posts

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.



Tuesday, May 7, 2019

Getting Ready for Kscope19



Seattle, here I come!

I'm really excited to be headed to Kscope19 in Seattle next month. I haven't been able to attend the last two years and I have really missed seeing everyone. Right now there are many people working feverishly to finish their presentations in order to bring you the best content available in our industry.




Long Live ASO

I will to be speaking about ASO Tuning and Calculations. If you've been hesitant to try writing ASO calculations, please come to this session. There is a new way of performing ASO calcs in OAC which I will go over. Oh, and I'll be sharing my Top 10 list of things never said by an Essbase developer. Stop by and say hello at 9AM on Wednesday morning in room 609.


Dodeca Rocks!

If you want to find out how Dodeca can help your company, please attend one of our customer sessions. Come hear how Dodeca is making an impact at LexisNexis, Abbott and Kroger. Also, be sure to stop by our booth in the expo hall.


A Journey Across the Kroger Enterprise Essbase Environment from the Grocery Store to the C-Suite Executive 
Come see how Kroger uses Dodeca to deliver Essbase data to 50,000 users!
Monday June 24 11:45 AM - 12:45 PM

Sleepless in Spreadsheets? Essbase…It’s Nice to Meet You!
How does going from ~140 Excel workbooks and ~400 Excel tabs to only 12 Essbase Dodeca views for the whole year sound?
Monday June 24 2:15 PM - 3:15 PM

Streamlining DRM System Change Request Workflows for Oracle EPM Using Dodeca
Hear how LexisNexis cut the time required to process change in their EPM environment in half, while improving quality and ensuring they pass Sarbanes Oxley (SOX) audits.
Tuesday June 25 3:45 PM - 4:45 PM

Trials and Tribulations
Find out how Abbott used Dodeca, a new ASO Essbase cube, and simple SQL to replace two expensive and un-scalable systems with a powerful platform for modeling clinical studies based on changing assumptions and drivers.
Tuesday June 25 3:45 PM - 4:45 PM

Applied OLAP: Dodeca Customer Panel - Dodeca Does It! (Again…and again…and again…)
Listen to testimonials by some of our customers about how Dodeca is changing their organizations for the better.
Tuesday June 25 10:15 AM - 11:15 AM



Sunday, Sunday, Sunday!

I also want to point out our Sunday Dodeca Symposium. This will be held on Sunday afternoon, starting at 1PM in room 609. You will hear about all of the new and exciting features in Dodeca and how they are increasing productivity for our customers.




Applied OLAP Experts Live Talking about things other than our products

Finally, the following sessions are led by technical experts at Applied OLAP with a focus on EPM related technologies.


30-Minute Session: Drill Through Your Essbase and Planning Data with APEX Interactive Reports
Monday June 24 11:00 AM - 11:30 AM

Introduction to Essbase MDX for Reporting
Tuesday June 25 11:45 AM - 12:45 PM

Up & Running with the OAC Essbase REST API
Tuesday June 25 2:15 PM - 3:15 PM

Docker & Essbase: Bring the Cloud to You
Wednesday June 26 10:15 AM - 11:15 AM

Congratulations on Your Shiny New Oracle Analytics Cloud Essbase Account! Now What Do You Do?
Wednesday June 26 9:00 AM - 10:00 AM



Thursday, March 21, 2019

Dodeca Essbase Outline Viewer

Dodeca allows you to easily give users the ability to view Essbase outlines. Watch this video for a quick demo then check out Jason Jones' blog about how to set it up.


Monday, March 11, 2019

Cascade Reporting in Dodeca



Cascade reports are multiple reports that show a standard template from different points of view. This post will show how to create a Dodeca Cascade Report using an MDX script to choose the intersections.





 Cascade reports are multiple reports that show a standard template from a different points of view. This post will show how to create a Dodeca Cascade Report using an MDX script to choose the intersections.



 I started with a template that shows scenarios and a single roll-up account: EBITDA. This account will be automatically zoomed into to create our final report. Using a roll-up will ensure that any account changes are reflected our report without needing future maintenance.
I also added tokens for Periods, Location, Departments and Years. I added an Excel formula using simple subtraction to find the previous year.

I started with a template that shows scenarios and a single roll-up account: EBITDA. This account will be automatically zoomed-in to create our final report. Using a roll-up will ensure that any account changes are reflected in our report without needing future maintenance.

I also added tokens for Periods, Location, Departments and Years. I added an Excel formula using simple subtraction to find the previous year.


 I added two named ranges. One for the Essbase retrieve and another for the cell on which the zoom-in will be performed.

I added two named ranges. One for the Essbase retrieve and another for the cell on which the zoom-in will be performed.


 I hid the header rows and saved the template.

I hid the header rows and saved the template.


 Next I created an Essbase MDX Script called PaloMartCascade.
I used the Crossjoin() function to create my column headers of Periods and Scenarios.
I also used the Crossjoin() function to pull all level zero members under the user selected Department and Location.
Note the use of the NON EMPTY keyword here. Using this will ensure that no sheet will be generated for any missing or irrelevant intersections.

Next I created an Essbase MDX Script called PaloMartCascade.

I used the Crossjoin() function to create my column headers of Periods and Scenarios.

I also used the Crossjoin() function to pull all level zero members under the user selected Department and Location.

Note the use of the NON EMPTY keyword here. Using this will ensure that no sheet will be generated for any missing or irrelevant intersections.


 Next I set my view properties, specifically for CascadeSources.

Next I set my view properties, specifically for CascadeSources.


 In the Cascade Sources dialog I changed the Source Type to EssbaseMdxScript. Note that this feature is only available in version 7.6 and beyond.
I selected the Script I created in the previous step.
I also set the tokens that will be used to generate the Cascade Report. In this case, the MDX report will return Departments in the first column and Locations in the second column. The order that the tokens are defined should match the order in which they are retrieved in the MDX report.

In the Cascade Sources dialog I changed the Source Type to EssbaseMdxScript. Note that this feature is only available in version 7.6.1 and beyond.

I then selected the Script I created in the previous step.

I also set the tokens that will be used to generate the Cascade Report. In this case, the MDX report will return Departments in the first column and Locations in the second column. The order that the tokens are defined should match the order in which they are retrieved in the MDX report.


 Finally, I added a bit of Workbook Scripting.
First I added a property called SheetCount and set the Value to 0. This will track how many sheets get built during the Cascade.

Finally, I added a bit of Workbook Scripting.

First I added a property called SheetCount and set the Value to 0. This will track how many sheets get built during the Cascade.


 Next I added an EventLink that will be triggered AfterCascadeSheetBuild. This will be fired after each individual sheet is built.
The first method in this procedure is AddProperty. This method uses the @PVal() Dodeca function to get the current SheetCount property and increment it.

Next I added an EventLink that will be triggered by the AfterCascadeSheetBuild. This will be fired after each individual sheet is built.

The first method in this procedure is AddProperty. This method uses the @PVal() Dodeca function to get the current SheetCount property and increment it.


 The next method in the OnAfterCascadeSheetBuild Procedure is EssbaseZoomIn. This is the method that will drill in on the EBITDA account on our template. Note how I reference the zoom.cell in the SelectedRange. If we move the cell at some point we won't have to update this Workbook Script.

The next method in the OnAfterCascadeSheetBuild Procedure is EssbaseZoomIn. This is the method that will drill in on the EBITDA account on our template. Note how I reference the zoom.cell in the SelectedRange. If we move the cell at some point we won't have to update this Workbook Script.


 The next procedure I added was OnAfterBuild. This will be used to show a message box to the user. I use the @PVAL() Dodeca function to get the final SheetCount property.

The next procedure I added was OnAfterBuild. This will be used to show a message box to the user. I use the @PVAL() Dodeca function to get the final SheetCount property.


 Finally, I used the AddProperty method to set the SheetCount back to zero. This will ensure that the property does not keep adding to previous cascades if the view is built again.

Then I used the AddProperty method to set the SheetCount back to zero. This will ensure that the property does not keep adding to previous cascades if the view is built again.


 There you have it. Creating Cascade Reports in fast, flexible and powerful in Dodeca. From here you could add a Workbook Script to save the sheets to individual files or send them in emails.

There you have it. Creating Cascade Reports in fast, flexible and powerful in Dodeca. From here you could add a Workbook Script to save the sheets to individual files or send them in emails.

Monday, March 4, 2019

Dodeca Commentary Part Three






This is part three of three in my series on Commentary in Dodeca. In this part I will focus on the double-click event that opens an adhoc view. The action is done completely with workbook scripting.

 First I created an event link to capture a cell being double clicked. The first method I added to the OnCellDoubleClicked procedure was ExitProcedure. I added this method first because I don't always want the double click event to open a view. I only want it to open the view when the double click happens in a valid cell. I defined that valid cell using an Excel formula and the Dodeca @ACell() function.

In this case the procedure will exit if the double-click happens anywhere but the CommentsColumn range. It will also exit if the cell is empty.

First I created an event link to capture a cell being double clicked. The first method I added to the OnCellDoubleClicked procedure was ExitProcedure. I added this method first because I don't always want the double click event to open a view. I only want it to open the view when the double click happens in a valid cell. I defined that valid cell using an Excel formula and the Dodeca @ACell() function.

In this case the procedure will exit if the double-click happens anywhere but the CommentsColumn range. It will also exit if the cell is empty.

 Next I added five methods to set Properties. These properties will correspond to the members in the row that was double-clicked. They will be shared with the adhoc view. Once again I'm using an Excel formula and the @ACell() Dodeca function. In this method, the Departments property is being set.

Next I added five methods to set Properties. These properties will correspond to the members in the row that was double-clicked. They will be shared with the adhoc view. Once again I'm using an Excel formula and the @ACell() Dodeca function. In this method, the Departments property is being set.

 In this method, the Periods property is being set.

In this method, the Periods property is being set.

 In this method, the Years property is being set.

In this method, the Years property is being set.

 In this method, the Measures property is being set.

In this method, the Measures property is being set.

 In this method, the Location property is being set.

In this method, the Location property is being set.

 Finally, I called the OpenView method. I specified an AdhocEssbase View called PaloCommentsAdhoc.

Finally, I called the OpenView method. I specified an AdhocEssbase View called PaloCommentsAdhoc.

 In the PaloCommentsAdhoc Workbook Script I added one Event Link. The AfterBuild event will add the members to the sheet in this example.
Again, the first method I called was ExitProcedure. In this method I check to see if the view was opened from the PaloVarianceComments procedure. I checked the value of the variable using the @PVal Dodeca function. If the view is opened by a user, this procedure will exit and they will be able to use the view as a normal Essbase Adhoc View.

In the PaloCommentsAdhoc Workbook Script I added one Event Link. The AfterBuild event will add the members to the sheet in this example.

Again, the first method I called was ExitProcedure. In this method I check to see if the view was opened from the PaloVarianceComments procedure. I checked the value of the variable using the @PVal Dodeca function. If the view is opened by a user, this procedure will exit and they will be able to use the view as a normal Essbase Adhoc View.

 Next I used the ClearRange method to clear the sheet.

Next I used the ClearRange method to clear the sheet.

 I then used the SetEntry method to populate the sheet with the member names from the properties I created in the previous Workbook Script. In this case I'm setting cells D2:F2 to the Years member.

I then used the SetEntry method to populate the sheet with the member names from the properties I created in the previous Workbook Script. In this case I'm setting cells D2:F2 to the Years member.

 Next I put the Periods value into cells D1:F1.

Next I put the Periods value into cells D1:F1.

 Next I put Actual into cell D3.

Next I put Actual into cell D3.

 I put Budget into cell E3.

I put Budget into cell E3.

 I put Variance into cell F3.

I put Variance into cell F3.

 I put the Location into cell C4.

I put the Location into cell C4.

 I put the Departments member into cell B4.

I put the Departments member into cell B4.

 I put the Measures member into cell A4.

I put the Measures member into cell A4.

 Since this is an adhoc view, I can't create a template with the formats I want. So I used the SetNumberFormat format the numbers the way I wanted.

Since this is an adhoc view, I can't create a template with the formats I want. So I used the SetNumberFormat format the numbers the way I wanted.

 I then set the font to the one I wanted.

I then set the font to the one I wanted.

 Next I set an index color. This method allows you set the a number corresponding to the color you want. You can define the color using R/G/B values in the format shown here.

Next I set an index color. This method allows you set the a number corresponding to the color you want. You can define the color using R/G/B values in the format shown here.

 Next I set a color index using the ColorSelect property. Using an index on your views allows you to update multiple places that color value is used in a single place.

Next I set a color index using the ColorSelect property. Using an index on your views allows you to update multiple places that color value is used in a single place.

 Next I set the font color on the header to be color index 21 which I set in the previous step.

Next I set the font color on the header to be color index 21 which I set in the previous step.

 Next I set the cell background color for the header to be blue.
Next I set the cell background color for the header to be blue.
 The last method I called was EssbaseRetrieve. This will perform a retrieve on the adhoc sheet that was just set up and formatted.

The last method I called was EssbaseRetrieve. This will perform a retrieve on the adhoc sheet that was just set up and formatted.

 We end up with an adhoc sheet that has the members we want and the formatting we want. There are probably several other ways of doing this but I chose the aforementioned methodology in this case.

That concludes this three part series. From entering the comments, to viewing all comments on a single sheet, to doing analysis on a line. Dodeca Does It!

We end up with an adhoc sheet that has the members we want and the formatting we want. There are probably several other ways of doing this but I chose the aforementioned methodology in this case.

That concludes this three part series. From entering the comments, to viewing all comments on a single sheet, to doing analysis on a line. Dodeca Does It!