Add TFS Custom dropdown field which uses existing users - tfs

To customize agile template in TFS, I am using witadmin tool. With this tool we can customize fields dropdown fields like this -
<FIELD name="Severity" refname="Microsoft.VSTS.Common.Severity" type="String" reportable="dimension">
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="1 - Critical" />
<LISTITEM value="2 - High" />
<LISTITEM value="3 - Medium" />
<LISTITEM value="4 - Low" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="3 - Medium" />
</FIELD>
Is there any way with which I can create a custom dropdown field which is prepopulated with all active TFS users the way AssignedTo field gets populated with list of users?

You can simply use ALLOWEXISTINGVALUE and VALIDUSER rules:
<FIELD name="Severity" refname="Microsoft.VSTS.Common.Severity" type="String" reportable="dimension">
<ALLOWEXISTINGVALUE />
<VALIDUSER />
</FIELD>

Related

Work Item Template: On closing a task validate that the Remaining Field is Zero or Empty

In TFS (2014) I am wanting to update the WIT Template so that when change a Task from "Active" to "Closed" it will Check the "Remaining" Field has been changed to 0 (or Empty) and that there is a value in completed of either 0 or above.
Is there a way to have some validation giving a message such as "Please update Remaining field before saving"?
I'm assuming that it is something that needs changing in this section
<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.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
</FIELDS>
</TRANSITION>
Note:
I dont want it to automatically change the value to zero / Empty like article
TFS2012 Task work item definition - Update 'Remaining Work' with 'Original Estimate' whenever 'Remaining Work' is empty

TF26212 Error is coming while saving work item in TFS 2010

