index > Visual Studio Team System - General > Work items in resolved state seem protected against changes.

Work items in resolved state seem protected against changes.


Is this by design?  It is rather frustrating to see fields you missed entering and wish to ammend, and not be able to do it.  I would rather see a dialog that strongly admonished against the action, rather than arbitrarily locking you out.  Is there a way to override this behavior?

At any rate the error message 26201 is rather misleading, and not helpful in explaining the real problem.




Scot S. Morgan
ssmorgan

Which process guidance are you using (Agile or CMMI), and what is the specific work item type (Bug, Task, etc.)?

Regards,

William Bartholomew

William Bartholomew

Actually it is our own, modified from Agile. The work item type is Meeting, which has been modified from task. The states are assigned, active, resolved. As soon as I put in the resolved state all the fields are locked. I do not see anything in the xml definition that I would expect to cause this behavior.

<?xml version="1.0" encoding="utf-8"?>
<WITD application="Work item type editor" version="1.0">
<WORKITEMTYPE name="Meeting">
<DESCRIPTION>Includes information to track the task through the MSF Agile lifecycle</DESCRIPTION>
<FIELDS>
<FIELD name="Id" refname="System.Id" type="Integer" />
<FIELD name="Title" refname="System.Title" type="String">
<HELPTEXT>Short description of the task used to differentiate it in a list or report</HELPTEXT>
<REQUIRED />
</FIELD>
<FIELD name="Assigned To" refname="System.AssignedTo" type="String">
<VALIDUSER />
</FIELD>
<FIELD name="History" refname="System.History" type="History">
<HELPTEXT>Discussion thread and other historical information</HELPTEXT>
</FIELD>
<FIELD name="Area Path" refname="System.AreaPath" type="TreePath">
<HELPTEXT>The area of the product with which this task is associated</HELPTEXT>
</FIELD>
<FIELD name="Iteration Path" refname="System.IterationPath" type="TreePath">
<HELPTEXT>The iteration of the product with which this task is associated</HELPTEXT>
</FIELD>
<FIELD name="State" refname="System.State" type="String">
<HELPTEXT>The workflow state of the task</HELPTEXT>
</FIELD>
<FIELD name="Phases" refname="MPRI.Common.Phases" type="String">
<HELPTEXT>The reason why the task is in the current state</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="New" />
<LISTITEM value="Investigation" />
<LISTITEM value="Being Worked On" />
<LISTITEM value="Complete" />
<LISTITEM value="Deferred" />
<LISTITEM value="Rejected" />
<LISTITEM value="Under reWork" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="New" />
</FIELD>
<FIELD name="Reason" refname="System.Reason" type="String">
<HELPTEXT>The reason why the task is in the current state</HELPTEXT>
</FIELD>
<FIELD name="Changed Date" refname="System.ChangedDate" type="DateTime" />
<FIELD name="Changed By" refname="System.ChangedBy" type="String">
<VALIDUSER />
</FIELD>
<FIELD name="Created Date" refname="System.CreatedDate" type="DateTime" />
<FIELD name="Created By" refname="System.CreatedBy" type="String" />
<FIELD name="Description" refname="System.Description" type="PlainText" />
<FIELD name="Issue" refname="Microsoft.VSTS.Common.Issue" type="String" reportable="dimension">
<HELPTEXT>Used to highlight a task, e.g., to mark it as an issue</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="Yes" />
<LISTITEM value="No" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="No" />
</FIELD>
<FIELD name="Exit Criteria" refname="Microsoft.VSTS.Common.ExitCriteria" type="String" reportable="dimension">
<HELPTEXT>Flag to determine if this scenario should be tracked as an exit criteria for the iteration</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="Yes" />
<LISTITEM value="No" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="No" />
</FIELD>
<FIELD name="State Change Date" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime">
<WHENCHANGED field="System.State">
<SERVERDEFAULT from="clock" />
</WHENCHANGED>
</FIELD>
<FIELD name="State Changed By" refname="Microsoft.VSTS.Common.StateChangedBy" type="String" reportable="dimension" />
<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" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<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" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Resolved Reason" refname="Microsoft.VSTS.Common.ResolvedReason" type="String" reportable="dimension" />
<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" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>
<FIELD name="Rank" refname="Microsoft.VSTS.Common.Rank" type="String" reportable="dimension">
<HELPTEXT>Stack rank to prioritize work</HELPTEXT>
</FIELD>
<FIELD name="Discipline" refname="Microsoft.VSTS.Common.Discipline" type="String" reportable="dimension">
<HELPTEXT>The discipline to which the task belongs</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="Design Review" />
<LISTITEM value="Sprint" />
<LISTITEM value="Project Management" />
<LISTITEM value="Requirements" />
<LISTITEM value="Architecture" />
<LISTITEM value="Release Management" />
<LISTITEM value="Quality" />
<LISTITEM value="ISO 9001" />
<LISTITEM value="Testing" />
</ALLOWEDVALUES>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<HELPTEXT>The build in which the task was completed</HELPTEXT>
<SUGGESTEDVALUES>
<LISTITEM value="&lt;None&gt;" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Remaining Work" refname="Microsoft.VSTS.Scheduling.RemainingWork" type="Double" reportable="measure">
<HELPTEXT>An estimate of the number of hours remaining to complete the task</HELPTEXT>
</FIELD>
<FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure">
<HELPTEXT>The number of hours that have been completed for this task</HELPTEXT>
</FIELD>
<FIELD name="Baseline Work" refname="Microsoft.VSTS.Scheduling.BaselineWork" type="Double" reportable="measure">
<HELPTEXT>The number of hours of work from the baseline plan</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>
<FIELD name="Task Hierarchy" refname="Microsoft.VSTS.Scheduling.TaskHierarchy" type="String" reportable="dimension">
<HELPTEXT>A string representing MS-Project context for the given task</HELPTEXT>
</FIELD>
<FIELD name="EstimatedHours" refname="MPRI.Common.EstimatedHours" type="Double">
<HELPTEXT>Number of hours estimated to complete this task.</HELPTEXT>
</FIELD>
<FIELD name="SubmittedBy" refname="MPRI.Common.SubmittedBy" type="String">
<REQUIRED />
<SUGGESTEDVALUES>
<LISTITEM value="Customer" />
<LISTITEM value="Fort Eustis" />
<LISTITEM value="C. Andersen" />
<LISTITEM value="M. Collins" />
<LISTITEM value="D. Eggett" />
<LISTITEM value="J. Ellsworth" />
<LISTITEM value="K. Foster" />
<LISTITEM value="S. Hartley" />
<LISTITEM value="G. Ingles" />
<LISTITEM value="D. Lamothe" />
<LISTITEM value="S. Morgan" />
<LISTITEM value="J. Peacock" />
<LISTITEM value="S. Reynolds" />
<LISTITEM value="B. Roeca" />
<LISTITEM value="T. Tucker" />
</SUGGESTEDVALUES>
</FIELD>
<FIELD name="Priority" refname="Microsoft.VSTS.Common.Priority" type="Integer" reportable="dimension">
<HELPTEXT>Priority to the business</HELPTEXT>
<ALLOWEDVALUES>
<LISTITEM value="1" />
<LISTITEM value="2" />
<LISTITEM value="3" />
</ALLOWEDVALUES>
<DEFAULT from="value" value="3" />
</FIELD>
<FIELD name="Rough Order of Magnitude" refname="Microsoft.VSTS.Common.RoughOrderOfMagnitude" type="Integer" reportable="dimension">
<HELPTEXT>Number 1 to 100. Level 100 is 100 time more difficult than a Level 1 task.</HELPTEXT>
</FIELD>
<FIELD name="Agenda" refname="MPRI.Common.Agenda" type="HTML">
<HELPTEXT>Meeting Agenda</HELPTEXT>
</FIELD>
<FIELD name="Invitees" refname="MPRI.Common.Invitees" type="HTML">
<HELPTEXT>Those invited to attend.</HELPTEXT>
</FIELD>
<FIELD name="Attendees" refname="MPRI.Common.Attendees" type="HTML">
<HELPTEXT>Who actually attended</HELPTEXT>
</FIELD>
<FIELD name="ActionItems" refname="MPRI.Common.ActionItems" type="HTML" />
<FIELD name="Decisions" refname="MPRI.Common.Decisions" type="HTML">
<HELPTEXT>Decsions made during meeting.</HELPTEXT>
</FIELD>
<FIELD name="Minutes" refname="MPRI.Common.Minutes" type="HTML">
<HELPTEXT>Other notes from meeting</HELPTEXT>
</FIELD>
<FIELD name="MeetingDate" refname="MPRI.Common.MeetingDate" type="DateTime">
<HELPTEXT>Scheduled Time of Meeting.</HELPTEXT>
</FIELD>
</FIELDS>
<WORKFLOW>
<STATES>
<STATE value="Assigned">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.StateChangeDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.StateChangedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Resolved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="field" field="System.Reason" />
</FIELD>
</FIELDS>
</STATE>
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="Assigned">
<REASONS>
<REASON value="Reoccurring" />
<DEFAULTREASON value="New Meeting" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.StateChangedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.StateChangeDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<DEFAULT from="currentuser" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Assigned" to="Active">
<REASONS>
<DEFAULTREASON value="Meeting in progress" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="MPRI.Common.MeetingDate">
<SERVERDEFAULT from="clock" />
</FIELD>
<FIELD refname="System.AssignedTo">
<DEFAULT from="currentuser" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Active" to="Resolved">
<REASONS>
<REASON value="Meeting Canceled" />
<DEFAULTREASON value="Meeting Complete" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<COPY from="field" field="System.AssignedTo" />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
<TRANSITION from="Active" to="Assigned">
<REASONS>
<DEFAULTREASON value="Meeting Postponed" />
</REASONS>
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.StateChangedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.StateChangeDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
<FORM>
<Layout>
<Group>
<Column PercentWidth="70">
<Control FieldName="System.Title" Type="FieldControl" Label="&amp;Title:" LabelPosition="Left" />
</Column>
<Column PercentWidth="30">
<Control FieldName="Microsoft.VSTS.Common.Discipline" Type="FieldControl" Label="&amp;Discipline:" LabelPosition="Left" />
</Column>
</Group>
<Group Label="Classification">
<Column PercentWidth="80">
<Control FieldName="System.AreaPath" Type="WorkItemClassificationControl" Label="&amp;Area:" LabelPosition="Left" />
</Column>
<Column PercentWidth="20">
<Control FieldName="MPRI.Common.SubmittedBy" Type="FieldControl" Label="Submitted By:" LabelPosition="Left" />
</Column>
</Group>
<Group>
<Column PercentWidth="70">
<Group Label="Status">
<Column PercentWidth="50">
<Control FieldName="System.AssignedTo" Type="FieldControl" Label="&amp;Assigned to:" LabelPosition="Left" />
<Control FieldName="System.Reason" Type="FieldControl" Label="R&amp;eason:" LabelPosition="Left" />
<Control FieldName="System.State" Type="FieldControl" Label="&amp;State:" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Type="FieldControl" Label="&amp;Completed Hours:" LabelPosition="Left" NumberFormat="DecimalNumbers" MaxLength="10" />
</Column>
<Column PercentWidth="50">
<Control FieldName="MPRI.Common.MeetingDate" Type="FieldControl" Label="Meeting Date:" LabelPosition="Left" />
</Column>
</Group>
</Column>
<Column PercentWidth="30">
<Group Label="Those involved">
<Column PercentWidth="50">
<Control FieldName="MPRI.Common.Attendees" Type="HtmlFieldControl" Label="Attendees:" LabelPosition="Top" Dock="Fill" />
</Column>
</Group>
</Column>
</Group>
<TabGroup>
<Tab Label="Agenda">
<Control FieldName="MPRI.Common.Agenda" Type="HtmlFieldControl" Label="Agenda:" LabelPosition="Top" />
</Tab>
<Tab Label="Minutes">
<Control FieldName="MPRI.Common.Minutes" Type="HtmlFieldControl" Label="Minutes:" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Action Items">
<Control FieldName="MPRI.Common.ActionItems" Type="HtmlFieldControl" Label="Action Items:" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Decisions">
<Control FieldName="MPRI.Common.Decisions" Type="HtmlFieldControl" Label="Decisions:" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="History">
<Control FieldName="System.History" Type="WorkItemLogControl" Label="&amp;History:" LabelPosition="Top" Dock="Fill" />
</Tab>
<Tab Label="Links">
<Control Type="LinksControl" LabelPosition="Top" />
</Tab>
<Tab Label="File Attachments">
<Control Type="AttachmentsControl" LabelPosition="Top" />
</Tab>
</TabGroup>
</Layout>
</FORM>
</WORKITEMTYPE>
</WITD>




