有没有一种方法可以使用TFS 2012 API以编程方式访问WorkItem的“看板列”?

使用Scrum 2.2模板,每当将工作项拖到开发板上的看板列之间时,“错误”或产品积压项目的历史记录就会将“[[MyProject\MyTeam]看板列”显示为已更改的字段,但是在特定情况下无法访问该字段通过TFS API检索工作项。

当在WorkItemChangedEvent接口(interface)上实现ProcessEvent方法时,它也显示为Microsoft.TeamFoundation.Framework.Server.ISubscriber对象中的更改字段。

解决方法:
一位同事发现了一个blogpost,它创建了一个只读自定义字段来保留看板列的值,并利用WorkItemChangedEvent来捕获最新值。然后可以在此列上进行查询。这种方法的一个问题是只能跟踪一个团队的“看板专栏”。

更新:
根据此blogpost,“看板列”不是字段,而是“WIT扩展名”。这可能有助于得出答案。

最佳答案

我在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];
        }
    }
}

关于tfs - 访问工作项目的“看板”列(特定于团队的字段),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18193036/

10-13 07:51