I have created a workitem type named 'Bug_Tracker', with states & Transtitions well defined.
When a new bug is created using this workitem, it gets assigned to developer, but when developer marks it as 'Resolved' and assign back to QA, following error comes on saving workitem:-
"TF26212: Team Foundation Server could not save your changes. There may be problems with the work item type definition. Try again or contact your Team Foundation Server administrator."
Following is the XML for the workitem -
<q1:WITD application="Work item type editor" version="1.0" xmlns:q1="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef">
<WORKITEMTYPE name="Bug Tracker">
DESCRIPTION>Describes a divergence between required and actual behavior, and tracks the work done to correct the defect and verify the correction.</DESCRIPTION>
<FIELDS>
FIELD reportable="dimension" refname="System.Title" name="Title" type="String">
<REQUIRED />
<HELPTEXT>Stories affected and how</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="System.State" name="State" type="String">
<HELPTEXT>Change on reviewing, fixing or verifying the fix. Active = not yet fixed; Resolved = fix not yet verified; Closed = fix verified.</HELPTEXT>
</FIELD>
FIELD reportable="dimension" refname="System.Rev" name="Rev" type="Integer" />
<FIELD reportable="dimension" refname="System.ChangedBy" name="Changed By" syncnamechanges="true" type="String">
<ALLOWEXISTINGVALUE />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.TCM.SystemInfo" name="System Info" type="HTML">
<HELPTEXT>Test context, provided automatically by test infrastructure</HELPTEXT>
</FIELD>
FIELD refname="Microsoft.VSTS.TCM.ReproSteps" name="Repro Steps" type="HTML">
<HELPTEXT>How to see the bug. End by contrasting expected with actual behavior.</HELPTEXT>
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.StateChangeDate" name="State Change Date" type="DateTime">
<WHENCHANGED field="System.State">
<SERVERDEFAULT from="clock" />
</WHENCHANGED>
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
/FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ActivatedDate" name="Activated Date" type="DateTime">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
/FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ActivatedBy" name="Activated By" syncnamechanges="true" type="String">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD reportable="dimension" refname="System.Reason" name="Reason" type="String">
<HELPTEXT>The reason why the bug is in the current state</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ResolvedBy" name="Resolved By" syncnamechanges="true" type="String">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD reportable="dimension" refname="System.AssignedTo" name="Assigned To" syncnamechanges="true" type="String">
<ALLOWEXISTINGVALUE />
<VALIDUSER />
<HELPTEXT>The person currently working on this bug</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="System.WorkItemType" name="Work Item Type" type="String" />
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ClosedBy" name="Closed By" syncnamechanges="true" type="String">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.Priority" name="Priority" type="Integer">
<ALLOWEDVALUES>
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="2" />
<HELPTEXT>Business importance. 1=must fix; 4=unimportant.</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ResolvedReason" name="Resolved Reason" type="String">
<ALLOWEDVALUES>
<LISTITEM value="As Designed" />
<LISTITEM value="Cannot Reproduce" />
<LISTITEM value="Deferred" />
<LISTITEM value="Duplicate" />
<LISTITEM value="Fixed" />
<LISTITEM value="Obsolete" />
</ALLOWEDVALUES>
<FROZEN />
<HELPTEXT>The reason why the bug was resolved</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.StackRank" name="Stack Rank" type="Double">
<HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Build.IntegrationBuild" name="Integration Build" type="String">
<SUGGESTEDVALUES>
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
<SUGGESTEDVALUES filteritems="excludegroups">
<GLOBALLIST name="Builds - TranstutorsProjects" />
</SUGGESTEDVALUES>
<HELPTEXT>The build in which the bug was fixed</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Build.FoundIn" name="Found In" type="String">
<SUGGESTEDVALUES>
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
<SUGGESTEDVALUES filteritems="excludegroups">
<GLOBALLIST name="Builds - TranstutorsProjects" />
</SUGGESTEDVALUES>
<HELPTEXT>The build in which the bug was found</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="System.CreatedDate" name="Created Date" type="DateTime" />
<FIELD reportable="dimension" refname="System.CreatedBy" name="Created By" syncnamechanges="true" type="String" />
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.Severity" name="Severity" type="String">
<ALLOWEDVALUES>
<LISTITEM value="1 - Critical" />
<LISTITEM value="2 - High" />
<LISTITEM value="3 - Medium" />
<LISTITEM value="4 - Low" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="3 - Medium" />
<HELPTEXT>Assessment of the effect of the bug on the project</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ResolvedDate" name="Resolved Date" type="DateTime">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ClosedDate" name="Closed Date" type="DateTime">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD refname="System.Description" name="Description" type="PlainText" />
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ReopenedDate" name="Reopened Date" type="DateTime">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD refname="System.History" name="History" type="History">
<HELPTEXT>Discussion thread plus automatic record of changes</HELPTEXT>
</FIELD>
<FIELD reportable="dimension" refname="Microsoft.VSTS.Common.ReopenedBy" name="Reopened By" type="String">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD refname="System.RelatedLinkCount" name="Related Link Count" type="Integer" />
<FIELD reportable="dimension" refname="System.IterationPath" name="Iteration Path" type="TreePath">
<HELPTEXT>The iteration within which this bug will be fixed</HELPTEXT>
</FIELD>
<FIELD refname="System.IterationId" name="Iteration ID" type="Integer" />
<FIELD refname="System.ExternalLinkCount" name="External Link Count" type="Integer" />
<FIELD reportable="dimension" refname="System.TeamProject" name="Team Project" type="String" />
<FIELD refname="System.HyperLinkCount" name="Hyperlink Count" type="Integer" />
<FIELD refname="System.AttachedFileCount" name="Attached File Count" type="Integer" />
<FIELD refname="System.NodeName" name="Node Name" type="String" />
<FIELD reportable="dimension" refname="System.AreaPath" name="Area Path" type="TreePath">
<HELPTEXT>The area of the product with which this bug is associated</HELPTEXT>
</FIELD>
<FIELD reportable="detail" refname="System.RevisedDate" name="Revised Date" type="DateTime" />
<FIELD reportable="dimension" refname="System.ChangedDate" name="Changed Date" type="DateTime" />
<FIELD reportable="dimension" refname="System.Id" name="ID" type="Integer" />
<FIELD refname="System.AreaId" name="Area ID" type="Integer" />
<FIELD refname="System.AuthorizedAs" name="Authorized As" syncnamechanges="true" type="String" />
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Resolved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Closed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<READONLY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Verified">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<REQUIRED />
</FIELD>
</FIELDS>
</STATE>
<STATE value="New">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser" />
<REQUIRED />
<VALIDUSER />
</FIELD>
<FIELD refname="System.AssignedTo">
<DEFAULT from="currentuser" />
</FIELD>
</FIELDS>
</STATE>
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="New">
<REASONS>
<DEFAULTREASON value="New Bug" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="System.CreatedBy" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="New" to="Resolved">
<ACTIONS>
<ACTION value="Microsoft.VSTS.Actions.Checkin" />
</ACTIONS>
<REASONS>
<REASON value="Deferred">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Deferred" />
<ALLOWEDVALUES>
<LISTITEM value="Deferred" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Duplicate">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Duplicate" />
<ALLOWEDVALUES>
<LISTITEM value="Duplicate" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="As Designed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="As Designed" />
<ALLOWEDVALUES>
<LISTITEM value="As Designed" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Cannot Reproduce">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Cannot Reproduce" />
<ALLOWEDVALUES>
<LISTITEM value="Cannot Reproduce" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Obsolete">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Obsolete" />
<ALLOWEDVALUES>
<LISTITEM value="Obsolete" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<DEFAULTREASON value="Fixed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Fixed" />
<ALLOWEDVALUES>
<LISTITEM value="Fixed" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="System.CreatedBy" />
<ALLOWEXISTINGVALUE />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Fixed" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Resolved" to="Verified">
<REASONS>
<DEFAULTREASON value="Fixed" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Fixed" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Verified" to="Resolved">
<REASONS>
<REASON value="Reopened" />
<DEFAULTREASON value="Not fixed" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="Microsoft.VSTS.Common.ResolvedBy" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ReopenedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ReopenedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Verified" to="Closed">
<REASONS>
<DEFAULTREASON value="Verified Fixed" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<ALLOWEXISTINGVALUE />
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
</FIELDS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout>
<Group>
<Column PercentWidth="100">
<Control FieldName="System.Title" Type="FieldControl" Label="&Title:" LabelPosition="Left" />
</Column>
</Group>
<Group>
<Column PercentWidth="50">
<Group Label="Status">
<Column PercentWidth="100">
<Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="&Reason:" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Common.ResolvedReason" Type="FieldControl" Label="Resolved Reason:" LabelPosition="Left" ReadOnly="True" />
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assigned To:" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column PercentWidth="50">
<Group Label="Classification">
<Column PercentWidth="100">
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area:" LabelPosition="Left" />
<Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&ration:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group>
<Column PercentWidth="100">
<Group Label="Planning">
<Column PercentWidth="33">
<Control FieldName="Microsoft.VSTS.Common.StackRank" Type="FieldControl" Label="Stack Ran&k:" LabelPosition="Left" NumberFormat="DecimalNumbers" MaxLength="10" />
</Column>
<Column PercentWidth="33">
<Control FieldName="Microsoft.VSTS.Common.Priority" Type="FieldControl" Label="&Priority:" LabelPosition="Left" />
</Column>
<Column PercentWidth="33">
<Control FieldName="Microsoft.VSTS.Common.Severity" Type="FieldControl" Label="Se&verity:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<TabGroup>
<Tab Label="Details">
<Group>
<Column PercentWidth="50">
<Control FieldName="Microsoft.VSTS.TCM.ReproSteps" Type="HtmlFieldControl" Label="Steps to Repro&duce:" LabelPosition="Top" Dock="Fill" MinimumSize="(100,200)" />
</Column>
<Column PercentWidth="50">
<Control FieldName="System.History" Type="WorkItemLogControl" Label="&History:" LabelPosition="Top" Dock="Fill" />
</Column>
</Group>
</Tab>
<Tab Label="System Info">
<Group>
<Column PercentWidth="50">
<Control FieldName="Microsoft.VSTS.Build.FoundIn" Type="FieldControl" Label="&Found in Build:" LabelPosition="Left" />
</Column>
<Column PercentWidth="50">
<Control FieldName="Microsoft.VSTS.Build.IntegrationBuild" Type="FieldControl" Label="In&tegrated in Build:" LabelPosition="Left" />
</Column>
</Group>
<Control FieldName="Microsoft.VSTS.TCM.SystemInfo" Type="HtmlFieldControl" Label="System I&nfo:" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Test Cases">
<Control Type="LinksControl" Label="Test &Cases testing this Bug:" LabelPosition="Top" Name="TestedBy">
<LinksControlOptions>
<LinkColumns>
<LinkColumn RefName="System.ID" />
<LinkColumn RefName="System.WorkItemType" />
<LinkColumn RefName="System.Title" />
<LinkColumn RefName="System.AssignedTo" />
<LinkColumn RefName="System.State" />
<LinkColumn LinkAttribute="System.Links.Comment" />
</LinkColumns>
<WorkItemLinkFilters FilterType="include">
<Filter LinkType="Microsoft.VSTS.Common.TestedBy" FilterOn="forwardname" />
</WorkItemLinkFilters>
<ExternalLinkFilters FilterType="excludeAll" />
<WorkItemTypeFilters FilterType="include">
<Filter WorkItemType="Test Case" />
</WorkItemTypeFilters>
</LinksControlOptions>
</Control>
</Tab>
<Tab Label="All Links">
<Control Type="LinksControl" LabelPosition="Top" Name="GeneralLinks">
<LinksControlOptions>
<LinkColumns>
<LinkColumn RefName="System.ID" />
<LinkColumn RefName="System.WorkItemType" />
<LinkColumn RefName="System.Title" />
<LinkColumn RefName="System.AssignedTo" />
<LinkColumn RefName="System.State" />
<LinkColumn LinkAttribute="System.Links.Comment" />
</LinkColumns>
<WorkItemLinkFilters FilterType="includeAll" />
<ExternalLinkFilters FilterType="includeAll" />
<WorkItemTypeFilters FilterType="includeAll" />
</LinksControlOptions>
</Control>
</Tab>
<Tab Label="Attachments">
<Control Type="AttachmentsControl" LabelPosition="Top" />
</Tab>
</TabGroup>
</Layout>
</FORM>
</WORKITEMTYPE>
</q1:WITD>
Any help in this regard is highly appreciated !

