tsql - TFS 2013 Kanban board Done栏(多个完成状态)

标签 tsql tfs kanban

在 TFS 2013 中,微软“修复”了一个错误,该错误允许将工作项的状态映射到看板中的“完成”状态。
这个功能在我们公司被大量使用。有一份请愿书要求把它带回来,但我认为它不会成功:
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/5589316-allow-multiple-complete-meta-state-mapping-in-tfs

为了将 TFS2012 迁移到 TFS2013,我想知道 TFS 2012 中自定义的“完成”状态列在数据库中的存储位置,以创建一个报告,该报告显示哪个团队使用哪个 WorkItem 状态作为他们的“完成”状态。

TFS2012 看板看起来像这样(注意下拉菜单):
TFS2012 Kanban Board

TFS2013 看板看起来像这样(注意没有下拉菜单):
enter image description here

我确实可以访问 TFS 集合数据库,并且我想创建一个 SQL 查询,该查询向我显示 TFS 2012 中此列的所有自定义。

  • 如何在 TFS2012 数据库中为“我的工作项”获取每个团队项目和每个团队的自定义“完成”状态?
  • 为了获得这些状态,我还需要链接到哪些其他表?

  • 到目前为止,我只能获得 TeamId、Name、ColumnType ProjectId,但无法获得有效的 WorkItem 和“Done”列自定义。我怎样才能做到这一点?
    SELECT
        tbl_Board.TeamId, 
        tbl_Board.Revision, 
        tbl_BoardColumn.Name, 
        tbl_BoardColumn.ColumnType, 
        tbl_WorkItemTypeExtensions.Description, 
        tbl_BoardColumn.[Order], 
        tbl_WorkItemTypeExtensions.ProjectId
    FROM
        tbl_WorkItemTypeExtensions
        RIGHT OUTER JOIN tbl_Board ON 
        tbl_WorkItemTypeExtensions.Id = tbl_Board.ExtensionId
        LEFT OUTER JOIN tbl_BoardColumn ON 
        tbl_Board.Id = tbl_BoardColumn.BoardId
    

    最佳答案

    专家不建议访问 TFS 数据库,但如果配置了报告并且所有项目集合中的数据被收集并存储在针对报告进行了优化的表中,则您可以使用 Tfs_Warehouse 数据库。
    我不了解 TFS 的 db 结构,但是通过阅读一些重要的在线文章,我设法了解了一些关于它的内容,据我所知,您需要的信息位于 WorkItemsAre 表中。

  • Team Foundation Server Databases
    enter image description here
  • Work item field and database schema reference
    enter image description here
  • Stack overflow Question Access the Kanban Column (a Team-Specific Field) for a Work Item

  • 通过下面的这些查询,您可以获得看板上某个工作项的状态:
    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 的查询
    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
    
  • Create a Detailed Report using Report Designer

  • 希望我上面提供的资源可以帮助您解决问题!

    关于tsql - TFS 2013 Kanban board Done栏(多个完成状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29507493/

    相关文章:

    tsql - 关键字 'IF'附近的语法不正确,如果在WITH之后

    sql-server-2008 - 为什么我的 SQL 代理作业总是失败?

    powershell - 如何使用Powershell在TFS中获取特定项目的最新版本。

    看板和 Redis 的 Docker-Compose 错误

    sql - 如果不存在则插入,如果存在则删除

    sql-server - 无法执行 COMPUTE 语句

    tfs - 在 TFS 2015 中从另一个构建(条件)触发构建

    c# - 有没有一种方法可以使用 TFS API 检索工作项列表,而无需查询其数据库?

    reactjs - 用于管理多个 React 组件实例的 Redux 状态形状?

    python - 如何在 Odoo 10 的看板 View 中显示选择字段的所有阶段(甚至是空阶段)?