類別
「類別」外掛程式控制了 Team 專案的反覆項目與結構。此外掛程式的名稱是 Microsoft.ProjectCreationWizard.Classification,而「類別」XML 檔的名稱則是 Classification.xml,位於流程範本資料夾階層架構的 [類別] 資料夾中。必要時,您可以變更 XML 檔案和資料夾名稱。
在 XML 檔中,指定一或多項工作及其相依性。一般而言,只需要一項工作就能指定 Team 專案所需的所有反覆項目與節點。如需指定反覆項目之工作的範例,請參閱 MSF for Agile Software Development 流程範本中的 Classifications.xml 檔。
注意事項 |
---|
Team Foundation Server 並未包含部署用戶端外掛程式、原則或其他修改的機制。如果您想要將外掛程式、原則或其他修改部署至 Team 總管,就必須使用您自己的散發與安裝程式。 |
反覆項目
您定義的流程反覆項目會決定小組要重複執行某一組特定主要活動 (例如計畫、開發、測試) 多少次。反覆項目會影響工作項目查詢與報告,因為反覆項目會被用來將工作項目組成群組,例如,小組成員可以查詢來自反覆項目 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>
區域
區域是代表 Team 專案的主要群組。例如,小組可能會將產品工作組織成:用戶端區域、伺服器區域,以及擴充性區域。區域是用來將工作項目組成群組,以供查詢與報告。針對參考 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,就表示此欄位會發行至工作項目資料庫,但不會重新整理。此值通常用於不應該在 Team 總管 中更新的計算欄位。如果設定為 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="" />
最後一個特殊欄位是內容欄位。內容欄位是工作項目類型欄位,其中會顯示某項工作在摘要工作中之階層關係的相關資訊。內容欄位會顯示於 Team 總管 中,如此沒有使用 Microsoft Project 的使用者仍然可以查看子工作所屬的摘要工作。
您可以使用下列 XML 語法來指定哪個工作項目類型欄位是內容欄位。ContextField 項目是用來指定內容欄位。WorkItemTrackingFieldReferenceName 屬性必須設定為現有工作項目類型欄位的有效參考名稱。
<ContextField WorkItemTrackingFieldReferenceName="" />
請參閱
工作
概念
Windows SharePoint Services [Team Foundation Server]
版本控制 [Team Foundation Server]
報告
群組和使用權限
Microsoft Project 欄位對應檔