不能 query/order 内置拉力场 "could not read all instances of class com.f4tech.slm.domain.Artifact"
Can't query/order on built-in rally fields "could not read all instances of class com.f4tech.slm.domain.Artifact"
我正在通过 C# dll 使用 API 的 v2.0。 但是当我通过 https://rally1.rallydev.com/slm/doc/webservice/
将查询字符串传递给 v2.0 API 时也会发生此问题
我在工件级别查询,因为我需要缺陷和故事。我试图查看 Rally 前端使用的查询字符串类型,并将自定义字段和内置字段传递给工件查询。我也在做同样的事情,但我没有找到任何让它工作的运气。
我需要能够从我的查询中过滤掉已发布的项目。此外,我还需要按自定义 c_ReleaseType 字段以及内置的 DragAndDropRank 字段进行排序。我猜这是一个问题,因为那些内置字段实际上并不在 Artifact 对象上,但为什么自定义字段会起作用?它们也不在 Artifact 对象上。这可能只是一个我无法猜测隐藏在 API 中的问题。如果我可以根据自定义字段查询这些对象,我希望也可以通过内置字段查询它们,即使这些字段在 Ancestor 对象上不存在。
为了示例,我省略了一堆设置代码...只留下导致问题的代码。
var request = new Request("Artifact");
request.Order = "DragAndDropRank";
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我评论 Order by DragAndDropRank 行时,它起作用了。
var request = new Request("Artifact");
request.Query = (new Query("c_SomeCustomField", Query.Operator.Equals, "somevalue").
And(new Query("Release", Query.Operator.Equals, "null")));
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我从查询中取出发布部分时,它起作用了。
var request = new Request("Artifact");
request.Query = (((new Query("TypeDefOid", Query.Operator.Equals, "someID").
And(new Query("c_SomeCustomField", Query.Operator.Equals, "somevalue"))).
And(new Query("DirectChildrenCount", Query.Operator.Equals, "0"))));
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我从查询中取出 DirectChildrenCount 部分时,它起作用了。
这是 API 调用所演示的问题示例。
当我通过 DragAndDropRank 查询字符串删除订单时,它起作用了。
您的问题已包含答案。
UserStory(WS 中的 HierarchicalRequirement API)和 Defect 从 Artifact 继承了它们的一些字段,例如FormattedID、Name、Description、LastUpdateDate 等。您可以在工件类型的上下文中使用这些字段。
您尝试在 Artifact 对象上访问的字段不存在。它们存在于儿童级别,例如DragAndDropRank、释放、迭代。无法在工件类型的上下文中使用这些字段。
父对象无权访问特定于子对象的属性。
Artifact 是抽象类型。
如果您需要按版本过滤,您需要提出两个单独的请求 - 一个针对故事,另一个针对缺陷。
我认为您的大部分麻烦是因为为了使用 Artifact 端点,您需要指定一个类型参数,以便它知道要包含哪个 artifact sub 类。
只需将其添加到上面的示例 WSAPI 查询中即可使其 return 成功:
https://rally1.rallydev.com/slm/webservice/v2.0/artifact?query=(c_KanbanState = "Backlog")&order=DragAndDropRank&start=1&pagesize=20&types=hierarchicalrequirement,defect
但是我不确定 C# API 是否允许您将额外的自定义参数编码到请求中...
我正在通过 C# dll 使用 API 的 v2.0。 但是当我通过 https://rally1.rallydev.com/slm/doc/webservice/
将查询字符串传递给 v2.0 API 时也会发生此问题我在工件级别查询,因为我需要缺陷和故事。我试图查看 Rally 前端使用的查询字符串类型,并将自定义字段和内置字段传递给工件查询。我也在做同样的事情,但我没有找到任何让它工作的运气。
我需要能够从我的查询中过滤掉已发布的项目。此外,我还需要按自定义 c_ReleaseType 字段以及内置的 DragAndDropRank 字段进行排序。我猜这是一个问题,因为那些内置字段实际上并不在 Artifact 对象上,但为什么自定义字段会起作用?它们也不在 Artifact 对象上。这可能只是一个我无法猜测隐藏在 API 中的问题。如果我可以根据自定义字段查询这些对象,我希望也可以通过内置字段查询它们,即使这些字段在 Ancestor 对象上不存在。
为了示例,我省略了一堆设置代码...只留下导致问题的代码。
var request = new Request("Artifact");
request.Order = "DragAndDropRank";
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我评论 Order by DragAndDropRank 行时,它起作用了。
var request = new Request("Artifact");
request.Query = (new Query("c_SomeCustomField", Query.Operator.Equals, "somevalue").
And(new Query("Release", Query.Operator.Equals, "null")));
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我从查询中取出发布部分时,它起作用了。
var request = new Request("Artifact");
request.Query = (((new Query("TypeDefOid", Query.Operator.Equals, "someID").
And(new Query("c_SomeCustomField", Query.Operator.Equals, "somevalue"))).
And(new Query("DirectChildrenCount", Query.Operator.Equals, "0"))));
//"Could not read: could not read all instances of class com.f4tech.slm.domain.Artifact"
当我从查询中取出 DirectChildrenCount 部分时,它起作用了。
这是 API 调用所演示的问题示例。
当我通过 DragAndDropRank 查询字符串删除订单时,它起作用了。
您的问题已包含答案。
UserStory(WS 中的 HierarchicalRequirement API)和 Defect 从 Artifact 继承了它们的一些字段,例如FormattedID、Name、Description、LastUpdateDate 等。您可以在工件类型的上下文中使用这些字段。
您尝试在 Artifact 对象上访问的字段不存在。它们存在于儿童级别,例如DragAndDropRank、释放、迭代。无法在工件类型的上下文中使用这些字段。
父对象无权访问特定于子对象的属性。 Artifact 是抽象类型。
如果您需要按版本过滤,您需要提出两个单独的请求 - 一个针对故事,另一个针对缺陷。
我认为您的大部分麻烦是因为为了使用 Artifact 端点,您需要指定一个类型参数,以便它知道要包含哪个 artifact sub 类。
只需将其添加到上面的示例 WSAPI 查询中即可使其 return 成功:
https://rally1.rallydev.com/slm/webservice/v2.0/artifact?query=(c_KanbanState = "Backlog")&order=DragAndDropRank&start=1&pagesize=20&types=hierarchicalrequirement,defect
但是我不确定 C# API 是否允许您将额外的自定义参数编码到请求中...