Complex Scopes

Complex scopes simplify limit creation by allowing you to define scopes across a set of scope location members, which is often required when managing limits.

Complex Scopes

Atoti Limits currently supports four types of complex scopes at a defined level. These are:

See the operators section for more details on each type of scope.

Complex Scope Definitions

Complex scopes are defined similarly to simple scopes, with some added notation. Each location is pipe-separated, the level names are normalized and missing parents of multi-level hierarchies are derived depending on user-defined scope properties.

note

Whitespaces between symbols will be trimmed.

Here are some examples:

IN / “(For each) selected” in the UI

Here the limit is evaluated where the level member is IN a set of supplied members. The notation is:

<Level Name> = [ <Level Member 1> + <Level Member 2> + ... ]

For example, to evaluate the limit only where the currency is USD or EUR, define the location as:

Currency = [ USD + EUR ]

note

The + symbol here is merely for notational purposes and does not indicate addition of the members. We require distinct symbols to be used in order to correctly parse the scope on file import. For very complex scopes, we recommend using the UI rather than editing the file.

NOT IN / “(For each) excluding selected” in the UI

Here the limit is evaluated where the level member is NOT IN a set of supplied members. The notation is:

<Level Name> <> [ <Level Member 1> + <Level Member 2> + ... ]

For example, to evaluate the limit only where currency is not equal to USD or EUR, define the location as:

Currency <> [ USD + EUR ]

note

<> is the MDX representation of “not equal to”.

TOTAL IN / “(Total) of selected” in the UI

warning

A limit of this scope should not be used in conjunction with other limits or scope locations. Otherwise, the Business Cube will not be able to determine the location for evaluating the limit.

Here the limit is evaluated as the total of where the level member is IN a set of supplied members. The notation is:

<Level Name> &= [ <Level Member 1> + <Level Member 2> + ... ]

For example, to evaluate the sum of values where Book is Book 1 and Book 2, define the location as:

Book &= [ Book 1 + Book 2 ]

note

The wildcard (*) and AllMember values are not allowed for this type of scope.

TOTAL NOT IN / “(Total) excluding selected” in the UI

warning

A limit of this scope should not be used in conjunction with other limits or scope locations. Otherwise, the Business Cube will not be able to determine the location for evaluating the limit.

Here the limit is evaluated as the total of locations where the level member is NOT IN a set of supplied members.

<Level Name> &<> [ <Level Member 1> + <Level Member 2> + ... ]

For example, to evaluate the sum of values of the Book level, excluding Book 3 and Book 4, define the location as:

Book &<> [ Book 3 + Book 4 ]

note

The wildcard (*) and AllMember values are not allowed for this type of scope.

Special case: Defining multiple multi-Level members

We may want to define a location on a multi-level hierarchy for multiple members. For example, we may want to evaluate at:

City = North America / United States / New York City
City = Europe / Ireland / Dublin

To do so, for this special case we use the following notation:

<Selected Level> <Operator> [ <Level Parent_0>=<Level Parent Value_0>&<Level Parent_1>=<Level Parent Value_1>&...&<Selected Level>=<Selected Value 1> + 
                              <Level Parent_0>=<Level Parent Value_2>&<Level Parent_1>=<Level Parent Value_3>&...&<Selected Level>=<Selected Value 2> +
                              ...
                              <Level Parent_0>=<Level Parent Value_2>&<Level Parent_1>=<Level Parent Value_3>&...&<Selected Level>=<Selected Value n> +
                              ]

where:

  • Operator is the symbol of the operator to be used.
  • Level Parent_n is the level at ordinal n in the level path. This order is important and the topmost parent should be the first in the path.

In our city example above, this would look like:

City = [
        Continent@Geography=North America & Country=United States & City=New York City + 
        Continent@Geography=Europe & Country=Ireland & City=Dublin
        ]

Scope Operators

A scope operator determines the type of operation a complex scope uses. The options are:

  • EQUALS
  • NOT_EQUALS
  • TOTAL_EQUALS
  • TOTAL_EXCEPT

Each operator can be inclusive or exclusive, and aggregated or non-aggregated. On evaluation:

  • an inclusive operator includes the level members specified in its definition, while an exclusive operator will exclude the members specified in its definition.
  • an aggregated operator will evaluate only at the AllMember level for the levels specified in its definition, while a non-aggregated operator will only apply at the level members for the members specified in its definition.
Complex Scope Type Operator Symbol Inclusive Aggregated Example Example Value Description
IN EQUALS = Yes No Book=[ Book 1 + Book 2 ] Evaluation occurs where the Book level member equals Book 1 or Book 2.
NOT IN NOT_EQUALS <> No No Book<>[ Book 1 + Book 2 ] Evaluation occurs anywhere where the Book level member is not equal to Book 1 or Book 2.
TOTAL IN TOTAL_EQUALS &= Yes Yes Book&=[ Book 1 + Book 2 ] The value is the sum of Book 1 and Book 2, and will be displayed at the AllMember level.
TOTAL NOT IN TOTAL_EXCEPT &<> No Yes Book&<>[ Book 1 + Book 2 ] The value is the sum of all members of the Book level, excluding Book 1 and Book 2, and will be displayed at the AllMember level.