我使用2.0 API创建了一个应用程序,我需要收集每个项目的团队成员数量。目前,我计算此数字的方式是查看该项目中任务的唯一所有者的数量。今天我注意到,当我查看每个项目的权限时,它有一个“团队成员”字段,它将我列为我加入的团队的一部分。我很好奇是否可以通过API访问此字段以获取每个项目的团队成员数量,或者它是否仅在逐个用户的基础上可见?
答案 0 :(得分: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值。
数据存储中的fetch属性是递归的,这意味着它可以抓取团队成员的名字和姓氏,尽管抓住了项目模型。要创建完整的用户模型,我相信您需要使用ModelFactory,尽管我不是100%。
对于实际处理用户故事/缺陷/任务的团队成员而言,查看每个工件的所有者的方法似乎很好。上面的代码只会显示项目中的团队成员,无论他们在做什么。
为了将来参考,文档中的this源代码链接包含可以从简单字符串(例如“用户”或“缺陷”)使用的所有模型类型。