Заметки консультанта

Шамрай Александр Владимирович

Archive for 09.02.2015

Руководство по настройке шаблона процесса TFS. Сценарий 1 – Закрытие итерации

Posted by Шамрай Александр на Февраль 9, 2015

Краткий обзор бизнес-проблемы

Этот сценарий охватывает аспекты блокировки одной или нескольких итераций так, чтоб они больше не могли использоваться после завершения итерации. Мы изменим существующий Product Backlog Item из шаблона MSF Agile для включения необходимой проверки.

Что в этом руководстве?

  • Настройка шаблона процесса
  • Блокирование пути итерации
  • Реализация и развертывание

Настройка

Этот документ представляет собой решение для этого сценария из реальной жизни, когда тип рабочего элемента должен быть изменен для соблюдения бизнес-правил. В пользовательский интерфейс для обеспечения проверки добавляется новое поле и внутри рабочего элемента добавляется дополнительная логика для обеспечения проверки успеха или ошибки.

Мы возьмем шаблон рабочего элемента Product Backlog Item и настроим его. Эта настройка обеспечит проверку, что выбран допустимый, активный путь итерации, проще говоря, он проверен.

  1. Вкладка проверки или поле будут отображаться на форме, сообщая пользователю о необходимых данных
  2. Запрещенное значение в сообщении проверки создаст подсказку в VS в верхней части рабочего элемента
  3. Пользователь может проверить предупреждение для получения дополнительной информации
  4. После того, как пользователь выберет правильный Iteration Path, сообщение проверки обновится как допустимое значение; Пользователь теперь может сохранить рабочий элемент

Основой проверки является поле сообщения. Во время изменения пути итерации обновляется поле сообщение, чтобы отражать, что выбранная итерация не соответствует желаемому критерию. Сообщение, которое мы представляем для конечного пользователя, это запрещенное значение для этого поля. Что в свою очередь в Visual Studio отобразится как предупреждающее сообщение в верхней части формы, информирующее пользователя сделать правильный выбор для поля Iteration Path.

Рисунок 1 – Пример сообщения с ошибкой для итерации

В этом руководства мы будем использовать следующие установки итерации.

Рисунок 2 – Пример настройки итераций

Настройка позволит вам запретить пользователю выбирать Корневой узел (FabrikamFiber). Кроме этого, шаблон рабочего элемента нужно будет обновляться каждый раз, когда закрывается итерация для обеспечения того, что новые элементы могут быть открыты только в активной итерации.

Шаги

Шаг Описание Сделано
1 Экспортировать тип рабочего элемента, который вы ходите настроить [ ]
2 Определить идентификатор итерации для ограничиваемой итерации [ ]
3 Отредактировать экспортированный файл xml и применить изменения [ ]
4 Импортировать настроенный шаблон рабочего элемента [ ]
5 Протестировать настроенный тип рабочего элемента [ ]

Таблица 1 – Шаги решения

Реализация и развертывание

Проверка реализуется путем создания нового поля, которое отображается в пользовательском интерфейсе, с некоторыми правилами

1. Первым шагом является экспорт типа рабочего элемента, который вы хотите изменить из конкретного командного проекта.

Чтобы выполнить это, мы можем использовать программу witadmin:

Перейдите в Пуск-> Microsoft Visual Studio 2012-> Visual Studio Tools и откройте Developer Command Prompt

Выполните следующую команду для экспорта типа в файл xml:

witadmin exportwitd /collection:http://tfsserver:8080/tfs/CollectionName /p:TeamProjectName /f:ProductBacklogItem.xml /n: ProductBacklogItem

2. Откройте файл типа рабочего элемента для настройки, например:


Рисунок 3 – Первоначальный тип рабочего элемента Product Backlog Item

3. Определите идентификатор итерации для ограничиваемой итерации

Для определения идентификаторов итерации различных путей итерации, которые мы хотим сделать неактивными, мы создадим дополнительный отчет, который включает информацию, необходимую для определения необходимых данных. Для создания нового запроса, нажмите ссылку Новый запрос в разделе запросы Team Explorer.

Альтернативно, если вы имеете доступ к базе данных, вы можете запустить следующий запрос:

select tbl_nodes.path, treenodes.id from treenodes inner join tbl_nodes on convert(varchar(36), tbl_nodes.id) = treenodes.CSSNodeId order by tbl_nodes.path

Рисунок 4 – Запросы в Team Explorer

Это запустит конструктор запросов

Рисунок 5 – Редактор запросов

Нажмите кнопку Параметры столбца на панели инструментов редактора запросов. Это отобразит окно Параметры столбцов, которое позволит вам обновлять столбцы, которые будут включены в результат запроса, при его выполнении. Измените столбцы для включения IterationID и Iteration Path (я включил также AreaID и Area Path). Нажмите кнопку ОК.

Рисунок 6 – Настройка столбцов в редакторе запросов

