2017-02-03 14 views
0

私はWorkItemStoreコレクションを持っています。私は各WorkItem内でアクションを実行する必要があります。私は繰り返しながらBoardColumnを取得する必要があります。かなりシンプルですが、WorkItemでBoardColumnを取得する方法を理解するのに苦労しています。C#各作業項目のTFSかんばんボード列を取得

 // Get our WorkItem Store 
     TfsTeamProjectCollection projectCollection = GetTfsProjectCollection(tfsCollectionUri); 
     WorkItemStore workItemStore = (WorkItemStore)projectCollection.GetService(typeof(WorkItemStore)); 

     // Run a query for all Tasks on the "New Creative Work" Board. 
     WorkItemCollection queryResults = workItemStore.Query(
      "Select [State], [Title] " + 
      "From WorkItems " + 
      "Where[System.AreaPath] = '<MySysAreaPath>' " + 
      "AND[System.BoardLane] = '<MyBoardLane>'" + 
      "AND[System.State] Does Not Contain 'Completed'"); 

     foreach(WorkItem item in queryResults) 
     { 
      string myBoardColumn = item[DO NOT KNOW WHAT GOES HERE]... 
      //DO Stuff > Update db record 
     } 

すべてのヘルプは大歓迎です!!!!

+0

あなたはTFSのどのバージョンを照会していますか? –

+0

こんにちはデイブ、私はTFSを使用しています2015 –

答えて

1

最も簡単な方法は、TFS 2015.1以降のバージョンのように、TFSをTFS 2015 Update 1以降にアップグレードすることです。作業項目クエリでBoard Columnフィールドが有効になっている必要があります。作業項目クエリでかんばんのフィールドを簡単に照会して表示することができます。

クエリで作業項目ごとTFSボード列のフィールドを取得するには、以下のコードを参照してください。

using Microsoft.TeamFoundation.WorkItemTracking.Client; 
using Microsoft.TeamFoundation.Client; 
using System; 

namespace GetWorkItemField 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://tfsserver:8080/tfs/teamprojectcollection")); 
      var service = tfs.GetService<WorkItemStore>(); 
      string workItemQueryString = "Select Id, Title From WorkItems Where [System.TeamProject] = 'TeamProject'"; 
      var workItemQuery = new Query(service, workItemQueryString); 
      WorkItemCollection queryResults = workItemQuery.RunQuery(); 

      foreach (WorkItem item in queryResults) 
      { 
       var t = item.Fields["System.BoardColumn"]; 
       Console.WriteLine("{0}: {1}", item.Title, t.Value); 
      } 

     } 
    } 
} 
+0

ご意見ありがとうございます。私はTFS 2015を持っていますが、私はBoardColumnでクエリを実行できることを理解していますが、このようにして列を列挙する必要があります。ただし、列名が変更され、コードを更新する必要があるため、これは最善の選択肢ではありません。最適なアプローチは、私のボード上のすべての作業項目を取得し、各項目を照会の時点でどの列に属しているかを作業項目に尋ねることです。これを行う方法があるかどうか知っていますか?私が誤解した場合は申し訳ありません。 –

関連する問題