﻿<WITD application="Work item type editor" version="1.0">
  <WORKITEMTYPE name="MyType">
    <FIELDS>
      <FIELD name="Product Categories" refname="MyCompany.ProductCategories" type="String" reportable="dimension">
        <HELPTEXT>Product Category</HELPTEXT>
        <ALLOWEDVALUES>
        <GLOBALLIST name="Products" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name="Title" refname="System.Title" type="String" reportable="detail">
        <HELPTEXT>Short description of the task used to differentiate it in a list or report</HELPTEXT>
        <REQUIRED />
      </FIELD>
      <FIELD name="State" refname="System.State" type="String" reportable="dimension">
        <HELPTEXT>The workflow state of the task</HELPTEXT>
      </FIELD>
      <FIELD name="Rev" refname="System.Rev" type="Integer" reportable="dimension" />
      <FIELD name="Changed By" refname="System.ChangedBy" type="String" reportable="dimension">
        <HELPTEXT>The person who last changed the task</HELPTEXT>
        <VALIDUSER />
      </FIELD>
      <FIELD name="Full Project Description" refname="Microsoft.VSTS.Common.Summary" type="String" reportable="detail">
        <HELPTEXT>Summary description of the task</HELPTEXT>
      </FIELD>
      <FIELD name="Issue2" refname="Microsoft.VSTS.Common.Issue" type="String" reportable="dimension">
        <HELPTEXT>Used to highlight a task, e.g., to mark it as an issue</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD name="State Change Date" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime" reportable="dimension">
        <HELPTEXT>The date and time of the last change to the state</HELPTEXT>
        <CANNOTLOSEVALUE />
        <WHENCHANGED field="System.State">
          <COPY from="clock" />
        </WHENCHANGED>
      </FIELD>
      <FIELD name="Activated Date" refname="Microsoft.VSTS.Common.ActivatedDate" type="DateTime" reportable="dimension">
        <HELPTEXT>The date and time the task was activated</HELPTEXT>
      </FIELD>
      <FIELD name="Activated By" refname="Microsoft.VSTS.Common.ActivatedBy" type="String" reportable="dimension">
        <HELPTEXT>The person who activated the task</HELPTEXT>
	<ALLOWEDVALUES expanditems="false">
          <GLOBALLIST name="Products"/>
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name="Reason" refname="System.Reason" type="String" reportable="dimension">
        <HELPTEXT>The reason why the task is in the current state</HELPTEXT>
      </FIELD>
      <FIELD name="Assigned To" refname="System.AssignedTo" type="String" reportable="dimension">
        <HELPTEXT>The person assigned to do the work</HELPTEXT>
        <VALIDUSER />
      </FIELD>
      <FIELD name="Work Item Type" refname="System.WorkItemType" type="String" reportable="dimension" />
      <FIELD name="Date Closed" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">
        <HELPTEXT>The date and time the task was closed</HELPTEXT>
      </FIELD>
      <FIELD name="Closed By" refname="Microsoft.VSTS.Common.ClosedBy" type="String" reportable="dimension">
        <HELPTEXT>The person who closed the task</HELPTEXT>
        <VALIDUSER />
      </FIELD>
      <FIELD name="Date Logged" refname="System.CreatedDate" type="DateTime">
        <HELPTEXT>The date and time the task was created</HELPTEXT>
      </FIELD>
      <FIELD name="Logged By" refname="System.CreatedBy" type="String" reportable="dimension">
        <HELPTEXT>The person who created the task</HELPTEXT>
      </FIELD>
      <FIELD name="Escalation Flag" refname="System.EscalationFlag" type="String" reportable="dimension" />
      <FIELD name="Rank" refname="Microsoft.VSTS.Common.Rank" type="Integer" reportable="dimension">
        <HELPTEXT>Stack rank to prioritize work</HELPTEXT>
      </FIELD>
      <FIELD name="Exit Criteria" refname="Microsoft.VSTS.Common.ExitCriteria" type="String" reportable="dimension">
        <HELPTEXT>Flag to determine if this scenario should be tracked as an exit criteria for the iteration</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD name="Baseline Work" refname="Microsoft.VSTS.Scheduling.BaselineWork" type="Double" reportable="measure" formula="sum">
        <HELPTEXT>The number of hours of work from the baseline plan</HELPTEXT>
      </FIELD>
      <FIELD name="Scheduled" refname="Microsoft.VSTS.Scheduling.Scheduled" type="String" reportable="dimension">
        <HELPTEXT>Indicates whether the task has been scheduled in MS Project</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD name="Summary Task" refname="Microsoft.VSTS.Scheduling.SummaryTask" type="String" reportable="dimension">
        <HELPTEXT>Indicates whether the task is a summary task in MS Project</HELPTEXT>
        <REQUIRED />
        <ALLOWEDVALUES expanditems="true">
          <LISTITEM value="Yes" />
          <LISTITEM value="No" />
        </ALLOWEDVALUES>
        <DEFAULT from="value" value="No" />
      </FIELD>
      <FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">
        <HELPTEXT>The number of hours that have been completed for this task</HELPTEXT>
      </FIELD>
      <FIELD name="Discipline" refname="Microsoft.VSTS.Common.Discipline" type="String" reportable="dimension">
        <HELPTEXT>The discipline to which the task belongs</HELPTEXT>
	<ALLOWEDVALUES>
          <GLOBALLIST name="Products"/>
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
        <HELPTEXT>The build in which the task was completed</HELPTEXT>
        <SUGGESTEDVALUES expanditems="true">
          <LISTITEM value="None" />
        </SUGGESTEDVALUES>
      </FIELD>
      <FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">
        <HELPTEXT>An estimate of the number of hours remaining to complete the task</HELPTEXT>
      </FIELD>
      <FIELD name="Description" refname="System.Description" type="PlainText" />
      <FIELD name="History" refname="System.History" type="History">
        <HELPTEXT>Discussion thread and other historical information</HELPTEXT>
      </FIELD>
      <FIELD name="RelatedLinkCount" refname="System.RelatedLinkCount" type="Integer" />
      <FIELD name="Iteration Path" refname="System.IterationPath" type="TreePath" reportable="dimension" />
      <FIELD name="IterationID" refname="System.IterationId" type="Integer" />
      <FIELD name="ExternalLinkCount" refname="System.ExternalLinkCount" type="Integer" />
      <FIELD name="Team Project" refname="System.TeamProject" type="String" reportable="dimension" />
      <FIELD name="HyperLinkCount" refname="System.HyperLinkCount" type="Integer" />
      <FIELD name="AttachedFileCount" refname="System.AttachedFileCount" type="Integer" />
      <FIELD name="Node Name" refname="System.NodeName" type="String" />
      <FIELD name="Node Type" refname="System.NodeType" type="String" />
      <FIELD name="Area Path" refname="System.AreaPath" type="TreePath" reportable="dimension" />
      <FIELD name="Revised Date" refname="System.RevisedDate" type="DateTime" />
      <FIELD name="Changed Date" refname="System.ChangedDate" type="DateTime" reportable="dimension">
        <HELPTEXT>The date and time of the last change to the task</HELPTEXT>
      </FIELD>
      <FIELD name="ID" refname="System.Id" type="Integer" reportable="dimension">
        <HELPTEXT>Human readable, auto-populated numeric Id</HELPTEXT>
      </FIELD>
      <FIELD name="AreaID" refname="System.AreaId" type="Integer" />
      <FIELD name="Authorized As" refname="System.AuthorizedAs" type="String" />
    </FIELDS>
    <WORKFLOW>
      <STATES>
        <STATE value="Active">
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <EMPTY />
            </FIELD>
          </FIELDS>
        </STATE>
        <STATE value="Closed">
          <FIELDS>
            <FIELD refname="System.AssignedTo">
              <EMPTY />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <REQUIRED />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <REQUIRED />
            </FIELD>
          </FIELDS>
        </STATE>
      </STATES>
      <TRANSITIONS>
        <TRANSITION from="" to="Active">
          <REASONS>
            <DEFAULTREASON value="New" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <COPY from="clock" />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <COPY from="currentuser" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
        <TRANSITION from="Active" to="Closed">
          <REASONS>
            <DEFAULTREASON value="Completed" />
            <REASON value="Deferred" />
            <REASON value="Obsolete" />
            <REASON value="Cut" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ClosedDate">
              <COPY from="clock" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ClosedBy">
              <COPY from="currentuser" />
            </FIELD>
          </FIELDS>
          <ACTIONS>
            <ACTION value="Microsoft.VSTS.Actions.Checkin" />
          </ACTIONS>
        </TRANSITION>
        <TRANSITION from="Closed" to="Active">
          <REASONS>
            <DEFAULTREASON value="Reactivated" />
          </REASONS>
          <FIELDS>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
              <COPY from="currentuser" />
            </FIELD>
            <FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
              <COPY from="clock" />
            </FIELD>
            <FIELD refname="System.AssignedTo">
              <COPY from="field" field="Microsoft.VSTS.Common.ClosedBy" />
            </FIELD>
          </FIELDS>
        </TRANSITION>
      </TRANSITIONS>
    </WORKFLOW>
    <FORM>
      <Layout>
        <Group>
          <Column PercentWidth="70">
            <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Top" />
          </Column>
          <Column PercentWidth="30">
            <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Discipline" Label="Discipline" LabelPosition="Top" />
          </Column>
        </Group>
        <Group>
          <Column PercentWidth="70">
            <Group>
              <Column PercentWidth="100">
                <Group Label="Classification">
                  <Column PercentWidth="100">
                    <Control Type="TFStructureControl" FieldName="System.AreaPath" Label="Area" LabelPosition="Left" />
                    <Control Type="TFStructureControl" FieldName="System.IterationPath" Label="Iteration" LabelPosition="Left" />
                    <Control Type="FieldControl" FieldName="MyCompany.ProductCategories" Label="Product Categories" LabelPosition="Left" />
                  </Column>
                </Group>
              </Column>
            </Group>
          </Column>
          <Column PercentWidth="30">
            <Group Label="Status">
              <Column PercentWidth="100">
                <Control Type="FieldControl" FieldName="System.AssignedTo" Label="Assigned To" LabelPosition="Left" />
                <Control Type="FieldControl" FieldName="System.State" Label="State" LabelPosition="Left" />
                <Control Type="FieldControl" FieldName="System.Reason" Label="Reason" LabelPosition="Left" />
                <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Rank" Label="Rank" LabelPosition="Left" />
              </Column>
            </Group>
          </Column>
        </Group>
        <TabGroup>
          <Tab Label="Summary">
            <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Summary" Label="Summary" LabelPosition="Top" />
            <Control Type="WorkItemLogControl" FieldName="System.History" Label="Detailed Description and History" LabelPosition="Top" Dock="Fill" />
          </Tab>
          <Tab Label="Links">
            <Control Type="LinksControl" />
          </Tab>
          <Tab Label="File Attachments">
            <Control Type="AttachmentsControl" />
          </Tab>
          <Tab Label="Details">
            <Group>
              <Column PercentWidth="50">
                <Group>
                  <Column PercentWidth="100">
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.Issue" Label="Issue" LabelPosition="Left" />
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Common.ExitCriteria" Label="Exit Criteria" LabelPosition="Left" />
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Build.IntegrationBuild" Label="Integration Build" LabelPosition="Left" />
                  </Column>
                </Group>
              </Column>
              <Column PercentWidth="50">
                <Group Label="Schedule">
                  <Column PercentWidth="100">
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.RemainingWork" Label="Remaining Work (hours)" LabelPosition="Left" />
                    <Control Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Label="Completed Work (hours)" LabelPosition="Left" />
                  </Column>
                </Group>
              </Column>
            </Group>
          </Tab>
        </TabGroup>
      </Layout>
    </FORM>
  </WORKITEMTYPE>
</WITD>