Team Foundation Server 和 Project Server 之整合的欄位對應 XML 項目參考

您可以自訂欄位對應, Visual Studio Team Foundation Server 2012 與 Microsoft Project Server 的欄位應該保持同步,以及欄位是否可以更新 Project Server 的狀態佇列上 Team Foundation便可定義。

注意事項注意事項

用於整合 Team Foundation Server 和 Project Server 的欄位對應與 Microsoft Project 的對應檔不同。如需後者對應檔的詳細資訊,請參閱 Microsoft Project 欄位對應檔

您可以為每一個裝載要與 Project Server 同步處理的 Team 專案的 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 中。

重要

在大部分組態中,您不應該移除預設欄位對應,因為同步處理程序需要這些對應。例如,請勿取消預設對應,如果您的企業專案計劃對應至從流程範本建立根據敏捷式軟體開發 (Agile Software Development 或 Capability Maturity Model Integration,CMMI 流程改善的 Microsoft Solutions Framework 流程範本的 Team 專案。

不過,因此,如果您的計劃對應至使用 Visual Studio Scrum 流程範本,建立的 Team 專案,則必須移除部分預設對應。如果您的專案集合只包含使用 Scrum 範本所建立的 Team 專案,可能會在設定這兩項伺服器產品時收到錯誤。為了得到最佳結果,請將 [已完成工作] (Microsoft.VSTS.Scheduling.CompletedWork) 和 [原始評估] (Microsoft.VSTS.Scheduling.OriginalEstimate) 加入至您想要對應的工作項目。此外,您必須從工作型別定義移除 <EMPTY /> 工作流程陳述式。如需詳細資訊,請參閱 執行時的必要變更對應至從 Scrum 流程範本建立的 Team 專案

下表說明指派至 Team Foundation 之欄位的預設對應。 您可以指定您希望更新參考欄位和鏡像欄位的方式。 您可以將 OnConflict 設定為 PSWins,以 Project Server 的值覆寫 Team Foundation 的值。 如果您未指定 OnConflict 屬性,則欄位各自會保留不同的值。 如需詳細資訊,請檢閱本主題後面的 Field 項目和屬性表。

如需鏡像欄位和同步處理程序的詳細資訊,請參閱 了解管理特定欄位更新的方式

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 時,請務必比對這些欄位的資料型別。否則,當您嘗試上載欄位對應時,可能會顯示下列錯誤:

索引 (以零起始) 必須大於或等於零,並且小於引數清單的大小

如需詳細資訊,請參閱Data Types and Field Mapping Criteria

下列範例會示範 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>

Gg412657.collapse_all(zh-tw,VS.110).gifField 項目語法

下列語法會定義 field 項目的屬性:

<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">

Gg412657.collapse_all(zh-tw,VS.110).gifTarget 項目語法

下列語法會定義 target 項目的屬性:

<target provider="ProviderName" name="ProjectFieldName" />

為了判斷欄位名稱,請在串連的易記名稱前面加上 "pj"。 例如,狀態管理員的欄位名稱是 pjStatusManager,而 Custom 01 的欄位名稱是 pjCustom01。

回到頁首

Gg412657.collapse_all(zh-tw,VS.110).gifField 項目和屬性

下表說明 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

transforms

選擇項。 transform 項目的容器項目。

transform

transformType

指定型別的轉換套用至欄位。 您可以只指定 transformType 為 targetToTfs 和為數字欄位型別。 唯一的有效值是 ClearValueIfParent。

當同步處理引擎偵測到一個階層架構在與 Project Server 同步處理的工作項目下時,便會執行工作和工作的一個彙總可以傳送到 Project Server。 然而,其中 transformType 設為 ClearValueIfParent,同步處理引擎清除父工作項目的工作欄位在 Team Foundation Server 避免在標準 Team Foundation Server 報表的無效的資料。

回到頁首

預設對應

下列程式碼會列出您執行 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" />
            <transforms>
               <transform transformType="clearValueIfParent">
            </transforms>
        </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" />
            <transforms>
               <transform transformType="clearValueIfParent">
            </transforms>
        </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>

回到頁首

請參閱

參考

管理 Team Foundation Server 和 Project Server 之整合的欄位對應

概念

對應 Project Server 欄位以與 Team Foundation Server 整合的限制

加入以支援資料同步處理的 Project Server 欄位

管理 Team Foundation Server 和 Project Server 的整合

其他資源

自訂 Project Server 與 Team Foundation Server 之間的欄位對應