Executing a MaxL Script File Using @CalcMgrExecuteEncryptMaxLFile

The syntax of @CalcMgrExecuteEncryptMaxLFile is:

FIX ("Sales","100-10","New York","Actual")
           "Jan"(
           @CalcMgrExecuteEncryptMaxLFile("2115028571,2505324337","C:/Temp/exportdata.mxls", @List("906388712099924604712352658511","0893542980829559883146306518502837293210"), "true");
         ENDFIX

The first argument is the private key, the second argument is the MaxL script file, the third argument is the arguments for the script, and the last argument indicates whether to run this asynchronously or not ("true" indicates asynchronous and "false" indicates synchronous).

This approach has a few issues. The first issue is the number of times the same script must be run: it is run for all member combinations of the FIX statement. The second issue is that the script may not be run at all if Oracle Essbase decides that no blocks exist for the member combinations of the FIX statement.

Usually, you want to run the MaxL script only once, and you use the RUNJAVA command:

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>

Example:

   RUNJAVA com.hyperion.calcmgr.common.cdf.MaxLFunctions 
   "logfile=c:/Temp/maxlrule.log"
   "-D" 
   "c:\\Temp\\maxl.msh" 
   "28567271,1186612387"
   "893848844082678214004255849650"
   "4647275840619320283077900267208176084380"
   "{varAppName}";