Task due date in TFS 2010

We recently installed TFS 2010 and are using it in an agile manner by taking advantage of the Scrum templates. We were curious if there is a way to track task due date within TFS so that we can easily run our daily scrums by only looking at tasks with a due date of yesterday and/or today.
There is no due date field because in Scrum methodology such information is not needed. All sprint related tasks (sprint backlog items) have due date of sprint ending. All user stories (product backlog items) have no due date because this is driven by business priority and team capacity => due date can change every sprint.
It is definitely possible without any external plugins or extensions.
Read more about the process here.
I did the same for my TFS 2012 server, and the same can be done for TFS 2010 server also.
Instead of modifying the existing Task or Bug, I added a new Work Item type called Defect having both of their properties using this command
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE>witadmin importwitd /collection:myTFSserver/TFS_DefaultCollection /p:MyProjectName /f:D:\Defect.xml
Defect.xml :
<?xml version="1.0" encoding="utf-8"?>
<witd:WITD application="Work item type editor" version="1.0" xmlns:witd="http://schemas.microsoft.com/VisualStudio/2008/workitemtracking/typedef">
<WORKITEMTYPE name="Defect">
<DESCRIPTION>Task bug or Issue</DESCRIPTION>
<FIELDS>
<FIELD name="Iteration Path" refname="System.IterationPath" type="TreePath" reportable="dimension">
<HELPTEXT>The iteration within which this issue will be fixed</HELPTEXT>
</FIELD>
<FIELD name="Iteration ID" refname="System.IterationId" type="Integer" />
<FIELD name="External Link Count" refname="System.ExternalLinkCount" type="Integer" />
<FIELD name="Team Project" refname="System.TeamProject" type="String" reportable="dimension" />
<FIELD name="Hyperlink Count" refname="System.HyperLinkCount" type="Integer" />
<FIELD name="Attached File Count" refname="System.AttachedFileCount" type="Integer" />
<FIELD name="Node Name" refname="System.NodeName" type="String" />
<FIELD name="Area Path" refname="System.AreaPath" type="TreePath" reportable="dimension">
<HELPTEXT>The area of the product with which this issue is associated</HELPTEXT>
</FIELD>
<FIELD name="Revised Date" refname="System.RevisedDate" type="DateTime" reportable="detail" />
<FIELD name="Changed Date" refname="System.ChangedDate" type="DateTime" reportable="dimension" />
<FIELD name="ID" refname="System.Id" type="Integer" reportable="dimension" />
<FIELD name="Area ID" refname="System.AreaId" type="Integer" />
<FIELD name="Authorized As" refname="System.AuthorizedAs" type="String" syncnamechanges="true" />
<FIELD name="Title" refname="System.Title" type="String" reportable="dimension">
<HELPTEXT>The nature of the problem and why it is affecting or could affect the project</HELPTEXT>
<REQUIRED />
</FIELD>
<FIELD name="State" refname="System.State" type="String" reportable="dimension">
<HELPTEXT>Change to Closed when the issue is resolved or not relevant anymore</HELPTEXT>
</FIELD>
<FIELD name="Authorized Date" refname="System.AuthorizedDate" type="DateTime" />
<FIELD name="Watermark" refname="System.Watermark" type="Integer" />
<FIELD name="Rev" refname="System.Rev" type="Integer" reportable="dimension" />
<FIELD name="Changed By" refname="System.ChangedBy" type="String" syncnamechanges="true" reportable="dimension">
<ALLOWEXISTINGVALUE />
<VALIDUSER />
</FIELD>
<FIELD name="Reason" refname="System.Reason" type="String" reportable="dimension">
<HELPTEXT>The reason why the issue is in the current state</HELPTEXT>
</FIELD>
<FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
<HELPTEXT>The person currently working on this issue</HELPTEXT>
<ALLOWEXISTINGVALUE />
<VALIDUSER />
</FIELD>
<FIELD name="Work Item Type" refname="System.WorkItemType" type="String" reportable="dimension" />
<FIELD name="Created Date" refname="System.CreatedDate" type="DateTime" reportable="dimension" />
<FIELD name="Created By" refname="System.CreatedBy" type="String" syncnamechanges="true" reportable="dimension" />
<FIELD name="Description" refname="System.Description" type="HTML">
<HELPTEXT>Problem, resolution plan and status</HELPTEXT>
</FIELD>
<FIELD name="History" refname="System.History" type="History">
<HELPTEXT>Discussion thread plus automatic record of changes</HELPTEXT>
</FIELD>
<FIELD name="Related Link Count" refname="System.RelatedLinkCount" type="Integer" />
<FIELD name="Tags" refname="System.Tags" type="PlainText" />
<FIELD name="System Info" refname="Microsoft.VSTS.TCM.SystemInfo" type="HTML">
<HELPTEXT>Test context, provided automatically by test infrastructure</HELPTEXT>
</FIELD>
<FIELD name="Repro Steps" refname="Microsoft.VSTS.TCM.ReproSteps" type="HTML">
<HELPTEXT>How to see the bug. End by contrasting expected with actual behavior.</HELPTEXT>
</FIELD>
<FIELD name="State Change Date" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime">
<WHENCHANGED field="System.State">
<SERVERDEFAULT from="clock" />
</WHENCHANGED>
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Activated Date" refname="Microsoft.VSTS.Common.ActivatedDate" type="DateTime" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Activated By" refname="Microsoft.VSTS.Common.ActivatedBy" type="String" syncnamechanges="true" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Resolved Date" refname="Microsoft.VSTS.Common.ResolvedDate" type="DateTime" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Resolved By" refname="Microsoft.VSTS.Common.ResolvedBy" type="String" syncnamechanges="true" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Resolved Reason" refname="Microsoft.VSTS.Common.ResolvedReason" type="String" reportable="dimension">
<HELPTEXT>The reason why the bug was resolved</HELPTEXT>
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="As Designed" />
<LISTITEM value="Cannot Reproduce" />
<LISTITEM value="Deferred" />
<LISTITEM value="Duplicate" />
<LISTITEM value="Fixed" />
<LISTITEM value="Obsolete" />
</ALLOWEDVALUES>
<FROZEN />
</FIELD>
<FIELD name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Closed By" refname="Microsoft.VSTS.Common.ClosedBy" type="String" syncnamechanges="true" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<ALLOWEXISTINGVALUE />
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Priority" refname="Microsoft.VSTS.Common.Priority" type="Integer" reportable="dimension">
<HELPTEXT>Business importance. 1=must fix; 4=unimportant.</HELPTEXT>
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="2" />
</FIELD>
<FIELD name="Severity" refname="Microsoft.VSTS.Common.Severity" type="String" reportable="dimension">
<HELPTEXT>Assessment of the effect of the bug on the project</HELPTEXT>
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="1 - Critical" />
<LISTITEM value="2 - High" />
<LISTITEM value="3 - Medium" />
<LISTITEM value="4 - Low" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="3 - Medium" />
</FIELD>
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
<HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<HELPTEXT>The build in which the bug was fixed</HELPTEXT>
<SUGGESTEDVALUES expanditems="true">
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Due Date" refname="Microsoft.VSTS.Scheduling.DueDate" type="DateTime" reportable="dimension">
<HELPTEXT>The date by which this issue needs to be closed</HELPTEXT>
</FIELD>
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
<HELPTEXT>The build in which the bug was found</HELPTEXT>
<SUGGESTEDVALUES expanditems="true">
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Activity" refname="Microsoft.VSTS.Common.Activity" type="String" reportable="dimension">
<HELPTEXT>Type of work involved</HELPTEXT>
<SUGGESTEDVALUES expanditems="true">
<LISTITEM value="Development" />
<LISTITEM value="Testing" />
<LISTITEM value="Requirements" />
<LISTITEM value="Design" />
<LISTITEM value="Deployment" />
<LISTITEM value="Documentation" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum">
<HELPTEXT>An estimate of the number of units of work remaining to complete this task</HELPTEXT>
</FIELD>
<FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum">
<HELPTEXT>Initial value for Remaining Work - set once, when work begins</HELPTEXT>
</FIELD>
<FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">
<HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT>
</FIELD>
<FIELD name="Start Date" refname="Microsoft.VSTS.Scheduling.StartDate" type="DateTime" reportable="dimension">
<HELPTEXT>The date to start the task</HELPTEXT>
</FIELD>
<FIELD name="Finish Date" refname="Microsoft.VSTS.Scheduling.FinishDate" type="DateTime" reportable="dimension">
<HELPTEXT>The date to finish the task</HELPTEXT>
</FIELD>
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Resolved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<REQUIRED />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Closed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<READONLY />
</FIELD>
</FIELDS>
</STATE>
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="Active">
<REASONS>
<DEFAULTREASON value="New" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<DEFAULT from="currentuser" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Active" to="Resolved">
<REASONS>
<DEFAULTREASON value="Completed" />
<REASON value="Fixed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Fixed" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Fixed" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Deferred">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Deferred" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Deferred" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Duplicate">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Duplicate" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Duplicate" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="As Designed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="As Designed" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="As Designed" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Cannot Reproduce">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Cannot Reproduce" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Cannot Reproduce" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
<REASON value="Cut" />
<REASON value="Obsolete">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Obsolete" />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Obsolete" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
</REASON>
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="System.CreatedBy" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="value" value="Fixed" />
</FIELD>
</FIELDS>
<ACTIONS>
<ACTION value="Microsoft.VSTS.Actions.Checkin" />
</ACTIONS>
</TRANSITION>
<TRANSITION from="Resolved" to="Closed">
<REASONS>
<DEFAULTREASON value="Issue Resolved" />
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="field" field="System.CreatedBy" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<ALLOWEXISTINGVALUE />
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</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">
<ALLOWEXISTINGVALUE />
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT 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="100">
<Control FieldName="System.Title" Type="FieldControl" Label="&Title:" LabelPosition="Left" />
</Column>
</Group>
<Group>
<Column PercentWidth="50">
<Group Label="Status">
<Column PercentWidth="100">
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To:" LabelPosition="Left" />
<Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="&Reason:" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column PercentWidth="50">
<Group Label="Classification">
<Column PercentWidth="100">
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area:" LabelPosition="Left" />
<Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&ration:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group>
<Column PercentWidth="100">
<Group Label="Planning">
<Column PercentWidth="25">
<Control FieldName="Microsoft.VSTS.Common.StackRank" Type="FieldControl" Label="Stack Ran&k:" LabelPosition="Left" NumberFormat="DecimalNumbers" MaxLength="10" />
</Column>
<Column PercentWidth="25">
<Control FieldName="Microsoft.VSTS.Common.Priority" Type="FieldControl" Label="&Priority:" LabelPosition="Left" />
</Column>
<Column PercentWidth="25">
<Control FieldName="Microsoft.VSTS.Scheduling.DueDate" Type="DateTimeControl" Label="D&ue Date:" LabelPosition="Left" Format="Short" />
</Column>
<Column PercentWidth="25">
<Control FieldName="Microsoft.VSTS.Scheduling.OriginalEstimate" Type="FieldControl" Label="Effort:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<TabGroup>
<Tab Label="Details">
<Group>
<Column PercentWidth="50">
<Control FieldName="System.Description" Type="HtmlFieldControl" Label="&Description:" LabelPosition="Top" Dock="Fill" />
</Column>
<Column PercentWidth="50">
<Control FieldName="System.History" Type="WorkItemLogControl" Label="&History:" LabelPosition="Top" Dock="Fill" />
</Column>
</Group>
</Tab>
<Tab Label="Links">
<Control Type="LinksControl" Name="IssueLinks" LabelPosition="Top">
<LinksControlOptions>
<LinkColumns>
<LinkColumn RefName="System.ID" />
<LinkColumn RefName="System.WorkItemType" />
<LinkColumn RefName="System.Title" />
<LinkColumn RefName="System.AssignedTo" />
<LinkColumn RefName="System.State" />
<LinkColumn LinkAttribute="System.Links.Comment" />
</LinkColumns>
<WorkItemLinkFilters FilterType="includeAll" />
<ExternalLinkFilters FilterType="includeAll" />
<WorkItemTypeFilters FilterType="includeAll" />
</LinksControlOptions>
</Control>
</Tab>
<Tab Label="Attachments">
<Control Type="AttachmentsControl" LabelPosition="Top" />
</Tab>
</TabGroup>
</Layout>
</FORM>
</WORKITEMTYPE>
</witd:WITD>
The Scrum template doesn't include a "due date" field on the Task WIT. You could add one fairly easily by following steps here: http://msdn.microsoft.com/en-us/library/ms243782.aspx.
The Work in Progress query that ships with the template should give you something similar in that you can run that query and track only work that is in progress.
If your goal is to easily run your daily scrums by only looking at tasks, I suggest that you use a Task Board with TFS Web Access. Take a look at Urban Turtle - http://urbanturtle.com. According to Microsoft, this is the premier Scrum tooling for TFS.
Discloser: I work with the Urban Turtle team. So do not take my words. Instead, read what Microsoft blogs said about Urban Turtle. http://blogs.msdn.com/search/SearchResults.aspx?q=urban%20turtle&sections=3652.
Is not possible out of the box, but there is a TFS Extension which can accomplish this by allowing you to set some rules which if violated a new delayed workitem will be created and you can subscribe to be notified when a rule is violated , it can be set on any type of workitem
Please check this :
TFS SLA Server Extension
TFS SLA Client Extension

