更新:2007 年 11 月
分类插件控制团队项目的迭代和结构。插件的名称为 Microsoft.ProjectCreationWizard.Classification。分类 XML 文件的名称为 Classification.xml,并位于过程模板文件夹层次结构中的 Classification 文件夹中。如果需要,可以更改 XML 文件和文件夹的名称。
在 XML 文件中,指定一个或多个任务以及它们的依赖项。通常,只需要一个任务就可以指定团队项目必需的所有迭代和节点。有关指定迭代的任务的示例,请参见 MSF for Agile Software Development 过程模板中的 Classifications.xml 文件。
| .gif) 说明: | 
|---|
| Team Foundation Server 并不包括用于部署客户端插件、策略或其他修改的机制。如果您希望将插件、策略或其他修改部署到 团队资源管理器,则必须使用您自己的分发和安装程序。 | 
迭代
您为过程定义的迭代确定了团队将重复一组特定主要活动(如计划、开发、测试)的次数。由于迭代用于对工作项进行分组,因此它会影响工作项查询和报告。例如,团队成员可以查询迭代 1 中产生的所有 Bug 工作项。引用此字段的所有工作项对应的迭代都会显示在 System.IterationPath 字段中。
必须使用以下语法指定迭代的根节点。
<Node StructureType="ProjectLifecycle" Name="Iteration" >
然后为您的过程所需的任意数量的迭代指定零个或多个子节点。使用 Node 元素指定每个迭代。必须将 StructureType 属性设置为 ProjectLifecycle。
下面的示例说明如何指定四个迭代:Milestone 1、Milestone 2、Beta 和 RTM。
<?xml version="1.0" encoding="utf-8" ?>
<tasks>
   <task
      id="UploadStructure"
      name="Creating project structure"
      plugin="Microsoft.ProjectCreationWizard.Classification"
      completionMessage="Team project structure created.">
      <taskXml>
         <Nodes>
            <Node StructureType="ProjectLifecycle" Name="Iteration" >
               <Children>
                  <Node StructureType="ProjectLifecycle" Name="Milestone 1"></Node>
                  <Node StructureType="ProjectLifecycle" Name="Milestone 2"></Node>
                  <Node StructureType="ProjectLifecycle" Name="Beta"></Node>
                  <Node StructureType="ProjectLifecycle" Name="RTM"></Node>
               </Children>
            </Node>
         </Nodes>
      </taskXml>
   </task>
</tasks>
区域
区域表示团队项目中的关键组。例如,团队可以按照客户端区域、服务器区域和扩展区域来组织产品工作。区域用于针对查询和报告对工作项进行分组。引用此字段的所有工作项对应的区域都会显示在 System.AreaPath 字段中。
必须使用以下语法指定区域的根节点。
<Node StructureType="ProjectModelHierarchy" Name="Area" >
然后为您的过程所需的任意数量的区域指定零个或多个子节点。使用 Node 元素指定每个区域。必须将 StructureType 属性设置为 ProjectModelHierarchy。
<Node StructureType="ProjectModelHierarchy" Name="" ></Node>
下面的示例说明如何指定两个区域,即 Client 和 Server。
<?xml version="1.0" encoding="utf-8" ?>
<tasks>
   <task
      id="UploadStructure"
      name="Creating project structure"
      plugin="Microsoft.ProjectCreationWizard.Classification"
      completionMessage="Portfolio project structure created.">
      <taskXml>
         <Nodes>
            <Node StructureType="ProjectModelHierarchy" Name="Teams" >
               <Children>
                  <Node StructureType="ProjectModelHierarchy" Name="Client"></Node>
                  <Node StructureType="ProjectModelHierarchy" Name="Server"></Node>
               </Children>
            </Node>
         </Nodes>
      </taskXml>
   </task>
</tasks>
| .gif) 说明: | 
|---|
| 如果您要修改过程模板的迭代或区域,请确保不会破坏 workitems.xml 中的任何工作项实例任务。这些工作项实例可能会引用特定的迭代或区域。 | 
指定 Microsoft Project 字段映射属性
分类插件还定义了工作项类型和 Microsoft Project 之间的字段映射。与 Microsoft Excel 不同,Microsoft Project 使用有限的列集合(包括“任务名”这样的预定义列)和自定义字段。当用户在 Microsoft Project 文件中发布或刷新工作项数据时,字段映射可用于确定工作项数据库中的哪些字段与 Microsoft Project 中的列匹配。
例如,您可以自定义映射以支持新创建的字段,或者将字段映射到预定义的列(而非自定义列)。有关 Microsoft Project 字段映射文件的完整文档,请参见 Microsoft Project 字段映射文件。
字段映射位于名为 FileMapping.xml 的 XML 文件中。Classification.xml 必须包含一个引用 FileMapping.xml 文件的条目,如下例所示。
<properties>
   <property name="MSPROJ" 
             value="Classification\FileMapping.xml" 
             isFile="true" />
</properties>
在 FileMapping.xml 中,使用 Mapping 元素指定已映射的字段。
<Mappings>
   <Mapping WorkItemTrackingFieldReferenceName="System.Id" 
            ProjectField=""
            ProjectName=""
         ProjectUnits=""
         PublishOnly=""/>
