다음을 통해 공유


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용 매핑 파일에 대한 자세한 내용은 Microsoft Project 필드 매핑 파일을 참조하십시오.

Project Server와 동기화하려는 팀 프로젝트를 호스팅하는 각 팀 프로젝트 컬렉션에 대한 하나의 필드 매핑 집합을 유지 관리합니다. 컬렉션에서 필드 매핑을 파일로 다운로드하여 필드 매핑을 검색할 수 있습니다. 이 파일을 수정한 후에는 컬렉션에 업로드하여 해당 컬렉션에 정의된 모든 팀 프로젝트에 변경 내용을 적용할 수 있습니다. 필드 매핑을 다운로드하거나 업로드하는 방법에 대한 자세한 내용은 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의 각 필드에 대해 두 가지 매핑을 지정할 수 있습니다. 첫 번째 매핑에서는 상태 큐에서 Team Foundation 필드를 업데이트하는 Project 필드를 지정합니다. 두 번째 매핑에서는 Team Foundation에서 필드를 업데이트하는 Project 필드를 지정합니다. 또한 Team Foundation의 필드를 작업 항목 폼에 표시할지 여부 및 참조 필드와 미러링된 필드가 업데이트되는 방식을 지정할 수 있습니다.

기본적으로, 매핑되는 모든 Project 필드는 미러링되기도 합니다. 즉, 이러한 필드의 값이 Team Foundation에 저장됩니다.

중요

동기화 프로세스에 기본 필드 매핑이 필요하므로 대부분의 구성에서 이 기본 필드 매핑을 제거해서는 안 됩니다. 예를 들어 Agile Software Development v5.0용 MSF(Microsoft Solutions Framework) 또는 CMMI(Capability Maturity Model Integration) Process Improvement v5.0을 기반으로 하는 프로세스 템플릿에서 만들어진 팀 프로젝트에 Enterprise 프로젝트 계획이 매핑될 경우 기본 매핑을 제거하지 마십시오.

그러나 MSF Scrum 1.0 프로세스 템플릿을 사용하여 만들어진 팀 프로젝트에 계획이 매핑될 경우 일부 기본 매핑을 제거해야 할 수 있습니다. 프로젝트 컬렉션에 Scrum 템플릿을 사용하여 만들어진 팀 프로젝트만 포함된 경우 두 서버 제품을 구성할 때 오류가 발생할 수 있습니다. 최상의 결과를 얻으려면 완료된 작업(Microsoft.VSTS.Scheduling.CompletedWork)과 원래 예상 값(Microsoft.VSTS.Scheduling.OriginalEstimate)을 매핑할 작업 항목에 추가합니다. 자세한 내용은 Scrum 1.0 프로세스 템플릿에서 만든 팀 프로젝트에 매핑할 경우 작업 항목 형식에 필드 추가을 참조하십시오.

다음 표에서는 Team Foundation의 필드에 할당되는 기본 매핑에 대해 설명합니다. 참조 필드와 미러 필드가 업데이트되는 방식을 지정할 수 있습니다. OnConflict를 PSWins로 설정하여 Team Foundation의 값을 Project Server의 값으로 덮어쓸 수 있습니다. OnConflict 특성을 지정하지 않은 채로 두면 필드가 다른 값으로 유지됩니다. 자세한 내용은 이 항목의 뒷부분에 나오는 필드 요소 및 특성 표를 검토하십시오.

미러링된 필드 및 세 가지 동기화 형식에 대한 자세한 내용은 Team Foundation Server 및 Project Server 통합의 동기화 프로세스 개요를 참조하십시오.

Team Foundation 필드

Project 필드

작업 항목 폼의 Project Server 탭에 필드 표시(displayTfsField)

작업 항목 폼의 Project Server 탭에 미러링된 필드 표시(displayTfsMirror)

필드 업데이트(OnConflict)

제목

작업 이름

아니요

아니요

Project Server의 값이 Team Foundation의 값을 대신합니다.

담당자

리소스

아니요

아니요

Project Server의 값이 Team Foundation의 값을 대신합니다.

남은 작업

리소스 남은 작업(상태 큐)

작업(Task) 남은 작업(Project Server)

각각의 값이 유지됩니다.

완료된 작업

리소스 실제 작업(상태 큐)

작업(Task) 실제 작업(Project Server)

각각의 값이 유지됩니다.

원래 예상 값

기본 작업

아니요

Project Server의 값이 Team Foundation의 값을 대신합니다.

시작 날짜

리소스 시작(상태 큐)

