Both templates that are available out of the box in TFS (MSF Agile and MSF CMMI) [Meter links] support Start Date and Finish Date in tasks, but these fields are not used anywhere. They are read only and you can't touch them directly .
These fields are read only, but they are not pure read only. By that i mean, these fields are not marked as read only in the fields definition with a constraint. They are marked as read only in the user interface.
So you change these fields in several ways:
- use Excel to affect these fields in a task work item
- Since the fields are mapped in the MS Project integration you can use Project to affect them
- Use (the former) TeamPlain Web Access (??) to change these fields, since TWA doesn't honor the layout read only flag (seems like a bug to me)
- Programatically using the object model API
If you are using Project Server and using the Project Server Connector these fields should be synchronized automatically with the out of the box configuration. For reason that ellude me, they are not. In the MSF Agile definition, they are not mapped at all, and in the MSF CMMI template they are mapped to another field for reasons that escape me.
Anyway, if you want to synch these fields, and to me it makes every sense that you do. Luckily (i guess it was inteonal :-)) the connector team made it quite easy to add these maps. All you have to do, is edit the connector web service config and add this snippet to it:
<add partnerWorkItemField="ASSN_START_DATE"
tfsWorkItemField="Microsoft.VSTS.Scheduling.StartDate"
defaultValueToTFS=""
defaultValueFromTFS=""
type="Microsoft.Vsts.Ranger.Connector.ApplicationBlock.Configuration.WorkItemStores.FieldMapping, Microsoft.Vsts.Ranger.Connector.ApplicationBlock, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null"
name="Start Date">
<fieldMappingRules>
<add defaultDate="MinValue" direction="ToTFS"
type="Microsoft.Vsts.Ranger.Connector.ApplicationBlock.Configuration.WorkItemStores.ValidDateRule, Microsoft.Vsts.Ranger.Connector.ApplicationBlock, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null"
name="ValidDate ToTFS Rule"/>
</fieldMappingRules>
</add>
<add partnerWorkItemField="ASSN_FINISH_DATE"
tfsWorkItemField="Microsoft.VSTS.Scheduling.FinishDate"
defaultValueToTFS=""
defaultValueFromTFS=""
type="Microsoft.Vsts.Ranger.Connector.ApplicationBlock.Configuration.WorkItemStores.FieldMapping, Microsoft.Vsts.Ranger.Connector.ApplicationBlock, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null"
name="Finish Date">
<fieldMappingRules>
<add defaultDate="MinValue"
direction="ToTFS"
type="Microsoft.Vsts.Ranger.Connector.ApplicationBlock.Configuration.WorkItemStores.ValidDateRule, Microsoft.Vsts.Ranger.Connector.ApplicationBlock, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null"
name="ValidDate ToTFS Rule"/>
</fieldMappingRules>
</add>
This should be added in the process template element where you wish the mapping to occur. If you wish to add this to MSF agile, place the snippet inside the element
<add partnerWorkItemType="Task" tfsWorkItemType="Task" name="Task Mapping"> .....
Since i think that project server should be the master of these data, i only configured the synchronization in one direction. From Project Server to TFS, but you can easily make it both ways.
Configuring this can also be achieved using the Enteprise Library Configuration Tool, but i'm more of a text editor guy. :-)
If you are looking for more information about configuring the connector, Len Fenster has already posted an introductory post and more posts are already promised.
If you have any questions about the connector, you can use the project's forum on codeplex Len seems to answer most questions in a matter of minutes. :-)