TFS: how to add 'text name' for priority

Is there any possibility to add text into priorities? It would be good to have values like "1 - Blocker", "2 - Critical", "3 - High", ... etc.
Attempt to change "ALLOWEDVALUES" of "Priority" field (refname="Microsoft.VSTS.Common.Priority") to something like
<ALLOWEDVALUES>
<LISTITEM value="1 - Blocker" />
<LISTITEM value="2 - Critical" />
<LISTITEM value="3 - High" />
<LISTITEM value="4..." />
<LISTITEM value="5..." />
<LISTITEM value="6..." />
</ALLOWEDVALUES>
Give an error that field should be integer.
I see few options:
1. change field type to string
2. create a separate custom field "MyPriority" with 'string' type.
Could you please advise what is the best option (from long term usage perspective)?
Thanks a lot!
You cannot change the type of an existing field. What I did in the past is adding a new field which is shown on the form. Then Add some logic to the field to copy
Add the following text to the FIELDS section
<FIELD name="My Priority" refname="My.Priority" type="String" reportable="dimension">
<REQUIRED />
<ALLOWEDVALUES>
<LISTITEM value="1 - Blocker" />
<LISTITEM value="2 - Critical" />
<LISTITEM value="3 - High" />
<LISTITEM value="4..." />
<LISTITEM value="5..." />
<LISTITEM value="6..." />
</ALLOWEDVALUES>
<DEFAULT from="value" value="3 - High" />
</FIELD>
And change the default priority field to
<FIELD name="Priority" refname="Microsoft.VSTS.Common.Priority" type="Integer" reportable="dimension">
<REQUIRED />
<ALLOWEDVALUES>
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="2" />
<WHEN field="My.Priority" value="1 - Blocker">
<COPY from="value" value="1" />
</WHEN>
<WHEN field="My.Priority" value="2 - Critical">
<COPY from="value" value="2" />
</WHEN>
<WHEN field="My.Priority" value="3 - High">
<COPY from="value" value="3" />
</WHEN>
<WHEN field="My.Priority" value="4...">
<COPY from="value" value="4" />
</WHEN>
</FIELD>
Locate the Priority in the FORMS section and change it to use the My.Priority:
<Control Type="FieldControl" FieldName="My.Priority" Label="Pri&ority:" LabelPosition="Left" />
I dont think you can change type of an existing field. So 2nd option is the only option. In my company I have customized work item types extensively and have used quite a few custom fields. It works well. Having said that, you will need to load your new field with existing priority data (if there is any).
A simple stored proc to copy data from Microsoft.VSTS.Common.Priority field to "New custom field" should do the job. WorkItemsLatestUsed table should be the only table touched for this purpose.

List Item Sort Order - TFS Work Items

Is there any way to display the vaule order as the same given below in the work item template.
When I see the template the value display order is changed. It is sorted alphabetically. Is there any way to change the sort order ?
<ALLOWEDVALUES>
<LISTITEM value="Pass" />
<LISTITEM value="Fail" />
<LISTITEM value="Blocked" />
<LISTITEM value="N/A" />
<LISTITEM value="Not Completed" />
<LISTITEM value="Ready For Review" />
<LISTITEM value="Approved" />
</ALLOWEDVALUES>
It is not possible to change the sort order. As a workaround you could prefix your list items as a way to achieve the order you prefer.
<ALLOWEDVALUES>
<LISTITEM value="[1] Pass" />
<LISTITEM value="[2] Fail" />
<LISTITEM value="[3] Blocked" />
<LISTITEM value="[4] N/A" />
<LISTITEM value="[5] Not Completed" />
<LISTITEM value="[6] Ready For Review" />
<LISTITEM value="[7] Approved" />
</ALLOWEDVALUES>

Resources