작업 시작(Project Server)

아니요

아니요

Project Server의 값이 Team Foundation의 값을 대신합니다.

종료 날짜

리소스 완료(상태 큐)

작업 완료(Project Server)

아니요

아니요

Project Server의 값이 Team Foundation의 값을 대신합니다.

필드 매핑에 Project 필드를 추가하는 경우 Team Foundation 작업 항목 폼의 Project Server 탭에 추가 Project 필드를 표시할 수 있습니다. 이 탭에 대한 자세한 내용은 데이터 동기화를 지원하기 위해 추가된 Project Server 필드을 참조하십시오.

맨 위로 이동

매핑 요소 및 특성

field 요소를 사용하여 Team Foundation에서 동기화할 참조 필드를 지정할 수 있습니다. 모든 field 요소는 mappingFile, persistables 및 Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping 컨테이너 요소에 포함되어 있습니다.

중요

Team Foundation Server의 필드를 Project Server에 매핑하는 경우에는 이러한 필드의 데이터 형식이 일치하는지 확인합니다. 일치하지 않으면 필드 매핑을 업로드하려고 할 때 다음 오류가 나타날 수 있습니다.

0에서 시작하는 인덱스는 0보다 크거나 같아야 하며 인수 목록의 크기보다 작아야 합니다.

자세한 내용은 데이터 형식 및 필드 매핑 조건을 참조하십시오.

다음 예제에서는 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 provider="ProviderName" name="ProjectFieldName" />

익숙한 이름 앞에 접두사 "pj"를 연결하여 필드 이름으로 사용합니다. 예를 들어 Status Manager의 필드 이름은 pjStatusManager이고 Custom 01의 필드 이름은 pjCustom01입니다.

맨 위로 이동

필드 요소 및 특성

다음 표에서는 field 요소의 하위 요소와 특성에 대해 설명합니다. 상태 동기화 중에 값을 업데이트하려는 Project 리소스 필드에 Team Foundation 필드를 매핑합니다. 게시 동기화 중에 해당 값으로 Team Foundation Server를 업데이트할 Project 작업 필드에 Team Foundation 필드를 매핑합니다. 또한 매핑하는 필드의 단위가 설정된 조건을 따라야 합니다. 자세한 내용은 Team Foundation Server와의 통합을 위한 Project Server 필드 매핑의 제한 사항을 참조하십시오.

요소

특성

설명

field

Team Foundation에서 매핑할 필드 및 필드의 매핑 방법을 지정합니다.

tfsName

Team Foundation에서 동기화할 필드의 참조 이름을 지정합니다. 팀 프로젝트 컬렉션에 정의되는 필드를 지정해야 합니다. 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

Team Foundation의 값으로 업데이트될 Project 필드의 이름을 지정합니다. Project Server에서 기본 제공 필드 또는 Enterprise 사용자 지정 필드만 매핑할 수 있습니다. 사용 가능한 필드의 목록을 보려면 Fields Available for Mapping to the Status Queue를 참조하십시오.

targetToTfs

Project Server의 업데이트를 Team Foundation Server와 동기화할 필드 매핑을 지정합니다.

target

Project Server에서 업데이트를 받을 대상을 지정합니다.

provider

업데이트 공급자의 이름을 지정합니다. targetToTfs의 유효한 값은 ProjectServerPublished뿐입니다.

name

Team Foundation에서 필드를 업데이트할 Project의 필드 이름을 지정합니다. 기본 제공 필드 또는 Enterprise 사용자 지정 필드만 매핑할 수 있습니다. 사용 가능한 필드의 목록을 보려면 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>

맨 위로 이동

참고 항목

기타 리소스

Team Foundation Server와의 통합을 위한 Project Server 필드 매핑의 제한 사항

데이터 동기화를 지원하기 위해 추가된 Project Server 필드

Team Foundation Server 및 Project Server의 통합을 위한 필드 매핑 관리

Project Server와 Team Foundation Server 간의 필드 매핑 사용자 지정

Team Foundation Server 및 Project Server의 통합 관리

변경 기록

날짜

변경 내용

이유

2011년 4월

매핑되어야 하는 필수 필드 목록에서 완료된 작업 및 남은 작업 필드가 제거되었습니다. 상태 및 게시 동기화 단계에서 Team Foundation의 필드를 Project 작업 및 리소스 필드에 매핑하는 작업에 대한 설명이 추가되었습니다. tfsMirrorName 특성이 필수라고 표시되었습니다.

콘텐츠 버그 수정