我需要将以下工作的REST端点转换为java查询
/rest-1.v1/Data/Timebox?Where=Schedule.ScheduledScopes.Name=“Sample:Call Center Product”& sel = Workitems:Defect [AssetState ='Closed']。估计。@ Sum,Name ,工作项:。故事[AssetState = '关闭']估计@萨姆
我的不工作代码:
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)
我做错了什么? 任何指导都有很大的帮助
提前致谢
答案 0 :(得分:2)
您正在使用正确的属性定义,但显然,在某些版本的API中,它们会停止翻译符号,例如brakets' ['进入URL编码('%5B'表示开括号),因此产生错误信息。
请试试这个:
工作项:缺陷%5BAssetState =%27128%27%5D
用于缺陷/故事资产类型的属性定义。
让我知道这是否有效。
TIA,