</Mappings>
下表描述了 Mapping 元素的属性。
| 属性 | 说明 | 
|---|---|
| WorkItemTrackingFieldReferenceName | 必需。指定工作项类型字段的引用名称。 | 
| ProjectField | 必需。指定 Microsoft Project 列的名称。通过在名称前添加“pj”前缀来指定预定义的列名称,例如指定 pjTaskName 作为将“任务名”列的名称。将自定义字段指定为 pjTaskText 并在后面跟一个数字,例如 pjTaskText11。 | 
| ProjectName | 可选。指定将作为列名称向用户显示的名称。如果未指定该属性,将使用工作项类型字段名称。 | 
| ProjectName | 可选。指定将作为列名称向用户显示的名称。如果未指定该属性,将使用工作项类型字段名称。 | 
| ProjectUnits | 可选。指定将字段类型映射到 Microsoft Project 时使用的单位类型。有效值为 pjMinute、pjHour、pjDay、pjWeek 和 pjMonthUnit。 | 
| PublishOnly | 可选。如果设置为 true,则指示字段将发布到工作项数据库,但不刷新。该值通常用于不应当在 团队资源管理器 中更新的计算字段。如果设置为 no,则表示字段会发布并刷新。如果不指定,则默认值为 no。 | 
下面的示例说明 MSF for Agile Software Development 过程模板如何将工作项字段映射到 Microsoft Project。
<?xml version="1.0" encoding="utf-8"?>
<MSProject>
   <Mappings>
      <Mapping WorkItemTrackingFieldReferenceName="System.Id" ProjectField="pjTaskText10" ProjectName="Work Item ID"/>
      <Mapping WorkItemTrackingFieldReferenceName="System.Title" ProjectField="pjTaskName" />
      <Mapping WorkItemTrackingFieldReferenceName="System.WorkItemType" ProjectField="pjTaskText24" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.Discipline" ProjectField="pjTaskText17" />
      <Mapping WorkItemTrackingFieldReferenceName="System.AssignedTo" ProjectField="pjTaskResourceNames" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.CompletedWork" ProjectField="pjTaskActualWork" ProjectUnits="pjHour"/>
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.RemainingWork" ProjectField="pjTaskRemainingWork" ProjectUnits="pjHour"/>
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.BaselineWork" ProjectField="pjTaskBaselineWork" ProjectUnits="pjHour"/>
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.StartDate" ProjectField="pjTaskStart" PublishOnly="true"/>
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.FinishDate" ProjectField="pjTaskFinish"  PublishOnly="true"/>
      <Mapping WorkItemTrackingFieldReferenceName="System.State" ProjectField="pjTaskText13" />
      <Mapping WorkItemTrackingFieldReferenceName="System.Reason" ProjectField="pjTaskText14" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.Rank" ProjectField="pjTaskText16" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.Issue" ProjectField="pjTaskText15" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.ExitCriteria" ProjectField="pjTaskText20" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.QualityOfServiceType" ProjectField="pjTaskText21" />
      <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.Priority" ProjectField="pjTaskText19" ProjectName="Work Item Priority" />
      <Mapping WorkItemTrackingFieldReferenceName="System.AreaPath" ProjectField="pjTaskOutlineCode9" />
      <Mapping WorkItemTrackingFieldReferenceName="System.IterationPath" ProjectField="pjTaskOutlineCode10" />
      <Mapping WorkItemTrackingFieldReferenceName="System.Rev" ProjectField="pjTaskText23" />
      <ContextField WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.TaskHierarchy"/>
      <LinksField   ProjectField="pjTaskText26" />
      <SyncField   ProjectField="pjTaskText25" />
   </Mappings>
</MSProject>
在映射字段列表中有三个特殊列。一个是同步字段,用于指定哪一列用作同步字段。同步字段的标题为“发布并刷新”,并允许用户指出是否只发布某任务行或者只刷新某任务行。
使用以下 XML 语法指定哪一列将映射到同步字段。必须将 ProjectField 属性设置为有效的 Microsoft Project 列。
<SyncField ProjectField="" />
其他特殊字段为链接和附件字段。链接和附件列允许用户指出特定任务行中是否包含链接或附件。
使用以下 XML 语法指定哪一列将映射到链接和附件字段。必须将 ProjectField 属性设置为有效的 Microsoft Project 列。
<LinksField ProjectField="" />
最后一个特殊字段为上下文字段。上下文字段是一个工作项类型字段,显示有关任务与摘要任务的层次结构关系的信息。上下文字段显示在团队资源管理器中,这样不使用 Microsoft Project 的用户也能查看某个子任务属于哪些摘要任务。
使用以下 XML 语法可以指定哪个工作项类型字段为上下文字段。ContextField 元素用于指定上下文字段。必须将 WorkItemTrackingFieldReferenceName 属性设置为现有工作项类型字段的有效引用名称。
<ContextField WorkItemTrackingFieldReferenceName="" />
请参见
任务
概念
Windows SharePoint Services 过程模板插件