다음을 통해 공유


TFS와 Project Server 간 필드 매핑 사용자 지정

Enterprise 프로젝트 계획과 팀 프로젝트 간에 데이터를 동기화하려면 TFS(Visual Studio Team Foundation Server)의 작업 항목 필드와 Microsoft Project Server의 필드를 연결해야 합니다. 필드를 추가하고 필드 매핑을 사용자 지정하여 필드 동기화 방식을 지정할 수 있습니다. Project의 기본 제공 필드와 사용자 지정 필드를 모두 매핑할 수 있습니다. 예를 들어 비용 센터, 팀 이름, 상태 등의 일정과 관련이 없는 데이터 형식을 저장하는 필드를 매핑에 추가하는 경우 해당 데이터를 공유할 수 있습니다.

Project Server와 동기화하려는 팀 프로젝트를 호스팅하는 각 팀 프로젝트 컬렉션에 대해 필드 매핑 집합 하나를 유지 관리합니다. PWA(Project Web Access 또는 Project Web App) 인스턴스에 매핑한 각 팀 프로젝트 컬렉션에 대해 필드 매핑을 정의해야 합니다. 기본 매핑을 업로드할 수도 있고 매핑 파일을 사용자 지정한 다음 업로드할 수도 있습니다. 기본 매핑을 업로드하려면 이 항목 뒷부분의 매핑 업로드를 참조하세요.

참고

TFS와 Project Server 통합을 위한 매핑은 Microsoft Project용 매핑 파일과는 다릅니다.자세한 내용은 Microsoft Project 필드 매핑 파일 사용자 지정을 참조하십시오.

다음 그림에 나와 있는 것처럼 매핑은 5단계로 사용자 지정합니다.

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

PS-TFS 필드 매핑을 사용자 지정하기 위한 워크플로

참고

매핑 파일은 원하는 빈도로 업데이트할 수 있습니다.Project Server 탭에 표시되는 필드는 데이터 동기화에 참가하는 각 작업 항목 형식에 대해 업데이트됩니다.Project Server 탭의 정의를 수동으로 변경해서는 안 됩니다.자세한 내용은 이 항목 뒷부분의 Project Server 탭 사용자 지정을 참조하세요.

항목 내용

  • 기본 매핑

  • 매핑할 추가 필드 결정

  • 파일에 매핑 다운로드

  • 매핑 업데이트

  • 매핑 업로드

  • (옵션) Project Server 탭 사용자 지정

참고

데모 비디오를 시청하려면 Microsoft 웹 사이트에서 Team Foundation Server와 Project Server 통합을 위한 필드 매핑 관리 페이지를 참조하세요.

요구 사항

이 항목의 절차를 완료하려면 Project Server 통합 관리 권한이 허용으로 설정되어 있어야 합니다. 또한 Team Foundation Server용 서비스 계정에 Project Server 통합 관리 권한을 부여해야 합니다. 자세한 내용은 TFS와 Project Server 통합을 지원하기 위한 권한 할당을 참조하십시오.

기본 매핑

매핑에 따라 사용자가 Team Foundation 또는 Project Server에서 정보를 업데이트할 때 동기화되는 필드가 결정됩니다. 다음의 각 동기화 유형에는 고유한 매핑 집합이 있습니다.

  • 게시 동기화의 경우 Project Server의 데이터가 Team Foundation의 데이터를 업데이트합니다. targetToTfs 요소를 사용하여 Team Foundation의 필드를 업데이트하는 Project Server의 필드를 지정합니다.

  • 상태 동기화의 경우 Team Foundation의 데이터가 Project Server의 상태 큐로 전송됩니다. tfsToTarget 요소를 사용하여 Project Server의 상태 큐 필드를 업데이트할 필드를 지정합니다.

이러한 두 가지 동기화 유형에 대한 자세한 내용은 TFS와 Project Server 통합을 위한 동기화 개요를 참조하세요.

