РАЛЛИ: Определите выпуск родительской истории пользователя - PullRequest
4 голосов
/ 28 сентября 2011

В Ралли мы имеем следующую структуру истории:

Parent Story 1
| __ Subory 1
| | __ Child Story 1
| | __ Child Story 2
|
| __ Sub Story 2
| __ Child Story 3
| __ Subory 3
| _ Детский рассказ 4

Я хочу просмотреть все родительские истории и выпуски, на которые они в настоящее время запланированы. Как только у родительской истории появятся дочерние истории, ее выпуск не будет редактироваться, поскольку он установлен в более низкой истории. Есть ли способ определить, в каком выпуске будет закончен сюжет, сделав всего один звонок в Ралли?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 28 сентября 2011

Если вы хотите получить список детей родительской истории, чтобы увидеть, в какую версию они попадают, вы можете использовать следующий запрос.

(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 для историй, которые я пытаюсь получить.

2 голосов
/ 29 сентября 2011

Самое простое решение, которое я нашел, это сделать следующее:

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. Просто мысль. Я не проверял это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...