Skip to content

Block Event Payloads

When using the block events Transactional Drill Block or Writeback Write Block, CALUMO looks at the referenced SQL Stored Procedure and checks to see if it is expecting a parameter named either @xml or @json and passes the correct payload type in.

Payload structure

The payload is made up of a primary object, a CalumoWriteback, which details the event as well as returning an array of all the cells being drilled or written to.

CalumoWriteback

The following details the structure of a CalumoWriteback.

Property Description
OlapDatasourceAlias The alias of the datasource as configured in CALUMO Server Configuration > Datasources
OlapDatasourcePhysical The name of the physical Analysis Services Server\Instance that the alias points to.
OlapDatasourceCatalog The name of the olap catalog that is being referenced
OlapDatasourceCube The name of the olap cube that is being referenced
ServerTimeUTC The time of the event in UTC based on the server time
ServerTimeLocal The time of the event in the local servers time
Source The source of the event with the valid values being either Excel, Web or Unknown
SqlDatabase The name of the SQL database being targeted for the execution of the event
SqlDatasource The name of SQL Server Server\Instance that is being targeted for the execution of the event
UserId The user id of the user performing the event
WritebackItems The array of WritebackItems that were actioned by the user
WritebackStoredProcId the id in the CALUMO database table WritebackStoredProcs for the configured event that was triggered

WritebackItem

The following details the structure of a WritebackItem.

Property Description
CellAddress The cell address that was being written to in R1C1 format
IsNote Whether or not this was a note writeback
NewValue The value being written back to this cell
NoteHash The computed hash of the note that is being stored
OriginalValue The original / existing value in the cell
Items The array of populated WritebackItemParam objects that were wired up for this event in Cube Events

WritebackItemParam Type: Datapoint (4)

The following details the structure of a WritebackItemParam of type Datapoint.

Property Description
Name The name of the parameter
Type This will be either ‘Datapoint’ or 4
Values The array of Member Unique Ids that make up the datapoint

WritebackItemParam Type: Hierarchy (0)

The following details the structure of a WritebackItemParam of type Hierarchy.

Property Description
CrossJoinAll Enabling this checkbox will result in the full list of member keys being returned even if the selected item hierarchy member is the all member
CrossJoinDefaultReturnValue The default value to return when the item hierarchy member is the all member. The default is 0
HierarchyId The hierarchy of the keys being returned in “[Dimension].[Hierarchy]” format
MemberCount The number of members being for this hierarchy
PropertyUsed The property used for the MDX query when determining the members
Name The name of the parameter
Type This will be ‘Hierarchy’ or 0
Values The array of values returned for the members queried. These values will be whatever property was asked to be used, for example, when using key0 the list of values will be the keys of the members

Example Payloads

JSON Payloads

This is a JSON payload that is showing the user performing a Drill To Transactions

{
  "OlapDatasourceAlias": "SSAS",
  "OlapDatasourcePhysical": "CALUMOOlap\\CALUMO",
  "OlapCatalog": "Adventure Works DW",
  "OlapCube": "Finance",
  "ServerTimeUTC": "2022-03-12T11:52:11.8182418Z",
  "ServerTimeLocal": "2022-03-12T11:52:11.8182418+00:00",
  "Source": "Web",
  "SqlDatabase": "Testing",
  "SqlDatasource": "TESTDB",
  "UserId": "MyDomain\\TestUser",
  "WritebackItems": [
    {
      "CellAddress": "R1C1",
      "IsNote": false,
      "NewValue": null,
      "NoteHash": null,
      "OriginalValue": null,
      "Items": [
        {
          "CrossJoinAll": true,
          "HierarchyId": null,
          "MemberCount": 6,
          "PropertyUsed": null,
          "CrossJoinDefaultReturnValue": "0",
          "Name": "account",
          "Type": 0,
          "Values": ["88", "89", "90", "91", "92", "93"]
        },
        {
          "CrossJoinAll": false,
          "HierarchyId": null,
          "MemberCount": 0,
          "PropertyUsed": null,
          "CrossJoinDefaultReturnValue": "0",
          "Name": "postal Code",
          "Type": 0,
          "Values": ["0"]
        },
        {
          "Name": "TheDatapoint",
          "Type": 4,
          "Values": [
            "[Account].[Accounts].&[88]",
            "[Date].[Fiscal Year].[All Periods]",
            "[Date].[Month of Year].[All Periods]",
            "[Department].[Departments].DefaultMember",
            "[Measures].DefaultMember",
            "[Organization].[Currency Code].[All Organizations]",
            "[Scenario].[Scenario].DefaultMember"
          ]
        }
      ]
    }
  ],
  "WritebackStoredProcId": 105
}

XML Payloads

This is an XML payload that is showing the user performing a Writeback

<CalumoWriteback 
    OlapDatasourceAlias="SSAS" 
    OlapDatasourcePhysical="CALUMOOlap\CALUMO" 
    OlapCatalog="Adventure Works DW" 
    OlapCube="Finance" 
    ServerTimeUTC="2022-03-12T11:55:01.2831834Z" 
    ServerTimeLocal="2022-03-12T11:55:01.2831834+00:00" 
    Source="Web" 
    SqlDatabase="Testing" 
    SqlDatasource="TESTDB" 
    UserId="MyDomain\TestUser" 
    WritebackStoredProcId="104">
    <WritebackItems>
        <WritebackItem 
            CellAddress="R4C2" 
            IsNote="false" 
            NewValue="2323">
            <WritebackItemParam 
                Name="accounting" 
                Type="Hierarchy" 
                CrossJoinAll="true" 
                MemberCount="6" 
                CrossJoinDefaultReturnValue="0">
                <Value>88</Value>
                <Value>89</Value>
                <Value>90</Value>
                <Value>91</Value>
                <Value>92</Value>
                <Value>93</Value>
            </WritebackItemParam>
            <WritebackItemParam 
                Name="postal code" 
                Type="Hierarchy" 
                CrossJoinAll="false" 
                MemberCount="0" 
                CrossJoinDefaultReturnValue="0">
                <Value>0</Value>
            </WritebackItemParam>
            <WritebackItemParam 
                Name="TheDatapoint" 
                Type="Datapoint">
                <Value>[Account].[Accounts].&amp;[88]</Value>
                <Value>[Date].[Fiscal Year].[All Periods]</Value>
                <Value>[Date].[Month of Year].[All Periods]</Value>
                <Value>[Department].[Departments].DefaultMember</Value>
                <Value>[Measures].DefaultMember</Value>
                <Value>[Organization].[Currency Code].[All Organizations]</Value>
                <Value>[Scenario].[Scenario].DefaultMember</Value>
            </WritebackItemParam>
        </WritebackItem>
    </WritebackItems>
</CalumoWriteback>