다음 테이블에는 Team Foundation과 Project Server 간에 매핑되는 기본 필드 집합이 나와 있습니다. 또한 TFS에서 제공하는 기본 프로세스 템플릿을 기반으로 필드를 사용하는 작업 항목 형식도 나와 있습니다. Agile Software Development 또는 CMMI(Capability Maturity Model Integration) Process Improvement를 기반으로 하는 프로세스 템플릿에서 만든 팀 프로젝트에 매핑하는 경우에는 이러한 매핑을 수정하면 안 됩니다. 스크럼 프로세스 템플릿에서 만든 팀 프로젝트로 매핑하는 경우에는 이 항목 뒷부분에서 설명하는 스크럼 프로세스 템플릿에서 만든 팀 프로젝트에 매핑할 때 필요한 변경 사항에 따라 몇 가지 항목을 수정해야 합니다.

매핑 및 동기화 프로세스에 대한 자세한 내용은 TFS와 Project Server 통합을 위한 필드 매핑 XML 요소 참조을 참조하세요.

Team Foundation 필드

Project Server 필드

상태 큐 필드

Agile의 작업 항목 형식

CMMI의 작업 항목 형식

스크럼의 작업 항목 형식

제목

작업 이름

제목

모두

모두

모두

담당자

리소스

리소스

모두

모두

모두

완료된 작업

작업 실제 작업 시간

자원 실제 작업 시간

작업

작업

없음

남은 작업

작업 남은 작업 시간

자원 남은 작업 시간

작업

작업

작업

원래 예상 값

초기 계획 작업 시간

  

작업

버그, 변경 요청, 문제점, 요구 사항, 위험 및 작업

없음

시작 날짜

작업 시작

자원 시작

작업 및 사용자 스토리

작업 및 요구 사항

없음

완료 날짜

작업 완료

자원 완료

작업 및 사용자 스토리

작업 및 요구 사항

없음

스크럼 프로세스 템플릿에서 만든 팀 프로젝트로 매핑할 때 필요한 변경 사항

Microsoft Visual Studio Scrum 프로세스 템플릿에서 만든 팀 프로젝트에서 데이터 흐름을 사용하도록 설정하려면 두 가지 항목을 변경해야 합니다. 그 중 하나는 완료된 작업 및 원래 예상 값 필드를 작업 작업 항목 형식에 추가하는 것이고, 다른 하나는 팀 멤버가 상태를 완료 또는 제거됨으로 변경할 때 남은 작업 시간 필드를 비워 두어야 하도록 지정하는 요소를 제거하는 것입니다.

스크럼 작업 종류 정의를 업데이트하려면

  1. Visual Studio 또는 팀 탐색기가 설치된 명령 프롬프트 창을 열고 다음을 입력합니다.

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

    32비트 버전의 Windows에서는 **%programfiles(x86)%**를 **%programfiles%**로 바꿉니다.

  2. 작업의 형식 정의를 내보내려면 다음 명령을 입력합니다. 이때 아래에 나와 있는 인수를 실제 데이터로 바꿉니다. 여기서 CollectionURL은 팀 프로젝트 컬렉션 URL을, ProjectName은 컬렉션 내에 정의된 팀 프로젝트의 이름을, 그리고 "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 Foundation에 있는 필드의 참조 이름. Project Server의 필드를 Team Foundation에서 만들어야 하는 필드와 동기화하려면 먼저 동기화할 각 작업 항목 형식에서 필드를 만듭니다. 자세한 내용은 Visual Studio ALM의 작업 항목 필드 참조작업 항목 필드 정의를 참조하세요.

  • Team Foundation에서 필드를 업데이트할 Project Server의 필드 이름. 사용 가능한 필드의 목록을 보려면 TFS와 Project Server 통합에서 Project Server 필드 매핑에 대한 제한 사항을 참조하세요.

  • Project Server에서 업데이트할 필드의 이름 및 Team Foundation Server의 미러 필드를 업데이트할 Project Server의 필드 이름이 업데이트됩니다.

  • 작업 항목 폼에 필드를 표시할지 여부. 작업 항목 폼에 표시할 필드의 경우 displayTfsField 특성의 값을 true로 설정합니다. 작업 항목 폼의 경우 displayTfsMirror 특성의 값을 true로 설정합니다.

  • Team Foundation의 필드 값으로 Project Server의 필드 값을 덮어쓰도록 허용하여 데이터 충돌을 해결할지 아니면 두 값을 모두 유지할지 여부. 이 결정 사항에 따라 onConflict 특성 값이 결정됩니다. **onConflict=”PsWins”**를 설정하면 Project Server의 필드 값이 Team Foundation 필드 값을 덮어씁니다. 자세한 내용은 필드 요소 및 특성을 참조하세요.

  • Project Server에서 선택 목록 또는 사용자 지정 조회 테이블을 지원하려면 정의해야 하는 추가 값

