UI issue in TFS custom work item - tfs

We created new TFS work item. After some time, we began to have issues with controls UI layout. (Screen shot is attached as an example). Spaces between controls are VERY big. If we re-run the query - everything becomes good. After another re-run, the layout again becomes corrupted.
The UI Layout is modified in the way as suggested with this answer: Is it possible to customize "History" tab for Bug/Task work item types?.
What is a reason of that and how to fix it?!
EDITED: layout was added
<FORM>
<Layout>
<Group Label="General" Margin="(1,1,1,1)">
<Column FixedWidth="100">
<Control FieldName="Custom.IssueType" Type="FieldControl" Label="Issue Type:" LabelPosition="Left" />
<Control FieldName="Custom.Priority" Type="FieldControl" Label="Priorit&y:" LabelPosition="Left" />
</Column>
<Column PercentWidth="100">
<Group Margin="(2,2,2,2)">
<Column PercentWidth="100">
<Control FieldName="System.Title" Type="FieldControl" Label="&Title:" LabelPosition="Left" />
</Column>
</Group>
<Group Margin="(2,2,2,2)">
<Column PercentWidth="50">
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area:" LabelPosition="Left" />
</Column>
<Column PercentWidth="50">
<Control FieldName="System.IterationPath" Type="WorkItemClassificationControl" Label="&Iteration:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group Margin="(1,1,1,1)">
<Column PercentWidth="70">
<Group Label="Status" Margin="(1,1,1,1)">
<Column PercentWidth="50">
<Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" />
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned to:" LabelPosition="Left" />
</Column>
<Column PercentWidth="50">
<Control FieldName="System.Reason" Type="FieldControl" Label="&Reason:" LabelPosition="Left" />
<Control FieldName="Custom.CustomerIssue" Type="FieldControl" Label="&Customer Issue:" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column FixedWidth="400">
<Group Label="Details" Margin="(1,1,1,1)">
<Column PercentWidth="50">
<Control FieldName="Custom.FoundInBuild" Type="FieldControl" Label="&Found in build:" LabelPosition="Left" />
<Control FieldName="Custom.ResolvedInBuild" Type="FieldControl" Label="Resolved in &build:" LabelPosition="Left" />
</Column>
<Column PercentWidth="50">
<Control FieldName="Custom.HelpAuthoring" Type="FieldControl" Label="Help Authoring:" LabelPosition="Left" />
<Control FieldName="Custom.RankInt" Type="FieldControl" Label="Ran&k:" LabelPosition="Left" NumberFormat="WholeNumbers" MaxLength="10" />
</Column>
</Group>
</Column>
</Group>
<TabGroup Margin="(1,1,1,1)">
<Tab Label="Content">
<Group>
<Column PercentWidth="50">
<Control FieldName="System.Description" Type="HtmlFieldControl" Label="Des&cription:" 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" LabelPosition="Top" />
</Tab>
<Tab Label="File Attachments">
<Control Type="AttachmentsControl" LabelPosition="Top" />
</Tab>
<Tab Label="Misc.">
<Group>
<Column PercentWidth="50">
<Group Label="">
<Column PercentWidth="50">
<Group Label="Estimated Time">
<Column PercentWidth="100">
<Control FieldName="Custom.EstimatedTimeTotal" Type="FieldControl" Label="Total:" LabelPosition="Left" />
<Control FieldName="Custom.EstimatedTimeLeft" Type="FieldControl" Label="Left:" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column PercentWidth="50">
<Group Label="Other">
<Column PercentWidth="100">
<Control FieldName="Custom.Localization" Type="FieldControl" Label="Localization:" LabelPosition="Left" />
<Control FieldName="Custom.Rebrand" Type="FieldControl" Label="Rebrand:" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
</Column>
</Group>
</Tab>
</TabGroup>
</Layout>
</FORM>

The one thing that comes to mind is in your FORM section of your Work Item definition XML, make sure that the Column sizes are set. We use PercentWidth="50" on the columns where we have description and history. I did note that we had a similar problem to what you had when I had neglected to set that.
If you're seeing this happen only on specific work items, it is probably related to size of data, or presence of data. Once you post the FORM section from the WorkItem, it will be easier to tell.
-- EDIT --
Looking at your FORM section shows a lot of mixing of FixedWidth and PercentWidth. I've noticed that this can really cause the display to get confused.
For Example, in your first Group (General), you have one column set to a fixed width of 100, and a second column set to a percentage width of 100%. Try setting each of these to PercentWidth="50".
Similar to your second group, where your first column (which contains the "Status" group) is set to 70% width, and the second column is set to a fixed width of 400.
I've noticed that the form renderer tends to have problems when these layout types are mixed.

