如何使用Web API过滤Rally中活动项目的缺陷搜索

时间:2015-05-21 17:29:49

标签: rally

我构建了一个自定义搜索工具,允许通过Web API从其他应用程序搜索Rally,并且我遇到了一个问题。现在我允许搜索缺陷,但我注意到搜索结果中的缺陷会与关闭的项目相关。我需要过滤掉这些。我想知道在查询另一个对象时是否有办法访问引用对象的属性,例如,如果我有一个查询来搜索名称包含某些文本的缺陷,例如https://rally1.rallydev.com/slm/webservice/v2.0/defect?query=(Name包含&#34 ;关键字"),我可以在该查询中包含一些内容,说我只想通过使用缺陷上的Project属性来打开项目的缺陷,例如Project.State equals" Open"。基本上我想知道是否有办法在OData-ish格式的一个查询中执行此操作。或者作为替代方案,如果我单独查询所有打开项目的列表,我是否可以在查询中添加条件来表示类似(名称包含"关键字")AND(ProjectId = ... OR ProjectId OR ...)?任何想法或建议都非常感谢。

1 个答案:

答案 0 :(得分:1)

缺陷查询(或任何其他工作项类型)不会从已关闭的项目中返回项目。 WS API查询不搜索已关闭的项目。

  • 在项目中创建了一个缺陷。它碰巧有FormattedID DE529
  • 在WS API中测试(FormattedID = DE529)。

这个json被退回了:

{
QueryResult: {
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
Errors: [ ],
Warnings: [ ],
TotalResultCount: 1,
StartIndex: 1,
PageSize: 20,
Results: [
{
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
_ref: "https://rally1.rallydev.com/slm/webservice/v2.0/defect/36182496495",
_refObjectUUID: "aa35839a-5e49-44c6-8be7-2fb17bbd91bf",
_refObjectName: "bad defect",
_type: "Defect"
}
]
}
}
  • 关闭项目。跑同样的问题:

没有结果:

{
QueryResult: {
_rallyAPIMajor: "2",
_rallyAPIMinor: "0",
Errors: [ ],
Warnings: [ ],
TotalResultCount: 0,
StartIndex: 1,
PageSize: 20,
Results: [ ]
}
}

此外,无法按州查询“项目”。即使工作区1234中有已关闭的项目,此查询也将返回0结果:

https://rally1.rallydev.com/slm/webservice/v2.0/project?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/12345&query=(State = Closed)

Rally中的项目名称不必是唯一的。当您有两个具有相同名称的项目时(一个是打开,另一个是已关闭),按名称识别项目可能会在一个极端情况下产生误导性结果。