When you want to customize a Work item in TFS2008, you will see that there’s not so many information to find about it. In common it’s easy, especially when you use the Process Editor. But I can say, when doing a lot of changes, you come to several problems. I will try to write down the problems I had together with a solution or work around. Also I will write down some strange effects I came across. So let’s start.
First, it’s a lot easier to install the TFS Power tools (October 2008 is the latest release for the moment). This will give you the Process Template Editor, which is a lot easier to customize your work items than the pure XML. But it’s the first release and still not giving the user experience you have in VS. For example you don’t have intellisense.
Next, the validation is done when you save your item. This is OK, only not all error messages are clear what the meaning is.
A little bit about the import in a project. When choosing the import WIT menu, be sure to follow this order of steps:
- Locate the WI XML file
- Choose the project in which you want to import
If you don’t follow this order, the project selection is gone and the WI is imported in all your projects, which is something you don’t want during the testing phase. Also after doing an import, restart your VS. Why? Well, not always is the import visible if you don’t close your VS. And if it’s visible, it could work or not. Sometimes, you even got errors about object references and more.
The most irritating part was that while I was busy with the customization, the system got slower and slower (even when saving in between). At a certain moment you even got an error.

Now that we have described some problems/solutions, we will go a little deeper into the customization itself.
First you need to define your fields. Defining them means
- Give them a fieldname
- Select what type the field would be
- Choose a reference name.
This is easy, but be sure that when you create a new field you are sure about the type and reference name. As when you want to change this later and the WI is already installed you can’t do this anymore. You will get an error that there’s already a field of with a different type/reference name.
For the reference name, you could use your own name, but it always contain at least 1 period. You could also use standard TFS Reference names like System.Title, Microsoft.VSTS.Common.ResolvedBy,… The problem is that I haven’t found anywhere some documentation about all the internal defined reference names. If you want to add or maintain existing states, you don’t have to add your one state field. Mostly there will be a state field already defined, which gets the values out of the workflow.
After you have defined all your fields, you can put them on screen. This is done in the layout tab. When you’re expecting a nice form designer I have to disappoint you. It’s an old fashion form designer. Through a tree you have to add groups and columns in where you can add your fields. But when adding a column don’t forget to set the width of this column even when it’s 100%, otherwise you got an error during the validation.
You can add rules to a field. Rules like required, default, even a when statement can be used. One of the rules I used, and which give a strange effect, is the empty rule. I used this rule together with the whennot rule:
When system.state is not in state resolved, empty the field.
The field is empty, but with the site effect that the field is also read-only. The moment the state is changed into resolved, the field becomes editable.
When adding fields, you think that everywhere where you need to select a field, you can use the field name. yes? Well none of this is true. When you need to select a field for example in a rule or when putting it on the screen, you need to use the reference name. And here is the problem. The drop downs are mostly too small. So you see for example x times “Microsoft.VSTS.” and not knowing which the field you need is.

Bad dropdown Good dropdown
Overall, I’m happy with the process editor. Especially when doing a lot of customization. It’s better than the pure XML editing. But the tool can have a lot of improvements. Haven’t checked for TFS2010, but I hope that it works a little bit more user friendly.
We will do some more customization in the future. I will blog about them specific the moment we start with it.