在Rally Webservices API中,如果我想遍历Story层次结构,则需要对父故事进行查询,然后从返回的Stories中获取Children集合,然后以递归方式查询每个Child。该过程到达Leaf节点结果。
问题 - 通过在Lookback API中使用单个查询,是否有一种方便的方法可以在不进行迭代的情况下执行此操作?
答案 0 :(得分:2)
这是Lookback API的最佳功能之一。
假设你有这种等级:
任务12的文档如下所示:
{
ObjectID: 12,
_Type: "Task",
WorkProduct: 777,
_ItemHierarchy: [444, 555, 666, 777, 12],
...
}
因此,当您对具有数组值的字段(如_ItemHierarchy)提交查询时,它将匹配数组的任何成员。
要获得从444下降的所有内容,您的find子句将包含_ItemHierarchy: 444
。看看它如何与任务12的_ItemHierarchy
值匹配?
要获得从333下降的所有内容,您的find子句将包含_ItemHierarchy: 333
。这也与任务12相匹配。
要获得从444(所有故事)下降的故事,您的查找条款将包括:
_ItemHierarchy: 444,
_Type: "HierarchicalRequirement"
要获得 leaf 故事,只需添加条款Children: null
。
_ItemHierarchy也一直到PortfolioItems。
_ItemHierarchy
被编入索引,因此这些查询应该非常有效。