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
DecThe 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).