访问工作项的看板列(特定于团队的字段)

Joe*_*ler 9 tfs kanban tfs-sdk tfs2012

有没有办法使用TFS 2012 API以编程方式访问WorkItem的"看板列"?

使用Scrum 2.2模板,每当在Board上的Kanban列之间拖动工作项时,Bug或Product Backlog Item的历史记录都会将"[MyProject\MyTeam]看板列"显示为已更改的字段,但具体情况下无法访问该字段通过TFS API检索工作项.

在接口上WorkItemChangedEvent实现ProcessEvent方法时,它还显示为对象中的已更改字段Microsoft.TeamFoundation.Framework.Server.ISubscriber.

解决方法: 一位同事发现了一篇关于创建一个只读自定义字段的博客文章,以保留看板列的价值,利用它WorkItemChangedEvent来捕获最新值.然后可以在此列上查询.这种方法的一个问题是只能跟踪单个团队的看板列.

更新: 根据这篇博文,看板栏不是一个字段,而是一个"WIT扩展".这可能有助于找到答案.

Joe*_*ler 6

我已经找到了一种在ISubscriber.ProcessEvent方法中使用TFS 2013 API 读取值的方法:

var workItemId = 12345;
var extService = new WorkItemTypeExtensionService();
var workItemService = new WorkItemService();
var wit = workItemService.GetWorkItem(requestContext, workItemId);
foreach (var wef in extService.GetExtensions(requestContext, wit.WorkItemTypeExtensionIds))
{
    foreach (var field in wef.Fields)
    {
        if (field.LocalName == "Kanban Column" || field.LocalName == "Backlog items Column")
        {
            // Access the new column name
            var columnName = wit.LatestData[field.Field.FieldId];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这些类可以在哪个dll中找到? (2认同)