共用方式為


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

若要同步處理企業專案計劃與 Team 專案之間的資料,必須關聯 Visual Studio Team Foundation Server (TFS) 中的工作項目欄位與 Microsoft Project Server 中的欄位。 您可以藉由自訂欄位對應來加入欄位,以及指定其同步處理的方式。 您可以對應 Project Server 中的內建和自訂欄位。 例如,若您加入會將這些類型的資料儲存到對應的欄位,即可共用與排程無關的資料 (例如成本中心、小組成員或健全狀況狀態)。

每一個裝載要與 Project Server 同步處理之 Team 專案的 Team 專案集合,均應維護一組欄位對應。 您必須為每一個對應到 Project Web Access 執行個體或 Project Web App (PWA) 執行個體的 Team 專案集合定義欄位對應。 您可以上傳預設對應,也可以自訂對應檔後再上傳。 若要上傳預設對應,請參閱本主題後文的上傳對應。

注意事項注意事項

TFS 與 Project Server 整合的對應,與 Microsoft Project 的對應檔不同。如需詳細資訊,請參閱自訂 Microsoft Project 欄位對應檔

如下圖所示,自訂對應共有五個步驟:

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

自訂 PS-TFS 欄位對應的工作流程

注意事項注意事項

更新對應檔的頻率不受限制。參與資料同步處理之每種類型的工作項目的 [Project Server] 索引標籤上的欄位會隨之更新。您不得手動變更 [Project Server] 索引標籤的定義。如需詳細資訊,請參閱本主題後文的自訂 Project Server 索引標籤。

本主題內容

  • 預設對應

  • 指定其他要對應的欄位

  • 將對應下載到檔案

  • 更新對應

  • 上傳對應

  • (選擇性) 自訂 Project Server 索引標籤

注意事項注意事項

如需觀看示範影片,請參閱 Microsoft 網站上的下列頁面:管理 Team Foundation Server 與 Project Server 整合的欄位對應

需求

若要完成本主題中的程序,必須將 [管理 Project Server 整合] 權限設定為 [允許]。 此外還必須將 [管理 Project Server 整合] 授與 Team Foundation Server 的服務帳戶。 如需詳細資訊,請參閱指派權限以支援 TFS 與 Project Server 整合

預設對應

這些對應決定使用者更新 Team Foundation 或 Project Server 中的資訊時,應進行同步處理的欄位。 下列每一種同步處理類型都有自己的對應集:

  • 對於發行同步處理,Project Server 中的資料會更新 Team Foundation 中的資料。 您可以使用 targetToTfs 元素,指定 Project Server 中要更新 Team Foundation 中之欄位的欄位。

  • 對於狀態同步處理,Team Foundation 中的資料會提交到 Project Server 中的狀態佇列。 您可以使用 tfsToTarget 元素,指定要更新 Project Server 中之狀態佇列欄位的欄位。

如需這兩種同步處理類型的詳細資訊,請參閱 TFS 與 Project Server 整合的同步處理程序概觀

下表列出 Team Foundation 與 Project Server 之間的預設欄位對應集。 此資料表也會依據 TFS 所提供的預設流程範本,指出會使用這些欄位的工作項目類型。 若要對應的 Team 專案從 Agile Software Development 或 Capability Maturity Model Integration (CMMI) Process Improvement 的流程範本建立,即不應修改這些對應。 若要對應的 Team 專案從 Scrum 流程範本建立,必須依照本主題後文之對應到從 Scrum 流程範本建立的小組專案時所需的變更所述進行修改。

如需對應和同步處理流程的詳細資訊,請參閱TFS 與 Project Server 整合的欄位對應 XML 項目參考

Team Foundation 欄位

Project Server 欄位

狀態佇列欄位

Agile 中的工作項目類型

CMMI 中的工作項目類型

Scrum 中的工作項目類型

標題

工作名稱

標題

全部

全部

全部

指派給

資源

資源

全部

全部

全部

已完成工作

工作實際工作

資源實際工作

工作

工作

剩餘工作

任務的剩餘工作

資源的剩餘工作

工作

工作

工作

原始評估

基準工作

  

工作

Bug、變更要求、問題、需求、風險和工作

開始日期

任務開始時間

資源開始時間

工作及使用者劇本

