2
votes

We recently upgraded to Team Foundation Server 2013.

We have heavily customised the standard MS Scrum template so that we have different states from the standard Scrum template.

In the process configuration for the backlog items, you map each state to one of three metastates

  • Proposed
  • InProgress
  • Complete

These metastates then drive how your backlog items appear on the backlogs and also directly affect how the velocity is calculated for each sprint.

In TFS 2012, we were able to map multiple states to the "Complete" metastate, which meant that we could consider work as "complete" and show as so in the velocity chart, but still keep the work item in the backlog (particularly useful for tracking the QA and Release process after developers have actually "completed" development)

For some reason in TFS 2013 this has been changed so now you can only map one state to the metastate of "Complete" - try to do otherwise and you are met with the error message below

The following element contains an error: RequirementBacklog/States. TF401099: 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 has multiple states with the type 'Complete': Product Backlog Item.

I would like to know if anyone else has been able to get around this issue, by somehow customising TFS to allow multiple complete state mapping?

1
I'm seeing the same after a 2012->2013 upgrade. Did you get a solution to this? ThanksPero P.
Hi pero, unfortunately not. I've even spoken to Microsoft people directly and they seemed to suggest that it was unintentional that you were ever able to do this. In the end I've had to just get used to the fact I can no longer map multiple states! If you ever do find a solution, please let me know.Dewi Rees
Thanks for the reply @Jubblerbug. We have gone with the approach of all work item type workflows ending with the same state (Closed) and using a Reason field to capture the reason for closure. Like yourself this means we just have the one state mapped to Complete. QED there is no solution :)Pero P.
If you wish the feature back you can vote here: visualstudio.uservoice.com/forums/121579-visual-studio/…Bruno Bieri

1 Answers

1
votes

I realise this is of limited use so long after the TFS 2013 upgrade but I just came across this issue myself and fixed the problem it was causing me.

I have an old project that was previously upgraded from TFS 2012 to 2013. Trying to access the backlog resulted in the "Each work item on this backlog must have one state with the type 'Complete'" error reported above.

The process configuration (exported using witadmin exportprocessconfig) had states defined that included the following two:

  • State type="Complete" value="Released"
  • State type="Complete" value="Removed"

Unfortunately TFS 2013 only allows one state with the type "Complete" so we couldn't have both of these states. I initially tried changing the type of our "Removed" state from "Complete" to "Proposed" but the items were then displayed in the backlog rather than hidden.

After a bit of searching, I discovered that the "Removed" state is now built-in to TFS. This MSDN article shows four states in the process configuration xml file and points out the process also includes "a fifth state, Removed, to account for a state removed from the backlog without being implemented."

The steps I followed to fix this were:

  1. Add a new temporary state "ToBeRemoved"
  2. Move the "Removed" items into the "ToBeRemoved"state
  3. Delete the definition of the "Removed" state from the process configuration file and call "witadmin importprocessconfig"
  4. Move the "ToBeRemoved" items back into the "Removed" state.