Recently, I attended Oracle Groovy partner training with a room full of my interRel friends. Although I’m not the intended audience for this type of training (my nerdy coding days are long gone), I found it to be super useful.
I’ve sat in multiple, past presentations by Oracle where they’ve formally stated “Groovy is the future” and then gave some high level use cases. Those use cases made sense, but did not resonate with me until I took this training. This blog post was written to share some of that partner training wisdom to help explain why Groovy is the future.
What is Groovy?
So first of all, let’s step back. What is Groovy? I’m not going to go into infinite getting started or syntax construct detail here, as there are notable folks in this industry who have already done the legwork: Kyle Goodfriend and Jake Turrell. In a nutshell, Groovy (a.k.a. Apache Groovy) is a coding language based on the Java platform. Version 1.0 was originally released over a decade ago in 2007.
One of the reasons why Groovy has gained popularity over the years is because it can be written very efficiently, not requiring all the elements that other coding languages use. Someone joked in class that instead of requiring 100 lines of code in other languages, Groovy can do it in 10.
The reason why Groovy intersects with Oracle EPM Cloud is because it can be used in conjunction with Calculation Manager business rules to extend the abilities of your application.
6 Things to Know About Groovy Right Now
Before we get started, here are a handful of “at a glance” things to know about Groovy, to give you some broader context:
- Groovy is optional. You do not “need” it to run Oracle EPM Cloud. However, for customers with very specific business requirements that are unable to be met by the standard application constructs, Groovy may be “required.”
- Groovy does not break the rules of Oracle EPM Cloud – it bends the rules. For instance, you can’t expose a password through Oracle EPM Cloud today – and you can’t suddenly do that with Groovy, either. There is an integrity that is intact.
- You write Groovy through Calculation Manager Business Rules today. No graphical interface for you! There’s even a drop-down option that you will need to switch to Groovy to indicate that you’re using it.
- Oracle has a number of online documents related to Groovy. If I understood this detail correctly in class, Oracle’s JavaDocs online documentation, is actually auto-generated (#cool). There is a learning curve in understanding how to use the docs, but it’s worth knowing. The development team in the partner training committed to adding better and more code examples to JavaDocs in the future.
- Groovy comes with the Enterprise EPM Cloud licensing, not Standard. In legacy licensing it would have come with Planning Cloud on the PBCS +1 licensing or higher, and most notably in EPBCS.
- There are both cheap and free resources online to help you learn object-oriented programming (which is the foundation of Groovy)…if you want to go down that nerd path (#nojudgment). However, it’s not required. You could also review other published examples and recycle the code with some effort.
Why should we care about Groovy?
Oracle has been giving the messaging for years that Groovy is strategic and can be used to extend Cloud applications. What exactly does that mean?
Imagine a world where you construct a box. You want that box to be super secure so that not just anyone can get into it. But you don’t want it to be so rigid that you can’t allow the box to be moved, or grow, allow the contents to be changed, or even do things like change its color. With Cloud, security is of the utmost importance. So Oracle can’t compromise the security layer – that’s why you can’t do all of the same things in Cloud when it comes to scripting, as you used to be able to do on-prem. However, Oracle didn’t want it to be so locked down that you can’t get around some of those limitations (but in a safe and non-hackable way). That’s where Groovy comes in.
Groovy is very powerful. Here are some real use case examples of what it can do:
- Based on data entered, validate and/or change the color of the data cells. We did a workshop on this in class, and the color change happened once the user saved the data (although there are a host of actions when this can happen).
- In some specific cases, reduce calculation times from hours to minutes/seconds. One of our customers saw this first hand and it blew their mind.
- Extend ASO cubes to be more like BSO cubes, by generating calc scripts that run on data in the form
- Take data in a form, calculate, parse, or grab a subquery of it, then manipulate the data and return it. We did a workshop on this.
- Generate a calc script on the fly using all members on a form with changed data, execute it, and return the data to the form. We completed a workshop on this.
- Add new members to a dimension, such as employees. Add employee information like full name, address, and phone number, and then validate the syntax of field. We did a workshop on this, too.
- Call allowable REST APIs
What does it take to learn Groovy?
Right, so this part is the challenging message. Unless you are developer with many years of coding experience, and especially with object-oriented programming, Groovy is not easy to learn. Let me repeat that – Groovy is not easy to learn. Those with a Java background will find it easier. Those with no coding background will struggle.
But do you have to know all the ins and outs to be successful with Groovy? No. And that’s what Oracle is banking on. They’ve ramped up their Groovy documentation and are hoping that customers who need it will invest the time to learn only what what they need to be successful with it.
I want this – how do I get Groovy?
Groovy comes standard with Enterprise EPM Cloud licensing. If you are on legacy licensing, it comes with PBCS +1 (at least one module) and EPBCS licensing.
For Oracle EPM Cloud, Groovy is written and run through Calculation Manager business rules. It was recently enhanced to allow calls to a specific set of REST API’s, too, which extends Groovy capabilities even more.
The hardest part for me regarding Groovy is the sales messaging. It wasn’t so long ago that Oracle EPM Cloud was being sold as a “low code” or “no code” solution. And it still is (*low code*). But if you need to extend the capabilities of your application, you will have to learn Groovy. It’s not a wasted skill set, however. Once you go down this path, you can go far with it and do many super interesting and creative things with your Oracle EPM Cloud environment.