工作及需求

完成日期

任務完成時間

資源完成時間

工作及使用者劇本

工作及需求

對應到從 Scrum 流程範本建立的小組專案時所需的變更

您必須執行兩項變更,才能啟用從 Microsoft Visual Studio Scrum 流程範本建立之 Team 專案的資料流程。 您必須將 [已完成工作] 和 [原始評估] 欄位加入 [工作] 工作項目類型;當小組成員將狀態變更為 [完成] 或 [已移除] 時,還必須移除要求 [剩餘工作] 欄位為空白的項目。

更新 Scrum 工作類型定義

  1. 開啟安裝 Visual Studio 或 Team Explorer 的命令提示字元視窗,並輸入:

    cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
    

    在 Windows 32 位元版本中,將 %programfiles(x86)% 取代為 %%programfiles%

  2. 若要匯出工作的類型定義,請輸入下列命令,並以您的資料取代此處顯示的引數;其中 CollectionURL 指定 Team 專案集合的 URL,ProjectName 指定集合內定義的 Team 專案名稱,"DirectoryPath\FileName.xml" 則指定要匯出之檔案的名稱和位置。 選擇 Enter

    witadmin exportwitd /collection: /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
    
  3. 在文字編輯器或 Visual Studio 中,開啟您所匯出的檔案。

  4. 在 FIELDS 定義區段內,將此程式碼片段加入 [剩餘工作] 的元素之前:

    <FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">
       <HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT>
    </FIELD>
    <FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum">
       <HELPTEXT>Initial value for Remaining Work - set once, when work begins. </HELPTEXT>
    </FIELD>
    
  5. 在 <WORKFLOW> 區段內,從 <STATE value="Done"> 和 <STATE value="Removed"> 定義中,移除下列程式碼片段:

    <FIELD refname="Microsoft.VSTS.Scheduling.RemainingWork">
       <EMPTY />
    </FIELD>
    
  6. 在 <FORM> 區段內,加入下列 Control 項目:

    <Control FieldName="Microsoft.VSTS.Scheduling.OriginalEstimate" Type="FieldControl" Label="Original Estimate:" LabelPosition="Left" />
    <Control FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Type="FieldControl" Label="Completed:" LabelPosition="Left" />
    
  7. 儲存並關閉檔案。

  8. 請匯入檔案,並以您的資料取代所顯示的引數。

    witadmin importwitd /collection: /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
    
  9. 重新整理 Team 專案或工作項目頁面,以驗證變更。

如需詳細資訊,請參閱匯出和匯入工作項目類型 [重新導向]修改或加入欄位以支援查詢、報表和工作流程設計和自訂工作項目表單 [重新導向]

指定其他要對應的欄位

為您要同步處理的每個欄位 (預設欄位除外) 指定下列資訊:

  • Team Foundation 中欄位的參考名稱。 若要將 Project Server 中的欄位,與必須在 Team Foundation 中建立的欄位同步處理,請先在您要同步處理之每種類型的工作項目中建立欄位。 如需詳細資訊,請參閱Visual Studio ALM 的工作項目欄位參考修改或加入欄位以支援查詢、報表和工作流程

  • Project Server 中要更新 Team Foundation 中之欄位的欄位名稱。 如需可用欄位的清單,請參閱在 TFS 與 Project Server 整合中對應 Project Server 欄位的限制

  • Project Server 中要更新之欄位的名稱,以及 Project Server 中要更新 Team Foundation Server 中之鏡像欄位的名稱。

  • 是否要在工作項目表單上顯示欄位。 將要顯示在工作項目表單上之欄位的 displayTfsField 屬性的值設定為 true。 將工作項目表單之 displayTfsMirror 屬性的值設定為 true。

  • 允許 Team Foundation 中的欄位值覆寫 Project Server 中欄位的值或保留兩個值,以決定是否要解決資料衝突。 此決定會決定 onConflict 屬性的值。 若設定 onConflict=”PsWins”,Project Server 中的欄位值會覆寫 Team Foundation 中的欄位值。 如需詳細資訊,請參閱 Field 項目和屬性

  • 另外還必須定義一些其他值,以支援 Project Server 中的挑選清單或自訂查閱資料表。

可對應之資料的限制

