Rally で、"Feature" という単語を含むツリー内のアイテムをクエリしようとしました。(Parent.Parent.Parent.Parent.Parent.Name contains "Feature") などのクエリを、親名に「Feature」という単語が含まれているかどうかを確認してみました。私のアプローチはうまくいきません。これを行うより良い方法はありますか?ありがとう。
質問する
1104 次
1 に答える
2
Charles が指摘しているように、単一の Rally Query で親階層をトラバースすることはできません。最終的には、(現在アルファ版の) ルックバック API と、この記事で説明されているのと同様のクエリを使用して、階層全体をプルし、ネーミングやその他の基準でフィルター処理することが可能になります。
Lookback API: 既知の親の下にあるすべてのリーフ ノード ストーリーを検索します
それまでは、AppSDK と rallyDataSource の find() メソッドへの再帰呼び出しを使用して、親の階層をトラバースできます。これを行う単純なものを含めました:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta name="Name" content="App Example: Parent Name Contains Story Hierarchy"/>
<title>Parent Name Contains Story Hierarchy</title>
<script type="text/javascript" src="/apps/1.27/sdk.js"></script>
<script>
var rallyDataSource;
function parentNameRecursionExample() {
var parentStoryHierarchy = function(results) {
var storyInfo = "";
var story = "";
var parentFormattedID = "";
for (i=0 ; i < results.stories.length ; i++) {
story = results.stories[i];
if (story.Parent != null) {
parentName = story.Parent.Name;
var testContains = "Parent";
if (parentName.indexOf(testContains) != -1) {
storyInfo += story.FormattedID +
', ' + story.Name +
', Parent:' + story.Parent.FormattedID +
': ' + story.Parent.Name + '<br>';
aDiv.innerHTML += storyInfo;
}
parentFormattedID = story.Parent.FormattedID;
var queryConfig = {
type : 'HierarchicalRequirement',
key : 'stories',
fetch: 'FormattedID,Name,Parent',
query: '(FormattedID = \"' + parentFormattedID + '\")'
};
rallyDataSource.findAll(queryConfig, parentStoryHierarchy);
} else {
storyInfo += story.FormattedID +
', ' + story.Name +
', Parent: No Parent';
aDiv.innerHTML += storyInfo;
}
}
};
var queryConfig = {
type : 'HierarchicalRequirement',
key : 'stories',
fetch: 'FormattedID,Name,Parent',//,
query: '(FormattedID = \"US130\")'
};
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, parentStoryHierarchy);
}
rally.addOnLoad(parentNameRecursionExample);
</script>
</head>
<body>
<div id="aDiv"></div>
</body>
</html>
次のようなストーリー階層をトラバースします。
そして、ストーリー名に「Parent」を含むストーリーをフィルター処理し、次の出力を生成します。
サンプルはラフカットであり、あまりきれいではなく、単一のクエリほどエレガントでも簡単でもありませんが、ツリーをトラバースし、探している結果をフィルター処理する方法を示しています。
于 2012-06-26T19:19:08.677 に答える