Автоматизация назначений полей на основе состояния, перехода или причины

Возможно, потребуется автоматически перенести рабочие элементы из одного состояния в другое на основе события, произошедшего в Visual Studio Application Lifecycle Management (ALM), или события, произошедшего за пределами Visual Studio ALM. Например, может понадобиться автоматизировать переход ошибки из одного состояния в другое на основе событий в средстве отслеживания вызовов. Модель типа рабочего элемента и API отслеживания рабочего элемента расширены для поддержки автоматического перехода рабочих элементов другими системами.

Если у вас есть код, который изменяет состояние рабочего элемента, можно обобщить этот код, связав действие с соответствующим переходом состояния с помощью элемента ACTION. Значение действия можно передать в метод [WorkItem.GetNextState] для получения состояния этого рабочего элемента после действия. Диалоговое окно возврата подсистемы управления версиями использует этот метод, чтобы устранить ошибки и закрыть задачи, связанные с возвратом.

ACTION — необязательный дочерний элемент элемента ACTIONS.

Примечание

API отслеживания рабочего элемента является частью пакета SDK Visual Studio ALM, как описано на следующей странице на веб-сайте Майкрософт: Расширение Team Foundation.

Например, средство предустанавливается для автоматического перехода рабочего элемента в состояние "Разрешено" после возврата изменения пользователем. Однако как поставщик интеграции вы не знаете, какое состояние автор рабочего элемента объявил разрешенным. Автор мог иметь в виду значение "Разрешено", "Закрыто", "Готово к тестированию", "Включено в сборку" и т. д. Один из вариантов — обязать всех авторов типов рабочих элементов использовать состояние, явно именованное "Разрешено".

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

Содержание раздела

  • Синтаксис для элемента ACTION

  • Обязательные шаги для поддержки автоматизации

  • Связывание перехода состояния с действием

  • Сведения о действии перехода

  • Проверка ошибок автоматического перехода

Синтаксис для элемента ACTION

Для элемента ACTION используется следующий синтаксис. Атрибут значения указывает имя действия и является обязательным. Необходимо следовать тем же соглашениям об именовании для действий, что и для имен ссылок на поле. Например, Team Foundation (подсистема контроля версий) использует Microsoft.VSTS.Actions.CheckIn для идентификации перехода, подходящего для рабочих элементов, которые связаны с возвратом. Для получения дополнительной информации см. Соглашения об именовании объектов отслеживания рабочих элементов.

<ACTION value="NameOfAction" />

minOccurs="0"

maxOccurs="unbounded"

Обязательные шаги для поддержки автоматизации

Чтобы интегрировать в средство возможность отслеживания рабочего элемента, средство должно выполнить следующие действия.

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

  2. Задать для рабочего элемента состояние to.

    API отслеживания рабочего элемента предоставляет метод для выполнения этих шагов. API отслеживания рабочего элемента является частью пакета SDK Visual Studio ALM. Дополнительные сведения см. в следующей статье: Пакет SDK Team Foundation Server.

    Примечание

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

К началу

Связывание перехода состояния с действием

Действия перехода состояний можно использовать для автоматических переходов рабочих элементов в разных точках в рабочем процессе. Например, подсистема управления версиями Team Foundation Server должна поддерживать автоматические переходы рабочих элементов во время возврата. Для поддержки этой возможности было определено действие microsoft.vsts.actions.checkin.

Автор типа рабочего элемента может определить тип рабочего элемента "Дефект" с состоянием "В работе" и использовать этот рабочий элемент, когда разработчик вносит изменения. Автор типа рабочего элемента может определить другое состояние — "Готово к сборке"; это означает, что разработчик объявил код, на который повлиял дефект, готовым для автоматической сборки.

Автор может автоматически перевести рабочий элемент из состояния "В работе" в состояние "Готово к сборке" во время операции возврата, объявив следующее:

<TRANSITION from="Working" to="Ready To Build">
   <ACTIONS>
      <ACTION value="microsoft.vsts.actions.checkin"/>
   </ACTIONS>
</TRANSITION>

К началу

Сведения о действии перехода

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

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

    • Не вызывать сбоев.

    • Оставьте трассировку или журнал, указывающий, что интеграция не выполнила автоматический переход, поскольку требовалось действие, которое не удалось найти.

  • Для каждого типа рабочего элемента действия должны быть уникальными для пар "состояние/действие". Это означает, что авторы типов рабочих элементов не могут указать несколько состояний to для одного действия.

  • Однако в одном переходе поддерживается несколько действий для разрешения интеграций нескольких автоматических переходов, как показано в следующем примере:

    <TRANSITION from="Working" to="Ready To Build">
       <ACTIONS>
          <ACTION value="Microsoft.VSTS.Actions.Checkin"/>
          <ACTION value="ADatum.Actions.Complete"/>
       </ACTIONS>
    </TRANSITION>
    
  • Имена действий являются программными именами, для которых можно использовать только символы английского языка.

  • Имена действий должны следовать тому же соглашению об именовании пространств имен ссылок, что и соглашение имен ссылок на поле, чтобы избежать конфликтов между поставщиками и клиентами. Однако это соглашение не применяется к средству принудительно. Visual Studio ALM использует Microsoft.VSTS.Actions.<your action>.

Проверка ошибок автоматического перехода

Интеграторы могут попробовать два типа автоматических переходов. Первый — автоматический переход, происходящий из-за действия пользователя. Второй — автоматический переход, который происходит без участия пользователя, например автоматическая сборка.

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

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

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

Чтобы поля не становились недопустимыми, выполните следующие действия.

  • Определите DEFAULTREASON для перехода состояния.

  • Для полей, которые станут обязательными после перехода состояния, используйте элементы правил DEFAULT или COPY, чтобы указать значение для поля.

Например, вы создали возврат действия перехода, который переводит рабочий элемент из состояния "В работе" в состояние "Готово к сборке". Правила рабочего элемента для состояния "Готово к сборке" требуют, чтобы было задано поле "Кем разрешено". Затем будет определен элемент правила DEFAULT или COPY для ResolvedBy в разделе TRANSITION. Кроме того, будет определен элемент DEFAULTREASON, гарантирующий, что обязательное поле можно задать без вмешательства пользователя.

См. также

Другие ресурсы

Применение правила к полю рабочего элемента

Associating a State Transition with an Action