Essbase Java Custom Defined Function

Очень часто для расширения базовой функциональности EssBASE CalcScript требуется использование внешних библиотек JAVA. Ниже перечислены основные этапы создания и внедрения данной функциональности:

Краткий конспект, официальной документации
Примеры на Oracle Essbase Sample Code

1) Нужно  подключить модуль JVM.DLL в загрузку ядра EssBASE, для этого нужно в файле EssBase.cfg включить строчку
JvmModuleLocation C:\Hyperion\common\JRE\Sun\1.5.0\bin\client\jvm.dll
2) Разместить библиотеки в каталоге
c:\Hyperion\AnalyticServices\java\udf
3) Разрешить использование данных библиотек в файле
c:\Hyperion\AnalyticServices\java\udf.policy
нужно разкоментировать строчку в файле udf.policy, которая содержит следующу запись
permission com.hyperion.essbase.calculator.EssbasePermission "file";

4) зарегистрировать их с помощью MaxL команды
CREATE OR REPLACE FUNCTION

Например процедура, позоляющая вызывать внешние программы в момент расчета EssBase

———-cdf function ————-
import com.hyperion.essbase.calculator.Context;
import java.util.*;
import java.io.* ;
public class EssbaseRuRunTime {
public static void main(Context ctx,String[] args)
{
try {Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(args[0]);
int exitVal = proc.waitFor();
System.out.println(args[0]+" ExitValue: " + exitVal);
}
catch(Exception e)
{
System.out.println(e.getMessage());
System.out.println(args[0]);
}
}
}

————————
compile script
————————
set CPATH=.\hbr\lib\easclientplugin.jar;.\hbr\lib\log4j-1.2.8.jar;C:\Hyperion\AnalyticServices\java\essbase.jar;
C:\Hyperion\common\JDK-AMD64\Sun\1.5.0\bin\javac -classpath %CPATH% EssbaseRuRunTime.java
C:\Hyperion\common\JDK-AMD64\Sun\1.5.0\bin\jar cf EssbaseRuRunTime.jar EssbaseRuRunTime.class

————————
udf.policy settings
————————

grant codeBase "file:${java.home}/lib/udf/*" {
permission java.security.AllPermission;
};
grant {
permission java.security.AllPermission;
};

————————
Run Example
————————
RUNJAVA EssbaseRuRunTime "C:\Hyperion\AnalyticServices\app\Sbase2\Insuranc\dff.bat"

з.ы. Обновление для версии 11.1.2.х
теперь используются два каталога JAva
один в бинарном каталоге Essbase – куда загружаются библиотеки
другой в каталоге приложений – где лежат определения подключаемых функций