在 Rally Webservices API 中,如果我想遍历 Story 层次结构,则需要对父 Story 进行查询,然后从返回的 Stories 中获取 Children 集合,然后递归查询每个 Child 直到该过程到达叶子节点结果。
问题 - 有没有一种方便的方法可以通过在 Lookback API 中使用单个查询来执行此操作而无需迭代?
最佳答案
这是 Lookback API 的最佳功能之一。
假设您有这样的层次结构:
- 故事 444
- 故事 555
- 故事 666
- 缺陷 777(通过“需求”字段)
- 任务 12
- 任务 13
- 缺陷 777(通过“需求”字段)
- 故事 666
- 故事888
- 故事 555
任务 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"
要仅获取叶子故事,只需添加子句Children:null
。
_ItemHierarchy 也一直向上到 PortfolioItems。
_ItemHierarchy
已建立索引,因此这些查询应该非常高效。
关于rally - 回溯API : Find all leaf node stories under a known parent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725244/