Столбец "Готово" на доске TFS 2013 (несколько завершенных состояний)

В TFS 2013 Microsoft «исправила» ошибку, которая позволяла отображать состояние WorkItem в состояние «Готово» на доске Канбан. Эта функция активно использовалась в нашей компании. Есть петиция, чтобы вернуть его обратно, но я не думаю, что это удастся: 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 Kanban Board выглядит так (обратите внимание на НЕТ раскрывающегося списка): введите описание изображения здесь

У меня есть доступ к базе данных TFS Collection, и я хотел бы создать SQL-запрос, который показывает мне все настройки этого столбца в TFS 2012.

  • Как я могу получить для «My WorkItem» индивидуальное состояние «Готово» в базе данных TFS2012 для каждого командного проекта и каждой команды?
  • Какие еще таблицы мне нужно связать, чтобы получить эти состояния?

Пока мне удалось получить только TeamId, Name, ColumnType ProjectId, но не эффективный WorkItem и настройку столбца «Готово». Как я могу это сделать?

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

person Bruno Bieri    schedule 08.04.2015    source источник


Ответы (2)


Эксперты не рекомендуют обращаться к базе данных TFS, но вы можете использовать Tfs_WarehouseDatabase, если настроена отчетность и данные из всех коллекций проектов собираются и хранятся в таблицах, оптимизированных для отчетности. У меня нет знаний о структурах db в TFS, но, прочитав несколько важных онлайн-статей, мне удалось немного понять, и, насколько я понял, необходимая для вас информация находится в WorkItemsAretable.

С помощью этих запросов ниже вы можете получить состояние определенного рабочего элемента на доске Канбан:


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

Надеюсь, что приведенные выше источники помогут решить вашу проблему!

person Heisenberg    schedule 17.04.2015
comment
Спасибо за ответ @Pathum. Я был за границей по делам и не мог проверить ваш ответ. Я полностью осознаю, что не имею прямого доступа к TFS SQL, но если вы можете предоставить мне другой способ получить информацию, которая мне нужна, дайте мне знать. Кажется, я неправильно понял мой вопрос. Что я получаю с предоставленными SQL-запросами, это то, где определенные рабочие элементы находятся на доске Канбан. Это не то, что я ищу. Но то, что я ищу, - это отображение того, как рабочие элементы отображаются на доске Канбан. И мне нужно знать отображение состояния Done (проверьте мой вопрос). Пожалуйста, дайте мне знать для дальнейших идей. - person Bruno Bieri; 27.04.2015
comment
У вас есть дополнительная помощь по этому поводу? - person Bruno Bieri; 12.05.2015
comment
@BrunoBieri Извините за позднюю обратную связь, у меня есть некоторая информация. Пройдусь по ним должным образом и свяжусь с вами :) вместо того, чтобы копировать вставку ссылки. - person Heisenberg; 13.05.2015

Я связался со службой поддержки 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]

Когда я проверяю XML в столбце «Правила», я могу найти именно то, что искал.

person Bruno Bieri    schedule 28.05.2015