V1数据api where子句和聚合过滤器

时间:2014-09-15 19:53:34

标签: filter aggregate versionone

我一直在尝试使用VersionOne的数据api,并且已经提出了一个查询,该查询与我们通过UI看到的故事或缺陷的估计值,详细估计值,完成值(实际值),待办事项和已分配到的值相匹配。正如您在下面看到的那样(为了易读性而增加了nl),我在聚合值上放置了过滤器。我想知道是否需要where子句,因为聚合过滤器似乎涵盖了它们。它似乎在有或没有where子句的情况下工作正常,因为它返回相同的值(但如果我删除聚合过滤器,它肯定不起作用)。如果我删除where子句,是否有人会评论我是否会遇到一些无法预料的问题?

Data/Story/oid-number-portion?
sel=PrimaryWorkitem.Name,
PrimaryWorkitem.Number,
PrimaryWorkitem.AssetState,
PrimaryWorkitem.Status.Name,
PrimaryWorkitem.Number,
PrimaryWorkitem.Scope.Name,
PrimaryWorkitem.Timebox.Name,
PrimaryWorkitem.Team.Name,
PrimaryWorkitem.Priority.Name,
PrimaryWorkitem.Owners.Name,
PrimaryWorkitem.AssetType,
PrimaryWorkitem.Parent.Name,
PrimaryWorkitem.Super.Name,
PrimaryWorkitem.Children,
PrimaryWorkitem.SplitTo,
PrimaryWorkitem.SplitFrom,
PrimaryWorkitem.Estimate,
PrimaryWorkitem.ChildrenMeAndDown,
PrimaryWorkitem.ChildrenMeAndDown[AssetState!='Dead','Deleted'].ToDo.@Sum,
PrimaryWorkitem.Children[AssetState!='Dead','Deleted'].ToDo.@Sum,
PrimaryWorkitem.ChildrenMeAndDown[AssetState!='Dead','Deleted'].Actuals.Value.@Sum,
PrimaryWorkitem.Children[AssetState!='Dead','Deleted'].DetailEstimate.@Sum,
PrimaryWorkitem.ChildrenMeAndDown%[AssetState!='Dead','Deleted'].AllocatedToDo.@Sum,
PrimaryWorkitem.CreateDateUTC,
PrimaryWorkitem.CreatedBy.Name,
PrimaryWorkitem.ChangeDateUTC,
PrimaryWorkitem.ChangedBy.Name
&where=(PrimaryWorkitem.AssetState!='Dead','Deleted';
        PrimaryWorkitem.ChildrenMeAndDown!='Dead','Deleted';
        PrimaryWorkitem.Children!='Dead','Deleted')

杰里

1 个答案:

答案 0 :(得分:0)

简短的回答是肯定的,where是不必要的。它只会减少返回的Stories集,并且不会影响关系的结果,就像属性过滤器那样。由于查询的开头包括和OID,因此您只需在结果集中获得一个项目。

我看到了其他一些改善查询的机会。例如,AssetState Dead包括DeletedTemplate。所以你可以拥有[AssetState!='Dead']

您也可以调整层次结构导航的使用。例如,您要求ChildrenChildrenMeAndDown作为属性。对于StoryChildrenSecondaryWorkitems,其本身没有Children。因此,Story.ChildrenStory.ChildrenAndDown会返回相同的结果。 Story.ChildrenMeAndDown唯一不同的是它包含您正在查询的Story。因此,我怀疑Children关系足以满足您的所有用途。

如果您只是阅读VersionOne,请查看query.v1端点。查询语言基本相同,只是在HTTP POST的正文中以YAML或JSON表示。只需从查询中进行推断,您就会发现query.v1的子查询功能非常方便。