分类过程模板插件

更新:2007 年 11 月

分类插件控制团队项目的迭代和结构。插件的名称为 Microsoft.ProjectCreationWizard.Classification。分类 XML 文件的名称为 Classification.xml,并位于过程模板文件夹层次结构中的 Classification 文件夹中。如果需要,可以更改 XML 文件和文件夹的名称。

在 XML 文件中,指定一个或多个任务以及它们的依赖项。通常,只需要一个任务就可以指定团队项目必需的所有迭代和节点。有关指定迭代的任务的示例,请参见 MSF for Agile Software Development 过程模板中的 Classifications.xml 文件。

说明:

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>
说明:

如果您要修改过程模板的迭代或区域,请确保不会破坏 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 过程模板插件

版本控制过程模板插件

报告过程模板插件

组和权限过程模板插件

Microsoft Project 字段映射文件

其他资源

工作项跟踪过程模板插件