4

在拉力赛中,我们有以下故事结构:

父故事 1
|__ 子故事 1
| |__ 儿童故事1
| |__ 儿童故事2
|
|__ 子故事 2
    |__ 儿童故事 3
    |__ 子故事 3
         | _儿童故事 4

我想查看所有父故事以及它们当前计划在哪个版本中。一旦父故事有子故事,它的发布值就不可编辑,因为它设置在较低的故事中。有没有一种方法可以确定只需拨打 1 次 Rally 电话就能完成故事的发布?

谢谢!

4

2 回答 2

4

如果您想获取父故事的子级列表以查看他们属于哪个版本,您可以使用以下查询。

(Parent.Parent.FormattedID = ###PUT THE FORMATTED ID HERE###)

如果您想在浏览器中进行实验,可以尝试以下 URL。

https://rally1.rallydev.com/slm/webservice/1.26/hierarchicalrequirement.js?query=(Parent.Parent.FormattedID=###PUT_THE_FORMATTED_ID_HERE###)&fetch=Release&pretty=true

如果您知道子故事都将在同一个版本中,您可以放置​​ &pagesize=1 并查看该单个返回故事的版本,同时节省一些带宽。

关于这个查询的一个奇怪的部分是,您必须知道您想要检索的故事来自您感兴趣的父级的深度。在您的示例中,您的层次结构是两个深度,因此在查询中您使用Parent.Parent 我要检索的故事的父级。

于 2011-09-28T17:31:23.957 回答
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”方法。只是一个想法。我没有测试过。

于 2011-09-29T12:22:02.297 回答