Skip to content

cube.slice

Slices data from an intersection of elements from their respective dimensions within the cube.

js
cube.slice(cubeName, elements...)
cube.slice(cubeName, elementsArray)
cube.slice(cubeName, elementsByDimension)
cube.slice(cubeName, ignoreConsolidations, elements...)
cube.slice(cubeName, ignoreConsolidations, elementsArray)
cube.slice(cubeName, ignoreConsolidations, elementsByDimension)

Parameters

  • cubeName (string): The identifier of the cube.
  • ignoreConsolidations (boolean): If true, consolidated elements are ignored and only leaf-level intersections are returned. (optional)
  • elements (string... | string[] | object): One element per dimension in the cube (in dimensional order).

When elements is an object: ^v2.7.194

  • Keys must match dimension names.
  • Missing dimensions default to "".

Each dimension argument:

  • May contain a single value.
  • May contain multiple values separated by a pipe (|).
  • May be an empty string ("") to include all elements in that dimension (based on valid intersections).

Returns

  • slice (object): A slice result set that can be iterated and also read using cursor-style methods.

The returned slice supports:

  • Size() (number): Total number of rows available in the slice.
  • Reset(): Resets the slice cursor back to the start.
  • EOF() (boolean): Returns true when no more rows are available.
  • Next() (array): Returns the next available row and advances the cursor.
  • GetIndex() (number): Returns the current cursor index (0-based).
  • exportCsv(filename, withHeaders, escapeControlCharacters (optional)): Exports the slice to a CSV file.

As of ^v2.7.194, the returned slice is also iterable, so you can use for...of.

Each row returned from Next() or iteration is an array containing the cell locations elements and value:

[
  element1,
  element2,
  ...
  elementN,
  value
]

Examples

Iterable ^v2.7.194

js
// Cube Name - Sales; 
// Dimensions: Year, Month, Scenario, Department, Product, Measures 
var slice = cube.slice("Sales", "2017|2018", "", "Actual", "", "", "Units Sold");

for (var row of slice) {
    console.log(row);
}

Cursor Style

js
// Cube Name - Sales; 
// Dimensions: Year, Month, Scenario, Department, Product, Measures 
var slice = cube.slice("Sales", "2017|2018", "", "Actual", "", "", "Units Sold");

while (!slice.EOF()) {
    var row = slice.Next();
    console.log(row);
}

Object Example ^v2.7.194

js
// Cube Name - Sales; 
// Dimensions: Year, Month, Scenario, Department, Product, Measures 
var slice = cube.slice("Sales", {
    "Year": "2017|2018",
    "Scenario": "Actual",
    "Measures": "Units Sold"
});

for (var row of slice) {
    console.log(row);
}

Export to CSV

js
var slice = cube.slice("Sales", "2017|2018", "", "Actual", "", "", "Units Sold");
slice.exportCsv("exports/sales_slice.csv", true);