Member Set Functions

Member set calculation functions in Essbase return a list of one or more members. The list returned depends on the input member you supply. For example, @CHILDREN(Year) may return months. To input more than one member to a member set function, you can use range operators and cross dimensional expressions.

When a member set function is called as part of a formula, the list of members is generated before the calculation begins. The list never varies, because it is based on the specified member and is independent of the current member.

If a member set function (for example, @CHILDREN or @SIBLINGS) is used to specify the list of members to calculate in a calculation script, Essbase bypasses the calculation of any Dynamic Calc or Dynamic Calc and Store members in the resulting list.

Only the @ATTRIBUTE and @WITHATTR functions can use attribute members or members of the Attribute Calculations dimension as parameters in member set functions.

You can use cross-dimension expressions such as ("1998":"2001" -> @Levmbrs (Year, 0)). The cross-dimensional operator is associative (x -> y) -> z=x -> (y -> z), but not commutative because x -> y = y -> x is a set, but the order of elements is different.

You can use range operators with member set functions. The : operator returns level ranges, and the :: operator returns generation ranges.

Table 3-8 Member Set Functions

Function Return Value
@ALLANCESTORS All ancestors of member, including ancestors of shared member.
@ANCEST Ancestor at distance from the current member or an explicitly specified member.
@ANCESTORS All ancestors of member, or those ancestors up to a specified distance.
@ATTRIBUTE All base members associated with attribute member name.
@BETWEEN All members whose name string value fall between, and are inclusive of, two specified string tokens.
@CHILDREN Children of member.
@CURRMBR Member currently being calculated in the specified dimension.
@DESCENDANTS All descendants of member, or those descendants down to a specified distance.
@EQUAL Member names that match the specified token name.
@EXPAND Expands a member search by calling a member set function for each member in a member list.
@GENMBRS Members of dimension that are at generation.
@IALLANCESTORS Member and ancestors of member, including ancestors of shared member.
@IANCESTORS Member, and either all member ancestors or those ancestors up to a specified distance.
@ICHILDREN Member and its children.
@IDESCENDANTS Member, and either all member descendants or those descendants down to a specified distance.
@ILANCESTORS Members of the specified list of members, and either all ancestors of the specified list of members or those ancestors up to a specified distance.
@ILDESCENDANTS Members of the specified list of members, and either all descendants of the specified list of members or those descendants down to a specified distance.
@ILSIBLINGS Member and its left siblings.
@INTERSECT Members that are at the intersection of two specified lists of members.
@IRSIBLINGS Member and its right siblings.
@IRDESCENDANTS Member and all its descendants, or those descendants down to a specified distance, including descendants of shared member.
@ISIBLINGS Member and its siblings.
@LANCESTORS All ancestors of the specified list of members, or those ancestors up to a specified distance.
@LDESCENDANTS All descendants of the specified list of members, or those descendants down to a specified distance.
@LEVMBRS Members of dimension that are at level.
@LIST A single list compiled from arguments, and can be used for functions requiring an expression list, a member list, or a range list.
@LSIBLINGS Left siblings of member.
@MATCH Members that match a pattern search performed over a generation, a level, or a member and its descendants.
@MBRCOMPARE Member names that match the comparison criteria.
@MBRPARENT Parent of the specified member.
@MEMBER Member with name string.
@MEMBERAT Member at the specified location in a list.
@MERGE Merged list from two lists.
@NEXTSIBLING Next, or right-most, sibling of member.
@NOTEQUAL Member names that do not match the specified token name.
@PARENT Parent of the current member being calculated in dimension, optionally crossed with another member.
@PREVSIBLING Previous, or left-most, sibling of member.
@RANGE Member list that crosses a member from one dimension with a range from another dimension.
@RDESCENDANTS All descendants of member, or those down to a specified distance, including descendants of shared member.
@RELATIVE All members that are at distance from member.
@REMOVE List1, with anything that is also in list2 removed.
@RSIBLINGS Right siblings of member.
@SHIFTSIBLING Sibling at specified distance from member.
@SIBLINGS Siblings of member.
@UDA Members of dimension that have UDA.
@WITHATTR Base members from dimension that are associated with an attribute meeting a condition.
@XRANGE Range of members between (and inclusive of) two members at the same level.

Generation and Level Range Operators for Member Set Functions

The operators : and :: can be used with member set functions, which return a list of members. The : operator returns level-based ranges and the :: operator returns generation-based ranges. For example, Jan:Dec and Jan::Dec both return all members between and inclusive of Jan and Dec.

The difference is that Jan:Dec returns all members at the same level and Jan::Dec returns all members at the same generation.

For example, if we have the outline:

  Q1 - Jan
       Feb
       Mar
  Q2 - Apr
       May
       Jun
  Q3
  Q4 - Oct 
       Nov
       Dec

The function @MOVAVG(Sales, 3, Jan:Dec) computes @MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Q3, Oct, Nov, Dec).

The function @MOVAVG(Sales, 3, Jan::Dec) computes @MOVAVG(Sales, 3, Jan, Feb, Mar, Apr, May, Jun, Oct, Nov, Dec).