Scot S. Morgan
ssmorgan
You are not able to edit & save only specific fields or all fields? Are you able to add comments in history tab? are you able to add links & attachments?


http://blogs.msdn.com/narend
Naren Datha - MSFT

It appears to be all fields. I tried comments in the history tab and a file attachment. They both fail in the same manner.




Scot S. Morgan
ssmorgan

Can you paste the error message? Usually the error should have TFxxx error code, and that would also help.

Thanks.




http://blogs.msdn.com/narend
Naren Datha - MSFT
TF26201 (This work item has unsupported fields or user does not have permisions) as reported at top


Scot S. Morgan
ssmorgan

This error usually occurs when rule validation fails. Few example, this could happen when setting values for readonly fields such as "changed by", "changed date" etc, or a certain value is not valid because of conflicting rules. So it could take a while to troubleshoot.

Below is my quick guess seeing the xml and seeing the problem details. I might be wrong (i haven't verified below), but you can play with it by removing/changing rules:

Below two rules seem to be conflicting:

<FIELD name="Resolved By" refname="Microsoft.VSTS.Common.ResolvedBy" type="String" reportable="dimension">
<WHENNOTCHANGED field="System.State">
<READONLY />
</WHENNOTCHANGED>
</FIELD>

and

<STATE value="Resolved">

<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<COPY from="currentuser" />
<VALIDUSER />
</FIELD>
</FIELDS>
</STATE>

1st rule seems to say "allow change to ResolvedBy only if state also changes", and 2nd rule seems to say "change ResolvedBy everytime when in Resolved state".




http://blogs.msdn.com/narend
Naren Datha - MSFT

Ok. I however, if I apply this reasoning I definitely have a conflict with the Assigned state as well, which is trying to clear (<empty>  tag ) resolvedBy, resolvedDate, and resolvedReason fields that are clearly marked with the same read_only rule.   I can save multiple changes in the same assigned state and get no error.  Unless empty checks for empty before it tries to clear the field.  The behavior seems inconsistent.

I did not fully realize that every time you did a save, that the State value="xyz" is executed.  This means that you ought to have a warning in the documentation to be extremely careful when you put any actions here.  Action for fields like lastUpdatedBy, and lastUpdatedDate would be an appropriate type of action based on what you have described.  But otherwise a better rule of thumb would seem to be make these auto field updates happen only in the state change.

Anyway I haven't had a chance to validate your suggestion yet, but it seems like the cause.  Can you explain the empty tag not causing TF26201?  I hope you improve the error messages to fully identify the field(s) causing a TF26201 error.  And should fields not affected by a conflict be allowed to update successfully??




Scot S. Morgan
ssmorgan
reply 9

You can use google to search for other answers

 

More Articles

Will VSTS Profiler work in .net 1.1?
Switching between different editions
how to use microsoft.visualbasic dll version .net 2.0 in .net 200...
Team build - solution with a reference on a network mapped drive
Continuous Integration Using Team Foundation Build
Precompiling ASP.NET Application in one DLL
Deleteing Work Item - Task
Shared assemblies amongst projects
Buggy Windows XP service pack2 Shipped to Me
Problem installing VS 2005 Team Suite
Welcome to Bokebb   New Update   Joins the collection  
 

New Articles

Error on main portal page for project
VSTS Dev & Test Tools Public MSDN Ch…
TFS Beta 3 slow opening docs greater tha…
console program causing vs ide crash
Links to VSTS from outside Studio
Group Tasks
Installation of Beta 2 over VS 2005 Prof…
trying to run lab scenario - problem wit…
Error 32000 during Team Server install
Team Suite release date? Simple installe…
Buggy Windows XP service pack2 Shipped t…
Visual Studio 2005 Team Foundation App-D…
VC++ 2005 Pro lacking tools. Whats up wi…
Team Suite Trial Edition (Beta 3 Refresh)
Workspace is already mapped problem

Hot Articles

Past VSTS Web Webcasts not availible for…
What happened with Visio in the VS 2005
MS Project Server 2003 Vs MS VSTS 2005
Differences of VS2005 products
Visual Studio 2005 Team System Beta 2 VP…
How to get it
How do I add a folder to a Team Project …
Changing RAM configuration causes VS 200…
Downloading Team Suite Trial from MSDN D…
Migrating from .net 1.1 to 2.0 with VSTS
Using Windows Server 2003 Product key fo…
Missing Project types on new install?
Error while debugging
Search Source Control for file names
Team System Tutorial

Recommend Articles

Create a Database Project in VS 2005 Bet…
Integrate with Borland Delphi
Excel workItems menu doesn't appear
Multiple installations?
Question Before Evaluating VSTS
Visual Studio Team Suite Question
How do I do a build ?
Team System/Team Suite....MSDN Renewal C…
Package Load Failure
My projecrs users are always offline in …
Collaborating with non-VS Users
Renaming files under source control in V…
is .net runtime beta 2 redistributable?
which team system when role changes?
Steps to install VSTS 2005 in Win XP