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): Iftrue, 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): Returnstruewhen 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);