在拉力赛中,我们有以下故事结构:
父母故事1
| __子故事1
| | __儿童故事1
| | __儿童故事2
|
| __子故事2
| __儿童故事3
| __子故事3
| _ 儿童故事4
我想查看所有家长故事以及他们目前安排的版本。一旦家长故事有儿童故事,它的发布价值不可编辑,因为它设置在较低的故事中。有没有办法确定只需拨打一次拉力赛即可完成故事的发布?
谢谢!
答案 0 :(得分:4)
如果您想获得一个父故事的孩子的列表,看看他们的版本是什么 您可以使用以下查询。
(Parent.Parent.FormattedID = ###PUT THE FORMATTED ID HERE###)
如果您想在浏览器中进行试验,可以尝试使用以下网址。
如果您知道儿童故事都在同一个版本中,您可以放一个& pagesize = 1并查看该单个返回故事的版本,同时节省一点带宽。
关于此查询的一个奇怪的部分是,您必须知道要检索的故事的深度来自您感兴趣的父级。在您的示例中,您的层次结构是两个深层,因此在查询中你使用我试图检索的故事的Parent.Parent。
答案 1 :(得分:2)
我找到的最简单的解决方案是执行以下操作:
var epicLevelStories = {
key: 'epics',
type: 'hierarchicalrequirement',
fetch: 'FormattedID,Name,ObjectID,Release'
query: epicQuery,
order: 'FormattedID'
};
var epicLevel2Stories = {
key: 'epiclevel2',
placeholder: '${epics.children?fetch=Name,FormattedID,Parent,Release}'
};
var epicLevel3Stories = {
key: 'epiclevel3',
placeholder: '${epiclevel2.children?fetch=Name,FormattedID,Parent,Release}'
};
var queryArray = [epicLevelStories, epicLevel2Stories, epicLevel3Stories];
rallyDataSource.findAll(queryArray, doStuffWithResults);
一旦你得到一个没有条目的结果集(epiclevel#),你知道你已经到达了树的底部。
我猜测epiclevel3是否还有故事,那么你可以为接下来的3个级别构建一个新的查询数组,并递归调用相同的“doStuffWithResults”方法。只是一个想法。我没有测试过。