I received a number of questions when I attended KScope. A lot of people had a tough time wrapping their head around the fact that using Groovy could actually reduce cost and development time, and significantly decrease the effort to maintain an application. The feedback I get on my lightning lessons has been overwhelmingly positive. The basis of the concept of the use of Groovy making things simpler stems from understanding, using, and becoming confident using collections. I thought I would share some examples, use cases that you all use, and some samples to get those started. If you doubt Groovy can mean simpler and faster, I HOPE this will get you to at least think about coming over to the dark side and provide some perspective that will help.
I would like to create more of these and potentially move my training to be free. Before I can do that I need everybody to watch what I post AND subscribe! If I can generate enough of that, I can create enough add revenue to fun my effort and time. So subscribe, watch, and we will see what happens.
In the mean time, let me know what you think of having videos like this rather than traditional written content. If you would like to learn more about dynamic scripts for data maps, forms, and improving performance with Esssbase scripts by removing serial mode and threading the right way, head over to in2hyperion.podia.com. I have more lightening lessons ready for you to take advantage of!
http://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.png00Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2023-07-28 23:04:512023-07-28 23:04:54Adventures in Groovy – Part 54: Collections Are Your Best Friend
My 20+ years of using Essbase I was told, and had no reason not to believe, only stored numbers. We obviously have lists and with Planning it appears we have text. If you aren’t familiar with how this works, the strings are stored in the Planning repository and the index is stored in Essbase. If you thought the same thing, you were as wrong as I was.
https://in2epbcs.com/wp-content/uploads/2020/07/Blog-Feature-Images-NaN.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2020-07-23 10:07:082020-07-23 10:08:31Adventures in Groovy – Part 52: And You Thought Essbase Only Stored Numbers
Most of us know that there is a button in the calc rule editor that allows us the ability to select a smart list and the smart list entry. It will add something [[smartlist name.smartlist entry]]. If this is new to you, what it does is replace reference the smart list and replaces it with the numeric value that exists in Essbase. The beauty of this is that it is dynamic, so if the smart list is changed in any way, you don’t have to go into your rules and replace change the index values for the smart list entries to match. Guess what, there are more!
https://in2epbcs.com/wp-content/uploads/2020/07/Blog-Feature-Images-Function.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2020-07-10 08:00:002020-07-09 20:08:02Working With Planning Formula Expressions
With hybrid being used more and more there is a need to manage the storage methods of different levels of sparse dimensions. Whether it is a staggered hierarchy or not, getting the storage method from the source can sometimes be challenging. More often times than not, you may want to own it on the Planning side so you can change it at will and not have to go through the typical IT change order process that may take weeks, or even months, to go through the full development cycle.
https://in2epbcs.com/wp-content/uploads/2020/07/Blog-Feature-Images-Metadata.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2020-07-06 07:37:002020-07-04 19:55:25Adventures in Groovy – Part 51: Dynamically Changing Storage Properties When Using Hybrid
I love my Mac and I am getting really close to not needing my Windows VM. I don’t think Smartview for Office 365 is going to be a replacement for the Windows version in my lifetime, but that is the only thing really making me keep my VM current. Read more
Oracle has recently added 2 fantastic new methods that significantly improve our ability to minimize our scripts and reduce the effort to build and maintain them. The first is a method in the EPMScript class called cscParams. The second is in the cube class named executeEssbaseScript. Read more
https://in2epbcs.com/wp-content/uploads/2019/05/Blog-Feature-Images.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2020-03-31 00:02:432020-03-31 00:02:43Adventures in Groovy – Part 50: Incredibly Awesome New Methods
Before I head out to California to do another Groovy workshop, and to celebrate the completion of all the modules, I wanted to celebrate by offering a discount. This week only, get a $150 discount. I have not talked about this in an official post, but it has gotten a ton of great feedback. The discount will be available through Friday. It is time to get excited! I am adding a case study with full code to make your application a real-time what-if application with full calculations and undo operations before the data is committed.
Prospective Audience
The industry is made up of a wide range of backgrounds. We are surrounded by financial resources with an aptitude toward technology. We have IT trained resources that have been exposed to coding. And we have engineers with a strong java background. All of these resources are like minded in that we learn by doing and like to find the answers ourselves. Many will get an example from an industry peer and replicate that example. Sometimes the example isn’t efficient, or it gets used for purposes it was not intended to be used. The java experts might stick with what they know and write groovy as if it was java.
The result is perpetuating scripts that are less than optimal in the community, building scripts that are not flexible causing issues when data forms change, and code that can’t easily be reused. Both of these strategies will get the job done but neither is the good approach.
So, why take Groovy for EPM Cloud Planning when you think you have a strong background in groovy calculations?
So you don’t write a script like this to get the members in the point of view [pause] when it can be written like this.
So you don’t build a dynamic fix statement like this [pause] when it can be written like more efficiently.
So you dynamically reference all run time prompts that can be reused in all your scripts [pause] rather than hard code the references that have to be changed for every rule.
So you know that there are an infinite amount of things that can be done rather than being limited by only what you have seen. When you go through Groovy for EPM Cloud Planning, you will be able to do things like
Update outlines sourced from a rest source in a calculation.
Allow power users to limit what can be entered unless the planner documents a reason for the override in a cell comment
You can even build a what-if process that uses existing architecture and allows results to be viewed and stored virtually before the data is committed to the database with full undo or cancel abiliy
Or, email administrators immediately when a user executed calculation that doesn’t finish successfully
This is just a taste!
Why Is This Different
Other internal initiatives and in class or web learning covers the basics of the Planning API. Understanding the components of Groovy to effectively use the Planning API is missed. Without that knowledge, implementation specialists will never be as effective as they should be. Taking the approach of bypassing learning the Groovy basics isn’t is like learning advanced algebra without knowing how to add and subtract. You will go through the motions, maybe get the right answer, but you will never understand why you are doing what you are doing and your path to the solution will be long and frustrating. You won’t be able advance your knowledge without seeing examples from somebody else and your creative solutions will be minimized to replicating what others have done.
Course Content
This class is designed to be self-paced and will give participants everything they need to know about Groovy to build complex solutions. Everyone will leave with the knowledge of reading and understanding the Java Docs, enabling them to expand their abilities as enhancements are released. The following topics are covered.
Understanding Groovy variables
Understanding Groovy syntax and scripting basics
Understanding Groovy error trapping and logging
Optimizing Essbase calculations by dynamically creating scripts based on edited data
Optimizing data maps and smart pushes
Interacting with run-time prompts to validate user input
Interacting with data forms to validate user input
Building calculations for ASO play types
Creating real time play type data synchronization
Creating real time consolidated application reporting
Module Format
Every module is organized in the same way, so those attending have a consistent and positive experience. They start with an introduction and a review of the module objectives. Every module includes instruction that covers both basic and advanced content in a way that is easy to understand for both the novice and the experienced. The modules include a narrated presentation of the material. The concepts are demonstrated with an application modeled after Best Buy* products, departments, and stores, and I apply the teachings to real-world scenarios. Each module concludes with reiterating the module objectives and gives the attendees exercises to complete to reinforce what was learned. Every module is supported by downloadable copies of every line of code that was discussed, as well as the answers to the learning labs when applicable.
Real-World Learning
When participants complete the modules, they will not only be capable of building end-to-end solutions with Groovy, they will also leave with critical information I have consolidated by using Groovy since its release. There are challenges I share that have taken me months to overcome. These include roadblocks developers encounter, from data precision issues using data grids to optimization techniques when calculating ASO play types.
That’s A Wrap
If you have any questions, you are more than happy to reach out to me directory, post a question, or email me. Have a great week!
Have you ever gotten an error that reads, “Unable to retrieve variable variable name deployed in application?” When you look at the error, the variable name in the error message doesn’t exist and you aren’t trying to retrieve such a variable? Read more
https://in2epbcs.com/wp-content/uploads/2019/12/EPM-Cloud-Planning-EPBCS-Groovy-Variable-Error-FIX.gif117340Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2019-12-22 20:16:532020-01-27 03:06:51Adventures in Groovy – Part 49: Unable To Retrieve Variable Deployed In Application
Data forms that have rules on them run when a user saves a form, regardless of whether the form has edited data. Sometimes this is by design, to let a user run a calculation. But, most of the time, it is an accident. There is no reason to use system resources and have the user wait for a calculation to finish when it doesn’t need to be executed. Read more
https://in2epbcs.com/wp-content/uploads/2019/03/Blog-Feature-Images-Settings.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2019-10-07 11:14:592019-10-07 21:50:18Adventures in Groovy – Part 44: Don’t Waste User Time and System Resources
If you haven’t heard, we now have the ability to execute REST API within a calculation script. Not only does that mean we can interact with other environments and do things in calculations we couldn’t do before, we also have the ability to interact with any provider that has REST. You could pull current prices for products from Amazon. You could see how many open box items there are at area Best Buy stores. You could pull in currency rates. That doesn’t even touch on the things like DM processes, metadata updates, and application refreshes. You can even send emails!
https://in2epbcs.com/wp-content/uploads/2019/07/Blog-Feature-Images-Email.png500500Kyle Goodfriendhttp://in2hyperion.com/wp-content/uploads/2023/09/Full-Logo-1030x206.pngKyle Goodfriend2019-07-26 10:31:042019-07-26 10:31:04Adventures in Groovy – Part 43: Sending Proactive Emails In A Calculation