Related

Upgrade to TFS 2018.2 from 2012 Backlogs are broken

We recently upgraded our TFS 2012 on premise server to TFS 2018.2. Things are mostly working but any project that had custom state/transitions will cause an error when trying to open the Backlogs page. The issue it is complaining about is related to Bugs. We replaced a "Complete" state with a state of Closed.
The error I get is :
TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration.
Learn about how to correct your configuration
Details about the validation error appear below:
The following element contains an error: RequirementBacklog/States. TF401098: This element defines the states for work items that appear on your backlog. The state configuration is incorrect. Each work item on this backlog must have one state with the type 'Complete'. The following work item type does not have any state with the type 'Complete': Bug.
Steps I have tried:
1) Using TFS Process Template editor in VS, I have change the Closed state to Complete. No success.
2) I have attempted to export the processconfig using witadmin. The file I get does not have any bug section at all. So using examples online, I attempt to add it but it complains about other sections in the file being incomplete. On a side note, if I export the process config and then immediately try to import it, it fails complaining about singleName not specified and other issues. I will attach the file I get when I export the file if it helps.
<?xml version="1.0" encoding="utf-8"?>
<ProjectProcessConfiguration>
<FeedbackRequestWorkItems category="Microsoft.FeedbackRequestCategory" pluralName="Feedback Requests">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackRequestWorkItems>
<FeedbackResponseWorkItems category="Microsoft.FeedbackResponseCategory" pluralName="Feedback Responses">
<States>
<State type="InProgress" value="Active" />
<State type="Complete" value="Closed" />
</States>
</FeedbackResponseWorkItems>
<RequirementBacklog category="Microsoft.RequirementCategory" pluralName="Backlog items" workItemCountLimit="500">
<AddPanel>
<Fields>
<Field refname="System.Title" />
</Fields>
</AddPanel>
<Columns>
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.Effort" />
<Column width="200" refname="System.IterationPath" />
<Column width="200" refname="System.Tags" />
</Columns>
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Approved" />
<State type="InProgress" value="Committed" />
<State type="Complete" value="Done" />
</States>
</RequirementBacklog>
<TaskBacklog category="Microsoft.TaskCategory" workItemCountLimit="500">
<AddPanel />
<Columns>
<Column width="50" refname="Microsoft.VSTS.Scheduling.Effort" />
<Column width="400" refname="System.Title" />
<Column width="100" refname="System.State" />
<Column width="100" refname="System.AssignedTo" />
<Column width="50" refname="Microsoft.VSTS.Scheduling.RemainingWork" />
</Columns>
<States>
<State type="Proposed" value="To Do" />
<State type="InProgress" value="In Progress" />
<State type="Complete" value="Done" />
</States>
</TaskBacklog>
<TypeFields>
<TypeField refname="Microsoft.VSTS.Common.Activity" type="Activity" />
<TypeField refname="Microsoft.VSTS.Common.BacklogPriority" type="Order" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationLaunchInstructions" type="ApplicationLaunchInstructions" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationType" type="ApplicationType">
<TypeFieldValues>
<TypeFieldValue type="ClientApp" value="Client application" />
<TypeFieldValue type="RemoteMachine" value="Remote machine" />
<TypeFieldValue type="WebApp" value="Web application" />
</TypeFieldValues>
</TypeField>
<TypeField refname="Microsoft.VSTS.Scheduling.Effort" type="Effort" />
<TypeField format="{0} h" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="RemainingWork" />
<TypeField refname="System.AreaPath" type="Team" />
</TypeFields>
<Weekends>
<DayOfWeek>Sunday</DayOfWeek>
<DayOfWeek>Saturday</DayOfWeek>
</Weekends>
<Properties>
<Property name="BugsBehavior" value="Off" />
</Properties>
</ProjectProcessConfiguration>
I am new to the 2018 world and can't seem to solve this issue any suggestions would be helpful.
Adding my bug work item definition:
<?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="Bug">
<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 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 />
</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="Board Column" refname="System.BoardColumn" type="String" reportable="dimension" />
<FIELD name="Board Column Done" refname="System.BoardColumnDone" type="Boolean" reportable="dimension" />
<FIELD name="Board Lane" refname="System.BoardLane" type="String" reportable="dimension" />
<FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure" formula="sum" />
<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>
<SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
<GLOBALLIST name="Builds - WHCRT" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Closed Date" refname="Microsoft.VSTS.Common.ClosedDate" type="DateTime" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="System Info" refname="Microsoft.VSTS.TCM.SystemInfo" type="HTML" />
<FIELD name="Repro Steps" refname="Microsoft.VSTS.TCM.ReproSteps" type="HTML" />
<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="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>
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
<SUGGESTEDVALUES expanditems="true">
<LISTITEM value="<None>" />
</SUGGESTEDVALUES>
<SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
<GLOBALLIST name="Builds - WHCRT" />
</SUGGESTEDVALUES>
</FIELD>
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Closed" />
<STATE value="In Progress" />
<STATE value="In-Progress - QA" />
<STATE value="New">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="QA Failed" />
<STATE value="Ready For QA" />
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="New">
<REASONS>
<DEFAULTREASON value="New defect reported" />
<REASON value="Build Failure" />
</REASONS>
</TRANSITION>
<TRANSITION from="In-Progress - QA" to="QA Failed">
<REASONS>
<DEFAULTREASON value="Bug not resolved, see Notes" />
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Ready For QA" to="In-Progress - QA">
<REASONS>
<DEFAULTREASON value="Testing Bug" />
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="currentuser" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="In-Progress - QA" to="Closed">
<REASONS>
<DEFAULTREASON value="Fix verified">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<COPY from="clock" />
</FIELD>
</FIELDS>
</DEFAULTREASON>
<REASON value="Confirmed not a bug">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<COPY from="clock" />
</FIELD>
</FIELDS>
</REASON>
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="Closed">
<REASONS>
<DEFAULTREASON value="Not a Bug">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<COPY from="clock" />
</FIELD>
</FIELDS>
</DEFAULTREASON>
<REASON value="Old System - Closing bug">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<COPY from="clock" />
</FIELD>
</FIELDS>
</REASON>
<REASON value="Oops - Duplicate" />
</REASONS>
</TRANSITION>
<TRANSITION from="In-Progress - QA" to="Ready For QA">
<REASONS>
<DEFAULTREASON value="Unable to Test for now">
<FIELDS>
<FIELD refname="System.AssignedTo">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="Closed" to="New">
<REASONS>
<DEFAULTREASON value="Re-Open Bug">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="In Progress" to="Closed">
<REASONS>
<DEFAULTREASON value="Invalid Bug - Verified with Business">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<COPY from="clock" />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="In Progress" to="New">
<REASONS>
<DEFAULTREASON value="Moved back to New">
<FIELDS>
<FIELD refname="System.AssignedTo">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="New" to="In Progress">
<REASONS>
<DEFAULTREASON value="Dev working bug">
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="currentuser" />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="QA Failed" to="In Progress">
<REASONS>
<DEFAULTREASON value="Dev working bug">
<FIELDS>
<FIELD refname="System.AssignedTo">
<COPY from="currentuser" />
</FIELD>
</FIELDS>
</DEFAULTREASON>
</REASONS>
</TRANSITION>
<TRANSITION from="In Progress" to="Ready For QA">
<REASONS>
<DEFAULTREASON value="Issue Fixed, Ready for QA" />
<REASON value="Can't Reproduce" />
<REASON value="Not a Bug, won't fix" />
</REASONS>
<FIELDS>
<FIELD refname="System.AssignedTo">
<ALLOWEXISTINGVALUE />
<EMPTY />
</FIELD>
</FIELDS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout HideControlBorders="true" HideReadOnlyEmptyFields="true">
<Group Margin="(4,0,0,0)">
<Column PercentWidth="100">
<Control FieldName="System.Title" Type="FieldControl" LabelPosition="Top" ControlFontSize="large" EmptyText="<Enter title here>" />
</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 FieldName="System.State" Type="FieldControl" Label="Stat&e" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="Reason" LabelPosition="Left" />
</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.Scheduling.RemainingWork" Type="FieldControl" Label="Remaining Work" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Common.Severity" Type="FieldControl" Label="Severity" LabelPosition="Left" />
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&Area" LabelPosition="Left" />
</Column>
</Group>
</Column>
</Group>
<Group>
<Column PercentWidth="50">
<TabGroup>
<Tab Label="Steps to Reproduce">
<Control FieldName="Microsoft.VSTS.TCM.ReproSteps" Type="HtmlFieldControl" Label="" LabelPosition="Top" Dock="Fill" MinimumSize="(100,200)" />
</Tab>
<Tab Label="System">
<Group Label="Build">
<Column PercentWidth="100">
<Control FieldName="Microsoft.VSTS.Build.FoundIn" Type="FieldControl" Label="Found In Build" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Build.IntegrationBuild" Type="FieldControl" Label="Integrated in Build" LabelPosition="Left" />
</Column>
</Group>
<Control FieldName="Microsoft.VSTS.TCM.SystemInfo" Type="HtmlFieldControl" Label="System Info" LabelPosition="Top" Dock="Fill" />
</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" Label="" LabelPosition="Top" Name="TaskLinks">
<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="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" MinimumSize="(100,200)" />
</Tab>
<Tab Label="History">
<Control FieldName="System.History" Type="WorkItemLogControl" Label="" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="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>
</Column>
</Group>
</Layout>
<WebLayout ShowEmptyReadOnlyFields="false">
<SystemControls>
<Control Type="FieldControl" FieldName="System.Title" EmptyText="<Enter title here>" />
<Control Label="Ite&ration" Type="WorkItemClassificationControl" FieldName="System.IterationPath" />
<Control Label="Assi&gned To" Type="FieldControl" FieldName="System.AssignedTo" />
<Control Label="Stat&e" Type="FieldControl" FieldName="System.State" />
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
<Control Label="&Area" Type="WorkItemClassificationControl" FieldName="System.AreaPath" />
<Control Label="Links" Type="LinksControl" Name="Links" />
<Control Label="History" Type="WorkItemLogControl" FieldName="System.History" />
<Control Label="Attachments" Type="AttachmentsControl" Name="Attachments" />
</SystemControls>
<Page Label="Details" LayoutMode="FirstColumnWide">
<Section>
<Group Label="Steps to Reproduce">
<Control Type="HtmlFieldControl" FieldName="Microsoft.VSTS.TCM.ReproSteps" />
</Group>
<Group Label="System Info">
<Control Label="System Info" Type="HtmlFieldControl" FieldName="Microsoft.VSTS.TCM.SystemInfo" />
</Group>
<Group Label="Acceptance Criteria">
<Control Type="HtmlFieldControl" FieldName="Microsoft.VSTS.Common.AcceptanceCriteria" />
</Group>
</Section>
<Section>
<Group Label="Status">
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
</Group>
<Group Label="Build">
<Control Label="Found In Build" Type="FieldControl" FieldName="Microsoft.VSTS.Build.FoundIn" />
<Control Label="Integrated in Build" Type="FieldControl" FieldName="Microsoft.VSTS.Build.IntegrationBuild" />
</Group>
</Section>
<Section>
<Group Label="Development">
<Control Type="LinksControl" Name="Development">
<LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">
<ListViewOptions GroupLinks="false"></ListViewOptions>
<LinkFilters>
<ExternalLinkFilter Type="Build" />
<ExternalLinkFilter Type="Integrated in build" />
<ExternalLinkFilter Type="Pull Request" />
<ExternalLinkFilter Type="Branch" />
<ExternalLinkFilter Type="Fixed in Commit" />
<ExternalLinkFilter Type="Fixed in Changeset" />
<ExternalLinkFilter Type="Source Code File" />
<ExternalLinkFilter Type="Found in build" />
</LinkFilters>
</LinksControlOptions>
</Control>
</Group>
<Group Label="Related Work">
<Control Type="LinksControl" Name="Related Work">
<LinksControlOptions>
<LinkFilters>
<WorkItemLinkFilter Type="System.LinkTypes.Duplicate-Reverse" />
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Reverse" />
<WorkItemLinkFilter Type="Microsoft.VSTS.Common.TestedBy-Forward" />
<WorkItemLinkFilter Type="Microsoft.VSTS.Common.TestedBy-Reverse" />
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Duplicate-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Dependency" />
<WorkItemLinkFilter Type="System.LinkTypes.Related" />
</LinkFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
<Group Label="Details">
<Control Label="Effort" Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.Effort" />
<Control Label="Remaining Work" Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.RemainingWork" />
<Control Label="Severity" Type="FieldControl" FieldName="Microsoft.VSTS.Common.Severity" />
</Group>
</Section>
</Page>
</WebLayout>
</FORM>
</WORKITEMTYPE>
</witd:WITD>
Did you do "enable new features" => In the config section (Projects) you can find this.
Also there is a guide from MS to your topic: https://learn.microsoft.com/en-us/vsts/work/customize/update-customized-process-template?view=tfs-2018
Try to add the following sample between <ProjectProcessConfiguration> </ProjectProcessConfiguration>
<BugWorkItems category="Microsoft.BugCategory" pluralName="Bugs" singularName="Bug">
<States>
<State type="Proposed" value="New" />
<State type="Proposed" value="Approved" />
<State type="InProgress" value="Committed" />
<State type="Complete" value="Done" />
</States>
</BugWorkItems>

