
📎 This article includes 1 downloadable practice file ↓
MaxL is Essbase’s scripting language for administration. Instead of clicking through the console every month, you save the steps in a .mxl file and run it — manually or from a scheduler.
In this article
A typical monthly load script
/* monthly_load.mxl */
spool on to 'monthly_load.log';
login $1 identified by $2 on $3;
/* clear the month we are about to reload */
execute calculation 'FIX("Actual", "Mar") CLEARDATA "Sales"; ENDFIX' on Sample.Basic;
/* load data using a rules file, send rejected records to a file */
import database Sample.Basic data
from server text data_file 'sales_mar.txt'
using server rules_file 'LdSales'
on error write to 'sales_mar_errors.txt';
/* run the calculation stored on the server */
execute calculation Sample.Basic.CalcAll;
logout;
spool off;
exit;
What each part does
- spool writes everything to a log file — your audit trail.
- $1, $2, $3 are parameters passed on the command line (user, password, server), so the script contains no passwords.
- execute calculation ‘…’ can run an inline calc string — here a targeted CLEARDATA with FIX, so only March Actuals are cleared.
- import database … using … rules_file loads the file through a load rule that maps and cleans columns.
- on error write to keeps rejected records (e.g. unknown members) in a file you can fix and reload.
Running it
essmsh monthly_load.mxl admin_user %ESS_PWD% essbase-server
essmsh is the MaxL shell. Read the password from an environment variable or a secure vault — never hard-code it.
⚠️ Always test on a copy of the application first, and check the error file after every load: a clean-looking log with 5,000 rejected records is still a failed load.
New to Essbase? Start with Essbase explained. On EPM Cloud the equivalent automation tool is EPM Automate.
Try it yourself: step by step
- Download monthly_load.mxl. Replace
Sample.Basic, the data file and the rules file with your application’s names. - On a test server run
essmsh monthly_load.mxl youruser %ESS_PWD% yourserver. - Open
monthly_load.log: each statement shows “OK/INFO” lines. Check the elapsed times. - Open
sales_mar_errors.txt. If it has lines, they are records Essbase rejected — usually a member that does not exist in the outline. - Fix the outline or the rules file and re-run only the import step.
📎 Practice files for this article
- 🧊MaxL template (.mxl)The complete script with parameters instead of passwords.⬇ MXL · 478 B
Free to use for learning. Files with macros (.bas) are plain text — import them with Alt+F11 → File → Import File, and always test on a copy.