Execute Grid Operation

post

/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

Path Parameters
Query Parameters
  • Default is true. When repeatMemberLabels is 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), set svParity to false.

Back to Top

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.

Back to Top

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" : [ "", "", "", "", "", "", "", "", "", "", "", "" ]
      } ]
    }
  }
}
Back to Top