Intial Steps of Creating CDFs in Essbase
Intial Steps of Creating CDFs in Essbase
Intial Steps of Creating CDFs in Essbase
Functions
Challenge: Many times when developing Essbase calculations or Hyperion Planning Business Rules, the
out-of-box functions provided are useful for providing static type calculations based on conditional logic.
This is good for creating rich analytic applications with simple logic and mathematics that can accurately
represent the data. When it comes to complex calculations with dynamically changing conditions or
using iterative methods, an Essbase CDF is the solution. Extending Essbase calculation scripts to include
custom functions can add a layer of analytic or forecasting metrics to existing legacy financial data. A
CDF could also be used to update existing data from web services for example, currency rates in a
Planning application. CDFs are a great solution for integrating into existing Planning, Budgeting and
Forecasting Cloud Services (PBCS).
Essbase contains a rich function set for building calculation scripts; however the calculations can be
extended to include any number or type of computations or algorithms. This Guide will review the basic
steps to get started. Other more detailed guides may follow on implementing additional specific
application examples.
Applications of the CDF:
Goal Seeking
Dynamic outline building
Time Encoding/Decoding
Live Data Feed
Computational Algorithms and Methods
Integration with Essbase API.
Integration with other languages and protocols such as R script, Jython, Python,
Ruby, and Email.
Anonymous Lambda Functions for dynamic programming
http://en.wikipedia.org/wiki/Anonymous_function
Anything else that Essbase cant do easily
Built with Java so the potential is unlimited.
Solution: Use the following guide to create an Essbase custom defined function or CDF. This guide uses
the simplest example also provided by many other instructional to create a new function that sums a list
of values. Use the simplest example to setup you development environment and become familiar with
the steps to implement CDFs.
Step 1 - Develop
Develop Essbase calculation scripts or business rules using new external functions
Pass data from your intersections to the new @JCustomFunction()
Return values can be assigned to Essbase members or used as input to other
functions.
4. Access the Essbase server environment for updating security policy and deploying function
package.
5. Documentation and Resources Oracle Sample CDFs, Essbase DBAG, Oracle TechNet, Java
a. http://docs.oracle.com/cd/E12032_01/doc/epm.921/html_techref/maxl/ddl/cdf/cdfind
ex.htm
b. http://docs.oracle.com/cd/E12825_01/epm.111/esb_dbag/frameset.htm?dcaudfs.htm
Resolve all compiling errors and until the javac compiler creates a new .class file, for example
FunctionLibrary.class. Once the class file is created, it needs to be packaged into a deployable archive.
Package the new class file(s) into a deployable Java archive jar file. Once the jar file is created, to needs
to be deployed and registered with Essbase.
Command: jar
>jar cf FunctionLibrary.jar FunctionLibrary.class
entry: udf.policy
// Grant all permissions to CDF's
grant codeBase "file:${essbase.java.home}/udf/FunctionLibrary.jar" {
permission java.security.AllPermission;
};