매핑할 수 있는 데이터에 대한 제한 사항

매핑할 필드를 결정한 후에는 다음 제한 사항을 참조하세요.

  • 작업 수준 정보(pjTask* 필드)만 Project Server에서 Team Foundation Server로 보낼 수 있습니다.

  • 자원 수준 정보(pjResource* 필드)만 Team Foundation Server에서 Project Server의 상태 큐로 보낼 수 있습니다.

  • Team Foundation Server 및 상태 큐로 모두 보낼 수 있는 필드는 제목 필드뿐입니다.

  • 롤업은 배정 대상, 완료된 작업 및 남은 작업 시간 필드에 대해 자동으로 계산됩니다. 추가 필드를 매핑하고 해당 필드에 대해 롤업을 계산할 수는 없습니다. 자세한 내용은 팀 프로젝트에 매핑된 Enterprise 프로젝트의 리소스 롤업 사용을 참조하십시오.

  • 매핑하는 각 필드의 데이터 형식이나 단위가 표준 및 사용자 지정 Enterprise 필드에 대한 필드 매핑 기준을 따르는지 확인해야 합니다. 자세한 내용은 TFS와 Project Server 통합에서 Project Server 필드 매핑에 대한 제한 사항의 "데이터 형식 및 필드 매핑 기준"을 참조하세요.

  • Team Foundation의 선택 목록과 연결된 필드를 매핑할 수 있습니다. 그러나 선택 목록과 일치하는 조회 테이블을 Project Server에서 만들어야 합니다. 선택 목록과 조회 테이블을 자동으로 동기화할 수는 없습니다.

자세한 내용은 TFS와 Project Server 통합에서 Project Server 필드 매핑에 대한 제한 사항을 참조하십시오.

예제: Project에 표시되도록 팀 이름 매핑

다음 예에서는 Team Foundation의 사용자 지정 문자열 필드인 MyCompany.MyOrg.DevTeamName을 Project Server의 Enterprise 사용자 지정 텍스트 필드인 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. 사용자 지정 Enterprise 필드 두 개를 Project Server에 추가하고 영역(TFS) 및 **반복(TFS)**으로 레이블을 지정합니다.

    자세한 내용은 Microsoft 웹 사이트의 조회 테이블 및 Enterprise 사용자 지정 필드 만들기 페이지를 참조하세요.

  2. 팀 프로젝트가 정의된 팀 프로젝트 컬렉션에서 필드 매핑을 내보냅니다.

    자세한 내용은 이 항목 뒷부분의 파일에 매핑 다운로드를 참조하세요.

  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. 프로젝트 서버와 프로젝트 계획을 동기화합니다.

  6. 새 필드인 영역(TFS) 및 반복(TFS)에 해당하는 새 열 두 개를 프로젝트 계획에 추가합니다.

Team Foundation에서 영역반복 필드에 대해 수행하는 변경 내용이 프로젝트 계획에서 이러한 필드와 동기화됩니다. Team Foundation에 정의된 값을 지정하는 경우에는 Project에서 이러한 필드를 업데이트하고 Team Foundation에 변경 내용을 게시할 수도 있습니다.

맨 위로 이동

파일에 매핑 다운로드

참고

매핑은 업로드했던 팀 프로젝트 컬렉션에서만 다운로드할 수 있습니다.파일에 기본 매핑을 다운로드하려는 경우 먼저 이 항목 뒷부분의 기본 매핑을 업로드하려면에서 설명하는 대로 기본 매핑을 업로드해야 합니다.또는 기본 매핑의 내용을 복사할 수도 있습니다.자세한 내용은 TFS와 Project Server 통합을 위한 필드 매핑 XML 요소 참조을 참조하십시오.

