MaxL BNF
MaxL BNF notation is an optional alternative to railroad diagrams, for learning MaxL syntax for Essbase.
Key
{} Alternatives (at least one required)
[] Options (none required)
!! Default option if none indicated
| Separates options (OR)
[,...] Comma-separated list (of previous item) allowed
[ ...] Whitespace-separated list (of previous item) allowed
'' Literal
::= "is defined as." Symbol to the left is to be replaced with expression on the right
TERMINAL
%NON-TERMINAL%
alter application
alter application
{APP-Name
{set
{lock_timeout after INTEGER[!seconds!|minutes]
|max_lro_file_size {unlimited|SIZE-STRING}
|minimum permission %DBS-SYSTEM-ROLE%
|variable VARIABLE-NAME STRING
|cache_size SIZE-STRING
|type unicode_mode
}
|{load|unload} database DBS-STRING
|{enable|disable} {startup|autostartup|commands|updates|connects|security}
|comment COMMENT-STRING
|clear logfile
|add variable VARIABLE-NAME [STRING]
|drop variable VARIABLE-NAME
|rename to APP-NAME
}
DBS-SYSTEM-ROLE::=
{no_access|read|write|execute|manager}
alter application (aggregate storage)
alter application
{APP-Name
{set
{
|minimum permission %DBS-SYSTEM-ROLE%
|variable VARIABLE-NAME STRING
|cache_size SIZE-STRING
|type unicode_mode
}
|{load|unload} database DBS-STRING
|{enable|disable} {startup|autostartup|commands|updates|connects|security}
|comment COMMENT-STRING
|clear logfile
|add variable VARIABLE-NAME [STRING]
|drop variable VARIABLE-NAME
|rename to APP-NAME
}
DBS-SYSTEM-ROLE::=
{no_access|read|write|execute|manager}
alter database enable|disable
alter database DBS-NAME
{enable|disable}
{
two_pass_calc
|aggregate_missing
|startup
|autostartup
|compression
|create_blocks
|committed_mode
|pre_image_access
}
alter database set
alter database DBS-NAME
set
{
retrieve_buffer_size SIZE-STRING
|retrieve_sort_buffer_size SIZE-STRING
|data_cache_size SIZE-STRING
|index_cache_size SIZE-STRING
|currency_database DBS-STRING
|currency_member MEMBER-NAME
|currency_conversion {division|multiplication}
|minimum permission %DBS-SYSTEM-ROLE%
|compression {rle|bitmap}
|lock_timeout
{
immediate
|never
|after INTEGER {[!seconds!|minutes]}
}
|implicit_commit after INTEGER {blocks|rows}
|variable VARIABLE-NAME STRING
|default calculation {CALC-NAME-SINGLE|as calc_string CALC-STRING}
|active alias_table ALT-NAME-SINGLE
|performance statistics {enabled|disabled|mode to %PST-SPEC%}
|note COMMENT-STRING
}
DBS-SYSTEM-ROLE::=
{no_access|read|write|execute|manager}
PST-SPEC::=
{
default
|{medium|long} persistence {all|database|server} scope
}
alter database misc
alter database DBS-NAME
{
reset [{all|data}]
|validate
{
data to local logfile FILE-NAME
|using {error_file FILE-NAME|default error_file}
}
|force restructure
|load alias_table ALT-NAME-SINGLE from data_file FILE-NAME
|unload alias_table ALT-NAME-SINGLE
|add variable VARIABLE-NAME [STRING]
|drop variable VARIABLE-NAME
|delete lro
{
all
|by USER-NAME
|before DATE
|by USER-NAME before DATE
}
|unlock all objects
|begin archive to file FILE-NAME
|end archive
|[force] archive to file FILE-NAME
|[force] restore from file FILE-NAME
|replay transactions
{
after LOG-TIME
|using sequence_id_range ID-RANGE
}
|rename to DBS-STRING
|comment COMMENT-STRING
}
alter database disk volumes
alter database DBS-NAME
{
{add|drop} disk volume VOLUME-NAME
|set disk volume VOLUME-NAME
{
file_type {data|index|index_data}
|file_size SIZE-STRING
|partition_size {SIZE-STRING|unlimited}
}
}
alter database (aggregate storage)
alter database DBS-NAME
{
{enable|disable}
{
startup
|autostartup
|query_tracking
|replication_assume_identical_outline
}
|set
{
retrieve_buffer_size SIZE-STRING
|retrieve_sort_buffer_size SIZE-STRING
|minimum permission %DBS-SYSTEM-ROLE%
|variable VARIABLE-NAME STRING
|active alias_table ALT-NAME-SINGLE
}
|reset [{all|data}]
|clear
{
aggregates
|data in region CUBE-AREA[,...][physical]
}
|compact outline
|add variable VARIABLE-NAME [STRING]
|drop variable VARIABLE-NAME
|%LOAD-BUFFER-INIT%
|destroy load_buffer with buffer_id BUFFER-ID[,...]
|unlock all objects
|rename to DBS-STRING
|comment COMMENT-STRING
|merge {all|incremental} data
|begin archive to file FILE-NAME
|end archive
}
DBS-SYSTEM-ROLE::=
{no_access|read|write|execute|manager}
LOAD-BUFFER-INIT::=
initialize load_buffer with buffer_id BUFFER-ID[,...]
[resource_usage RNUM][property PROPS][wait_for_resources]
alter drillthrough
alter drillthrough
URL-NAME from xml_file FILE-NAME
on '{'MEMBER-EXPRESSION'}'[,...]
[allow_merge]
alter filter
alter filter FILTER-NAME
add {no_access|read|write|meta_read} on MEMBER-EXPRESSION [,...]
alter group
alter group GROUP-NAME revoke filter FILTER-NAME
alter object
alter object OBJ-NAME of type %OBJ-TYPE%
{rename to OBJ-NAME-SINGLE|unlock|[force]copy to OBJ-NAME}
OBJ-TYPE::=
outline
|calc_script
|report_file
|rules_file
|text
|partition_file
|lro
|selection
|wizard
|eqd
|outline_paging_file
|worksheet
|alias_table
alter partition
alter {transparent|replicated} partition DBS-NAME
{to|from} DBS-NAME [at HOST-NAME]
set{
connect as USER-NAME identified by PASSWORD
|hostname as HOST-NAME instead of HOST-NAME direction {single|all}
|application as APP-NAME instead of APP-NAME direction {single|all}
|database as DSB-STRING instead of DBS-STRING
}
alter session
alter session set dml_output
{
[
!default!
|alias {on|off}
|metadata_only {on|off}
|cell_status {on|off}
|numerical_display {!default!|fixed_decimal|scientific_notation}
|precision PRECISION-DIGITS]
|formatted_value {on|off}
|get_missing_cells {on|off}
|get_meaningless_cells {on|off}
[,...]
}
alter system
alter system
{
load application {all|APP-NAME}
|unload application {all|APP-NAME} [no_force]
|set
{
session_idle_limit {INTEGER[!seconds!|minutes]|none}
|session_idle_poll {INTEGER[!seconds!|minutes]|none}
|invalid_login_limit {INTEGER|none|}
|inactive_user_days {INTEGER[days]|none}
|password_reset_days {INTEGER[days]|none}
|variable VARIABLE-NAME STRING
|server_port begin at INTEGER end at INTEGER
}
|delete export_directory EXPORT-DIR
|add variable VARIABLE-NAME[STRING]
|drop variable VARIABLE-NAME
|logout session %SESSION-SPEC% [force]
|shutdown
|kill request %SESSION-SPEC%
|{enable|disable} unicode
|reconcile[force]
}
SESSION SPEC::=
all
|SESSION-ID
|by user USER-NAME
[
on application APP-NAME
|on database DBS-NAME
]
|on application APP-NAME
|on database DBS-NAME
alter system (aggregate storage)
alter system
{
load application {all|APP-NAME}
|unload application {all|APP-NAME} [no_force]
|set
{
session_idle_limit {INTEGER[!seconds!|minutes]|none}
|session_idle_poll {INTEGER[!seconds!|minutes]|none}
|invalid_login_limit {INTEGER|none|}
|inactive_user_days {INTEGER[days]|none}
|password_reset_days {INTEGER[days]|none}
|variable VARIABLE-NAME STRING
|server_port begin at INTEGER end at INTEGER
}
|add variable VARIABLE-NAME[STRING]
|drop variable VARIABLE-NAME
|logout session %SESSION-SPEC% [force]
|shutdown
|kill request %SESSION-SPEC%
|reconcile [force]
}
SESSION SPEC::=
all
|SESSION-ID
|by user USER-NAME
[
on application APP-NAME
|on database DBS-NAME
]
|on application APP-NAME
|on database DBS-NAME
alter tablespace (aggregate storage)
alter tablespace TABLSP-NAME
{
add file_location FILE-NAME
[
set max_file_size SIZE-STRING
|set max_disk_size SIZE-STRING
[,...]
]
|alter file_location FILE-NAME
[
set max_file_size SIZE-STRING
|set max_disk_size SIZE-STRING
[,...]
]
|drop file_location FILE-NAME
}
alter trigger
alter trigger
{
TRIGGER-NAME {enable|disable}
|on database DBS-NAME disable
}
alter user
alter user
{
USER-NAME
{
|revoke filter FILTER-NAME
}
create application
create [or replace] application APP-NAME
[type {!nonunicode_mode!|unicode_mode}]
[as APP-NAME]
[comment COMMENT-STRING]
create application (aggregate storage)
create [or replace] application APP-NAME
[type {!nonunicode_mode!|unicode_mode}]
[using aggregate_storage]
[as APP-NAME]
[comment COMMENT-STRING]
create calculation
create [or replace] calculation CALC-NAME {CALC-STRING|as CALC-NAME}
create database
create [or replace] [currency] database DBS-NAME
[using non_unique_members]
[as DBS-NAME]
[comment COMMENT-STRING]
create database (aggregate storage)
create [or replace] database DBS-NAME
[using non_unique_members]
[comment COMMENT-STRING]
create drillthrough
create drillthrough URL-NAME from xml_file FILE-NAME
on '{'MEMBER-EXPRESSION [,...]'}'
[level0 only]
create filter
create [or replace] filter FILTER-NAME
{
as FILTER-NAME
|
{
no_access
|read
|write
|meta_read
}
on MEMBER-EXPRESSION
[,...]
}
[definition_only]
create function
create [or replace] function FUNC-NAME
as JAVACLASS.METHOD
[spec CALC-SPEC-STRING
[comment COMMENT-STRING]
]
[with property runtime]
create group
create group GROUP-NAME
[type external]
create location alias
create [or replace] location alias
{
LOC-ALIAS-SINGLE from DBS-NAME
|LOCATION-ALIAS-NAME
}
to DBS-NAME at HOST-NAME as USER-NAME identified by PASSWORD
create macro
create [or replace] macro MACRO-NAME
[%MACRO-SIGNATURE%]
as MACRO-EXPANSION
[spec CALC-SPEC-STRING [comment COMMENT-STRING]]
MACRO-SIGNATURE::=
'('
{
!any!
|single
|group
|optional
|optional_group
[,...]
}
')'
create replicated partition
create [or replace] replicated partition DBS-NAME
%AREA-SPEC%
{to|from}
DBS-NAME [at HOST-NAME][as USER-NAME identified by PASSWORD]
[using USER-NAME identified by PASSWORD for creation]
[%AREA-SPEC%]
[
mapped
{globally|AREA-ALIAS}
'('MEMBER-NAME [,...]')'
to '('MEMBER-NAME [,...]')'
[,...]
]
[outline {!direct!|reverse}]
[comment COMMENT-STRING]
[remote comment COMMENT-STRING]
[update {allow|disallow}]
[validate only]
AREA-SPEC::=
area MEMBER-EXPRESSION [AREA-ALIAS] [ ...]
create transparent partition
create [or replace] transparent partition DBS-NAME
%AREA-SPEC%
{to|from}
DBS-NAME [at HOST-NAME][as USER-NAME identified by PASSWORD]
[using USER-NAME identified by PASSWORD for creation]
[%AREA-SPEC%]
[
mapped
{globally|AREA-ALIAS}
'('MEMBER-NAME [,...]')'
to '('MEMBER-NAME [,...]')'
[,...]
]
[outline {!direct!|reverse}]
[comment COMMENT-STRING]
[remote comment COMMENT-STRING]
[validate only]
AREA-SPEC::=
area MEMBER-EXPRESSION [AREA-ALIAS] [ ...]
create after-update trigger
create [or replace] after update trigger TRIGGER-NAME
where CUBE-AREA [when CONDITION then ACTION][ ...] end
create on-update trigger
create [or replace] [!on update!] trigger TRIGGER-NAME
[log_value {!OFF!|ON}]
where CUBE-AREA
[when CONDITION then ACTION][ ...]
[else ACTION]
end
create user
create user USER-NAME %EXTERNAL-USER-SPEC%
EXTERNAL-USER-SPEC::=
type external
display application
display application [!all!|APP-NAME [message_level]]
display calculation
display calculation
[
!all!
|CALC-NAME
|on application APP-NAME
|on database DBS-NAME
]
display database
display database
[
!all!
|DBS-NAME
|on application APP-NAME
]
[request_history]
display disk volume
display disk volume
[!all!|UNIQUE-VOL-NAME|on database DBS-NAME]
display drillthrough
display drillthrough
{
DBS-NAME [to FILE-NAME-PREFIX]
|URL-NAME [to FILE-NAME]
}
display filter
display filter [!all!|FILTER-NAME|on database DBS-NAME]
display filter row
display filter row [!all!|FILTER-NAME|on database DBS-NAME]
display function
display function [!all!|on system|on application APP-NAME|FUNC-NAME]
display location alias
display location alias [!all!|LOCATION-ALIAS-NAME|on application APP-NAME|on database DBS-NAME]
display lock
display lock [!all!|on system|on application APP-NAME|on database DBS-NAME]
display macro
display macro [!all!|on system|on application APP-NAME|MACRO-NAME]
display object
display [locked] object
[
[!all!|of type %OBJ-TYPE%]
[!on system!|on application APP-NAME|on database DBS-NAME]
|OBJ-NAME of type %OBJ-TYPE%
]
OBJ-TYPE::=
outline
|calc_script
|report_file
|rules_file
|text
|patition_file
|lro
|selection
|wizard
|eqd
|outline_paging_file
|worksheet
|alias_table
display partition
display partition [!all!|on database DBS-NAME][advanced]
display privilege
display privilege
{
user [!all!|USER-NAME]
|group [!all!|GROUP-NAME]
}
display session
display session
[
!all!
|SESSION-ID
|by user USER-NAME [on application APP-NAME|on database DBS-NAME]
|on application APP-NAME
|on database DBS-NAME
]
display system
display system
[
version
|ports {in use|overview}
|export_directory
|license_info
|security mode
|configuration
{
|agent
|network
|errors
|on database DBS-NAME
}
|message_level
]
display trigger
display trigger
[
!all!
|on system
|on application APP-NAME
|on database DBS-NAME
|TRIGGER-NAME
]
display trigger spool
display trigger_spool
[
!all!
|on application APP-NAME
|on database DBS-NAME
|SPOOL-NAME
]
display variable
display variable
[
!all!
|VARIABLE-NAME
|on application APP-NAME
|on database DBS-NAME
|on system
]
drop application
drop application APP-NAME [cascade] [force]
drop calculation
drop calculation CALC-NAME
drop database
drop database DBS-NAME [force]
drop drillthrough
drop drillthrough URL-NAME
drop filter
drop filter FILTER-NAME
drop function
drop function FUNC-NAME
drop group
drop group GROUP-NAME
drop location alias
drop location alias LOCATION-ALIAS-NAME
drop lock
drop lock
[
!all!
|[
!on system!
|on application APP-NAME
|on database DBS-NAME
]
[!all!|held by USER-NAME]
]
drop macro
drop macro MACRO-NAME
drop object
drop object OBJ-NAME of type %OBJ-TYPE% [force]
OBJ-TYPE::=
outline
|calc_script
|report_file
|rules_file
|text
|patition_file
|lro
|selection
|wizard
|eqd
|outline_paging_file
|worksheet
|alias_table
drop partition
drop
{transparent|replicated}
partition DBS-NAME {from|to} DBS-NAME
[at HOST-NAME][force]
drop trigger
drop trigger TRIGGER-NAME
drop trigger spool
drop trigger_spool {SPOOL-NAME|all on database DBS-NAME}
drop user
drop user USER-NAME
execute aggregate build
execute aggregate build on database DBS-NAME
using
{
views VIEW-ID VIEW-SIZE [,...] with outline_id OUTLINE-ID
|view_file VIEW-FILE-NAME
}
execute aggregate process
execute aggregate process on database DBS-NAME
[stopping when total_size exceeds STOPPING-VAL]
[based on query_data]
[{enable|!disable!} alternate_rollups]
execute aggregate selection
execute aggregate selection on database DBS-NAME
[
using views VIEW-ID[,...]
with outline_id OUTLINE-ID
[[!suppress!|force] display]
]
[selecting INTEGER views]
[stopping when total_size exceeds STOPPING-VAL]
[based on query_data]
[{dump|force_dump} to view_file VIEW-FILE-NAME]
[{enable|!disable!} alternate_rollups]
execute allocation (aggregate storage)
execute allocation process on database DBS-NAME with
{
pov MDX-SET
amount ALLOC-NUMERIC
{
[amountcontext MDX-TUPLE]
[amounttimespan MDX-SET ]
}
target MDX-TUPLE
{
[targettimespan MDX-SET]
[targettimespanoptions {!divideamout!|repeatamount}]
[offset MDX-TUPLE]
[debitmember MDX-MBR]
[creditmember MDX-MBR]
}
range MDX-SET
{
[excludedrange MDX-SET]
[basis MDX-TUPLE]
[basistimespan MDX-SET]
[basistimespanoptions {splitbasis|combinebasis}]
[
share
|spread [{skip_missing|skip_zero|skip_negative},...]
]
[zeroamountoptions {skip_to_next_amount|abort}]
[zerobasisoptions
{
skip_to_next_amount
|abort
}
]
[negativebasisoptions
{
skip_to_next_amount
|abort
|absolute_value
|missing_value
|zero_value
}
]
[round
{INTEGER|MDX-NUMERIC}
{
discard errors
|errors_to_lowest
|errors_to_highest
|errors_to_location MDX-TUPLE
}
]
[{!override!|add|subtract} values]
}
execute calculation
execute calculation
{
CALC-NAME
|CALC-NAME on database DBS-STRING
|{CALC-STRING|default} on DBS-NAME
}
execute calculation (aggregate storage)
execute calculation on database DBS-NAME with
local script_file FILE-NAME pov MDX-SET sourceregion MDX-SET
{
[target MDX-TUPLE]
|[debitmember MDX-MBR]
|[creditmember MDX-MBR]
|[offset MDX-TUPLE]
}
[{!override!|add|subtract} values]
export data
export database DBS-NAME
{
[!all!|level0|input]
data [anonymous] [in columns] to [!server!] data_file FILE-NAME[,...]
|using [!local!|server] report_file FILE-NAME to data_file FILE-NAME
}
export data (aggregate storage)
export database DBS-NAME
{
[!level0!|input]
data [anonymous] to [!server!] data_file FILE-NAME[,...]
|using [!local!|server] report_file FILE-NAME to data_file FILE-NAME
export lro
export databse DBS-NAME lro to
[!server!|local] directory
{DBS-EXPORT-DIR|FULL-EXPORT-DIR}
export outline
export outline {DBS-NAME|FILE-NAME}
{
all dimensions
|list dimensions '{'DIM-NAME'}'[,...]
}
[tree|with alias_table ALT-NAME-SINGLE]
to xml_file FILE-NAME
export query_tracking
export query_tracking DBS-NAME to
[!server!] file FILE-NAME
grant
grant
{
{create_application|create_user|no_access|administrator}
[on system]
|{no_access|manager} on application APP-NAME
|{no_access||read|write|manager} on database DBS-NAME
|filter FILTER-NAME
|execute
{
CALC-NAME
|{any|default}
[
!on system!
|on application APP-NAME
|on database DBS-NAME
]
}
to {USER-NAME|GROUP-NAME}
import data
import database DBS-NAME
[using max_threads INTEGER]
data
{
from
[!local!|server]
[!text!]
data_file IMP-FILE
[using [!local!|server] rules_file IMP-FILE]
|from data_string STRING
|connect as SQL-USR identified by SQL-PASS
using [!local!|server] rules_file IMP-FILE
}
on error {{write|append}to FILE-NAME|abort}
import data (aggregate storage)
import database DBS-NAME data
{
from
[!local!|server]
[!text!]
data_file IMP-FILE
[using [!local!|server] rules_file IMP-FILE]
|from data_string STRING
|connect as SQL-USR identified by SQL-PASS
using
{
[!local!|server] rules_file IMP-FILE
|multiple rules_file RULE-FILE-NAME[,...]
to load_buffer_block starting with buffer id BUFFER-ID
on error {write to FILE-NAME|abort}
}
|from load_buffer with buffer_id BUFFER-ID[,...]
[{!override!|add|subtract} values]
[create slice]
|override {all|incremental} data
]
}
on error {{write|append}to FILE-NAME|abort}
import dimensions
import database DBS-NAME dimensions
{
from
[!local!|server]
[!text!] data_file IMP-FILE
using[!local!|server] rules_file IMP-FILE
[[!enforce!|suppress] verification]
|connect as SQL-USR identified by SQL-PASS
using[!local!|server] rules_file IMP-FILE
}[,...]
[
!preserve all data!
|preserve {level0|input} data
]
on error {write|append} to FILE-NAME
import lro
import database DBS-NAME
lro from [!local!|server] directory IMPORT-DIR
import query_tracking
import query_tracking DBS-NAME from
[!server!] file FILE-NAME
query application
query application APP-NAME get cache_size
query application (aggregate storage)
query application APP-NAME
{
get cache_size
|list aggregate_storage storage_info
}
query archive file
query archive_file FILE-NAME {get overview|list disk volume}
query database
query database DBS-NAME
{
get
{
active_alias_table
|attribute_info MEMBER-NAME
|attribute_spec
|currency_rate
|dbstats {dimension|data_block}
|default calculation
|member_info MEMBER-NAME
|member_calculation MEMBER-NAME
|estimated size
|performance statistics
{
kernel_io
|kernel_cache
|end_transaction
|database_synch
|database_asynch
|dynamic_calc
}
table
}
|list
{
alias_table
|alias_names in alias_table ALT-NAME-SINGLE
|lro
[
!all!
|by USER-NAME
|before DATE
|by USER-NAME before DATE
]
|{all|data|index} file information
|transactions
[
after LOG-TIME
[[force] write to file PATHNAME_FILENAME]
]
}
}
query database (aggregate storage)
query database DBS-NAME
{
get
{
active_alias_table
|attribute_info MEMBER-NAME
|attribute_spec
|cube_size_info
|dbstats {dimension|data_block}
|member_info MEMBER-NAME
|opg_state of %OPG-SECTION% for dimension DIM-NAME
}
|list
{
|aggregate_storage runtime_info
|aggregate_storage compression_info
|aggregate_storage group_id_info
|aggregate_storage slice_info
|aggregate_storage uncommitted_transaction_info
|alias_table
|alias_names in alias_table ALT-NAME-SINGLE
|existing_views [based on query_data
|{!all!|data|index} file information
|load_buffers
|aso_level_info
}
|{dump|force_dump}
existing_views to view_file VIEW-FILE-NAME
[based on query_data]
}
refresh custom definitions
refresh custom definitions on application APP-NAME
refresh outline
refresh outline on {transparent|replicated}
partition DBS-NAME {to|from} DBS-NAME
[at HOST-NAME]
{
purge outline change_file
|apply all
|apply nothing
|%OTL-CHANGE-SPEC%
}
OTL-CHANGE-SPEC::=
apply on dimension
{add|delete|rename|update|move}[...,]
apply on member
{add|delete|rename|move}[...,]
apply on member_property {
account_type
|alias
|calc_formula
|consolidation
|currency_conversion
|currency_category
|data_storage
|uda
}[...,]
refresh replicated partition
refresh replicated partition DBS-NAME
{to|from} DBS-NAME
[at HOST-NAME]
[[!all!|updated]data]