有没有一种方法可以使用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/