分类过程模板插件
更新: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 过程模板插件