我需要将以下工作 REST 端点转换为 java 查询
/rest-1.v1/Data/Timebox?Where=Schedule.ScheduledScopes.Name="Sample: Call Center Product"&sel=Workitems:Defect[AssetState='Closed'].Estimate.@Sum,Name,Workitems:Story[AssetState='Closed'].Estimate.@Sum
我的不工作代码:
IAssetType storyType = services.getMeta().getAssetType("Timebox");
Query query = new Query(storyType, true);
IAttributeDefinition name = storyType.getAttributeDefinition("Name");
IAttributeDefinition defect_estimate = storyType.getAttributeDefinition("Workitems:Defect[AssetState='Closed'].Estimate.@Sum");
IAttributeDefinition story_estimate = storyType.getAttributeDefinition("Workitems:Story[AssetState='Closed'].Estimate.@Sum");
query.getSelection().add(name);
query.getSelection().add(defect_estimate);
query.getSelection().add(story_estimate);
//IFilterTerm activeSprint = new TokenTerm("State.Code='ACTV'");
IFilterTerm activeSprint = new TokenTerm("Schedule.ScheduledScopes.Name='Sample: Call Center Product'");
query.setFilter(activeSprint);
DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
QueryResult result = services.retrieve(query);
我收到错误:
Exception in thread "main" com.versionone.apiclient.exceptions.MetaException: Unknown AttributeDefinition: Timebox.Workitems:Defect[AssetState='Closed'].Estimate.@Sum
at com.versionone.apiclient.MetaModel.getAttributeDefinition(MetaModel.java:119)
at com.versionone.apiclient.AssetType.getAttributeDefinition(AssetType.java:96)
at v1_rest_intig.Example1.main(Example1.java:230)
我做错了什么? 任何指导都有很大帮助
提前致谢
最佳答案
您使用的是正确的属性定义,但显然,在某些版本的 API 中,它们会停止将符号(如小括号“[”)转换为 URL 编码(“%5B”表示开括号),因此会停止生成错误消息。
请尝试这个:
工作项:Defect%5BAssetState=%27128%27%5D
用于缺陷/故事 Assets 类型的属性定义。
请告诉我这是否有效。
TIA,
关于java - 如何使用版本一 java REST 客户端将版本一工作 url(端点)转换为 java 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34650539/