Batching dimension read requests

If there is more than 1 MB of information to return, the answer is segmented, and recurring calls are needed until LastBatch="true" is returned.

The first segment is marked:

  • FirstBatch = "true"
  • LastBatch= "false"
  • ResultId= <last internal ID in the delivered string> + <ID of relations phase>. The relations phase is used to signal at which relation the delivery has stopped in the answer.
  • LinesCount= <number of delivered entries in the string>

The following segments are marked:

  • FirstBatch = "false"

The last segment is marked:

  • FirstBatch = "false"
  • LastBatch= "true"
  • No ResultId
  • LinesCount= <number of delivered entries in the string>

The tag ResultId must be used in the recurring calls in Dimension.Read to indicate the ID for where to start the next segment. The ResultId for recurring calls should be the same value as returned in the answer.

Request 1

This request returns a ResultID that is used in the second request example.

<Alea:Document xmlns:Alea="http://www.misag.com">
  <Alea:Request RequestID="1" Class="Dimension" Method="Read">
    <Alea:Dimension Name="TestL" Relation="Child" Selection="All"/>
  </Alea:Request>
</Alea:Document>

Answer 1

<Alea:Document xmlns:Alea="http://www.misag.com">
  <Alea:Request RequestID="1">
    <Alea:Return>
      <Alea:Dimension Name="TestL" Hierarchy="TestL">
        <Alea:Elements LastBatch="false" ResultId="03" FirstBatch="true" LinesCount="15000">C Parent element
N   Child element 1
...
N   Child element 15000
        </Alea:Elements>
      </Alea:Dimension>
    </Alea:Return>
  </Alea:Request>
</Alea:Document>

Request 2

This request returns the information that it was the last batch.

<Alea:Document xmlns:Alea="http://www.misag.com">
  <Alea:Request RequestID="1" Class="Dimension" Method="Read">
    <Alea:Dimension Name="TestL" ResultId="03"/>
  </Alea:Request>
</Alea:Document>

Answer 2

<Alea:Document xmlns:Alea="http://www.misag.com">
  <Alea:Request RequestID="1">
    <Alea:Return>
      <Alea:Dimension Name="TestL" Hierarchy="TestL">
        <Alea:Elements LastBatch="true" FirstBatch="false" LinesCount="10000">N   Child element 15001
N   Child element 15002
...
N   Child element 25000
        </Alea:Elements>
      </Alea:Dimension>
    </Alea:Return>
  </Alea:Request>
</Alea:Document>