Execute Allocation (Aggregate Storage)

The MaxL execute allocation statement helps you allocate one or more given source amounts to a target range of cells in an Essbase aggregate storage (ASO) database.

The source amount can be allocated to the target proportionately to a given basis, or the source amount can be spread evenly to the target region.

Allocations are typically used in the budgeting process to distribute revenues or costs.

The minimum application permission required to run an ASO custom calculation is Database Update.

For more information about allocations and to understand the input parameters, see Performing Custom Calculations and Allocations on Aggregate Storage Databases.

Keywords

You can run ASO custom allocations in the following ways using MaxL execute allocation.

execute allocation … pov MDX-SET

Required. Provide an MDX set defining the context region in which the allocation should be performed.

execute allocation … amount ALLOC-NUMERIC

Required. Provide an MDX numeric value expression indicating the amount to be allocated.

execute allocation … amountcontext MDX-TUPLE

Optional. Provide an MDX tuple with one member from each dimension missing from pov and amount. This clause is required when amount is an arithmetic expression and pov does not specify two or more dimensions. It should not be used otherwise.

execute allocation … amounttimespan MDX-SET

Optional. Provide an MDX set indicating one or more time periods to be considered for the amount. The amount value is aggregated over the specified time periods, and the aggregated amount value is allocated. Time periods must be level 0 members in a Time dimension.

execute allocation … target MDX-TUPLE

Required. Provide an MDX tuple defining the database region where the allocation results should be written.

execute allocation … targettimespan MDX-SET

Optional. Provide an MDX set indicating one or more time periods to be considered for the allocation target. Time periods must be level 0 members in a Time dimension.

execute allocation … targettimespanoptions

Optional, but required if targettimespan is used.

Select a method for allocating values across the target time span:

  • divideamount–Divide the amount evenly across the time periods.

  • repeatamount–Repeat the amount across the time periods.

execute allocation … offset MDX-TUPLE

Optional. If you use offsetting entries (general ledger counterbalancing measures), provide an MDX tuple defining the location in the database where an offsetting value should be written for each source amount.

execute allocation … debitmember MDX-MBR

Optional. If you use double-entry accounting, provide an MDX member expression indicating the member to which positive result values should be written.

execute allocation … creditmember MDX-MBR

Optional. If you use double-entry accounting, provide an MDX member expression indicating the member to which negative result values should be written.

execute allocation … range MDX-SET

Required. Provide an MDX set indicating the database region in which allocated values are calculated and written.

execute allocation … excludedrange MDX-SET

Optional. Provide an MDX set specifying locations in the range where you do not want allocation values written.

execute allocation … basis MDX-TUPLE

Required in most cases. Provide an MDX tuple that, when combined with the range, defines the location of basis values that determine how the amount is allocated. The basis can consist of upper-level or level 0 members.

Optional if the allocation method used is spread, and no values are skipped; required otherwise. Basis must be omitted when the allocation method spread is used without skip options.

execute allocation … basistimespan MDX-SET

Optional. Provide an MDX set that indicates one or more time periods to be considered for the basis. Time periods must be level 0 members in a Time dimension.

execute allocation … basistimespanoptions

Optional, but required if basistimespan is used. Select a method for using the basis time span:

  • splitbasis–Use the basis value for each time period individually.

  • combinebasis–Use the sum of the basis values across the time periods specified by basistimespan.

execute allocation … share

Optional. For the allocation method, allocate the amount(s) proportionately to the basis values. For syntax, see Allocation Method Specification in Notes.

execute allocation … spread

Optional. For the allocation method, allocate the amount(s) evenly. For syntax, see Allocation Method Specification in Notes. You can include one or more of the following skip options when using spread allocation:

  • skip_missing–Skip missing basis values.

  • skip_zero–Skip zero basis values.

  • skip_negative–Skip negative basis values.

execute allocation … zeroamountoptions

Optional. If this syntax is omitted, zero or #MISSING amount values are allocated. If you don't want to allocate empty values, specify how to handle them:

  • skip_to_next_amount–Skip to the next nonzero, non-#MISSING amount value.

  • abort–Cancel the entire allocation operation.

execute allocation … zerobasisoptions

Optional. For share allocation method, this option specifies the action when the sum of all basis values is zero. For spread allocation method, this option specifies the action when all the basis values are skipped. Select one of the following options:

  • skip_to_next_amount–Skip to the next nonzero, non-#MISSING amount value.

  • abort–Cancel the entire allocation operation.

execute allocation … round

Optional rounding specification. Choose INTEGER or MDX-NUMERIC, plus one of the subsequent options, to specify the rounding method.

  • round INTEGER|MDX-NUMERIC–Round to a specified number of decimal places, using an integer or an MDX numeric value expression. The value must be between 100 and -100, and is truncated if it is not a whole number.

  • discard errors–Perform rounding, but discard rounding errors.

  • errors_to_lowest–Add rounding errors to the lowest allocated value.

  • errors_to_highest–Add rounding errors to the highest allocated value.

  • errors_to_location MDX-TUPLE–Provide an MDX tuple indicating a cell to which the rounding error should be added.

execute allocation … [override]|add|subtract values

Optional. Values generated by an ASO custom allocation can be added to (or subtracted from) existing values, instead of overwriting them. Overwriting is the default.

When performing custom allocations on an aggregate storage cube with a federated partition, you can only override existing values. You cannot add to, nor subtract from, existing values.

Notes

  • The clauses following the with keyword can be entered in any order, each separated by white space.

  • Each clause can only be entered once.

  • The pov, amount , target, range, and basis clauses are mandatory; the others are optional.

  • You can specify only stored, level-0 members in all of the clauses except for amount, amountcontext, basis, and the number of rounding digits; for all other arguments, do not use upper-level members, attribute members, or dynamic calc members.

Allocation Method Specification


Syntax diagram for execute allocation ALLOC-METHOD spec.

Rounding Method Specification


Syntax diagram for execute allocation ROUNDING-METHOD spec.

Example

The following statement executes an allocation.


execute allocation process on database glrpt.db with
pov 			"Crossjoin({[VisionUS]}, 
				Crossjoin({[5740]}, 
				  Crossjoin({[USD]},
				    Descendants([Geography],[Geography].Levels(0)))))"
amount 		"Jan + Feb"
amountcontext	"([100], [Beginning Balance], [Actual], [CostCenter1])" 
target 		"([Allocation], [CostCenter1])"
offset 		"([Allocation], [CostCenter1], [100], [YearNA])"
debitmember 	"[Debit]"
creditmember 	"[Credit]"
range 		"Crossjoin(Descendants([999], [Department].Levels(0)), 
           Descendants([Year], [Year].Levels(0)))"
excludedrange 	"{[9994], [9995], [9996]}"
basis 		"([SQFT], [Balance], [Actual], [CostCenter2])"
share 
zeroamountoptions	abort
zerobasisoptions  abort
negativebasisoptions  zero_value 
targettimespanoptions  divideamount
round			"Currency.CurrentMember.CurrencyPrecision"
errors_to_location 	"([101], [Jan])"
add values;