Member Set Functions
Member set functions return a list of members. This list is based on the member specified and the function used. You can use operators to specify Generation and Level Range Operators for Member Set Functions with member set functions.
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.
Table 2-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).