TFS 2013 Kanban board完成列(多个完整状态)

时间:2015-04-08 06:31:15

标签: tsql tfs tfs2012 tfs2013 kanban

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

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

TFS2012 Kanban Board看起来像那样(注意下拉列表): TFS2012 Kanban Board

TFS2013看板看起来像那样(注意没有下拉列表): enter image description here

我有权访问TFS Collection数据库,我想创建一个SQL查询,向我展示TFS 2012中此列的所有自定义。

  • 如何为每个团队项目和每个团队获取“My WorkItem”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

2 个答案:

答案 0 :(得分:2)

专家不建议访问TFS数据库,但如果配置了报告,则可以使用Tfs_Warehouse数据库,并且收集所有项目集合中的数据并将其存储在针对报告进行优化的表中。                              我对TFS的数据库结构没有了解,但是通过我管理的一些重要的在线文章,对它的了解很少,因为我理解你需要的信息在WorkItemsAre表中。

通过以下查询,您可以获得看板上某个工作项的状态:


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

希望我上面提供的消息可以帮助您解决问题!

答案 1 :(得分:2)

我联系了Microsoft支持,他们向我提供了以下问题的答案:

SELECT
       board.TeamId,
       boardColumn.Name,
       workItemTypeExtensions.Rules
FROM           
       tbl_Board board JOIN
       tbl_WorkItemTypeExtensions workItemTypeExtensions ON board.ExtensionId = workItemTypeExtensions.Id JOIN
       tbl_projects projects ON workItemTypeExtensions.ProjectId = projects.project_id  JOIN
       tbl_BoardColumn boardColumn ON board.Id = boardColumn.BoardId
WHERE       
       projects.project_name LIKE '%< ENTER YOUR PROJECT NAME HERE >%' AND
       boardColumn.ColumnType = 2
ORDER BY
       board.TeamId,
       boardColumn.[Order]

当我在&#34;规则&#34;中检查XML时在那里,我可以找到我正在寻找的东西。