多个查询不适用
Multiple Queries Not Applying
所以我正在制作一个使用缺陷列表示例(可用 here)的自定义 HTML 应用程序。我添加了多个查询来过滤我需要的 3 queries/criterias 的结果。
我注意到只有最后一个查询被应用(例如只有 queryConfig[2]
应用)。我知道是这种情况,因为即使我想要关闭状态以外的所有内容(如 queryConfig[1]
所示),我仍然会出现状态 'Closed' 的一些缺陷。
有什么地方我做错了吗?下面是我的查询代码:
var queryConfig = [];
queryConfig[0] = {
type : 'defect',
key : 'defects',
query: '(c_DeliveryVersionIntroduced contains "Version 1.1")',
fetch: ['Name','State','Severity','FormattedID','Project','ObjectID']
};
queryConfig[1] = {
type : 'defect',
key : 'defects',
query: '(State != Closed)',
fetch: ['Name','State','Severity','FormattedID','Project','ObjectID']
};
queryConfig[2] = {
type: 'defect',
key: 'defects',
query: '(CreationDate = "Today-3")',
fetch: ['Name', 'State', 'Severity', 'FormattedID','Project','ObjectID']
};
var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, displayDefects);
SDK 1.0 查询配置数组不能像这样叠加工作。查询配置数组用于通过单个回调一次 运行 多个查询,并通过不同的键引用结果。例如:
var queryConfig = [];
queryConfig[0] = {
type : 'HierarchicalRequirement',
key : 'stories',
query: '(ScheduleState = Completed)',
fetch: 'Name,FormattedID'
};
queryConfig[1] = {
type : 'defect',
key : 'defects',
query: '(State = Fixed)',
fetch: 'Name,FormattedID'
};
var rallyDataSource;
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, processResults);
}
在这种情况下,processResults 回调将收到分组如下的结果:
var processResults = function(results) {
var stories = results['stories'];
var defects = results['defects'];
};
通过重新使用键 'defects'
,queryConfig 数组中最后一个条目的结果破坏了之前的查询。
为了达到您想要的结果,假设您打算将 AND 您的条件放在一起,您将需要实施具有多个条件的单个查询,即:
queryConfig = {
type : 'defect',
key : 'defects',
query: '(((c_DeliveryVersionIntroduced contains "Version 1.1") AND (State != Closed)) AND (CreationDate = today-3))',
fetch: 'Name,State,Severity,FormattedID,Project,ObjectID'
};
var rallyDataSource;
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, processResults);
}
所以我正在制作一个使用缺陷列表示例(可用 here)的自定义 HTML 应用程序。我添加了多个查询来过滤我需要的 3 queries/criterias 的结果。
我注意到只有最后一个查询被应用(例如只有 queryConfig[2]
应用)。我知道是这种情况,因为即使我想要关闭状态以外的所有内容(如 queryConfig[1]
所示),我仍然会出现状态 'Closed' 的一些缺陷。
有什么地方我做错了吗?下面是我的查询代码:
var queryConfig = [];
queryConfig[0] = {
type : 'defect',
key : 'defects',
query: '(c_DeliveryVersionIntroduced contains "Version 1.1")',
fetch: ['Name','State','Severity','FormattedID','Project','ObjectID']
};
queryConfig[1] = {
type : 'defect',
key : 'defects',
query: '(State != Closed)',
fetch: ['Name','State','Severity','FormattedID','Project','ObjectID']
};
queryConfig[2] = {
type: 'defect',
key: 'defects',
query: '(CreationDate = "Today-3")',
fetch: ['Name', 'State', 'Severity', 'FormattedID','Project','ObjectID']
};
var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, displayDefects);
SDK 1.0 查询配置数组不能像这样叠加工作。查询配置数组用于通过单个回调一次 运行 多个查询,并通过不同的键引用结果。例如:
var queryConfig = [];
queryConfig[0] = {
type : 'HierarchicalRequirement',
key : 'stories',
query: '(ScheduleState = Completed)',
fetch: 'Name,FormattedID'
};
queryConfig[1] = {
type : 'defect',
key : 'defects',
query: '(State = Fixed)',
fetch: 'Name,FormattedID'
};
var rallyDataSource;
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, processResults);
}
在这种情况下,processResults 回调将收到分组如下的结果:
var processResults = function(results) {
var stories = results['stories'];
var defects = results['defects'];
};
通过重新使用键 'defects'
,queryConfig 数组中最后一个条目的结果破坏了之前的查询。
为了达到您想要的结果,假设您打算将 AND 您的条件放在一起,您将需要实施具有多个条件的单个查询,即:
queryConfig = {
type : 'defect',
key : 'defects',
query: '(((c_DeliveryVersionIntroduced contains "Version 1.1") AND (State != Closed)) AND (CreationDate = today-3))',
fetch: 'Name,State,Severity,FormattedID,Project,ObjectID'
};
var rallyDataSource;
rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__',
'__PROJECT_OID__',
'__PROJECT_SCOPING_UP__',
'__PROJECT_SCOPING_DOWN__');
rallyDataSource.findAll(queryConfig, processResults);
}