首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问工作项的看板列(特定于团队的字段)

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

Stack Overflow用户
提问于 2013-08-12 17:26:28
回答 3查看 3.4K关注 0票数 9

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

使用Scrum 2.2模板,Bug或Product项的历史记录将"MyProject\MyTeam看板列“显示为更改后的字段,每当工作项在板上的看板列之间拖动时,但是当通过TFS API专门检索工作项时,无法访问该字段。

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

解决方法:同事发现了一个关于创建只读自定义字段以持久化看板列值的blogpost,利用WorkItemChangedEvent捕获最新值。然后就可以查询该列。这种方法的一个问题是只能跟踪单个团队的看板列。

更新:根据这个blogpost,看板列不是字段,而是"WIT扩展“。这可能有助于找到答案。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-06 22:32:21

我在ISubscriber.ProcessEvent方法中找到了一种使用TFS2013API读取值的方法:

代码语言:javascript
复制
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];
        }
    }
}
票数 6
EN

Stack Overflow用户

发布于 2014-05-22 12:55:18

如果您准备深入数据库,您可以挖掘出这些信息。我还不完全理解TFS中团队的建模,但首先您需要确定感兴趣的团队存储看板状态的字段如下(TFS,2012):

代码语言:javascript
复制
 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%

然后用上面发现的FieldId替换下面的XXXXXXXX

代码语言:javascript
复制
 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
票数 1
EN

Stack Overflow用户

发布于 2013-08-15 20:05:51

我不太熟悉Scrum 2.2模板,但是对于CMMI或Scrum模板,在TFS工作项跟踪方面也是一样的。

试着做这样的事情:

代码语言:javascript
复制
public string GetKanbanColumn(WorkItem wi)
{
    if (wi != null)
    {
        return wi["Kanban"].ToString();
    }
    return string.Empty;
}

根据工作项模板XML文件中指定的列的实际名称。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18193036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档