0

我一直在尝试使用 VersionOne.SDK.Java.APIClient 从查询 V1 上的特定资产(故事/缺陷)中检索信息。我已经能够检索到诸如ID.NumberStatus.Name 之类的信息,但不能Requests.Custom_SFDCChangeReqID2在 Story 或 Defect 下检索。

我检查元数据:

https://.../Story?xsl=api.xsl
https://.../meta.V1/Defect?xsl=api.xsl
https://.../meta.V1/Request?xsl=api.xsl

并且命名和信息看起来正确。

这是我的代码:

IAssetType type = metaModel.getAssetType("Story");

IAttributeDefinition requestCRIDAttribute = type.getAttributeDefinition("Requests.Custom_SFDCChangeReqID2");

IAttributeDefinition idNumberAttribute =    type.getAttributeDefinition("ID.Number")

Query query = new Query(type);
query.getSelection().add(requestCRIDAttribute);
query.getSelection().add(idNumberAttribute);

Asset[] results = v1Api.retrieve(query).getAssets();
String RequestCRID=    result.getAttribute(requestCRIDAttribute).getValue().toString();
String IdNumber= result.getAttribute(idNumberAttribute).getValue().toString();

此时,我可以获得 ID.Number 的一些值,但我无法检索该值的任何信息Custom_SFDCChangeReqID2

当我从服务器的角度运行 restful 查询以使用浏览器检索信息时,它可以工作并且确实检索到我正在寻找的信息。我使用了这个语法:

https://.../rest-1.v1/Data/Story?sel=Number,ID,Story.Requests.Custom_SFDCChangeReqID2,Story

4

2 回答 2

1

Alex:请记住,Results 是 Asset´s 的数组,所以我想您应该使用 String RequestCRID= results[0] .getAttribute(requestCRIDAttribute).getValue().toString();之类的方式访问信息。String IdNumber= results[0] .getAttribute(idNumberAttribute).getValue().toString(); 或遍历数组。另请注意,您已定义: Asset[] results 而不是result

于 2015-05-11T15:59:20.983 回答
0

您好,感谢您的回答!我完全忘记了表示循环,我太专注于检索信息部分,是的,我实际上是在使用循环,是的,我创建了一个临时变量来检查我从表单中的查询中得到了什么因为我得到了变量一个接一个,所以我只使用第一条记录。毕竟我的代码有效。只是我查询的内容不包含我使用的任何信息,这就是为什么我没有找到任何信息。无论如何感谢您的评论和观察

于 2015-05-12T00:34:14.167 回答