다음을 통해 공유


상태, 전환 또는 이유를 기반으로 필드 할당 자동화

Visual Studio ALM(Application Lifecycle Management)의 다른 곳에서 발생하는 이벤트 또는 Visual Studio ALM 외부에서 발생하는 이벤트에 따라 작업 항목을 한 상태에서 다른 상태로 자동으로 전환할 수도 있습니다. 예를 들어 호출 추적 도구에서 발생하는 상황을 기준으로 버그를 한 상태에서 다른 상태로 자동으로 전환할 수 있습니다. 작업 항목 유형 모델 및 작업 항목 추적 API는 다른 시스템의 작업 항목 자동 전환을 지원하도록 확장되었습니다.

작업 항목의 상태를 변경하는 코드가 있는 경우에는 ACTION 요소를 사용하여 작업을 적절한 상태 전환에 연결함으로써 해당 코드를 일반화할 수 있습니다. 작업의 값을 [WorkItem.GetNextState] 메서드로 전달하여 해당 작업 항목의 작업 후 상태를 가져올 수 있습니다. 버전 제어 체크 인 대화 상자는 이 메서드를 사용하여 버그를 해결하고 체크 인과 연관된 작업을 닫습니다.

ACTION은 ACTIONS의 선택적 자식 요소입니다.

참고

작업 항목 추적 API는 Microsoft 웹 사이트의 Team Foundation 확장 페이지에 설명된 대로 Visual Studio ALM SDK의 일부분입니다.

예를 들어 사용자가 변경 사항을 체크 인한 후에 작업 항목을 "Resolved"로 자동으로 전환하도록 도구가 사전 설정되어 있습니다. 하지만 통합 공급업체는 작업 항목 유형 작성자가 어떤 상태를 "Resolved"로 선언했는지를 알지 못합니다. 작성자가 Resolved, Closed, Completed, Ready For Test, Include In Build 등을 의미한 것일 수도 있습니다. 모든 작업 항목 유형 작성자가 "Resolved"라는 명시적인 상태를 포함하도록 요구하는 것도 한 가지 방법이 될 수 있습니다.

하지만 이 방법은 너무 제한적입니다. 또한 상태 이름을 지역화할 수 없기 때문에 국제적인 관점에서 보았을 때도 유용하지 못합니다. 이 대신에 시스템 통합업체가 작업 항목을 자동으로 전환하는 "Check-in" 또는 "Complete" 등의 작업을 선언할 수도 있습니다. 그런 다음에 작업 항목 유형 작성자가 적절한 전환에 대해 이 작업을 선언합니다.

항목 내용

  • ACTION 요소 구문

  • 자동화를 지원하는 데 필요한 단계

  • 상태 전환을 작업과 연결

  • 전환 작업 세부 정보

  • 자동 전환 오류 검사

ACTION 요소 구문

다음 구문은 ACTION 요소에 사용됩니다. 값 특성은 작업의 이름을 지정하며 필수입니다. 작업에 대해 필드 참조 이름과 동일한 명명 규칙을 따라야 합니다. 예를 들어 Team Foundation 버전 제어는 Microsoft.VSTS.Actions.CheckIn을 사용하여 체크 인과 연관된 작업 항목에 대해 적절한 전환을 식별합니다. 자세한 내용은 작업 항목 추적 개체의 명명 규칙을 참조하십시오.

<ACTION value="NameOfAction" />

minOccurs="0"

maxOccurs="unbounded"

자동화를 지원하는 데 필요한 단계

도구를 작업 항목 추적과 통합하려면 도구에서 다음 단계를 수행해야 합니다.

  1. 작업이 수행될 때 작업 항목이 어떤 상태로 전환되어야 하는지를 결정합니다.

  2. 작업 항목을 "to" 상태로 설정합니다.

    작업 항목 추적 API는 이 단계를 수행하기 위한 메서드를 제공합니다. 작업 항목 추적 API는 Visual Studio ALM SDK의 일부분입니다. 자세한 내용은 Microsoft 웹 사이트의 Team Foundation Server SDK 페이지를 참조하세요.

    참고

    특정 상태 전환을 일으킨 트랜잭션 작업은 기록되지 않습니다.전환을 일으킨 작업을 추적해야 하는 경우에는 이를 추적하기 위한 추가 작업 항목 필드를 지정하거나 Reason 값을 정의할 수 있습니다.

맨 위로 이동

상태 전환을 작업과 연결

상태 전환 작업을 사용하여 워크플로의 다양한 시점에서 작업 항목 전환을 자동화할 수 있습니다. 예를 들어 Team Foundation Server 버전 제어 시스템은 체크 인 시에 작업 항목의 자동 전환을 지원해야 합니다. 이를 지원하기 위해 "microsoft.vsts.actions.checkin" 작업이 정의되었습니다.

작업 항목 유형 작성자는 "Working"이라는 상태의 "Defect" 작업 항목 유형을 정의하고, 개발자가 무언가를 변경할 때 이 작업 항목을 사용할 수 있습니다. 작업 항목 유형 작성자가 "Ready To Build"라는 다른 상태를 정의할 수도 있습니다. 이 상태는 결함의 영향을 받은 코드가 야간 빌드에 맞춰 준비되어 있다고 개발자가 선언하는 것을 의미합니다.

작성자는 다음을 선언함으로써 체크 인 작업 중에 작업 항목이 "Working" 상태에서 "Ready To Build" 상태로 자동 전환되도록 할 수 있습니다.

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

맨 위로 이동

전환 작업 세부 정보

상태 전환 작업을 사용하여 워크플로의 다양한 시점에서 작업 항목 전환을 자동화합니다. 전환 작업에 대해 다음과 같은 자세한 용도를 고려할 수 있습니다.

  • 트랜잭션 작업은 선택 사항입니다. 작업 항목 인스턴스의 현재 상태에 지정된 작업에 대한 작업 항목이 있는 경우 "to" 상태가 반환됩니다. 그렇지 않은 경우 반환 값은 Null입니다. 통합은 Null 반환 값을 정상적으로 처리해야 합니다. 즉, 다음과 같이 처리해야 합니다.

    • 실패해서는 안 됩니다.

    • 필요한 작업을 찾을 수 없었기 때문에 통합이 자동 전환되지 않았음을 알리는 추적 또는 로그를 남겨야 합니다.

  • 각 작업 항목 유형에서 From State/Action 쌍에 대해 작업이 고유해야 합니다. 즉, 작업 항목 유형 작성자는 같은 작업에 대해 여러 개의 "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 규칙 요소를 사용하여 필드의 값을 지정합니다.

예를 들어 작업 항목의 상태를 "Working"에서 "Ready to Build"로 전환하는 Check-In이라는 트랜잭션 작업을 만들었습니다. "Ready to Build"에 대한 작업 항목 규칙은 "Resolved By" 필드가 설정되어 있을 것을 요구합니다. 따라서 TRANSITION 섹션에서 "ResolvedBy"에 대해 DEFAULT 또는 COPY 규칙 요소를 정의합니다. 또한 DEFAULTREASON을 정의하여 사용자 관여 없이도 필수 필드가 설정될 수 있도록 합니다.

참고 항목

기타 리소스

작업 항목 필드에 규칙 적용

Associating a State Transition with an Action