2015-11-20 54 views
2

因此,我正在編寫一個應用程序來「拉近」拉力賽中的新客戶。這將有工具來創建模板,將先加:RallyAPI:如何創建一個UserStory並將其與某個功能相關聯?

  1. 根據該「功能」
  2. 附加「任務」下添加一個「功能」
  3. 添加「UserStories」那些「UserStories」單獨

我已經想出了步驟1.但是如何將任何我無法從恐怖和神祕的文檔中找出的東西聯繫起來。這是我到目前爲止:

var FeatureToAdd = _featureRepository.GetFeatures().FirstOrDefault(x => x.Id == 2);   

     // Initialize the REST API. You can specify a web service version if needed in the constructor. 
     RallyRestApi restApi = GetRallyRestApi(); 

     //Create an item 
     DynamicJsonObject toCreate = new DynamicJsonObject(); 
     toCreate["Name"] = FeatureToAdd.Name; 
     toCreate["Description"] = FeatureToAdd.Description; 

     // important to which this belongs, but I no ID I ever use works 
     //toCreate["Workspace"] = "/workspace/" + WebConfigurationManager.AppSettings["RallyAPIWorkspaceID"]; 
     //toCreate["Project"] = "/project/XXXXX"; 
     //toCreate["Iteration"] = "/iteration/XXXXXX"; 

     // create feature - feature is under PortfolioItem 
     CreateResult createFeatureResult = restApi.Create("PortfolioItem/Feature", toCreate); 

     // scrape ID off the end of the reference 
     var pureId = createFeatureResult.Reference.Substring(createFeatureResult.Reference.LastIndexOf('/') + 1); 

     // add UserStories 
     foreach (UserStory u in FeatureToAdd.UserStories) 
     { 
      toCreate = new DynamicJsonObject(); 
      toCreate["Name"] =u.Name; 
      toCreate["Description"] = u.Description; 
      toCreate["WorkProduct"] = "PortfolioItem/Feature/" + pureId; 
      //toCreate["WorkProduct"] = createFeatureResult.Reference;<- tried this too 

      // hierarchicalrequirement = UserStory 
      CreateResult createUserStoryResult = restApi.Create("hierarchicalrequirement", toCreate); 
     } 

運行此創建兩個,但沒有關聯發生。我得到一個警告:?

Ignored JSON element hierarchicalrequirement.WorkProduct during processing of this request. 

爲什麼會隨意忽略這個...

回答

1

它忽略了工作產品,因爲工作產品是不是HierarchicalRequirement有效的字段。您要指定用於設置故事的父項功能的字段稱爲PortfolioItem。

toCreate["PortfolioItem"] = Ref.GetRelativeRef(createFeatureResult.Reference); 

此外,對象關係被指定爲在作爲WSAPI參考文獻(/類型/ ID),因此可以乾脆直接從createFeatureResult參考通過。

對不起,你正在發現api令人沮喪。它肯定有一些奇怪的黑暗角落,但是一旦你使用了它並且感受到各種域對象是如何相關的,我想你會發現它非常強大和一致。

+0

現在,我只需要列出所有適當的術語和關係。那麼,現在,我該如何在這些'userStories'下添加'任務'?我應該用什麼術語? –

+0

我認爲這是「任務」,如https://rally1.rallydev.com/slm/doc/webservice/ –

+0

所示:toCreate [「WorkProduct」] = Ref.GetRelativeRef(createUserStoryResult.Reference); –

相關問題