WriteCells
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>