akris
akris

Reputation: 57

How to convert version one working url(endpoint) to java query using version one java REST client

I need to convert below working REST endpoint to java query

/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

My Not working Code:

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);

Error i am getting:

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)

what am i doing wrong?? any guidance is of great help

Thanks in advance

Upvotes: 0

Views: 203

Answers (1)

alestar
alestar

Reputation: 361

You are using the right attribute definition, but apparently, at some version of the API they stop translating symbols, like brakets '[' into the URL encoding ( '%5B' for open bracket) and therefore the resulting error message.

Please, try this instead:

Workitems:Defect%5BAssetState=%27128%27%5D

for your attributes definition for the Defect/Story AssetType.

Let me know if this works.

TIA,

Upvotes: 2

Related Questions