Execute Grid Operation
/essbase/rest/v1/applications/{applicationName}/databases/{databaseName}/grid
Returns the grid for specified operation. Supported grid operations are Zoom In (zoomin), Zoom Out (zoomout), Refresh (refresh), Keep Only (keeponly), Remove Only (removeonly), Submit (submit), Pivot (pivot), and Pivot To POV (pivotToPOV).
Request
-
applicationName(required): string
Application name for grid operation.
-
databaseName(required): string
Database/Cube name for grid operation.
Grid Operation to be performed.
object
Grid operation to perform, specifying the grid, action, coordinates, and ranges.
-
action:
string
Allowed Values:
[ "ZOOMIN", "ZOOMOUT", "KEEPONLY", "REMOVEONLY", "REFRESH", "PIVOT", "PIVOTTOPOV", "SUBMIT" ]
Type of action to perform on the grid.
-
alias:
string
The active alias table for the grid.
-
coordinates:
array coordinates
Coordinates array for grid operation. Specify using syntax
"coordinates": [index]
, where index describes a cell position, starting with 0 for the upper-left-most cell, and counting left to right, row by row. -
grid:
object Grid
-
ranges:
array ranges
Range object used for zoomin, zoomout, keeponly, and removeonly grid operations. Specify one or more ranges as an array using the syntax:
"ranges": [rowNo,colNo,noOfRows,noOfCols]
, where the first argument is row number (start at 0), the second argument is column (start at 0), third argument is number of rows, and the fourth argument is number of columns.
array
Coordinates array for grid operation. Specify using syntax "coordinates": [index]
, where index describes a cell position, starting with 0 for the upper-left-most cell, and counting left to right, row by row.
object
-
alias:
string
The active alias table for the grid.
-
dimensions:
array dimensions
The part of the grid that describes the included Essbase dimensions and their locations.
-
slice:
object Slice
The part of the grid that contains columns, rows and data.
array
Range object used for zoomin, zoomout, keeponly, and removeonly grid operations. Specify one or more ranges as an array using the syntax: "ranges": [rowNo,colNo,noOfRows,noOfCols]
, where the first argument is row number (start at 0), the second argument is column (start at 0), third argument is number of rows, and the fourth argument is number of columns.
array
The part of the grid that describes the included Essbase dimensions and their locations.
-
Array of:
object GridDimension
Dimension object array describing the position of a dimension. Includes name, column, row, and pov. If column = 0, the dimension is located at 0th column in grid. If row = 1, it is located at first row in the grid. If the dimension contains a POV, then that dimension is marked with the pov filter. In the following example, Product (100-10), Market (New York), and Scenario (Actual) are in the POV, Measures (Sales) is on columns, and Year (Jan) is on rows.
100-10 New York Actual Sales Jan 1052
object
The part of the grid that contains columns, rows and data.
-
columns:
integer(int32)
Number of columns in the grid.
-
data:
object Data
-
dirtyCells:
array dirtyCells
Array of indexes marking which values are are changed. Required for submit action.
-
dirtyTexts:
array dirtyTexts
Array of indexes marking which cell comments are changed.
-
rows:
integer(int32)
Number of rows in the grid.
object
Dimension object array describing the position of a dimension. Includes name, column, row, and pov. If column = 0, the dimension is located at 0th column in grid. If row = 1, it is located at first row in the grid. If the dimension contains a POV, then that dimension is marked with the pov filter. In the following example, Product (100-10), Market (New York), and Scenario (Actual) are in the POV, Measures (Sales) is on columns, and Year (Jan) is on rows.
100-10 | New York | Actual | |
---|---|---|---|
Sales | |||
Jan | 1052 |
-
column:
integer(int32)
Column location of the dimension in the grid.
-
displayName:
string
-
expanded:
boolean
- hidden: boolean
-
name:
string
Dimension name.
-
pov:
string
If dimension is in the POV, the member name. POV is point of view: the starting context or scope for the grid.
-
row:
integer(int32)
Row location of the dimension in the grid.
array
Array of indexes marking which values are are changed. Required for submit action.
array
Array of indexes marking which cell comments are changed.
array
-
Array of:
object GridRange
Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.
object
Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.
-
dataFormats:
array dataFormats
Data formats, if format strings are applied.
-
end:
integer(int32)
Number of elements in the grid range.
-
enumIds:
array enumIds
(Internal use)
-
filters:
array filters
-
start:
integer(int32)
Start of the grid range. 0 by default.
-
statuses:
array statuses
Cell statuses. Cell status is additional information that may be returned for a cell value. DC: Dynamic Calc. RO: Read Only. CM: Calculated Member. LO: Linked Object.
-
texts:
array texts
Cell comments.
-
types:
array types
Data types of the cells.
0
: text2
: double7
: empty
-
values:
array values
Cell values, in single-dimension format.
array
Cell statuses. Cell status is additional information that may be returned for a cell value. DC: Dynamic Calc. RO: Read Only. CM: Calculated Member. LO: Linked Object.
Response
- application/json
- application/xml
200 Response
OK
Grid operation completed successfully.
object
-
alias:
string
The active alias table for the grid.
-
dimensions:
array dimensions
The part of the grid that describes the included Essbase dimensions and their locations.
-
slice:
object Slice
The part of the grid that contains columns, rows and data.
array
The part of the grid that describes the included Essbase dimensions and their locations.
-
Array of:
object GridDimension
Dimension object array describing the position of a dimension. Includes name, column, row, and pov. If column = 0, the dimension is located at 0th column in grid. If row = 1, it is located at first row in the grid. If the dimension contains a POV, then that dimension is marked with the pov filter. In the following example, Product (100-10), Market (New York), and Scenario (Actual) are in the POV, Measures (Sales) is on columns, and Year (Jan) is on rows.
100-10 New York Actual Sales Jan 1052
object
The part of the grid that contains columns, rows and data.
-
columns:
integer(int32)
Number of columns in the grid.
-
data:
object Data
-
dirtyCells:
array dirtyCells
Array of indexes marking which values are are changed. Required for submit action.
-
dirtyTexts:
array dirtyTexts
Array of indexes marking which cell comments are changed.
-
rows:
integer(int32)
Number of rows in the grid.
object
Dimension object array describing the position of a dimension. Includes name, column, row, and pov. If column = 0, the dimension is located at 0th column in grid. If row = 1, it is located at first row in the grid. If the dimension contains a POV, then that dimension is marked with the pov filter. In the following example, Product (100-10), Market (New York), and Scenario (Actual) are in the POV, Measures (Sales) is on columns, and Year (Jan) is on rows.
100-10 | New York | Actual | |
---|---|---|---|
Sales | |||
Jan | 1052 |
-
column:
integer(int32)
Column location of the dimension in the grid.
-
displayName:
string
-
expanded:
boolean
- hidden: boolean
-
name:
string
Dimension name.
-
pov:
string
If dimension is in the POV, the member name. POV is point of view: the starting context or scope for the grid.
-
row:
integer(int32)
Row location of the dimension in the grid.
array
Array of indexes marking which values are are changed. Required for submit action.
array
Array of indexes marking which cell comments are changed.
array
-
Array of:
object GridRange
Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.
object
Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.
-
dataFormats:
array dataFormats
Data formats, if format strings are applied.
-
end:
integer(int32)
Number of elements in the grid range.
-
enumIds:
array enumIds
(Internal use)
-
filters:
array filters
-
start:
integer(int32)
Start of the grid range. 0 by default.
-
statuses:
array statuses
Cell statuses. Cell status is additional information that may be returned for a cell value. DC: Dynamic Calc. RO: Read Only. CM: Calculated Member. LO: Linked Object.
-
texts:
array texts
Cell comments.
-
types:
array types
Data types of the cells.
0
: text2
: double7
: empty
-
values:
array values
Cell values, in single-dimension format.
array
Cell statuses. Cell status is additional information that may be returned for a cell value. DC: Dynamic Calc. RO: Read Only. CM: Calculated Member. LO: Linked Object.
400 Response
Bad Request
Failed to execute grid operation. The application name or database name may be incorrect or missing.
500 Response
Internal Server Error.
Examples
The following examples show how to perform Essbase grid operations.
This example uses cURL to access the REST API from a Windows shell script. The calling user's ID and password are variables whose values are set in properties.bat
.
Script with cURL Command
The cURL command sends a submit operation on the grid described in the input gridsubmit.json
.
call properties.bat
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/Sample/databases/Basic/grid" -H "Accept:application/json" -H "Content-Type:application/json" --data "@./gridsubmit.json" -o out_gridsubmit.json -u %User%:%Password%
Examples of other operations you can execute as JSON objects will follow the Submit example.
Submit Example
The following grid submit operation submits data value 1052
to ([Jan], [Sales], [Cola], [New York], [Actual])
.
- | Cola | New York | Actual |
---|---|---|---|
- | Sales | - | - |
Jan | 1052 | - | - |
Input Grid for Submit
The input grid and action to send the submit operation are in gridsubmit.json
, which looks like:
{
"action": "submit",
"grid": {
"dimensions": [
{
"name": "Year",
"column": 0
},
{
"name": "Measures",
"row": 1
},
{
"name": "Product",
"pov": "Product"
},
{
"name": "Market",
"pov": "Market"
},
{
"name": "Scenario",
"pov": "Scenario"
}
],
"slice": {
"columns": 4,
"rows": 3,
"dirtyCells": [ 9 ],
"data": {
"ranges": [
{
"end": 11,
"values": [ "", "100-10", "New York", "Actual", "", "Sales", "", "", "Jan", "1052", "", "" ],
"types": [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ]
}
]
}
}
}
}
The submit action requires a dirtyCells array. Specify one or indexes of changed values (where count starts with 0 for the first value in the values array). Use the syntax:
"dirtyCells": [index]
where the index argument describes the position of at least one cell that is changed by the submit operation. Multiple index arguments can be given in the array, separated by commas.
Response Grid for Submit
The resulting response written to out_gridsubmit.json
is:
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Cola",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "New York",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Actual",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 11,
"values" : [ "", "Cola", "New York", "Actual", "", "Sales", "", "", "Jan", "1052.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435472", "402653200", "536870928", "0", "134217744", "0", "0", "16", "2", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
The alias table used in the grid is named Default. Each dimension of the cube is listed in the dimensions
object. The slice
object describes the number of columns and rows, and the position, values, and types of data cells. Data cell types are 0
for text, 2
for doubles, and 7
for empty.
Refresh Example
The following grid refresh operation returns to the default Sample Basic grid.
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Year | 105522 | - | - |
Input Grid for Refresh
The input grid and action to send the refresh operation are in gridrefresh.json
, which looks like:
{
"action" : "refresh",
"grid": {
"dimensions" : [ {
"name" : "Year",
"column" : 0
}, {
"name" : "Measures",
"row" : 1
}, {
"name" : "Product",
"pov" : "Product"
}, {
"name" : "Market",
"pov" : "Market"
}, {
"name" : "Scenario",
"pov" : "Scenario"
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"end" : 11,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Year", "105522.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "135", "1", "0", "0" ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats" : [ null, null, null, null, null, null, null, null, null, null, null, null ]
} ]
}
}
}
}
Response Grid for Refresh
The resulting response grid is:
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Product",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "Market",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Scenario",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 11,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Year", "105522.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "135", "1", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
Zoom In Example
The following grid zoom-in operation expands the Year dimension to analyze the quarters.
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr1 | 24703 | - | - |
Qtr2 | 27107 | - | - |
Qtr3 | 27912 | - | - |
Qtr4 | 25800 | - | - |
Year | 105522 | - | - |
Input Grid for Zoom In
The input grid and action to send the zoom in operation are in gridzoomin.json
, which looks like:
{
"action" : "zoomin",
"ranges": [[2,0,1,1]],
"grid": {
"dimensions" : [ {
"name" : "Year",
"column" : 0
}, {
"name" : "Measures",
"row" : 1
}, {
"name" : "Product",
"pov" : "Product"
}, {
"name" : "Market",
"pov" : "Market"
}, {
"name" : "Scenario",
"pov" : "Scenario"
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"end" : 11,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Year", "105522.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "135", "1", "0", "0" ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats" : [ null, null, null, null, null, null, null, null, null, null, null, null ]
} ]
}
}
}
}
The zoom in action requires a ranges object. Specify one or more ranges as an array using the syntax:
"ranges": [rowNo,colNo,noOfRows,noOfCols]
where the first argument is row number (start at 0), the second argument is column (start at 0), third argument is number of rows, and the fourth argument is number of columns. For example, in the default grid for Sample Basic,
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Year | 105522 | - | - |
if you want to zoom in on Year (coordinate 2,0), provide "ranges": [[2,0,1,1]]
after the action. To zoom in on multiple cells at the same time, provide multiple ranges as shown: "ranges": [[2,0,1,1],[1,1,1,1]]
, which zooms in on both Year and Measures.
Response Grid for Zoom In
The resulting response grid is:
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Product",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "Market",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Scenario",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 7,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 27,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr1", "24703.0", "", "", "Qtr2", "27107.0", "", "", "Qtr3", "27912.0", "", "", "Qtr4", "25800.0", "", "", "Year", "105522.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "135", "1", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
Zoom Out Example
The following grid zoom-out operation collapses the quarters in the Year dimension so as to view only the year total again.
Input Grid for Zoom Out
The input grid and action to send the zoom out operation are in gridzoomout.json
, which looks like:
{
"action" : "zoomout",
"ranges": [[2,0,1,1]],
"grid":
{
"dimensions" : [ {
"name" : "Year",
"column" : 0
}, {
"name" : "Measures",
"row" : 1
}, {
"name" : "Product",
"pov" : "Product"
}, {
"name" : "Market",
"pov" : "Market"
}, {
"name" : "Scenario",
"pov" : "Scenario"
} ],
"slice" : {
"columns" : 4,
"rows" : 6,
"data" : {
"ranges" : [ {
"end" : 23,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr1", "24703.0", "", "", "Qtr2", "27107.0", "", "", "Qtr3", "27912.0", "", "", "Qtr4", "25800.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0" ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ]
} ]
}
}
}
}
The zoom out action requires a ranges object. Specify one or more ranges as an array using the syntax:
"ranges": [rowNo,colNo,noOfRows,noOfCols]
where the first argument is row number (start at 0), the second argument is column (start at 0), third argument is number of rows, and the fourth argument is number of columns. For example, in the following grid for Sample Basic,
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr1 | 24703 | - | - |
Qtr2 | 27107 | - | - |
Qtr3 | 27912 | - | - |
Qtr4 | 25800 | - | - |
Year | 105522 | - | - |
if you want to zoom out on Qtr1 (coordinate 2,0), provide "ranges": [[2,0,1,1]]
after the action. To zoom out on multiple cells at the same time, provide multiple ranges as shown: "ranges": [[2,0,1,1],[1,1,1,1]]
(not applicable in this example, as Measures is already zoomed out).
Response Grid for Zoom Out
The resulting response grid is:
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Year | 105522 | - | - |
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Product",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "Market",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Scenario",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 11,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Year", "105522.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "135", "1", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
Keep Only Example
The following grid keep-only example removes all the quarters except for Qtr1 from the following grid:
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr1 | 24703 | - | - |
Qtr2 | 27107 | - | - |
Qtr3 | 27912 | - | - |
Qtr4 | 25800 | - | - |
Year | 105522 | - | - |
Input Grid for Keep Only
The input grid and action to send the keep only operation are in gridkeeponly.json
, which looks like:
{
"action" : "keeponly",
"ranges": [[2,0,1,1]],
"grid":
{
"dimensions" : [ {
"name" : "Year",
"column" : 0
}, {
"name" : "Measures",
"row" : 1
}, {
"name" : "Product",
"pov" : "Product"
}, {
"name" : "Market",
"pov" : "Market"
}, {
"name" : "Scenario",
"pov" : "Scenario"
} ],
"slice" : {
"columns" : 4,
"rows" : 6,
"data" : {
"ranges" : [ {
"end" : 23,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr1", "24703.0", "", "", "Qtr2", "27107.0", "", "", "Qtr3", "27912.0", "", "", "Qtr4", "25800.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0" ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ]
} ]
}
}
}
}
Response Grid for Keep Only
The resulting response grid is:
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr1 | 24703 | - | - |
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Product",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "Market",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Scenario",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 11,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr1", "24703.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
Remove Only Example
The following grid remove-only operation removes only Qtr1 from the Year dimension, in the following grid:
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr1 | 24703 | - | - |
Qtr2 | 27107 | - | - |
Qtr3 | 27912 | - | - |
Qtr4 | 25800 | - | - |
Year | 105522 | - | - |
Input Grid for Remove Only
The input grid and action to send the remove-only operation are in gridremoveonly.json
, which looks like:
{
"action" : "removeonly",
"ranges": [[2,0,1,1]],
"grid":
{
"dimensions" : [ {
"name" : "Year",
"column" : 0
}, {
"name" : "Measures",
"row" : 1
}, {
"name" : "Product",
"pov" : "Product"
}, {
"name" : "Market",
"pov" : "Market"
}, {
"name" : "Scenario",
"pov" : "Scenario"
} ],
"slice" : {
"columns" : 4,
"rows" : 6,
"data" : {
"ranges" : [ {
"end" : 23,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr1", "24703.0", "", "", "Qtr2", "27107.0", "", "", "Qtr3", "27912.0", "", "", "Qtr4", "25800.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0" ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ]
} ]
}
}
}
}
Response Grid for Remove Only
The resulting response grid is:
- | Product | Market | Scenario |
---|---|---|---|
- | Measures | - | - |
Qtr2 | 27107 | - | - |
Qtr3 | 27912 | - | - |
Qtr4 | 25800 | - | - |
Year | 105522 | - | - |
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Product",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "Market",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Scenario",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 5,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 19,
"values" : [ "", "Product", "Market", "Scenario", "", "Measures", "", "", "Qtr2", "27107.0", "", "", "Qtr3", "27912.0", "", "", "Qtr4", "25800.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "268435475", "402653203", "536870923", "0", "134217739", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0", "134", "1", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}
Pivot Example
The following grid pivot operation moves New York to rows. Pivot either moves columns to rows, or rows to columns. If you pivot a POV member, it moves to rows. The starting grid looks like:
- | Cola | New York | Actual |
---|---|---|---|
- | Sales | - | - |
Jan | 1052 | - | - |
Input Grid for Pivot
The input grid and action to send the pivot operation are in gridpivot.json
, which looks like:
{
"action": "pivot",
"coordinates": [ 2 ],
"grid": {
"dimensions": [
{
"name": "Year",
"column": 0
},
{
"name": "Measures",
"row": 1
},
{
"name": "Product",
"pov": "Product"
},
{
"name": "Market",
"pov": "Market"
},
{
"name": "Scenario",
"pov": "Scenario"
}
],
"slice": {
"columns": 4,
"rows": 3,
"data": {
"ranges": [ {
"end": 11,
"values": [ "", "100-10", "New York", "Actual", "", "Sales", "", "", "Jan", "1051", "", "" ],
"types": [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ]
}
]
}
}
}
}
The pivot action requires a coordinates array. Specify a coordinate as an array using the syntax:
"coordinates": [index]
where the index argument describes the cell position of the member to pivot, starting with 0 for the upper-left-most cell, and counting left to right, row by row.
Response Grid for Pivot
The resulting response grid is:
- | - | Cola | Actual |
---|---|---|---|
- | - | Sales | - |
New York | Jan | 1052 | - |
{
"action": "pivot",
"coordinates": [ 2 ],
"grid": {
"dimensions": [
{
"name": "Year",
"column": 0
},
{
"name": "Measures",
"row": 1
},
{
"name": "Product",
"pov": "Product"
},
{
"name": "Market",
"pov": "Market"
},
{
"name": "Scenario",
"pov": "Scenario"
}
],
"slice": {
"columns": 4,
"rows": 3,
"data": {
"ranges": [ {
"end": 11,
"values": [ "", "100-10", "New York", "Actual", "", "Sales", "", "", "Jan", "1051", "", "" ],
"types": [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ]
}
]
}
}
}
}
Pivot to POV Example
The following grid moves New York back to POV, starting with the grid in the previous example.
Input Grid for Pivot to POV
The input grid and action to send the pivot-to-POV operation are in gridpivottopov.json
, which looks like:
{
"action": "pivotToPOV",
"coordinates": [ 8, 2 ],
"grid": {
"dimensions": [
{
"name": "Year",
"column": 1
},
{
"name": "Measures",
"row": 1
},
{
"name": "Product",
"pov": "100-10"
},
{
"name": "Market",
"column": 0
},
{
"name": "Scenario",
"pov": "Actual"
}
],
"slice": {
"columns": 4,
"rows": 3,
"data": {
"ranges": [
{
"end": 11,
"values": [ "", "", "100-10", "Actual", "", "", "Sales", "", "New York", "Jan", "1051.0", "" ],
"types": [ "7", "7", "0", "0", "7", "7", "0", "7", "0", "0", "2", "7" ],
"texts": [ null, null, null, null, null, null, null, null, null, null, null, null ],
"statuses": [ "0", "0", "268435472", "536870928", "0", "0", "134217744", "0", "402653200", "16", "2", "0" ],
"enumIds": ["", "", "", "", "", "", "", "", "", "", "", "" ],
"dataFormats": [ null, null, null, null, null, null, null, null, null, null, null, null ]
}
]
}
}
}
}
Response Grid for Pivot to POV
The resulting response grid is:
- | New York | Cola | Actual |
---|---|---|---|
- | Sales | - | - |
Jan | 1052 | - | - |
{
"alias" : "Default",
"dimensions" : [ {
"name" : "Year",
"row" : -1,
"column" : 0,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Measures",
"row" : 1,
"column" : -1,
"pov" : "",
"hidden" : false,
"expanded" : false
}, {
"name" : "Product",
"row" : -1,
"column" : -1,
"pov" : "Cola",
"hidden" : false,
"expanded" : false
}, {
"name" : "Market",
"row" : -1,
"column" : -1,
"pov" : "New York",
"hidden" : false,
"expanded" : false
}, {
"name" : "Scenario",
"row" : -1,
"column" : -1,
"pov" : "Actual",
"hidden" : false,
"expanded" : false
} ],
"slice" : {
"columns" : 4,
"rows" : 3,
"data" : {
"ranges" : [ {
"start" : 0,
"end" : 11,
"values" : [ "", "New York", "Cola", "Actual", "", "Sales", "", "", "Jan", "1052.0", "", "" ],
"types" : [ "7", "0", "0", "0", "7", "0", "7", "7", "0", "2", "7", "7" ],
"texts" : [ null, null, null, null, null, null, null, null, null, null, null, null ],
"dataFormats" : [ ],
"statuses" : [ "0", "402653200", "268435472", "536870928", "0", "134217744", "0", "0", "16", "2", "0", "0" ],
"filters" : [ ],
"enumIds" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}