WriteCells

Use for writeback and for splashing. If the SplashingOptions element is included, a splashing operation is performed.

If the SplashingOptions element is not included, a normal write operation is performed even if the destination cell is a consolidated cell.

Syntax

<WriteCells>
   <Cube>Cube Name</Cube>
   [<Slicer>…</Slicer>]
   [<SplashingOptions>…</SplashingOptions>]
   <Cell> … </Cell>
   ...
   <Cell >… </Cell>
</WriteCells>

All writes are done using the WriteCells element. It must contain a Cube element that provides the cube name to be written to. Writes to different cubes must be done in separate requests. In addition, other elements can be included.

This table describes the elements:

Elements Description
Cube Cube name to which data is written.
Slicer Defines a set of members that are common across all cells being written. An error occurs if more than one member from a dimension is specified.
SplashingOptions Indicates that all writes are splashing writes. In addition, SplashingOptions can be indicated for each cell to make it splash or to override the SplashingOptions for the entire request. If it is not included in the request at all, only normal cell writes are done. SplashingOptions on a leaf cell are allowed but do not have any effect.
Cell Specifies everything that is required for a single cell write.
WriteCellsResponse Every WriteCells command returns a WriteCellsResponse. If the write succeeds, the element is empty. If the entire write fails, the element is empty, and an error is returned in the SOAP response.

<SplashingOptions> XML element

<SplashingOptions>
  [AllocationMode=AllocationModeType]
  [DecimalPlaces=integer]
  [ErrorCorrection=true|false]
  [DoNotDeleteOnZero=true|false]
  [<Member>MemberUniqueName</Member>]
  …
  [<Member>MemberUniqueName</Member>]
</SplashingOptions>

WriteCells supports the standard options DecimalPlaces, ErrorCorrection, and DoNotDeleteOnZero. Also it supports the general allocation modes except External weighted delta.

If an external weighted allocation mode was selected, it is necessary to provide information on which values serve as a source of the distribution. The Member element within the SplashingOptions element defines a deviation of the source cell coordinates from the target cell coordinates.

<Cell> XML element

<Cell>
   [<SplashingOptions>…</SplashingOptions>]
   <Member>MemberUniqueName</Member>
   …
   <Member>MemberUniqueName</Member>
   [<Value [action="delete"]>value</Value>]
   [<Note [action="delete"]>note</Note>]
</Cell>

Cells can each have their own SplashingOptions allowing them to override any of the options specified in the request. They can specify members, including overriding those that are already specified in the Slicer. Between the Slicer and the Cell elements, a Member must be specified for each dimension, or an error occurs.

The Cell element can also have a Value and a Note. For normal writeback, the Value is written directly to the cell, for splashing it is the value that is spread. The Note is always written directly to the cell, even if splashing is occurring for the values. If action="delete" is specified, the value or note is deleted from the cube. If action="delete" is specified for splashing, all base values are deleted. The other splashing options are ignored in this scenario.

Example 1

This example includes normal writeback along with note writeback and deletion.

<WriteCells>
  <Cube>STATUS</Cube>
  <Slicer>
    <Member>[STATUS].[Start]</Member>
    <Member>[VERSION].[Actual]</Member>
    <Member>[LEVEL].[IFRS]</Member>
    <Member>[UNIT].[C1101]</Member>
  </Slicer>
  <Cell>
    <Member>[TIME].[03_2017]</Member>
    <Value>1.28</Value>
  </Cell>
  <Cell>
    <Member>[TIME].[05_2017]</Member>
    <Value>2.56</Value>
  </Cell>
  <Cell>
    <Member>[TIME].[06_2017]</Member>
    <Note>Example text of cell note</Note>
  </Cell>
  <Cell>
    <Member>[TIME].[07_2017]</Member>
    <Value action="delete" />
    <Note action="delete" />
  </Cell>
</WriteCells>

If successful, the response is:

<WriteCellsResponse/>

If some cells fail, the response is:

<WriteCellsResponse>
  <Cell>
    <Member>[VERSION].[Budget]</Member>
    <Member>[TIME].[All Years].[2017].[Q2_2017].[05_2017]</Member>
    <Member>[LEVEL].[IFRS]</Member>
    <Member>[UNIT].[G0000].[C1100].[C1101]</Member>
    <Member>[STATUS].[Start]</Member>
    <Error ErrorCode="34" Description="You are not authorized to carry out this operation." />
  </Cell>
</WriteCellsResponse>

Example 2

In this example the source is always ACTUAL but has a different quarter for every target cell. SplashingOptions are added to each cell.

<WriteCells>
  <Cube>STATUS</Cube>
  <Slicer>
    <Member>[STATUS].[Start]</Member>
    <Member>[VERSION].[Budget]</Member>
    <Member>[LEVEL].[IFRS]</Member>
    <Member>[UNIT].[C1101]</Member>
  </Slicer>
  <SplashingOptions AllocationMode="External weighted" DecimalPlaces="2">
    <Member>[VERSION].[Actual]</Member>
  </SplashingOptions>
  <Cell>
    <SplashingOptions>
      <Member>[TIME].[Q1_2017]</Member>
    </SplashingOptions>
    <Member>[TIME].[Q3_2017]</Member>
    <Value>12</Value>
  </Cell>
  <Cell>
    <SplashingOptions>
      <Member>[TIME].[Q2_2017]</Member>
    </SplashingOptions>
    <Member>[TIME].[Q4_2017]</Member>
    <Value>14</Value>
  </Cell>
</WriteCells>

If the request in Example 1 was successfully executed beforehand, this request is also successful. Otherwise, the source area is empty and the request returns two errors with the same error message:

<WriteCellsResponse>
  <Cell>
    <Member>[VERSION].[Budget]</Member>
    <Member>[TIME].[All Years].[2017].[Q3_2017]</Member>
    <Member>[LEVEL].[IFRS]</Member>
    <Member>[UNIT].[G0000].[C1100].[C1101]</Member>
    <Member>[STATUS].[Start]</Member>
    <Error ErrorCode="21210" Description="The external value that is to be consolidated must not be empty or zero." />
  </Cell>
  <Cell>
    <Member>[VERSION].[Budget]</Member>
    <Member>[TIME].[All Years].[2017].[Q4_2017]</Member>
    <Member>[LEVEL].[IFRS]</Member>
    <Member>[UNIT].[G0000].[C1100].[C1101]</Member>
    <Member>[STATUS].[Start]</Member>
    <Error ErrorCode="21210" Description="The external value that is to be consolidated must not be empty or zero." />
  </Cell>
</WriteCellsResponse>