Add Additional Columns to Links Page (TFS 2018)

I am trying to add additional columns to the "Links" page as highlighted in yellow, but can't seem to figure out how to do so. The request is to add columns to show "Assigned To" and "Remaining Work".
I've looked over and attempted following the information here with no luck: LinksControlOptions XML elements
Links Page - TFS 2018
I've tried on my side and found your can't customize the default links columns, a workaround is creating a new page between <WebLayout> and </WebLayout> as the following sample in your work item type definition and add <Column Name="FieldRefName" /> that you want to shows there:
<FORM>
<WebLayout>
<Page Label="Links" LayoutMode="FirstColumnWide">
<Section>
<Group Label="links">
<Control Type="LinksControl" Name="links">
<LinksControlOptions>
<LinkFilters>
<WorkItemLinkFilter Type="System.LinkTypes.Duplicate-Reverse" />
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Reverse" />
<WorkItemLinkFilter Type="Microsoft.VSTS.Common.TestedBy-Reverse" />
<WorkItemLinkFilter Type="Microsoft.VSTS.Common.TestedBy-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Duplicate-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Dependency" />
<WorkItemLinkFilter Type="System.LinkTypes.Related" />
</LinkFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
<Column Name="System.AssignedTo" />
<Column Name="System.IterationPath" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
</Section>
</Page>
</WebLayout>
</FORM>

