无法使用versionone java sdk检索Projection / Multi-Relantion字段Requests.Custom_SFDCChangeReqID2

时间:2015-05-08 17:06:40

标签: java api sdk versionone

我一直在尝试使用VersionOne.SDK.Java.APIClient检索V1上查询特定资产(故事/缺陷)的信息。我能够在故事或缺陷下检索ID.Number,Status.Name但不是Requests.Custom_SFDCChangeReqID2等信息。

我检查元数据:

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

2 个答案:

答案 0 :(得分:1)

Alex:请记住,Results是一个Asset的数组,所以我猜你应该使用类似的东西来访问这些信息 String RequestCRID = results [0] .getAttribute(requestCRIDAttribute).getValue()。toString(); String IdNumber = results [0] .getAttribute(idNumberAttribute).getValue()。toString(); 或者遍历数组。 另请注意您已定义: 资产[] 结果而非结果

答案 1 :(得分:0)

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