3

各プロジェクトに貢献しているチーム メンバーの数を収集する必要がある 2.0 API を使用してアプリを作成しました。現在、私がこの数を計算する方法は、そのプロジェクト内のタスクの一意の所有者の数を調べることです。今日、各プロジェクトの権限を見ていると、「チーム メンバー」のフィールドがあり、そこに自分が追加されたチームの一員としてリストされていることに気付きました。各プロジェクトのチーム メンバーの数を取得するために API を介してこのフィールドにアクセスできるのか、それともユーザーごとにしか表示されないのか知りたいです。

4

1 に答える 1

3

SDK には、各プロジェクトのチーム メンバーの数にアクセスする方法があります。私が行った方法は、すべてのプロジェクトを照会して、そこからチーム メンバーの数を取得することです。

これが私がそれをした方法のコードです:

Ext.define('TeamMemberCountApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    launch: function() {
        Ext.create('Rally.data.WsapiDataStore', {
            model: 'Project',
            fetch: ['Name', 'TeamMembers', 'FirstName', 'LastName'],
            autoLoad: true,
            context: this.getContext().getDataContext(),
            listeners: {
                load: this._onDataLoaded,
                scope: this
            }
        });
    },

    _onDataLoaded: function(store, data) {
        var records = [];

        Ext.Array.each(data, function(record) {
            var teamName = record.get('Name');
            var teamMembersList = record.get('TeamMembers');

            records.push({
                Name: teamName,
                TeamMembers: teamMembersList
            });

            console.log('Number of members in Team ' + teamName + ' is ' + teamMembersList.Count);
        });
    }
});

ストアには、通常の Javascript 配列であるチーム メンバーの数が含まれます。これらのオブジェクトは、User オブジェクトの _ref 値を保持します。

データ ストアのフェッチ プロパティは再帰的です。つまり、プロジェクト モデルを取得しても、チーム メンバーの姓名を取得できます。完全な User モデルを作成するには、ModelFactoryを使用する必要があると思いますが、100% ではありません。

ユーザー ストーリー/欠陥/タスクに実際に取り組んでいるチーム メンバーに関しては、これらのアーティファクトのそれぞれの所有者を調べる方法は問題ないようです。上記のコードは、作業内容に関係なく、プロジェクトのチーム メンバーのみを表示します。

今後の参考のために、ドキュメント内のこのソース コード リンクには、単純な文字列 ('user' や 'defect' など) から使用できるすべてのモデル タイプが含まれています。

于 2013-01-10T01:55:13.990 に答える