add feature is disabled tfs2017

I just enabled the feature portfolio on my backlog and the add button is disabled. The only way to add Feature is with an extension that I found, but it's not a good solution for me. How can I enable adding Feature on my backlog?
I'm currently using tfs2017.1 on premise
Make sure you add the addpanel in the processconfiguration.xml:
This is the default from the Aile template
<PortfolioBacklog category="Microsoft.FeatureCategory" pluralName="Features" singularName="Feature" parent="Microsoft.EpicCategory" workItemCountLimit="1000">
<States>
<State value="New" type="Proposed" />
<State value="Active" type="InProgress" />
<State value="Resolved" type="InProgress" />
<State value="Closed" type="Complete" />
</States>
<Columns>
<Column refname="System.WorkItemType" width="100" />
<Column refname="System.Title" width="400" />
<Column refname="System.State" width="100" />
<Column refname="Microsoft.VSTS.Scheduling.Effort" width="50" />
<Column refname="Microsoft.VSTS.Common.BusinessValue" width="50" />
<Column refname="Microsoft.VSTS.Common.ValueArea" width="100" />
<Column refname="System.Tags" width="200" />
</Columns>
<AddPanel>
<Fields>
<!-- Make sure all required fields in state new are listed here -->
<Field refname="System.Title" />
</Fields>
</AddPanel>
</PortfolioBacklog>

