9

TFS 2012 API を使用して WorkItem の「かんばん列」にプログラムでアクセスする方法はありますか?

スクラム 2.2 テンプレートを使用すると、ボード上のかんばん列間で作業項目をドラッグすると、バグまたは製品のバックログ アイテムの履歴に "[MyProject\MyTeam] かんばん列" が変更されたフィールドとして表示されますが、具体的にはフィールドにアクセスできません。 TFS API を介して作業項目を取得します。

また、インターフェイスでメソッドをWorkItemChangedEvent実装すると、オブジェクトの変更されたフィールドとして表示されます。ProcessEventMicrosoft.TeamFoundation.Framework.Server.ISubscriber

回避策: 同僚が、読み取り専用のカスタム フィールドを作成してかんばん列の値を保持し、 を利用して最新の値を取得することに関するブログ投稿を見つけました。WorkItemChangedEventその後、この列に対してクエリを実行できます。このアプローチの問題点の 1 つは、1 つのチームのかんばん列しか追跡できないことです。

更新: このブログ投稿によるとかんばん列はフィールドではなく、「WIT 拡張」です。これは答えにつながるかもしれません。

4

3 に答える 3

1

データベースを掘り下げる準備ができている場合は、この情報を掘り出すことができます。私はまだ TFS でのチームのモデリングを完全には理解していませんが、最初に、次のように、対象のチームがカンバン状態を格納しているフィールド ID を特定する必要があります (TFS 2012):


 USE Tfs_DefaultCollection
 SELECT TOP(10)
        MarkerField + 1 as FieldId,* 
 FROM tbl_WorkItemTypeExtensions with(nolock) 
 JOIN tbl_projects on tbl_WorkItemTypeExtensions.ProjectId = tbl_projects.project_id
 WHERE tbl_projects.project_name LIKE '%ProjectName%

次に、下の XXXXXXXX を上で見つけた FieldId に置き換えます


 SELECT TOP 1000 
        wid.Id, 
        wia.State, 
        wid.StringValue as Kanban, 
        wia.[Work Item Type], 
        wia.Title, 
        tn.Name as Iteration
 FROM tbl_WorkItemData wid with(nolock)
 JOIN WorkItemsAre wia on wia.ID = wid.Id
 JOIN TreeNodes tn on wia.IterationID = tn.ID
 WHERE FieldId = XXXXXXXX and RevisedDate = '9999-01-01 00:00:00.000'
 ORDER BY Id
于 2014-05-22T12:55:18.963 に答える
0

私はスクラム 2.2 テンプレートに精通していませんが、TFS 作業項目の追跡に関しては、CMMI またはスクラム テンプレートの作業は同じです。

次のようなことを試してください:

public string GetKanbanColumn(WorkItem wi)
{
    if (wi != null)
    {
        return wi["Kanban"].ToString();
    }
    return string.Empty;
}

列の実際の名前に応じて、作業項目テンプレート XML ファイルで指定されます。お役に立てれば。

于 2013-08-15T20:05:51.813 に答える