在決定您要對應的欄位之後,請注意下列限制:

  • 您只可將工作層級資訊 (pjTask* 欄位) 從 Project Server 傳送至 Team Foundation Server。

  • 您只可將資源層級資訊 (pjResource* 欄位) 從 Team Foundation Server 傳送至 Project Server 的狀態佇列。

  • 唯一可以同時傳送到 Team Foundation Server 和狀態佇列的欄位是 [標題] 欄位。

  • [指派給]、[已完成工作] 和 [剩餘工作] 欄位的彙總會自動加以計算。 您無法對應其他欄位,也無法計算其彙總。 如需詳細資訊,請參閱使用對應至 Team 專案之企業專案中的資源彙總

  • 您必須確認您對應之每個欄位的資料類型和單位,皆符合標準和自訂企業欄位的欄位對應準則。 如需詳細資訊,請參閱在 TFS 與 Project Server 整合中對應 Project Server 欄位的限制中的<資料類型和欄位對應準則>。

  • 您可以對應與 Team Foundation 中之挑選清單相關聯的欄位。 但您必須在 Project Server 中建立符合挑選清單的查閱資料表。 您無法自動同步處理挑選清單和查閱資料表。

如需詳細資訊,請參閱在 TFS 與 Project Server 整合中對應 Project Server 欄位的限制

範例:對應小組名稱以在 Project 中顯示

在下列範例中,Team Foundation 的自訂字串欄位 MyCompany.MyOrg.DevTeamName 會對應到 Project Server 中的企業自訂文字欄位 My Company Team Name。 您可以使用此範例在 Project Professional 中顯示與工作相關聯的小組名稱。

<field tfsName="MyCompany.MyOrg.DevTeamName" tfsMirrorName="Mirror.MyCompany.MyOrg.DevTeamName" displayTfsField="false" displayTfsMirror="false" onConflict="DoNothing">
   <tfsToTarget>
   <target provider="ProjectServerStatusQueue" name=" My Company Team Name" />
   </tfsToTarget>
   <targetToTfs>
      <target provider="ProjectServerPublished" name=" My Company Team Name" />
   </targetToTfs>
</field>

所有欄位皆不會顯示在工作項目表單上。 此外,當值不相符時,每個欄位都會保留自己的值。

回到頁首

範例:在 Project 中顯示區域及反覆項目路徑

您可以對應 Team Foundation 中的 [區域] (System.AreaPath) 與 [反覆項目] (System.IterationPath) 欄位,使之能夠出現在您的專案計劃中。 由於這三個路徑欄位時有變更,因此您應將其對應為 Project 中的文字欄位。 使用此欄位的專案管理人員,必須手動輸入完整的區域路徑或反覆項目路徑。

重要

目前的 Team Foundation Server 和 Project Server 整合實作不支援自動同步處理允許的值清單、挑選清單、全域清單或樹狀目錄路徑清單,而這些都是針對兩項伺服器產品之對應欄位所定義的項目。為獲致最佳結果,您必須在專案計劃中手動輸入符合 Team Foundation 中之對應項目的項目。若指定的項目無效,則當您發行計劃時,將會出現驗證對話方塊。

若要將區域和反覆項目欄位加入專案計劃,請執行下列動作:

  1. 將兩個客戶企業欄位加入 Project Server,並將其標記為 [區域 (TFS)] 和 [反覆項目 (TFS)]。

    如需詳細資訊,請參閱 Microsoft 網站上的下列網頁:建立查閱資料表及企業自訂欄位

  2. 從定義有 Team 專案的 Team 專案集合匯出欄位對應。

    如需詳細資訊,請參閱本主題後文的將對應下載到檔案。

  3. 將下列程式碼加入檔案:

    <field tfsName="System.AreaPath" tfsMirrorName="Mirror.System.AreaPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Area (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Area (TFS)" />
            </targetToTfs>
          </field>
          <field tfsName="System.IterationPath" tfsMirrorName="Mirror.System.IterationPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Iteration (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Iteration (TFS)" />
            </targetToTfs>
          </field>
    
  4. 依照本主題後文的上傳對應所述,匯入更新的欄位對應。

  5. 同步處理專案計劃與 Project Server。

  6. 將新欄位 [區域 (TFS)] 和 [反覆項目 (TFS)] 的兩個新資料行加入專案計劃