Multiple LinksControls on the work item form

For a heavily customized process template, I'm trying to implement multiple specialized LinksControls on the front page ("Details") of the work item form (TFS2017.Update1).
What I have done is the following:
<Group Label="Derived">
<Control Type="LinksControl" Name="Derived">
<LinksControlOptions ViewMode="List">
<ListViewOptions GroupLinks="true" />
<LinkFilters>
<WorkItemLinkFilter Type="RE.DerivedFrom-Forward" />
</LinkFilters>
<WorkItemTypeFilters>
<Filter WorkItemType="Product Requirement" />
<Filter WorkItemType="Customer Requirement" />
</WorkItemTypeFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
<Group Label="Usings">
<Control Type="LinksControl" Name="Usings">
<LinksControlOptions ViewMode="List">
<ListViewOptions GroupLinks="true" />
<LinkFilters>
<WorkItemLinkFilter Type="RE.Uses" />
</LinkFilters>
<WorkItemTypeFilters>
<Filter WorkItemType="Product Property" />
<Filter WorkItemType="Product Requirement" />
<Filter WorkItemType="Customer Requirement" />
</WorkItemTypeFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
<Group Label="Hierarchy">
<Control Type="LinksControl" Name="Hierarchy">
<LinksControlOptions ViewMode="List">
<ListViewOptions GroupLinks="true" />
<LinkFilters>
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy" />
</LinkFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
When I open the form, some of the groups are empty, although there definitely are other work items linked using the link types in the filter:
To verify, that the links really exist I checked on the "all links" page:
When I hit the refresh button other links are shown. Which seems to be quite random.
Is there an error in my XML? Or is there any restriction to the WebLayout and usage of LinksControl that I'm not aware of? Or is this a known bug in TFS?
This seems to be a version specific bug(?) in TFS 2017.1.
I copied the collection to a fresh TFS 2018 install and now it looks like I expected it:
Not a perfect answer. But a solution I can live with, since we are about to upgrade to TFS 2018 anyway.

TFS wit field width different in VS2015 and Web UI

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>

Resources