Execute Grid Operation
/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):
Application name for grid operation.
-
databaseName(required):
Database/Cube name for grid operation.
-
svParity:
Default is true. When
repeatMemberLabelsis set to false in the Essbase session's grid preferences, repeated headings for column/page orientation on the grid are not preserved after a retrieval in the REST API, whereas they are preserved in the similar Java API operation. If you require preservation of repeated column headings (Java API like behavior), setsvParityto false.
Response
200 Response
OK
Grid operation completed successfully.
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" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
} ]
}
}
}