Team Foundation 中之 [區域] 和 [反覆項目] 欄位的變更,將會與專案計劃中的這些欄位同步處理。 此外,若您指定 Team Foundation 中已有定義的值,即可更新 Project 中的這些欄位,並將變更發行到 Team Foundation。

回到頁首

將對應下載到檔案

注意事項注意事項

您只可從對應上傳到的 Team 專案集合中下載對應。若要將預設對應下載到檔案,必須先依照本主題後文的上傳預設對應所述上傳預設對應。您也可以複製預設對應的內容。如需詳細資訊,請參閱TFS 與 Project Server 整合的欄位對應 XML 項目參考

將對應下載到檔案

  1. 若要執行 TfsAdmin 命令列工具,請在 Visual Studio 或 Team Explorer 安裝上開啟 [命令提示字元] 視窗,然後輸入:

    cd %programfiles%\Microsoft Visual Studio 11.0\Common7\IDE
    

    在 Windows 64 位元版本中,將 %programfiles% 取代為 %%programfiles(x86)%.

  2. 輸入下列命令,然後選擇 Enter。

    TfsAdmin ProjectServer /DownloadFieldMappings /collection:tpcUrl /filePath:MappingFile
    

    以 Team 專案集合的統一資源定位器 (URL) 取代 tpcUrl,再以您將自訂之檔案的路徑和名稱取代 MappingFile。

  3. 等候下列訊息出現:

    [正在將 MappingFile 下載到 Team 專案集合 tpcUrl。

    您已順利將欄位對應檔 MappingFile 下載到 Team 專案集合 tpcUrl]。

更新對應

為每一個要加入對應檔的欄位,指定 field 項目及其子項目和屬性。 如需詳細資訊,請參閱TFS 與 Project Server 整合的欄位對應 XML 項目參考

上傳對應

您可以使用 UploadFieldMappings 命令上傳對應。 您可以使用 /usedefaultfieldmapping 選項上傳預設對應。 否則便須指定包含對應元素的檔案。

上傳預設對應

  1. 在命令提示字元中輸入下列命令,然後選擇 ENTER。

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    以 Team 專案集合的 URL 取代 tpcUrl。

  2. 等候下列訊息出現:

    [正在將預設欄位對應上傳到 CollectionUri。

    您已順利將欄位對應上傳到集合 CollectionUri]。

從檔案上傳對應

  1. 在命令提示字元中輸入下列命令,然後選擇 ENTER。

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /filePath:MappingFile /force
    

    以 Team 專案集合的 URL 取代 tpcUrl,再以自訂對應檔的路徑和名稱取代 MappingFile。 若要更新現有對應,請指定 /force

  2. 等候下列訊息出現:

    [正在將 MappingFile 上傳到 Team 專案集合 tpcUrl。

    您已順利將欄位對應檔 MappingFile 上傳到 Team 專案集合 tpcUrl]。

自訂 Project Server 索引標籤

關聯企業專案計劃與與 Team 專案時,[Project Server] 索引標籤會加入工作項目表單,如下圖所示。 該索引標籤只會加入您指定要參與資料同步處理的類型的工作項目中。 若要自訂此索引標籤,請將您要顯示在表單上之欄位的 displayTfsField 或 displayTfsMirror 屬性設定為 true。

Project Server 索引標籤

[Project Server] 索引標籤預設欄位

重要

為 Team 專案集合定義的欄位對應,可決定 [Project Server] 索引標籤上所顯示的欄位。將此索引標籤加入 Team 專案的工作項目類型之後,即可以修改集合的欄位對應加以更新。若藉由將欄位加入 [Project Server] 索引標籤,或是變更其在表單上的位置來自訂工作項目表單,則日後將不會自動將欄位對應的變更自動更新到此索引標籤。發生此狀況時,可以手動修改此索引標籤。如需詳細資訊,請參閱新增至工作項目類型定義的 XML 項目

如需 [Project Server] 索引標籤上所顯示之每個預設欄位的的詳細資訊,請參閱加入至 TFS 以支援資料同步處理的 Project Server 欄位

請參閱

工作

設定 TFS 與 Project Server 整合

概念

指定要同步處理的工作項目類型

管理 Team Foundation Server 與 Project Server 的整合