Разрешить / закрыть сценарий TFS только с неактивными дочерними элементами / ссылками - PullRequest
1 голос
/ 17 февраля 2011

Моя компания использует TFS 2008 с шаблоном процесса MSF для Agile. Мы находимся в процессе планирования обновления для TFS 2010. Мы используем сценарии в качестве контейнера для функциональных требований со связанными задачами разработки, ошибками и т. Д.

Чтобы сохранить состояние сценария как «Разрешено» или «Закрыто», я хотел бы обеспечить, чтобы любая задача или ошибка разработки, связанная со сценарием, также была закрыта. В TFS 2008 это ссылки, в TFS 2010 мы планируем использовать дочерние рабочие элементы.

Я просматривал схему определения типа рабочего элемента и документацию MSDN, но мне не удалось найти решение этой проблемы.

Можно ли это сделать? Заранее спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 26 февраля 2011

То, что вы хотите, не может быть сделано напрямую. Сохранение рабочего элемента называется уведомлением (а не решением). Это означает, что вы можете делать вещи TFS API только после события. Вы не можете заблокировать это.

Однако есть способы получить «эффект» того, что вы ищете. Если бы вы изменили свой шаблон так, чтобы ваш родительский рабочий элемент (я думаю, вы назвали его сценарием) имел контроль состояния (, а не поле ) только для чтения, что сделало бы его доступным только для клиентов, которые не используют обычные элементы управления Visual Studio могут изменить это значение. (Ваши пользователи могут обойти эту проблему, но для того, чтобы нарушить правила, потребуются некоторые усилия).

Но есть еще один шаг. Вам нужно как-то перевести родительский рабочий элемент в «Разрешенный». Для этого я рекомендую инструмент с открытым исходным кодом под названием TFS Aggregator. (Или, если вы планируете «свернуть свой собственный», вы можете использовать код там в качестве отправной точки.)

Кодовый комплекс TFS Aggregatoron можно найти здесь: http://tfsaggregator.codeplex.com/

Это отличный инструмент для объединения изменений и итогов в родительские рабочие элементы. Вы можете добавить в правило, что, когда все ваши дочерние элементы «сделаны», вы можете переместить Родителя в «Решено».


РЕДАКТИРОВАТЬ: Теперь я понимаю из вашего вопроса, что у вас есть более одного типа рабочего элемента в качестве дочернего элемента родительского элемента. Агрегатор TFS не поддерживает это прямо сейчас (но может и в будущем). Он был написан для агрегирования задач в Bugs или PBI. Тем не менее, вероятно, было бы легче изменить код этого проекта, чем начинать с нуля.

0 голосов
/ 17 февраля 2011

Я не думаю, что это возможно "из коробки". Я бы порекомендовал вам написать запрос, чтобы найти случаи, когда «правило» нарушается, и обработать его таким образом.

Если вы ДОЛЖНЫ автоматизировать это - вы можете использовать TFS Eventing Service , которая может вызывать веб-службу.

Установите его для случаев, когда задача или ошибка закрыты - запросите базу данных для сценария, а если все задачи / ошибки закрыты - используйте TFS API, чтобы перевести статус в состояние разрешен или закрыт. Вы можете ограничить доступ разрешенного пользователя к учетной записи, под которой работает Служба.

...