All WORKFLOW XML elements reference

Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018 - TFS 2013

You can use the information in this topic as a quick reference to all the elements and main attributes that control the workflow for a type of work item. You specify these elements in the WORKFLOW element container, which is the second major section of the definition of a work item type. You use the STATES and TRANSITIONS child elements to define the different states that a user can specify for a type of work item and which transitions are allowed between states. For more information about how to define these elements, see Change the workflow

To modify the workflow, you modify the definition for a work item type. See Modify or add a custom work item type.

WORKFLOW example

The following example shows the overall structure of the WORKFLOW element. You specify all the states to which a user can first assign a work item type within a STATES container. Next, you specify all the transitions that are allowed from one state to another. Each state corresponds to a STATE element, and each transition corresponds to a TRANSITION element. Within each STATES and TRANSITIONS container element, you can define the states and transitions in any sequence that you want.

For each transition, you specify a set of reasons for changing the state of the work item, including a default reason. You can assign values for each state, transition, or reason, and you can place conditions on the values of one or more fields by using the FIELD (Workflow) element. In addition, you can trigger an action to occur during a transition by specifying the ACTION element.

<WORKFLOW>  
<STATES>  
  <STATE value="Active">  
    <FIELDS> . . . </FIELDS>  
  </STATE>  
  <STATE value="Resolved">  
    <FIELDS> . . . </FIELDS>  
  </STATE>  
  <STATE value="Closed" />  
</STATES>  
<TRANSITIONS>  
  <TRANSITION from="" to="Active">  
    <REASONS>  
      <DEFAULTREASON value="New" />  
    </REASONS>  
    <FIELDS> . . . </FIELDS>  
  </TRANSITION>  
  <TRANSITION from="Active" to="Resolved">  
    <REASONS> . . . </REASONS>  
    <FIELDS> . . . </FIELDS>  
    <ACTIONS > . . . </ACTIONS >  
</TRANSITION>  
<TRANSITION from="Resolved" to="Closed">  
    <REASONS> . . . </REASONS>  
    <FIELDS> . . . </FIELDS>  
    <ACTIONS > . . . </ACTIONS >  
</TRANSITION>  
<TRANSITION from="Resolved" to="Active">  
    <REASONS> . . . </REASONS>  
    <FIELDS> . . . </FIELDS>  
</TRANSITION>  
<TRANSITION from="Active" to="Closed ">  
    <REASONS> . . . </REASONS>  
    <FIELDS> . . . </FIELDS>  
</TRANSITION>  
<TRANSITION from="Closed" to="Active">  
    <REASONS> . . . </REASONS>  
    <FIELDS> . . . </FIELDS>  
</TRANSITION>  
</TRANSITIONS>  
</WORKFLOW>  

Syntax structure

By using the elements that the following table describes, you can specify to which states a team member can set a work item of a particular type. In the WORKFLOW section of the definition, you define states first, and then you define transitions. For more information, see Change the workflow.

Element

Description and syntax

Required?

ACTION

Defines a text string that corresponds to an action to be performed when the system for tracking work items calls the WorkItem.GetNextState method to get the post-action state of the work item.

<ACTION value="NameOfAction" />

For more information, see Automate field assignments based on State, Transition, or Reason

Optional

ACTIONS

Defines a collection of ACTION elements.

<ACTIONS>
<ACTION>. . . </ACTION>
</ACTIONS>

Optional

DEFAULTREASON

Defines the most common cause of a team member changing a work item from one particular state to another particular state.

<DEFAULTREASON value="ValueOfDefaultReason">
<FIELDS>. . . </FIELDS>
</DEFAULTREASON>

Required

FIELD

Specifies a field for a type of work item and the rules and conditions that will be applied to that field when a team member changes the state of a work item of that type and specifies a reason for the change.

<FIELD refname="FieldReferenceName">
<ALLOWEDVALUES> . . . </ALLOWEDVALUES>
<ALLOWEXISTINGVALUE />
<CANNOTLOSEVALUE />
<COPY />
<DEFAULT />
<EMPTY />
<FROZEN />
<MATCH />
<NOTSAMEAS />
<PROHIBITEDVALUES /> . . . </PROHIBITEDVALUES>
<READONLY />
<SERVERDEFAULT />
<SUGGESTEDVALUES /> . . . </SUGGESTEDVALUES>
<VALIDUSER />
<WHEN>> . . . </WHEN>
<WHENNOT> . . . </WHENNOT>
<WHENCHANGED> . . . </WHENCHANGED>
<WHENNOTCHANGED> . . . </WHENNOTCHANGED>
<FIELD>

For more information, see FIELD (Workflow) element reference.

Optional

FIELDS

Specifies a collection of FIELD elements.

<FIELDS>
<FIELD . . . </FIELD>
</FIELDS>

Optional

REASON

Defines an additional explanation for why a team member changed the state of a work item.

<REASON value="NameOfReason">
<FIELDS>. . . </FIELDS>
</REASON>

Optional

REASONS

A collection of one DEFAULTREASON and optional REASON elements that explain why a team member changed the state of a work item.

<REASONS>
<DEFAULTREASON>. . . </DEFAULTREASON>
<REASON>. . . </REASON>
</REASONS>

STATE

Defines a valid state for the work item type. This element can contain a FIELDS element, which references rules and conditions that will be applied to a specific field when a team member changes the state of a work item of that type.

<STATE value="NameOfState">
<FIELDS>. . . </FIELDS>
</STATE>

Required

STATES

Specifies a collection of STATE elements that define the valid states to which a user can assign a work item of that type.

<STATES>
<STATE>. . . </STATE>
</STATES>

Required

TRANSITION

Specifies a valid progression or regression from one state to another for work items of a particular type.

<TRANSITION from="NameOfStartingState" 
to="NameOfEndingState" 
for="UserOrGroupName"
not="UserOrGroupName">
<ACTIONS>. . . </ACTIONS>
<REASONS>. . . </REASONS>
<FIELDS>. . . </FIELDS>
</TRANSITION>

For more information, see TRANSITION element.

Required

TRANSITIONS

Specifies a collection of TRANSITION elements.

<TRANSITIONS>
<TRANSITION>. . . </TRANSITION>
</TRANSITIONS>

Required

WORKFLOW

Specifies the collection of STATES and TRANSITIONS container elements that together define the workflow for the type of work item.

<WORKFLOW>
<STATES>. . . </STATES>
<TRANSITIONS>. . . </TRANSITIONS>
</WORKFLOW>

Required