Get Free Trial
API reference
Table of contents

getMembers

getMembers(uniqueName: String, memberName: String, callbackHandler: Function): Array

[starting from version: 1.6]

Returns a list of members for the specified hierarchy. Note that getMembers has an async equivalent – getMembersAsync.

CSV data source. If the hierarchy has more than one level the method returns a tree where each member has a list of its children. It is enough to specify the uniqueName parameter only.

OLAP data source. If the hierarchy has more than one level the method returns only the members for the first level. To get children of the member, you should call getMembers() with uniqueName, memberName and callbackHandler parameters.

Parameters

  • uniqueName – String. The hierarchy’s unique name.
  • memberName optional – String. The hierarchy member’s name. This parameter can be an empty string, only the members for the first level of the hierarchy will be returned.
  • callbackHandler optional – Function. A callback handler becomes useful when you work with OLAP data sources and you are not really sure whether you have got all list of members taken in completely or not. OLAP data source is not loaded for the whole data from the moment of call but will be loaded on demand. A callback handler will be called by the component to pass the result asynchronously when the list of members is loaded. If you have already loaded the specified hierarchy members’ list into the component, callbackHandler will return instantly the result of the object.

Returns

An array of objects with member’s caption, uniqueName, hierarchyName, children, isLeaf and parentMember properties.

If data load is in progress and callbackHandler is not set, an empty array will be returned.

Examples

1) CSV data source, where Category hierarchy has only one level:

flexmonster.getMembers("Category"); 

/* method returns an array of objects
[
  {caption: "Accessories", hierarchyName: "Category",
uniqueName: "category.[accessories]", children: [],
isLeaf:true, parentMember:"(All)"
},
  {caption: "Cars", hierarchyName: "Category",
uniqueName: "category.[cars]", children: [],
isLeaf:true, parentMember:"(All)"
},
  {caption: "Clothing", hierarchyName: "Category",
uniqueName: "category.[clothing]", children: [],
isLeaf:true, parentMember:"(All)"
}
]
*/

Check out on JSFiddle.

2) CSV data source, where Date hierarchy has more than one level:

flexmonster.getMembers('Date'); 

/* method returns an array of objects
[
  {
caption: "2003",
  hierarchyName: "Date",
  uniqueName: "date.[2003]",
  children: [
   {
caption: "Quarter 1",
   hierarchyName: "Date",
   uniqueName: "date.quarter.[2003/quarter 1]",
   children: [
   {
caption: "January",
    hierarchyName: "Date",
    uniqueName: "date.quarter.[2003/quarter 1/january]",    
children: [ ],
isLeaf:true,
parentMember: "(All)"
  }
]
},
 {
caption: "Quarter 2",
 hierarchyName: "Date",
 uniqueName: "date.quarter.[2003/quarter 2]",
 children: [
  {
caption: "April",
  hierarchyName: "[Date].[Date]",
  uniqueName: "date.quarter.[2003/quarter 2/april]",
  children: [ ],
isLeaf:true,
parentMember: "(All)"
}
]
}
],
isLeaf:true,
parentMember: "(All)"
},
{
caption: "2004",
hierarchyName: "Date",
uniqueName: "date.[2004]",
children: [
{
caption: "Quarter 3",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3]",
children: [
{
caption: "July",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3/july]",    
children: [ ],
isLeaf:true,
parentMember: "(All)"
},
 {
caption: "August",
hierarchyName: "Date",
uniqueName: "date.quarter.[2004/quarter 3/august]",
    children: [ ],
isLeaf:true,
parentMember: "(All)"
}
]
}
],
isLeaf:true,
parentMember: "(All)"
}
]
*/

3) OLAP data source, where [Product].[Product Categories] hierarchy has more than one level:

flexmonster.getMembers('[Product].[Product Categories]', '', onGetMembers); 

function onGetMembers(members) {
  for (var i = 0; i < members.length; i++) {
   console.log(members[i]);
  }
}

/* the output will be the following:
[{
caption: "Accessories",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[4]"
}
{
caption: "Bikes",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[1]"
}
{
caption: "Clothing",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[3]"
}
{
caption: "Components",
dimensionName: "[Product]",
hierarchyCaption: "Product Categories",
hierarchyName: "[Product].[Product Categories]",
isLeaf: false,
parentMember: "[Product].[Product Categories].[All Products]",
uniqueName: "[Product].[Product Categories].[Category].&[2]"
}]

now you can ask for '[Product].[Product Categories].[Category].&[4]' members:
flexmonster.getMembers('[Product].[Product Categories]',
'[Product].[Product Categories].[Category].&[4]', onGetMembers);
*/

Open the example on JSFiddle.

See also

getMembersAsync