Cube GetCellDebugInformation
Retrieves the debug information of a cell, given its coordinates. The debug information includes:
- Cell coordinates
- Cell type, either basic or calculated
- If relevant, the rule that calculates the cell value
- If relevant, details about the base descendants that are consolidated in the cell
Request
This example requests details about the base descendants that are consolidated in the cell.
<Alea:Document xmlns:Alea="http://www.misag.com">
<Alea:Request RequestID="001" Class="Cube" Method="GetCellDebugInformation">
<Alea:CellCoordinates Cube="Sales">
<Alea:Element Dimension="PROFIT" Name="Revenue" />
<Alea:Element Dimension="TIME" Name="2014" />
<Alea:Element Dimension="VERSION" Name="Actual" />
<Alea:Element Dimension="CURRTYPE" Name="USD" />
<Alea:Element Dimension="LEVEL" Name="IFRS" />
<Alea:Element Dimension="UNIT" Name="G0000" />
<Alea:Element Dimension="INTERCO" Name="TotalPartner" />
<Alea:Element Dimension="PRODUCT" Name="T (118 mph 190 km/h)" Hierarchy="Speed Rating" />
</Alea:CellCoordinates>
</Alea:Request>
</Alea:Document>
If no hierarchy is specified for an element, the default hierarchy is used.
You can also write the request like this:
<Alea:Document xmlns:Alea="http://www.misag.com">
<Alea:Request RequestID="001" Class="Cube" Method="GetCellDebugInformation">
<Alea:CellCoordinates Cube="sales" Elements="2014[Actual[USD[IFRS[G0000[TotalPartner[T (118 mph 190 km/h)[Revenue" Hierarchies="[[[[[[Speed Rating[" />
</Alea:Request>
</Alea:Document>
The elements and hierarchies must be presented in the native order of
the dimensions inside the cube. This order can be different from the order of the dimensions
in MDX / XMLA. You can check the native order using the Cube GetList
function.
Answer
The Cell Coordinates section provides the cell coordinates of the cell that was requested. For each dimension there is a row with dimension name, hierarchy name, and element name. The different parts are tab separated.<Alea:Document xmlns:Alea="http://www.misag.com"> <Alea:Request RequestID="001"> <Alea:Return> <Alea:CellNote> ---Cell Coordinates ------------------------------- TIME TIME 2014 VERSION VERSION Actual CURRTYPE CURRTYPE USD LEVEL LEVEL IFRS UNIT UNIT G0000 INTERCO INTERCO TotalPartner PRODUCT Speed Rating T (118 mph 190 km/h) PROFIT PROFIT Revenue Internal Key: 274 1 3 1 10 21 52 13 External Key: 294 1 3 1 10 19 50 9 --------------------------------------------------------- Cell Type: Calculated Consolidated by: TIME:'2014' 12 - Base Descendants UNIT:'G0000' 7 - Base Descendants INTERCO:'TotalPartner' 18 - Base Descendants PRODUCT:'T (118 mph 190 km/h)' 11 - Base Descendants Total consolidated cells: 16632</Alea:CellNote> </Alea:Return> </Alea:Request> </Alea:Document>
---Cell Coordinates -------------------------------
TIME TIME 2014
VERSION VERSION Actual
CURRTYPE CURRTYPE USD
LEVEL LEVEL IFRS
UNIT UNIT G0000
INTERCO INTERCO TotalPartner
PRODUCT Speed Rating T (118 mph 190 km/h)
PROFIT PROFIT Revenue
Depending on the cell type, different information is returned. Next are examples for each of the cell types.
The Cell Coordinates section also includes the internal and external IDs of the elements for all dimensions. The external IDs are for users. The internal IDs are not important to users.
Internal Key: 274 1 3 1 10 21 52 13
External Key: 294 1 3 1 10 19 50 9
The Cell Type: Calculated section provides information about a cell on aggregated level. The section includes the dimensions in which there are aggregated elements. In the Base Descendants dimension there is an aggregated element and it has 12 descendants on base level.
The total number of cells to consolidate is the multiplication of the numbers above. In this example, 12*7*18*11=16.632. OLAP searches for this number of base cells and aggregate the cells.
Consolidated by:
TIME:'2014' 12 - Base Descendants
UNIT:'G0000' 7 - Base Descendants
INTERCO:'TotalPartner' 18 - Base Descendants
PRODUCT:'T (118 mph 190 km/h)' 11 - Base Descendants
Total consolidated cells: 16632
The Cell Type: Calculated section provides information about a cell on aggregated level. The information is the same as for a base level rule.
Cell Type: Calculated
Rule: [PROFIT:'Price per Unit']=[PROFIT:'Revenue']/[PROFIT:'Sales Volume'];
---Optimized Rule References-----------------------
[PROFIT:'Revenue']
[PROFIT:'Sales Volume']
The Cell Type: Basic section provides information about the base cell and its type.
Cell Type: Basic
Numeric Cell
This is a rule on a cell.
Rule: [CURRTYPE:'USD']=IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='A',
[CURRTYPE:'LC'] / DB('EXRATE',!TIME, !VERSION, 'USD', 'Average rate',
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')),
IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='E',
[CURRTYPE:'LC'] /
DB('EXRATE',!TIME, !VERSION, 'USD', 'End rate',
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')
),
IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='U',[CURRTYPE:'LC'],
stet
)
)
);
The Optimized Rule References section provides detail on the rule. This information is useful when optimizing rules.
GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')
[CURRTYPE:'LC']
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')
GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')
[CURRTYPE:'LC']
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')
GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')
[CURRTYPE:'LC']
IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='A',
[CURRTYPE:'LC'] / DB('EXRATE',!TIME, !VERSION, 'USD', 'Average rate',
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')),
IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='E',
[CURRTYPE:'LC'] /
DB('EXRATE',!TIME, !VERSION, 'USD', 'End rate',
DB('UNITCONF',!TIME, !VERSION, !UNIT, 'Currency')
),
IF(GETATTR('PROFIT', !Profit, 1, 'CurrConTyp')@='U',[CURRTYPE:'LC'],
stet
)
)
)
The Acceleration Flag section describes whether there is an accelerator flag on this cell. If yes, the accelerators are listed in this section.
Acceleration Flag
Targeted by Accelerators:
[MEASURE:'Discounts']>[MEASURE:'Discount in percent']
NO Acceleration Flag
Trigger for Accelerators:
[MEASURE:'Discounts']>[MEASURE:'Discount in percent']
Error
<Alea:Document>
<Alea:Request RequestID="001">
<Alea:Error ErrorID="error_code"/>
</Alea:Request>
</Alea:Document>