@CalcMgrExecuteEncryptMaxLFile 的語法為:
FIX ("Sales","100-10","New York","Actual") "Jan"( @CalcMgrExecuteEncryptMaxLFile("2115028571,2505324337","C:/Temp/exportdata.mxls", @List("906388712099924604712352658511","0893542980829559883146306518502837293210"), "true"); ENDFIX
第一個引數是私密金鑰,第二個引數是 MaxL 指令碼檔案,第三個引數是指令碼的引數,最後一個引數表示是否以非同步方式執行此指令碼 ("true" 表示非同步,而 "false" 表示同步)。
此方法有一些問題。第一個問題是必須執行相同指令碼的次數:它會針對 FIX 陳述式的所有成員組合執行。第二個問題是如果 Oracle Essbase 判斷 FIX 陳述式的成員組合中不存在區塊,就可能完全不會執行指令碼。
您通常會希望 MaxL 指令碼只執行一次,而且使用 RUNJAVA 命令:
RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLFunctions <LOG FILE> OPTIONAL ex., "logfile=c:/Temp/maxlrule.log" The path should be accessible from the ESSBASE process. <ASYNCH FLAG> OPTIONAL ex., "true" This means calc engine does not wait for the completion of the MaxL script. The default is "false" <ALL OTHER PARAMETERS YOU PASS TO ESSMSH>
範例:
RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLFunctions "logfile=c:/Temp/maxlrule.log" "-D" "c:\\Temp\\maxl.msh" "28567271,1186612387" "893848844082678214004255849650" "4647275840619320283077900267208176084380" "{varAppName}";