我一直在尝试使用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
答案 0 :(得分:1)
Alex:请记住,Results是一个Asset的数组,所以我猜你应该使用类似的东西来访问这些信息 String RequestCRID = results [0] .getAttribute(requestCRIDAttribute).getValue()。toString(); String IdNumber = results [0] .getAttribute(idNumberAttribute).getValue()。toString(); 或者遍历数组。 另请注意您已定义: 资产[] 结果而非结果
答案 1 :(得分:0)
嗨,谢谢你的回答!我完全忘了表示循环,我太专注于重新获取信息部分,是的我实际上是在使用循环,是的我创建了一个临时变量来检查我从表单中查询得到的内容 因为我逐个获取变量,所以我只使用第一条记录。我的代码毕竟有效。只是因为我所查询的内容并未包含我使用的任何信息,这就是为什么我没有找到任何信息。无论如何,感谢您的评论和意见