Search code examples
xmlhttpversionone

Aggregation doesn't seem to match data in the VersionOne RESTful API


Given this query (spacing added for readability):

rest-1.v1\Data\Story?
    sel=
        Children.ID,
        Children.Actuals.Value,
        Children:Task.@Count,
        [email protected]
    &where=Number='B-02833'

I received the following in response:

<Assets total="1" pageSize="2147483647" pageStart="0">
    <Asset href="/rest-1.v1/Data/Story/13195" id="Story:13195">
        <Relation name="Children.ID">
            <Asset href="/rest-1.v1/Data/Task/34505" idref="Task:34505"/>
            <Asset href="/rest-1.v1/Data/Task/34506" idref="Task:34506"/>
            <Asset href="/rest-1.v1/Data/Task/34507" idref="Task:34507"/>
        </Relation>
        <Attribute name="Children.Actuals.Value.@Sum">97.2</Attribute>
        <Attribute name="Children.Actuals.Value">
            <Value>1</Value>
            <Value>2</Value>
        </Attribute>
        <Attribute name="Children:Task.@Count">6</Attribute>
    </Asset>
</Assets>

Can someone explain why the values returned total to 3, but the .@Sum shows 97.2?


Solution

  • The most likely cause is that aggregate functions like @Sum and @Count don't automatically ignore deleted/dead assets.

    You probably want to say something like:

    rest-1.v1\Data\Story?
        sel=
            Children.ID,
            Children.Actuals.Value,
            Children:Task[AssetState!=Dead].@Count,
            Children[AssetState!=Dead][email protected]
        &where=Number='B-02833'