2012-01-13 92 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

相關問題