2012-01-13 52 views
1

我可以修改此查询字符串以筛选搜索结果,只搜索所有者是当前项目的团队成员的任务吗?团队成员查询任务

这是查询我到目前为止这是工作,除了团队成员声明

queryObject = { key: "tasks", type: "Task", fetch: "FormattedID,Owner,DisplayName,Name,State,Estimate,ToDo,Iteration,Name", query: ' (((State = "Completed") AND (Iteration = ' + selectedItr + ')) AND (Project.TeamMembers contains Owner))' }; 

回答

0

不幸的是你不能在一个查询中的所有数据。你可以先得到你的团队成员,然后建立与所有的裁判的一个或运算的查询和他们的任务做了第二次查询:

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

var teamMembersQuery = { key: "teamMembers", type: "User", 
    fetch: "UserName", query: '(TeamMemberships = /project/__PROJECT_OID__)'}; 

rallyDataSource.findAll(teamMembersQuery, function(results) { 
    var ownerQueries = []; 
    rally.forEach(results.teamMembers, function(teamMember) { 
     ownerQueries.push('Owner = ' + teamMember._ref); 
    }); 

    var taskQuery = {key: "tasks", type: "Task", 
     fetch: "FormattedID,Owner,DisplayName,Name,State,Estimate,ToDo,Iteration,Name", 
     query: rally.sdk.util.Query.and(['State = "Completed"', 'Iteration = ' + 
     selectedItr]).and(rally.sdk.util.Query.or(ownerQueries)) }; 

    rallyDataSource.findAll(taskQuery, function(results) { 
     //process results.tasks here 
    }); 

}); 

对于写作高级查询请参考App SDK的RallyDataSource帮助更多的例子: http://developer.rallydev.com/help/data-examples

相关问题