Далее нажмите кнопку выполнить на панели инструментов редактора запросов. Результирующий запрос предоставит вам список путей итерации и идентификаторы итерации. Посмотрите в результирующих элементах пути итерации, которые вы хотите запретить.

Рисунок 7 – Запрос путей и идентификаторов итераций

В нашем случае пути и идентификаторы итерации, которые мы хотим запретить, перечислены в таблице ниже. Эта информация будет меняться в зависимости от конкретной конфигурации. Если пути итерации, которые вы хотите запретить не перечислены здесь, можно либо создать новый рабочий элемент и поместить его в отсутствующий путь итерации, либо временно обновить существующий.

Путь итерации Идентификатор итерации
FabrikamFiber 19
FabrikamFiber\Iteration 0 38

Таблица 2 – Идентифицированные пути итерации для запрета

В этом случае IterationID — 19 и 38. Значения и количество IterationID будет варьироваться в зависимости от конкретной конфигурации Team Foundation Server

4. Создайте новое поле IterationPathValidation с определенным правилом.

Когда закрыты дополнительные итерации, выделенный раздел в PBI.xml ниже нужно будет скопировать с новым IterationID, чтобы блокировать эти дополнительные итерации.

Рисунок 8 – Поле IterationPathValidation

<!—
************* Adding New Field **************************** —>

<FIELD nameIteration Path Validation» refnameDemo.IterationPathValidation» typeString» reportabledimension» >

<COPY fromvalue» value=»» />

<PROHIBITEDVALUES>

<LISTITEM valueIteration path has to be at least 2 levels deep» />

<LISTITEM valueThe selected iteration has been completed. Log Product Backlog Items against a future iteration» />

</PROHIBITEDVALUES>

<WHEN fieldSystem.IterationID» value=»3«>

<COPY fromvalue» valueIteration path has to be at least 2 levels deep» />

</WHEN>

<WHEN fieldSystem.IterationID» value18«>

<COPY fromvalue» valueThe selected iteration has been completed. Log Product Backlog Items against a future iteration» />

</WHEN>

</FIELD>

<!— END ************* Adding New Field **************************** —>

Исходный код 1 – Поле проверки пути итерации

Текст сообщения об ошибке вы используете в зависимости от информации, который вы хотите передать пользователям.

Создайте вкладку Validation Info для отображения проблем проверки в рабочем элементе и добавьте на нее созданное поле IterationPathValidation.

Рисунок 9 – IterationPathValidation добавленное на форму

<Tab LabelValidation Info«>

<Group LabelValidation Errors«>

<Column PercentWidth100«>

<Control FieldNameDemo.IterationPathValidation» TypeFieldControl» LabelIteration path validation: » LabelPositionLeft» ReadOnlyTrue» />

</Column>

</Group>

</Tab>

Исходный код 2 — IterationPathValidation добавленное на форму

5. Импортируйте новый настроенный шаблон рабочего элемента

Предварительно, как хорошая практика, вы можете проверить XML определение перед импортом в ваш Командный Проект:

witadmin importwitd /collection:http://tfsserver:8080/tfs/CollectionName /f:ProductBacklogItem.xml /p:TeamProjectName /v

Выполните следующую команду импорта:

witadmin importwitd /collection:http://tfsserver:8080/tfs/CollectionName /f:ProductBacklogItem.xml /p:TeamProjectName

6. Протестируйте настроенный рабочий элемент

Создайте новый рабочий элемент Product Backlog Item, обратите внимание, что появилась новая вкладка Validation Info. Вы также заметите, что присутствует индикатор ошибки проверки. Это потому, что итерация в настоящее время присвоена FabrikamFiber (корневой узел иерархии пути итерации).

Рисунок 10 – Вкладка Validation Info

При нажатии на вкладку Validation Info мы увидим отображаемое на ней сообщение.

Рисунок 11 – Начальная ошибка проверки при создании нового Product Backlog Item

Заполните рабочий элемент, введя необходимые данные и убедитесь, что путь итерации заполнен значением закрытой или заблокированной итерации, при этом появится сообщение об ошибке. Наконец при выборе пути итерации, которая считается действительной, как показано в ниже, исчезнет сообщение проверки.

Рисунок 12 – Заполненный новый Product Backlog Item с правильным Iteration Path

Итог

В этом пошаговом руководстве мы рассмотрели настройку шаблона процесса для типа рабочего элемента. Было показано как добавить поле, сделать его видимым на форме рабочего элемента, создать правило, которое обеспечит действительный Iteration Path, и определить IterationID и Iteration Path.

Т.к. этот вид настройки типа рабочего элемента делается в одном проекте, а если у вас есть намерение иметь такую настройку для будущих командных проектов, необходимо обновить шаблон процесса. Пожалуйста, смотрите http://msdn.microsoft.com/en-us/library/ms194972.aspx о том, как обновить шаблон процесса.

Posted in Microsoft, Team Foundation Server, TFS Process Template Customization Guide, Visual Studio | Отмечено: , , | Leave a Comment »

 
%d такие блоггеры, как: