1

イテレーション、プロジェクト、およびユーザー列の実際の値を取得するために考えられるすべてを調査して試しましたが、イテレーションの名前、プロジェクトの名前などの列データを取得することはできません、およびユーザーによって送信された名前。私が持っている方法でフェッチを行うのは問題ないはずだと読んだことがありますが、他の人は、このようなもので型を指定する必要があると言っています

types : ['defect','user','iteration','project'],

私がそうするとき、私は自分のグリッドをロードしません。一部の人が推奨するように、このようなことを試しました

defect.Iteration.Name

また

Iteration.Name

私は本当にここでいくつかの助けを借りることができました. また、WSAPI はこの種のリクエストをサポートしなくなり、複数のクエリ/フェッチで処理する必要があるという記事も読みました。とにかく、ここに私が使用しているコードがあります...

function onLoad() {
var rallyDataSource = new rally.sdk.data.RallyDataSource(
                '__WORKSPACE_OID__',
                '__PROJECT_OID__',
                '__PROJECT_SCOPING_UP__',
                '__PROJECT_SCOPING_DOWN__');
var config = {
              type : 'defect',
              key  : 'defects',       
              columnKeys : ["FormattedID", "Name", "Priority125", "Iteration", "Project", "SubmittedBy", "CreationDate", "ScheduleState", "State"],
              fetch : 'FormattedID,Name,Priority125,Iteration,Project,SubmittedBy,CreationDate,ScheduleState,State',
              query : '((State != "Closed") OR (ScheduleState != "Accepted"))',
              order : 'Priority125'
              };
var table = new rally.sdk.ui.Table(config, rallyDataSource);
table.display("tableDiv");
}
rally.addOnLoad(onLoad);
4

1 に答える 1

0

これを希望どおりに機能させるには、いくつかのことが必要です。

  1. 深さ 1 のレベルまで再帰的にフェッチできます。したがって、欠陥の名前、フォーマットされた ID、およびプロジェクト名を取得する場合、フェッチは次のようになります。
  2. fetch: "名前,FormattedID,プロジェクト,名前"
  3. rallyDataSource.findAll() を介してデータを取得します
  4. テーブルにすべての文字列データを入力するように、データを後処理します。つまり、代わりにプロジェクト名を使用して、プロジェクトなどのオブジェクト参照フィールドを上書きします。
  5. 最後に、テーブルにデータを入力して表示します。

これは、あなたがやりたいと思っていることを示す実際の例です(定義した「優先度125」カスタムフィールドを除く)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- Copyright (c) 2011  Rally Software Development Corp.  All rights reserved -->
<html>
<head>
    <title>Defect Information</title>
    <meta name="Name"    content="Defect Information" />
    <meta name="Version" content="1.32" />
    <meta name="Vendor"  content="Rally Software" />

    <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.32/sdk.js?debug=True"></script>
    <script type="text/javascript">

        var rallyDataSource = null;
        var table = null;

        function showTable(results) {

            if (table) {
                table.destroy();
            }

            var tableConfig = {
                columnKeys   : ["FormattedID", "Name", "Iteration", "Project", "SubmittedBy", "CreationDate", "ScheduleState", "State"],
                columnWidths : ["85px",        "350px", "90px",      "100px",  "100px",       "120px",         "100px",         "100px" ]
            };

           table = new rally.sdk.ui.Table(tableConfig);

            // Loop through the rows and clobber object attributes of the results collection with
            // string values
            for(var i = 0; i < results.defects.length; i++){

                thisDefect = results.defects[i];

                var iterationName = "";
                // Grab value fields
                if (thisDefect.Iteration != null) {
                    iterationName = results.defects[i].Iteration.Name;
                } else {
                    iterationName = "Un-scheduled";
                }
                var projectName = thisDefect.Project.Name;

                // Re-map SubmittedBy object to SubmittedBy string
                submittedByDisplayName = thisDefect.SubmittedBy === null ? "": thisDefect.SubmittedBy._refObjectName;                

                // Clober objects with values
                results.defects[i].Iteration = iterationName;
                results.defects[i].Project = projectName;
                results.defects[i].SubmittedBy = submittedByDisplayName;
            }

            table.addRows(results.defects);
            table.display(document.getElementById('defectsDiv'));
        }


        function onLoad() {
            rallyDataSource = new rally.sdk.data.RallyDataSource(
                    '__WORKSPACE_OID__',
                    '__PROJECT_OID__',
                    '__PROJECT_SCOPING_UP__',
                    '__PROJECT_SCOPING_DOWN__');

            var config = {
              type : 'defect',
              key  : 'defects',       
              fetch: 'FormattedID,Name,SubmittedBy,Iteration,Name,Project,Name,CreationDate,ScheduleState,State',
              query : '((State != "Closed") OR (ScheduleState != "Accepted"))',
            };
            rallyDataSource.findAll(config, showTable);
            rallyDataSource.setApiVersion("1.38");
        }

        rally.addOnLoad(onLoad);

    </script>

</head>
<body>
<div id="aDiv"></div>
<div style="font-weight: bold;"><p>Defects</p></div>
<div id="defectsDiv"></div>
</body>
</html>
于 2012-11-09T05:56:45.180 に答える