Team Foundation Server 和 Project Server 之整合的欄位對應 XML 項目參考
更新:2011 年 4 月
您可以藉由自訂欄位對應的方式,定義 Visual Studio Team Foundation Server 2010 和 Project Server 中應該保持同步的欄位,以及 Project Server 的狀態佇列和 Team Foundation 中要更新的欄位。
注意事項 |
---|
用於整合 Team Foundation Server 和 Project Server 的欄位對應與 Microsoft Project 的對應檔不同。 如需後者對應檔的詳細資訊,請參閱 Microsoft Project 欄位對應檔。 |
如果 Team 專案集合裝載的 Team 專案要與 Project Server 同步處理,您可為每個這種 Team 專案集合維護一組欄位對應。 若要擷取欄位對應,您可以從集合中將欄位對應下載到檔案中。 在修改檔案之後,您可以將它上載至集合,變更將會套用至針對該集合定義的所有 Team 專案。 如需如何下載或上載欄位對應的詳細資訊,請參閱自訂 Project Server 與 Team Foundation Server 之間的欄位對應。
本主題內容
必要欄位
預設的對應欄位
對應項目和屬性
預設欄位對應
必要欄位
下列欄位必須對應,才能支援資料同步處理。 如果您已自訂用來排程工作的欄位,則必須自訂欄位對應以參考您使用的欄位。
System.Title 必須對應至 pjTaskName。
System.AssignedTo 必須對應至 pjResourceNames。
您用來追蹤 Team Foundation 中工作開始時間的欄位必須對應至 pjTaskStart。 根據預設,這個欄位是 Microsoft.VSTS.Scheduling.StartDate。
您用來追蹤 Team Foundation 中已完成工作的欄位必須對應至 pjTaskFinish。 根據預設,這個欄位是 Microsoft.VSTS.Scheduling.FinishDate。
回到頁首
預設的對應欄位
您可以針對 Team Foundation 中的每一個欄位指定兩個對應。 在第一個對應中,您會指定 Project 中的欄位,這是 Team Foundation 中的欄位會在狀態佇列中更新的欄位。 在第二個對應中,您會指定 Project 中的欄位,這個欄位會更新 Team Foundation 中的欄位。 此外,您可以指定 Team Foundation 中的欄位是否出現在工作項目表單中,以及如何對參考欄位和鏡像欄位進行更新。
根據預設,所有對應的 Project 欄位也會鏡像處理,這表示其值會儲存在 Team Foundation 中。
重要事項 |
---|
在大部分組態中,您不應該移除預設欄位對應,因為同步處理程序需要這些對應。 例如,如果您的企業專案計劃對應至以 Microsoft Solutions Framework (MSF) for Agile Software Development v5.0 或 Capability Maturity Model Integration (CMMI) Process Improvement v5.0 為基礎的流程範本所建立的 Team 專案,請勿移除預設對應。 不過,如果您的計劃對應至使用 MSF Scrum 1.0 流程範本建立的 Team 專案,您可能必須移除部分預設對應。 如果您的專案集合只包含使用 Scrum 範本所建立的 Team 專案,可能會在設定這兩項伺服器產品時收到錯誤。 為了得到最佳結果,請將 [已完成工作] (Microsoft.VSTS.Scheduling.CompletedWork) 和 [原始評估] (Microsoft.VSTS.Scheduling.OriginalEstimate) 加入至您想要對應的工作項目。 如需詳細資訊,請參閱對應至使用 Scrum 1.0 流程範本建立的 Team 專案時加入欄位至工作項目類型。 |
下表說明指派至 Team Foundation 之欄位的預設對應。 您可以指定您希望更新參考欄位和鏡像欄位的方式。 您可以將 OnConflict 設定為 PSWins,以 Project Server 的值覆寫 Team Foundation 的值。 如果您未指定 OnConflict 屬性,則欄位各自會保留不同的值。 如需詳細資訊,請檢閱本主題後面的 Field 項目和屬性表。
如需有關鏡像的欄位和三種同步處理類型的詳細資訊,請參閱 用於 Team Foundation Server 和 Project Server 整合的同步處理程序概觀。
Team Foundation 欄位 |
Project 欄位 |
在工作項目表單的 Project Server 索引標籤上顯示欄位 (displayTfsField) |
在工作項目表單的 Project Server 索引標籤上顯示鏡像欄位 (displayTfsMirror) |
欄位更新 (OnConflict) |
---|---|---|---|---|
標題 |
工作名稱 |
否 |
否 |
Project Server 中的值會取代 Team Foundation 中的值。 |
指派給 |
資源 |
否 |
否 |
Project Server 中的值會取代 Team Foundation 中的值。 |
剩餘工作 |
資源剩餘工作 (狀態佇列) 工作剩餘工作 (Project Server) |
是 |
是 |
保留每個值。 |
已完成工作 |
資源實際工作 (狀態佇列) 工作實際工作 (Project Server) |
是 |
是 |
保留每個值。 |
原始評估 |
基準工作 |
否 |
是 |
Project Server 中的值會取代 Team Foundation 中的值。 |
開始日期 |
資源開始 (狀態佇列) 工作開始 (Project Server) |
否 |
否 |
Project Server 中的值會取代 Team Foundation 中的值。 |
結束日期 |
資源完成 (狀態佇列) 工作完成 (Project Server) |
否 |
否 |
Project Server 中的值會取代 Team Foundation 中的值。 |
您可以在 Team Foundation 中工作項目表單的 [Project Server] 索引標籤上顯示更多 Project 欄位,只要將這些欄位加入至欄位對應即可。 如需有關這個索引標籤的詳細資訊,請參閱加入以支援資料同步處理的 Project Server 欄位。
回到頁首
對應項目和屬性
您可以使用 field 項目指定 Team Foundation 中要同步處理的參考欄位。 所有 field 項目都包含在 mappingFile、persistables 和 Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping 容器項目中。
重要事項 |
---|
當您將某個欄位從 Team Foundation Server 對應至 Project Server 時,請務必比對這些欄位的資料型別。 否則,當您嘗試上載欄位對應時,可能會顯示下列錯誤: 索引 (以零起始) 必須大於或等於零,並且小於引數清單的大小。 如需詳細資訊,請參閱資料型別和欄位對應準則。 |
下列範例會示範 XML 項目的巢狀結構。 若要檢視預設對應,請參閱本主題稍後的預設對應檔一節。
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</targetToTfs>
</field>
. . .
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
Field 項目語法
下列語法會定義 field 項目的屬性:
<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">
Target 項目語法
下列語法會定義 target 項目的屬性:
<target provider="ProviderName" name="ProjectFieldName" />
為了判斷欄位名稱,請在串連的易記名稱前面加上 "pj"。 例如,狀態管理員的欄位名稱是 pjStatusManager,而 Custom 01 的欄位名稱是 pjCustom01。
回到頁首
Field 項目和屬性
下表說明 field 項目的子項目和屬性。 您可以將 Team Foundation 欄位對應到您要在狀態同步處理期間更新其值的 [專案資源] 欄位。 您可以將 Team Foundation 欄位對應到其值將會在發行同步處理期間更新 Team Foundation Server 的 [專案工作] 欄位。 此外,您所對應之欄位的單位必須符合建立的準則。 如需詳細資訊,請參閱對應 Project Server 欄位以與 Team Foundation Server 整合的限制。
項目 |
屬性 |
描述 |
---|---|---|
field |
指定 Team Foundation 中要對應的欄位,以及應如何對應欄位。 |
|
tfsName |
指定 Team Foundation 中要同步處理之欄位的參考名稱。 您必須指定 Team 專案集合中定義的欄位。 您可以執行 witadmin listfields 命令列出集合中的所有欄位。 如需詳細資訊,請參閱管理工作項目欄位 [witadmin]。 |
|
tfsMirrorName |
必要項。 指定 Team Foundation Server 中要用來儲存 Project Server 欄位值的參考名稱。 您可以在參考名稱前面加上 "Mirror"。例如,您可以針對 System.Title 指定 Mirror.System.Title。
注意事項
系統會自動建立您所指定的鏡像欄位。您不需要將鏡像欄位加入至工作項目的類型定義。
|
|
displayTfsField |
選擇項。 根據預設,這個屬性是設定為 true。 如果這個屬性設定為 true,則欄位會出現在 Team Foundation 中工作項目表單的 [Project Server] 索引標籤上。 如果這個屬性設定為 false,則欄位不會出現在表單上。 根據預設,只有 [已完成工作] 和 [剩餘工作] 欄位會出現在表單上。 |
|
displayTfsMirror |
選擇項。 根據預設,這個屬性是設定為 true。 如果這個屬性設定為 true,則欄位會出現在 Team Foundation 中工作項目表單的 [Project Server] 索引標籤上。 如果這個屬性設定為 false,則欄位不會出現在表單上。 |
|
onConflict |
選擇項。 指定同步處理引擎更新參考欄位和鏡像欄位的方式。 唯一的有效值是 PSWin。 當這個屬性設定為 PSWin 時,只要從 Project Server 發行的目前值與鏡像中的值不相同,欄位的值就會更新。 如果您未定義這個屬性,表示您要保留兩組記錄。 換句話說,Project 中的值可以和 Team Foundation 中的值不同。 根據預設,Project 中的值會一律取代 [標題]、[指派給]、[開始日期] 和 [結束日期] 欄位的值。 根據預設,只有 [已完成工作] 和 [剩餘工作] 欄位會保留兩組記錄。 |
|
tfsToTarget |
指定 Team Foundation 將更新的 Project 欄位名稱。 |
|
target |
指定要從 Team Foundation 接收更新的目標。 |
|
provider |
指定更新提供者的名稱。 若是 tfsToTarget,唯一有效的值是 ProjectServerStatusQueue。 |
|
name |
指定 Project 欄位的名稱,這個欄位將更新為 Team Foundation 中的值。 您只能對應 Project Server 的內建或企業自訂欄位。 如需可用欄位的清單,請參閱Fields Available for Mapping to the Status Queue。 |
|
targetToTfs |
指定要與 Team Foundation Server 同步處理 Project Server 之更新的欄位對應。 |
|
target |
指定要從 Project Server 接收更新的目標。 |
|
provider |
指定更新提供者的名稱。 若是 targetToTfs,唯一有效的值是 ProjectServerPublished。 |
|
name |
指定將更新 Team Foundation 欄位的 Project 欄位名稱。 您只能對應內建或企業自訂欄位。 如需可用欄位的清單,請參閱Fields Available for Mapping from Project Server to Team Foundation Only。 |
回到頁首
預設對應
下列程式碼會列出您執行 TfsAdmin ProjectServer /UploadFieldMappings 命令並指定 /useDefaultFieldMappings 選項時,所定義的預設欄位對應。 您可以將這些對應下載到檔案中,然後在檔案中加入項目,或是修改所列欄位的屬性。
如需您將工作項目類型加入以參與資料同步處理時,加入到該類型之所有欄位的清單,請參閱加入以支援資料同步處理的 Project Server 欄位。
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</field>
<field tfsName="System.AssignedTo" tfsMirrorName="Mirror.System.AssignedTo" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskResourceNames" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskResourceNames" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.CompletedWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.CompletedWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceActualWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskActualWork" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.RemainingWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.RemainingWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceRemainingWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskRemainingWork" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.OriginalEstimate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.OriginalEstimate" displayTfsField="false" displayTfsMirror="true" onConflict="PSWin">
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskBaselineWork" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.StartDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.StartDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceStart" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskStart" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.FinishDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.FinishDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceFinish" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskFinish" />
</targetToTfs>
</field>
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
回到頁首
請參閱
其他資源
對應 Project Server 欄位以與 Team Foundation Server 整合的限制
加入以支援資料同步處理的 Project Server 欄位
管理 Team Foundation Server 和 Project Server 之整合的欄位對應
自訂 Project Server 與 Team Foundation Server 之間的欄位對應
管理 Team Foundation Server 和 Project Server 的整合
變更記錄
日期 |
記錄 |
原因 |
---|---|---|
2011 年 4 月 |
已從必須對應之必要欄位的清單中移除 [已完成工作] 和 [剩餘工作] 欄位。 已釐清 Team Foundation 中欄位與專案工作的對應,以及狀態與發行同步處理階段期間的資源欄位。 已指出需要 tfsMirrorName 屬性。 |
內容 Bug 修正。 |