質問
このクエリ文字列を変更して、現在のプロジェクトのチームメンバーであるタスクのみで結果として生じる検索をフィルタリングできますか?
これは私がこれまでに持っているクエリであり、チームメンバーの声明以外に機能しています
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))' };
解決
残念ながら、すべてのデータを1つのクエリで取得することはできません。最初にチームメンバーを取得してから、すべてのrefを使用してOREDクエリを作成し、タスクの2回目のクエリを実行できます。
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
});
});
高度なクエリを書く他の例については、アプリSDKのRallyDataSourceヘルプを参照してください。http://developer.rallydev.com/help/data-examples
所属していません StackOverflow