파일에 매핑을 다운로드하려면

  1. TfsAdmin 명령줄 도구를 실행하려면 Visual Studio 또는 팀 탐색기가 설치된 명령 프롬프트 창을 열고 다음을 입력합니다.

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

    64비트 버전의 Windows에서는 **%programfiles%**를 **%programfiles(x86)%.**로 바꿉니다.

  2. 다음 명령을 입력하고 Enter 키를 누릅니다.

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

    tpcUrl은 팀 프로젝트 컬렉션의 URL(Uniform Resource Locator)로 바꾸고 MappingFile은 사용자 지정할 파일의 이름 및 경로로 바꿉니다.

  3. 다음 메시지가 표시될 때까지 기다립니다.

    MappingFiletpcUrl 팀 프로젝트로 다운로드하는 중입니다.

    MappingFile 필드 매핑 파일을 tpcUrl 팀 프로젝트 컬렉션으로 다운로드했습니다.

매핑 업데이트

매핑 파일에 추가할 각 필드에 대해 field 요소 및 해당 하위 요소와 특성을 지정합니다. 자세한 내용은 TFS와 Project Server 통합을 위한 필드 매핑 XML 요소 참조을 참조하십시오.

매핑 업로드

UploadFieldMappings 명령을 사용하여 매핑을 업로드합니다. /usedefaultfieldmapping 옵션을 사용하여 기본 매핑을 업로드할 수 있습니다. 그렇지 않으면 매핑 요소가 포함된 파일을 지정해야 합니다.

기본 매핑을 업로드하려면

  1. 명령 프롬프트에 다음 명령을 입력하고 Enter 키를 누릅니다.

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    tpcUrl은 팀 프로젝트 컬렉션의 URL로 바꿉니다.

  2. 다음 메시지가 표시될 때까지 기다립니다.

    CollectionUri에 기본 필드 매핑을 업로드하는 중입니다.

    CollectionUri 컬렉션에 필드 매핑을 업로드했습니다.

파일에서 매핑을 업로드하려면

  1. 명령 프롬프트에 다음 명령을 입력하고 Enter 키를 누릅니다.

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

    tpcUrl은 팀 프로젝트 컬렉션의 URL로 바꾸고 MappingFile은 사용자 지정 매핑 파일의 이름과 경로로 바꿉니다. 기존 매핑을 업데이트하는 경우에는 /force를 지정합니다.

  2. 다음 메시지가 표시될 때까지 기다립니다.

    MappingFile 매핑 파일을 tpcUrl 팀 프로젝트에 업로드하는 중입니다.

    MappingFile 필드 매핑 파일을 tpcUrl 팀 프로젝트 컬렉션에 업로드했습니다.

Project Server 탭 사용자 지정

Enterprise 프로젝트 계획을 팀 프로젝트에 연결하면 다음 그림과 같이 Project Server 탭이 작업 항목 폼에 추가됩니다. 이 탭은 데이터 동기화에 참가하도록 지정하는 작업 항목 형식에만 추가됩니다. 폼에 표시할 필드에 대해 displayTfsField 또는 displayTfsMirror 특성을 true로 설정하여 이 탭을 사용자 지정합니다.

Project Server 탭

Project Server 탭 기본 필드

중요

팀 프로젝트 컬렉션에 대해 정의되는 필드 매핑에 따라 Project Server 탭에 표시되는 필드가 결정됩니다.팀 프로젝트에 대해 이 탭을 작업 항목 형식에 추가한 후 컬렉션의 필드 매핑을 수정하여 해당 탭을 업데이트할 수 있습니다.Project Server 탭에 필드를 추가하거나 폼에서 위치를 변경하여 작업 항목 폼을 수동으로 사용자 지정하는 경우 이 탭이 나중에 필드 매핑에 대해 수행하는 변경 내용으로 자동 업데이트되지 않을 수 있습니다.이러한 상황이 발생하면 탭을 수동으로 수정할 수 있습니다.자세한 내용은 작업 항목 형식에 대한 정의에 추가된 XML 요소을 참조하십시오.

Project Server 탭에 표시되는 각 기본 필드에 대한 자세한 내용은 데이터 동기화를 지원하기 위해 TFS에 추가된 Project Server 필드를 참조하세요.

참고 항목

작업

TFS와 Project Server 통합 구성

개념

동기화할 작업 항목 형식 지정

Team Foundation Server 및 Project Server의 통합 관리