2016-01-07 30 views
0

我需要以下工作REST端點的Java查詢如何使用版本Java的一個REST客戶端

/rest-1.v1/Data/Timebox轉換版本一個工作URL(端點)轉換成Java查詢?其中= Schedule.ScheduledScopes.Name =「示例:呼叫中心產品」& sel =工作項目:缺陷[AssetState ='Closed']。總和

我不工作代碼:

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'][email protected]"); 
     IAttributeDefinition story_estimate = storyType.getAttributeDefinition("Workitems:Story[AssetState='Closed'][email protected]"); 
     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'][email protected] 
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

你可以用'工作項嘗試:缺陷[AssetState = '封閉']','然後工作項:缺陷[AssetState = '封閉'] Estimate' ......找的哪個部分你屬性路徑導致問題。 –

+0

我試着替換爲你說的,但仍然一樣,我也試過Defect.Estimate。@ Sum它被關閉並且沒有關閉,還有一些重複的NULL值的資產 –

+0

我想它不接受這個[AssetState ='Closed '] –

回答

2

你使用了正確的屬性定義,但顯然,在一些版本的API,他們停止翻譯的符號,像brakets「[」進入URL編碼( '%5B'爲開放括號),並因此產生錯誤消息。

請試試這個:

工作項:缺陷%5BAssetState =%27128%27%5D

爲您的屬性定義的缺陷/故事AssetType。

讓我知道這是否工作。

TIA,

+0

我檢查了最後一個版本,日期是15.3。+,這個錯誤仍然會出現... – alestar