Execute Grid Operation

post

/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

Path Parameters
Body ()

Grid Operation to be performed.

Root Schema : GridOperation
Type: object

Grid operation to perform, specifying the grid, action, coordinates, and ranges.

Show Source
  • Allowed Values: [ "ZOOMIN", "ZOOMOUT", "KEEPONLY", "REMOVEONLY", "REFRESH", "PIVOT", "PIVOTTOPOV", "SUBMIT" ]

    Type of action to perform on the grid.

  • The active alias table for the grid.

  • 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
  • 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.

Nested Schema : coordinates
Type: 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.

Show Source
Nested Schema : Grid
Type: object
Show Source
Nested Schema : ranges
Type: 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.

Show Source
Nested Schema : dimensions
Type: array

The part of the grid that describes the included Essbase dimensions and their locations.

Show Source
  • 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-10New YorkActual
     Sales  
    Jan1052  

Nested Schema : Slice
Type: object

The part of the grid that contains columns, rows and data.

Show Source
Nested Schema : GridDimension
Type: 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-10New YorkActual
 Sales  
Jan1052  

Show Source
Nested Schema : Data
Type: object
Show Source
Nested Schema : dirtyCells
Type: array

Array of indexes marking which values are are changed. Required for submit action.

Show Source
Nested Schema : dirtyTexts
Type: array

Array of indexes marking which cell comments are changed.

Show Source
Nested Schema : ranges
Type: array
Show Source
  • GridRange

    Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.

Nested Schema : GridRange
Type: object

Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.

Show Source
Nested Schema : dataFormats
Type: array

Data formats, if format strings are applied.

Show Source
Nested Schema : enumIds
Type: array

(Internal use)

Show Source
Nested Schema : filters
Type: array
Show Source
Nested Schema : statuses
Type: 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.

Show Source
Nested Schema : texts
Type: array

Cell comments.

Show Source
Nested Schema : types
Type: array

Data types of the cells.

  • 0: text
  • 2: double
  • 7: empty

Show Source
Nested Schema : values
Type: array

Cell values, in single-dimension format.

Show Source
Nested Schema : items
Type: array
Show Source
Back to Top

Response

Supported Media Types

200 Response

OK

Grid operation completed successfully.

Body ()
Root Schema : Grid
Type: object
Show Source
Nested Schema : dimensions
Type: array

The part of the grid that describes the included Essbase dimensions and their locations.

Show Source
  • 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-10New YorkActual
     Sales  
    Jan1052  

Nested Schema : Slice
Type: object

The part of the grid that contains columns, rows and data.

Show Source
Nested Schema : GridDimension
Type: 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-10New YorkActual
 Sales  
Jan1052  

Show Source
Nested Schema : Data
Type: object
Show Source
Nested Schema : dirtyCells
Type: array

Array of indexes marking which values are are changed. Required for submit action.

Show Source
Nested Schema : dirtyTexts
Type: array

Array of indexes marking which cell comments are changed.

Show Source
Nested Schema : ranges
Type: array
Show Source
  • GridRange

    Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.

Nested Schema : GridRange
Type: object

Range describing grid data. Includes values, types, texts, statuses, enumIds, data, dataFormats, and start and end points.

Show Source
Nested Schema : dataFormats
Type: array

Data formats, if format strings are applied.

Show Source
Nested Schema : enumIds
Type: array

(Internal use)

Show Source
Nested Schema : filters
Type: array
Show Source
Nested Schema : statuses
Type: 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.

Show Source
Nested Schema : texts
Type: array

Cell comments.

Show Source
Nested Schema : types
Type: array

Data types of the cells.

  • 0: text
  • 2: double
  • 7: empty

Show Source
Nested Schema : values
Type: array

Cell values, in single-dimension format.

Show Source

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