RALLY:确定父用户故事的发布

时间:2011-09-28 16:18:18

标签: javascript rally

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

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

我想查看所有家长故事以及他们目前安排的版本。一旦家长故事有儿童故事,它的发布价值不可编辑,因为它设置在较低的故事中。有没有办法确定只需拨打一次拉力赛即可完成故事的发布?

谢谢!

2 个答案:

答案 0 :(得分:4)

如果您想获得一个父故事的孩子的列表,看看他们的版本是什么 您可以使用以下查询。

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

如果您想在浏览器中进行试验,可以尝试使用以下网址。

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。

答案 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”方法。只是一个想法。我没有测试过。