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.
Related
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>
I have a set of custom controls on work items. (The server is on-prem TFS 2015)
The definition of the group is:
<Column PercentWidth="100">
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To" LabelPosition="Left" />
<Control Type="LabelControl" Label="State Order : 1.New 2.Approved 3.Committed 4.Done 5.Removed" LabelPosition="Left" />
<Control FieldName="System.State" Type="FieldControl" Label="Stat&e" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="Reason" LabelPosition="Left" ReadOnly="True" />
<Group>
<Column PercentWidth="8">
<Control Type="LabelControl" Label="Release #" LabelPosition="Left" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.ReleaseYear" Type="FieldControl" LabelPosition="Left" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.MajorRelease" Type="FieldControl" LabelPosition="Left" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.MinorRelease" Type="FieldControl" LabelPosition="Left" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.HotfixRelease" Type="FieldControl" LabelPosition="Left" />
</Column>
<Column PercentWidth="25">
<Control FieldName="MyCompany.HotfixSeverity" Type="FieldControl" LabelPosition="Left" />
</Column>
</Group>
If you look at the Group element in the sample the field for the 1st and last control are strings. Those in the middle are integers.
The problem is the same work item displays differently in Visual Studio 2015 and using the TFS Web interface. In the Web interface it all looks ok.
The same data in Visual Studio is practically unreadable.
You can't even see the 1st 2 integer fields even if there is data selected. (they are drop downs). It does not appear the VS version is respecting the field or column widths.
Is there any way to fix this?
Is there a way to have field boarders appear in VS?
As requested full wit here:
<?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="Product Backlog Item">
<DESCRIPTION>Tracks an activity the user will be able to perform with the product.</DESCRIPTION>
<FIELDS>
<FIELD name="Iteration Path" refname="System.IterationPath" type="TreePath" reportable="dimension" />
<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" />
<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">
<REQUIRED />
</FIELD>
<FIELD name="State" refname="System.State" type="String" reportable="dimension" />
<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" />
<FIELD name="Reason" refname="System.Reason" type="String" reportable="dimension" />
<FIELD name="Assigned To" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
<ALLOWEXISTINGVALUE />
<VALIDUSER />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="[project]\Contributors" />
</ALLOWEDVALUES>
</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" />
<FIELD name="History" refname="System.History" type="History" />
<FIELD name="Related Link Count" refname="System.RelatedLinkCount" type="Integer" />
<FIELD name="Tags" refname="System.Tags" type="PlainText" />
<FIELD name="Backlog Priority" refname="Microsoft.VSTS.Common.BacklogPriority" type="Double" reportable="detail" />
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<SUGGESTEDVALUES expanditems="true">
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Effort" refname="Microsoft.VSTS.Scheduling.Effort" type="Double" reportable="measure" formula="sum" />
<FIELD name="Acceptance Criteria" refname="Microsoft.VSTS.Common.AcceptanceCriteria" type="HTML" />
<FIELD name="Business Value" refname="Microsoft.VSTS.Common.BusinessValue" type="Integer" reportable="measure" formula="sum" />
<FIELD name="OldSystemObjectID" refname="OldSystem.Common.ObjectId" type="String" reportable="dimension" />
<FIELD name="OldSystemFormattedID" refname="OldSystem.Common.FormattedId" type="String" reportable="dimension" />
<FIELD name="OldSystemProjectName" refname="OldSystem.Common.Project" type="String" />
<FIELD name="OldSystemUpdateTime" refname="OldSystem.Common.UpdateTime" type="DateTime" />
<FIELD name="Support Ticket #" refname="MyCompany.SupportTicket" type="String" reportable="detail" />
<FIELD name="OldSystemTags" refname="OldSystem.Common.Tags" type="String" />
<FIELD name="Team" refname="MyCompany.Team" type="String" />
<FIELD name="SVNLog" refname="MyCompany.SVNLog" type="HTML">
<READONLY not="MyCompany\RT - SCM" />
</FIELD>
<FIELD name="MajorRelease" refname="MyCompany.MajorRelease" type="Integer" reportable="detail">
<ALLOWEXISTINGVALUE />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="1" />
<LISTITEM value="10" />
<LISTITEM value="11" />
<LISTITEM value="12" />
<LISTITEM value="13" />
<LISTITEM value="14" />
<LISTITEM value="15" />
<LISTITEM value="16" />
<LISTITEM value="17" />
<LISTITEM value="18" />
<LISTITEM value="19" />
<LISTITEM value="2" />
<LISTITEM value="20" />
<LISTITEM value="21" />
<LISTITEM value="22" />
<LISTITEM value="23" />
<LISTITEM value="24" />
<LISTITEM value="3" />
<LISTITEM value="4" />
<LISTITEM value="5" />
<LISTITEM value="6" />
<LISTITEM value="7" />
<LISTITEM value="8" />
<LISTITEM value="9" />
</ALLOWEDVALUES>
<WHENNOT field="MyCompany.ReleaseYear" value="">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHENNOT>
</FIELD>
<FIELD name="Hotfix" refname="MyCompany.Hotfix" type="String" reportable="detail">
<ALLOWEXISTINGVALUE />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="0" />
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
<LISTITEM value="5" />
</ALLOWEDVALUES>
</FIELD>
<FIELD name="HotfixSeverity" refname="MyCompany.HotfixSeverity" type="String" reportable="detail">
<ALLOWEXISTINGVALUE />
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="Hot Update" />
<LISTITEM value="Hotfix" />
<LISTITEM value="Regulatory" />
</ALLOWEDVALUES>
<WHEN field="MyCompany.HotfixRelease" value="1">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHEN>
<WHEN field="MyCompany.HotfixRelease" value="2">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHEN>
<WHEN field="MyCompany.HotfixRelease" value="3">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHEN>
<WHEN field="MyCompany.HotfixRelease" value="4">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHEN>
<WHEN field="MyCompany.HotfixRelease" value="5">
<ALLOWEXISTINGVALUE />
<REQUIRED />
</WHEN>
</FIELD>
<FIELD name="ReleaseYear" refname="MyCompany.ReleaseYear" type="Integer" reportable="detail">
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="15" />
<LISTITEM value="16" />
<LISTITEM value="17" />
<LISTITEM value="18" />
<LISTITEM value="19" />
<LISTITEM value="20" />
</ALLOWEDVALUES>
</FIELD>
<FIELD name="MinorRelease" refname="MyCompany.MinorRelease" type="Integer" reportable="detail">
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="0" />
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
<LISTITEM value="5" />
</ALLOWEDVALUES>
<WHENNOT field="MyCompany.MajorRelease" value="">
<REQUIRED />
</WHENNOT>
</FIELD>
<FIELD name="HotfixRelease" refname="MyCompany.HotfixRelease" type="Integer" reportable="detail">
<ALLOWEDVALUES expanditems="true">
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
<LISTITEM value="4" />
<LISTITEM value="5" />
</ALLOWEDVALUES>
</FIELD>
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Approved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Committed">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Done">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Scheduling.Effort">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.BusinessValue">
<READONLY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="New">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Removed" />
</STATES>
<TRANSITIONS>
<TRANSITION from="New" to="Done">
<REASONS>
<DEFAULTREASON value="Work finished" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Approved" to="Done">
<REASONS>
<DEFAULTREASON value="Work finished" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Committed" to="Done">
<REASONS>
<DEFAULTREASON value="Work finished" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="New" to="Removed">
<REASONS>
<DEFAULTREASON value="Removed from the backlog" />
</REASONS>
</TRANSITION>
<TRANSITION from="Approved" to="Removed">
<REASONS>
<DEFAULTREASON value="Removed from the backlog" />
</REASONS>
</TRANSITION>
<TRANSITION from="" to="New">
<REASONS>
<DEFAULTREASON value="New backlog item" />
</REASONS>
</TRANSITION>
<TRANSITION from="Done" to="New">
<REASONS>
<DEFAULTREASON value="Moved to the backlog" />
</REASONS>
</TRANSITION>
<TRANSITION from="Removed" to="New">
<REASONS>
<DEFAULTREASON value="Reconsidering backlog item" />
</REASONS>
</TRANSITION>
<TRANSITION from="Approved" to="New">
<REASONS>
<DEFAULTREASON value="Moved to the backlog" />
</REASONS>
</TRANSITION>
<TRANSITION from="Committed" to="New">
<REASONS>
<DEFAULTREASON value="Moved to the backlog" />
</REASONS>
</TRANSITION>
<TRANSITION from="Done" to="Approved">
<REASONS>
<DEFAULTREASON value="Additional work found" />
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="Approved">
<REASONS>
<DEFAULTREASON value="Approved by the Product Owner" />
</REASONS>
</TRANSITION>
<TRANSITION from="Committed" to="Approved">
<REASONS>
<DEFAULTREASON value="Work stopped" />
</REASONS>
</TRANSITION>
<TRANSITION from="Done" to="Committed">
<REASONS>
<DEFAULTREASON value="Additional work found" />
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="Committed">
<REASONS>
<DEFAULTREASON value="Commitment made by the team" />
</REASONS>
</TRANSITION>
<TRANSITION from="Approved" to="Committed">
<REASONS>
<DEFAULTREASON value="Commitment made by the team" />
</REASONS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout HideReadOnlyEmptyFields="true" HideControlBorders="true">
<Group Margin="(4,0,0,0)">
<Column PercentWidth="100">
<Control FieldName="System.Title" Type="FieldControl" ControlFontSize="large" EmptyText="<Enter title here>" LabelPosition="Top" />
</Column>
</Group>
<Group Margin="(10,0,0,0)">
<Column PercentWidth="100">
<Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="Ite&ration" LabelPosition="Left" />
</Column>
</Group>
<Group Margin="(10,0,0,0)">
<Column PercentWidth="50">
<Group Label="Status">
<Column PercentWidth="100">
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To" LabelPosition="Left" />
<Control Type="LabelControl" Label="State Order : 1.New 2.Approved 3.Committed 4.Done 5.Removed" LabelPosition="Left" />
<Control FieldName="System.State" Type="FieldControl" Label="Stat&e" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="Reason" LabelPosition="Left" ReadOnly="True" />
<Group>
<Column PercentWidth="12">
<Control Type="LabelControl" Label="Release #" LabelPosition="Left" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.ReleaseYear" Type="FieldControl" LabelPosition="Left" MinimumSize="(0,0)" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.MajorRelease" Type="FieldControl" LabelPosition="Left" MinimumSize="(0,0)" />
</Column>
<Column PercentWidth="5">
<Control Type="FieldControl" LabelPosition="Left" FieldName="MyCompany.MinorRelease" />
</Column>
<Column PercentWidth="5">
<Control FieldName="MyCompany.HotfixRelease" Type="FieldControl" LabelPosition="Left" />
</Column>
<Column PercentWidth="25">
<Control FieldName="MyCompany.HotfixSeverity" Type="FieldControl" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
</Column>
<Column PercentWidth="50">
<Group Label="Details">
<Column PercentWidth="100">
<Control FieldName="Microsoft.VSTS.Scheduling.Effort" Type="FieldControl" Label="Effort" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Common.BusinessValue" Type="FieldControl" Label="Business Value" LabelPosition="Left" />
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area" LabelPosition="Left" />
<Control FieldName="MyCompany.SupportTicket" Type="FieldControl" Label="Support Ticket#" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group>
<Column PercentWidth="50">
<TabGroup>
<Tab Label="Description">
<Control FieldName="System.Description" Type="HtmlFieldControl" Label="" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Storyboards">
<Control Type="LinksControl" Name="StoryboardsControl" LabelPosition="Top">
<LinksControlOptions>
<WorkItemLinkFilters FilterType="excludeAll" />
<ExternalLinkFilters FilterType="include">
<Filter LinkType="Storyboard" />
</ExternalLinkFilters>
<LinkColumns>
<LinkColumn RefName="System.Title" />
<LinkColumn LinkAttribute="System.Links.Comment" />
</LinkColumns>
</LinksControlOptions>
</Control>
</Tab>
<Tab Label="Test Cases">
<Control Type="LinksControl" Label="" 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" />
</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="Tasks">
<Control Type="LinksControl" Name="Hierarchy" Label="" LabelPosition="Top">
<LinksControlOptions>
<LinkColumns>
<LinkColumn RefName="System.Id" />
<LinkColumn RefName="System.Title" />
<LinkColumn RefName="System.AssignedTo" />
<LinkColumn RefName="System.State" />
</LinkColumns>
<WorkItemLinkFilters FilterType="include">
<Filter LinkType="System.LinkTypes.Hierarchy" FilterOn="forwardname" />
</WorkItemLinkFilters>
<ExternalLinkFilters FilterType="excludeAll" />
<WorkItemTypeFilters FilterType="include">
<Filter WorkItemType="Task" />
</WorkItemTypeFilters>
</LinksControlOptions>
</Control>
</Tab>
</TabGroup>
</Column>
<Column PercentWidth="50">
<TabGroup Margin="(5,0,0,0)">
<Tab Label="Acceptance Criteria">
<Control FieldName="Microsoft.VSTS.Common.AcceptanceCriteria" Type="HtmlFieldControl" Label="" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="History">
<Control FieldName="System.History" Type="WorkItemLogControl" Label="" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Links">
<Control Type="LinksControl" Name="GeneralLinks" 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" Label="" LabelPosition="Top" />
</Tab>
<Tab Label="Other">
<Control FieldName="OldSystem.Common.ObjectId" Type="FieldControl" Label="OldSystem Object ID:" LabelPosition="Left" />
<Control FieldName="OldSystem.Common.FormattedId" Type="FieldControl" Label="OldSystem Formatted ID:" LabelPosition="Left" />
<Control FieldName="OldSystem.Common.Project" Type="FieldControl" Label="OldSystem Project:" LabelPosition="Left" />
<Control FieldName="OldSystem.Common.UpdateTime" Type="FieldControl" Label="OldSystem Update Time:" LabelPosition="Left" />
<Control FieldName="OldSystem.Common.Tags" Type="FieldControl" Label="OldSystemTags:" LabelPosition="Left" />
</Tab>
<Tab Label="SVN Commits">
<Control FieldName="MyCompany.SVNLog" Type="HtmlFieldControl" LabelPosition="Left" Dock="Fill" />
</Tab>
</TabGroup>
</Column>
</Group>
</Layout>
</FORM>
</WORKITEMTYPE>
</witd:WITD>
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
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§ions=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
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>