在拉力赛中,我们有以下故事结构:
父故事 1
|__ 子故事 1
| |__ 儿童故事1
| |__ 儿童故事2
|
|__ 子故事 2
|__ 儿童故事 3
|__ 子故事 3
| _儿童故事 4
我想查看所有父故事以及它们当前计划在哪个版本中。一旦父故事有子故事,它的发布值就不可编辑,因为它设置在较低的故事中。有没有一种方法可以确定只需拨打 1 次 Rally 电话就能完成故事的发布?
谢谢!
在拉力赛中,我们有以下故事结构:
父故事 1
|__ 子故事 1
| |__ 儿童故事1
| |__ 儿童故事2
|
|__ 子故事 2
|__ 儿童故事 3
|__ 子故事 3
| _儿童故事 4
我想查看所有父故事以及它们当前计划在哪个版本中。一旦父故事有子故事,它的发布值就不可编辑,因为它设置在较低的故事中。有没有一种方法可以确定只需拨打 1 次 Rally 电话就能完成故事的发布?
谢谢!
如果您想获取父故事的子级列表以查看他们属于哪个版本,您可以使用以下查询。
(Parent.Parent.FormattedID = ###PUT THE FORMATTED ID HERE###)
如果您想在浏览器中进行实验,可以尝试以下 URL。
如果您知道子故事都将在同一个版本中,您可以放置 &pagesize=1 并查看该单个返回故事的版本,同时节省一些带宽。
关于这个查询的一个奇怪的部分是,您必须知道您想要检索的故事来自您感兴趣的父级的深度。在您的示例中,您的层次结构是两个深度,因此在查询中您使用Parent.Parent 我要检索的故事的父级。
我发现的最简单的解决方案是执行以下操作:
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”方法。只是一个想法。我没有测试过。