私が見つけた最も簡単な解決策は、次のことを行うことです。
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」メソッドを再帰的に呼び出すことができると思います。ちょっとした考え。私はそれをテストしていません。