Proactive insights, news and tips from Oracle Hyperion EPM and BI Support. Learn Oracle from Oracle.

Using Groovy to Customize Business Rules in Planning Cloud

Tanya Heise
Sr Principal Technical Support Engineer

What is Groovy?

Groovy is an agile dynamic language for the Java Platform with many features that are inspired by languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax.

Thank you to the following people for their presentation on this topic.

  • Shankar Viswanathan, Director, Product Management
  • Ujwala Maheshwari, Consulting Member of the Technical Staff
  • Shaun Bakey, Consulting Member of the Technical Staff

When and how are Groovy business rules made available in Planning Cloud?

  • Enterprise Planning and Budgeting Cloud Service (EPBCS) SKU (Part # B85698)
  • Planning and Budgeting Cloud Service (PBCS) with Options SKUs (Part #s B86759, B86760, B86761, B86762)
  • Existing PBCS applications must be converted to the Enterprise application type to use Groovy
  • For new applications, create applications of type Enterprise to use Groovy
  • It is not necessary to configure module frameworks to use Groovy
  • No application level configuration is necessary to use Groovy

Deploying The Right App Type For Groovy

Refer to the items below for more information:

Limitations with existing Business Rules (Pre Groovy)

  • Unable to dynamically generate scripts at run time based on context other than the RTPs.
    • Dynamically generate FIX statements with varying dimensionality
  • Unable to dynamically specify the parent for a member on the fly say by project type.
  • Unable to validate RTP values before the member on the fly is created.
  • Unable to tie different module framework functionalities in a rule or rule set.
    • Integration use case (Smart Push after running calc)
  • Performance issues due to static nature.
  • Custom targeted calc scripts based on the current form.
  • Only simple calculations such as allocations are allowed on reporting cubes.

Groovy Based Business Rules

  • Support new language – Groovy
  • Write rules in Groovy using the object model exposed
    • EpmScript, Operation, Application, Dimension, Member etc.
  • Perform calculations in Groovy
  • Generate calc scripts at runtime
  • Launch Templates
  • Allow Groovy scripts and calc scripts to be orchestrated in a rule set

Why use Groovy?

  • A multi-faceted language for the Java platform
  • Flat learning curve for Java developers
  • Smooth Java integration with benefits of Java performance
  • Adoption by many small and large (Oracle, IBM, SAP) companies
  • Powerful features of both static and dynamic language
  • Securable for the cloud (white listing, black listing, etc.)
  • Domain specific languages

Experience Prerequisites

  • Knowledge of Planning functionality
  • Knowledge of Java and ability to write Java/Groovy code
  • Knowledge of EPM Groovy object model

How to Use Groovy?

  • Business rules can now be written using the Groovy language
  • Groovy-based business rules can be used any place you can use a regular business rule
    • Launch independently
    • Launch using action menus and right-click menus
    • Run on load/save of form
    • EPM Automate
    • REST APIs

Groovy Use Cases:

  • Intelligent calculations
    • Trigger the calc only for the changed cells/rows
  • IF ELSE before FIXes
    • Trigger calcs if some criteria is met (or even based on user updated cells)
  • Implement Planning data validations in business rules
    • Color coding (validation rules) on Forms can be used in Groovy
  • Smart Things You can Do With Groovy
    • Use conditional logic to set background color on grids
    • Move data to the reporting cube only for edited cells
    • Calculate data only based on edited cells
    • Move dynamic members to a different parent
    • Add new dynamic members in a dimension
    • Validate data in the grid against set range/thresholds and prevent the data save if thresholds are violated
    • Move data across cubes (also using data maps)


Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.