다음을 통해 공유


작업 항목 필드 관리

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Important

온-프레미스 XML 프로세스 모델의 경우 witadmin을 사용하여 프로젝트에 대한 프로세스를 나열, 가져오기, 내보내기 및 수정할 수 있습니다. 상속 및 호스트된 XML 프로세스 모델의 경우 witadmin을 사용하여 프로세스 정보를 나열하고 내보낼 수 있습니다. 프로세스 모델 및 지원되는 항목에 대한 개요는 작업 추적 환경 사용자 지정을 참조하세요.

witadmin 명령줄 도구는 프로젝트 컬렉션에서 작업 항목 필드를 관리하기 위한 강력한 기능을 제공합니다. 필드 이름을 바꾸거나, 데이터 형식을 조정하거나, ID 공급자와의 동기화를 구성해야 하는 경우 이러한 명령을 사용하면 작업 추적 환경을 세부적으로 제어할 수 있습니다.

witadmin 필드 명령으로 수행할 수 있는 작업

다음 witadmin 명령을 사용하여 컬렉션의 모든 작업 항목 유형 및 프로젝트에서 필드를 관리합니다.

  • changefield: 다음을 포함하여 컬렉션 전체에 적용되는 필드 특성을 수정합니다.
    • 형식 간 데이터 PlainTextHTML

    Important

    Azure DevOps Server를 업그레이드하면 설명 필드(System.Description)가 자동으로 변환됩니다 PlainTextHTML. changefield 필요한 경우 이 명령을 사용하여 되돌릴 수 있습니다.

    • 작업 항목 쿼리에 표시되는 친숙한 이름(양식 레이블과 다를 수 있습니다).
    • 데이터 웨어하우스 통합에 대한 보고 특성
    • Microsoft Entra ID 또는 Active Directory와 ID 동기화
  • deletefield: 컬렉션에서 사용되지 않는 필드 제거
  • listfields: 프로젝트 전체의 필드 특성 및 사용량 보기

  • 온-프레미스 XML 환경에서 전역 필드를 추가하려면 전역 워크플로 파일을 수정하고 컬렉션으로 가져옵니다.
  • witadmin indexfield 명령은 더 이상 사용되지 않습니다. 필드 인덱싱은 자동으로 발생합니다.

witadmin 명령줄 도구 실행

명령줄 도구를 실행 witadmin 하려면 Visual Studio가 설치된 명령 프롬프트 창을 엽니다. 명령줄 도구는 witadmin 모든 버전의 Visual Studio와 함께 설치됩니다. Visual Studio Community 또는 Visual Studio 팀 탐색기의 무료 버전을 설치하여 이 도구에 액세스할 수 있습니다.

참고 항목

Azure DevOps Services에 연결하려면 최신 버전의 Visual Studio 또는 Visual Studio Community를 사용하는 것이 좋습니다.

참고 항목

온-프레미스 서버에 연결하려면 Azure DevOps Server와 동일한 이상 버전의 Visual Studio를 사용하는 것이 좋습니다. 예를 들어 Azure DevOps Server 2019에 연결하는 경우 Visual Studio 2019 버전에서 프로젝트에 연결합니다.

Visual Studio 2022의 경우

%programfiles(x86)%\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

또는 ProfessionalEnterpriseCommunity설치한 버전에 따라 대신

Visual Studio 2019의 경우

%programfiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

또는 ProfessionalEnterpriseCommunity설치한 버전에 따라 대신

Visual Studio 2017의 경우

%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

또는 TeamExplorerProfessionalEnterprise설치한 버전에 따라 대신

32비트 버전의 Windows에서 %programfiles(x86)%를 %programfiles%대체합니다. Visual Studio Community(팀 탐색기에 대한 액세스 제공) 또는 Visual Studio Team Explorer 2017을 무료로 설치할 수 있습니다.

기본 프로세스 템플릿 내에 정의된 필드의 개요는 작업 항목 필드 인덱스입니다.

witadmin을 사용하면 정의 파일을 가져오고 내보낼 수 있습니다. 사용할 수 있는 다른 도구에는 프로세스 편집기(Visual Studio 버전을 설치해야 합니다)가 포함됩니다. Visual Studio Marketplace에서 프로세스 템플릿 편집기를 설치합니다.

필수 조건

과업 필요한 권한
필드 목록 컬렉션에서 프로젝트 허용으로 설정된 프로젝트 수준 정보 권한 보기
필드 삭제 또는 이름 바꾸기 프로젝트 컬렉션 관리자 보안 그룹의 구성원
필드 특성 변경 프로젝트 컬렉션 관리자 보안 그룹의 구성원

자세한 내용은 프로젝트 컬렉션 수준 권한 변경을 참조하세요.

참고 항목

관리자 권한으로 로그인하는 경우에도 관리자 권한 명령 프롬프트 창을 열어 Windows Server를 실행하는 서버에서 이 함수를 수행해야 합니다. 관리자 권한 명령 프롬프트 창을 열려면 시작을 선택하고 명령 프롬프트 바로 가기 메뉴를 연 다음 관리자 권한으로 실행을 선택합니다.

구문

다음 명령 구문 패턴을 사용하여 witadmin 도구를 사용하여 작업 항목 필드를 관리합니다.

witadmin changefield /collection:CollectionURL /n:RefName   [/name:NewName]    [/syncnamechanges:true | false]   [/reportingname:ReportingName]    [/reportingrefname:ReportingRefName]   [/reportingtype:Type]   [/reportingformula:Formula]   [/type:PlainText | HTML]   [/noprompt]  

witadmin deletefield /collection:CollectionURL /n:RefName [/noprompt]  
  
witadmin listfields /collection:CollectionURL /n:RefName [/unused]  

매개 변수

매개 변수 설명
/collection:CollectionURL 프로젝트 컬렉션의 URI를 지정합니다. 예시:

온-프레미스 형식:http://ServerName:Port/VirtualDirectoryName/CollectionName
가상 디렉터리가 사용되지 않는 경우 다음 형식 http://ServerName:Port/CollectionName을 사용합니다.
/n:RefName
/n:Name
작업 항목 형식 필드의 참조 이름입니다.
/name:NewName 필드의 새 이름을 지정합니다.
/syncnamechanges 작업 항목 필드를 사용하여 이름을 저장하고 Microsoft Entra ID, Active Directory 또는 작업 그룹에서 변경 내용이 변경되면 업데이트하도록 지정합니다. 이 옵션은 문자열의 데이터 형식을 가진 필드가 에 대해 typename지정된 경우에만 유효합니다.

데이터 필드에 대한 동기화를 사용하도록 지정 true 합니다. 데이터 필드에 대한 동기화를 사용하지 않도록 지정 false 합니다.
/reportingname:ReportingName 보고에 사용할 데이터 웨어하우스의 필드 이름을 지정합니다.
/reportingrefname:ReportingRefName 보고에 사용할 데이터 웨어하우스 필드의 참조 이름을 지정합니다.
/reportingtype:Type 보고에 대해 웨어하우스에서 필드를 사용하는 방법을 지정합니다. 유효한 값은 다음과 같습니다.

- dimension: 정수, 문자열 또는 DateTime 필드에 사용됩니다.
- detail: 정수, Double, String 또는 DateTime 필드에 사용됩니다.
- measure: 정수 및 이중 필드에 사용됩니다. 기본 집계 유형은 합계입니다. 수식 매개 변수를 사용하여 다른 집계 형식을 지정할 수 있습니다.
- none: 필드에서 보고서 기능을 사용하지 않도록 설정하는 데 사용됩니다.

자세한 내용은 작업 항목 필드 및 특성 정보를 참조 하세요.
/reportingformula:Formula 필드가 로 보고 measure될 때 사용할 집계 수식을 지정합니다. 유일하게 지원되는 수식은 .입니다 sum.
/type:HTML | PlainText 필드의 내용을 으로 또는 그로 PlainTextHTMLHTML 변환하도록 PlainText지정합니다. 형식 할당 PlainText 이 있는 HTML필드에 대해서만 이 옵션을 지정할 수 있습니다. FIELD(정의) 요소 참조를 참조하세요.
/unused 프로젝트 컬렉션에 정의된 프로젝트에서 사용되지 않는 모든 필드를 나열합니다.
/noprompt 확인 프롬프트를 사용하지 않도록 설정합니다.
/? 또는 help 명령 프롬프트 창에 명령에 대한 도움말을 표시합니다.

Microsoft Entra ID 및 Active Directory와 사용자 이름 동기화

ID 공급자에서 사용자 이름이 변경되면 자동으로 업데이트되도록 사용자 지정 사용자 이름 필드를 구성합니다.

동기화를 사용하도록 설정하는 경우

사용자 지정 필드만: 사용자 이름을 할당하는 데 사용되는 사용자 지정 작업 항목 필드에 대해 수동으로 동기화를 사용하도록 설정해야 합니다.

시스템 필드: 모든 기본 제공 개인 이름 필드에는 자동으로 동기화가 사용하도록 설정됩니다.

  • System.AssignedTo
  • System.ChangedBy
  • System.CreatedBy

ID 공급자 지원

환경 ID 공급자
Azure DevOps Services Microsoft Entra ID (마이크로소프트 엔트라 ID)
Azure DevOps Server Active Directory 또는 작업 그룹

동기화 작동 방식

행동
사용하도록 설정하기 전에 필드에 정적 텍스트 문자열이 표시됩니다.
사용하도록 설정한 후 ID 공급자의 현재 사용자 이름을 표시하는 필드
이름이 변경되는 경우 자동으로 업데이트된 syncnamechanges=true 필드

그룹 이름 제한

문자열 필드에서 특성을 사용하도록 설정 syncnamechanges 하면 유효한 사용자 이름을 허용하지만 다음 조건이 적용되는 경우 그룹 이름을 허용하지 않습니다 .

  • VALIDUSER 모든 작업 항목 유형에 지정된 규칙
  • VALIDUSER 특정 작업 항목 유형에 대해 지정된 규칙
  • ALLOWEDVALUES 그룹을 제외하는 필터 조건으로 지정된 규칙

구성 범위

Important

사용자 지정 필드를 포함하는 각 프로젝트 컬렉션의 각 필드에 대해 동기화를 사용하도록 설정해야 합니다.

자세한 내용은 다음을 참조하세요.

각 작업 항목 유형에 대해 변경할 수 있는 특성

필드가 표시되는 작업 항목 형식 정의를 변경하여 필드에 대해 정의된 다음 특성 또는 값을 변경합니다.

  • 작업 항목 양식에 표시되는 이름 입니다. WebLayout 및 Control 요소 또는 Control XML 요소 참조를 참조하세요.
  • 도움말 텍스트입니다. 규칙 및 규칙 평가를 참조하세요.
  • 선택 목록 또는 드롭다운 메뉴 내에서 허용되는 값 또는 항목입니다. ALLOWEDVALUES, SUGGESTEDVALUES 및 PROHIBITEDVALUES XML 요소를 참조 하세요.

예제

달리 지정하지 않는 한 각 예제에 다음 값이 적용됩니다.

  • 프로젝트 컬렉션에 대한 URI: http://AdventureWorksServer:8080/tfs/DefaultCollection
  • 작업 항목 필드 이름: AdventureWorks.Field
  • 기본 인코딩: UTF-8

필드 나열

사용 중인 필드 집합을 확인하여 작업 항목 유형에 추가할 필드를 선택하는 데 사용합니다 witadmin listfields . 또한 특정 필드에 대해 정의된 특성 할당을 나열하고 어떤 프로젝트에서 사용되는 필드를 결정할 수 있습니다.

작업 항목 필드의 특성 보기

다음 명령을 입력하여 지정된 필드에 대해 정의된 특성(예: Microsoft.VSTS.Common.Issue.)을 나열합니다.

witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Issue  

이 예제와 같이 명명된 필드에 대한 필드 및 특성 정보가 나타납니다.

Field: Microsoft.VSTS.Common.Issue  
    Name: Issue  
    Type: String  
    Reportable As: dimension  
    Use: Adventure Works (Shared Steps), AW Future (Shared Steps), AW Current (Shared Steps)  
    Indexed: False  

Use 매개 변수는 각 프로젝트의 이름과 필드가 사용되는 작업 항목 형식을 나타냅니다. 필드 특성 에 대한 자세한 내용은 작업 항목 필드의 인덱스입니다.

프로젝트 컬렉션의 모든 필드 나열

프로젝트 컬렉션에 대해 정의된 모든 필드를 나열하려면 다음 명령을 입력합니다.

witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection  

명명된 프로젝트 컬렉션의 모든 필드에 대한 필드 정보가 나타납니다. 작업 항목 필드의 인덱스 참조

사용되지 않는 필드 나열

다음 명령을 입력하여 더 이상 프로젝트 컬렉션에서 작업 항목 형식으로 사용되지 않는 필드를 나열합니다.

witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /unused  

이 예제와 같이 사용되지 않는 각 필드에 대한 필드 및 특성 정보가 나타납니다.

    Field: Microsoft.VSTS.CMMI.TaskType  
    Name: Task Type  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  

    Field: Microsoft.VSTSUE.Common.Flag  
    Name: Flag  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  

    Field: Microsoft.VSTSUE.Common.Progress  
    Name: Progress  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  

필드 이름 바꾸기

팀에서 사용하는 명명 규칙을 충족하도록 작업 항목 필드의 이름을 변경할 수 있습니다. 새 이름은 프로젝트 컬렉션의 모든 프로젝트에서 변경된 필드를 참조하는 모든 작업 항목 형식에 적용됩니다. 작업 항목 쿼리에서 필터 조건을 정의할 때 친숙한 이름이 표시됩니다. 작업 항목 양식에 표시되는 이름은 필드에 정의된 이름과 다를 수 있습니다.

작업 항목 필드의 이름을 바꾸려면

  1. 다음 명령을 입력하여 중요 순위Microsoft.VSTS.Common.Rank할당된 이름 이름을 바꿉니다.

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"  
    
  2. 확인 프롬프트에서 Enter 키를 입력 y다음 Enter 키를 선택합니다. 다음 메시지가 표시될 때까지 기다립니다.

    필드 이름이 바뀌었습니다.

단일 프로젝트로 가져온 변경 내용을 확인하려면

  1. 팀 탐색기에서 새로 고침을 선택합니다RefreshIcon_refreshNode.

    최신 업데이트는 서버에서 다운로드되며, 여기에는 필드 이름에 대한 변경 내용이 포함됩니다. 새로 고침이 완료되기까지 몇 초 정도 기다립니다.

  2. 새 쿼리를 선택하여 쿼리를 만듭니다.

  3. 쿼리 편집기에서 여기를 클릭하여 행을 추가할 절 링크를 추가하고필드 셀을 선택한 다음 셀에 입력 Rank합니다. 결과 목록 위에 표시되는 다음 메시지입니다. 이 메시지는 순위를 찾을 수 없음을 나타냅니다.

    쿼리를 실행하여 쿼리 결과를 확인합니다. TF51005: 쿼리는 존재하지 않는 필드를 참조합니다. 이 오류는 .에 의해 발생합니다 <\<Rank>>.

  4. 필드 셀에서 Rank 값을 삭제하고 셀에 입력 Important Rank 합니다.

  5. <> 셀에서 선택하고 1 셀에 입력 합니다.

  6. 쿼리 도구 모음에서 실행을Run QueryIcon_runQuery 선택합니다.

  7. 결과의 모든 행에 대한 바로 가기 메뉴를 열고 열 옵션을 선택합니다. 사용 가능한 열 목록에서 아래로 스크롤합니다 . 순위 필드는 더 이상 없지만 중요 순위 필드가 있습니다.

  8. 사용 가능한 열 상자에서 중요 순위를 선택한 다음 단추를 선택합니다>(선택한 열 추가). 확인을 선택합니다.

    Microsoft.VSTS.Common의 이름입니다. 순위는 쿼리 작성기 및 결과 목록 전체에서 순위 에서 중요 순위 로 이름이 변경됩니다.

  9. 쿼리를 닫습니다. 쿼리를 저장하라는 메시지가 표시되면 아니요 를 선택합니다.

  10. 새 작업 작업 항목을 만듭니다. 새 작업 항목 링크를 선택한 다음 작업을 선택합니다.

    이 작업 항목은 변경하고 가져온 작업 항목 유형에서 만들어집니다.

  11. 상태 상자에서 이름이 바뀐 필드 순위에 대한 레이블이 변경되지 않았습니다. 작업 항목 양식의 필드 레이블은 부모 프로젝트로 범위가 지정되며 지정된 서버 전체 필드 이름과는 독립적입니다.

    참고 항목

    작업 항목 양식에서 필드 레이블을 변경하는 방법에 대한 자세한 내용은 Control XML 요소 참조를 참조하세요.

  12. 새 작업을 닫고 작업 항목을 저장하라는 메시지가 표시되면 아니요 를 선택합니다.

필드를 값으로 보고서 변경

다음 명령은 DateTime 필드 AdventureWorks.CreatedOn의 형식을 차원에 보고하는 기능을 지정합니다. 이 필드의 데이터는 보고서를 필터링하는 데 사용할 수 있도록 웨어하우스 및 Analysis Services 데이터베이스에 들어갑니다.

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.CreatedOn /reportingtype:dimension  

다음 명령은 측정할 Double 필드 AdventureWorks.Field의 형식을 보고하는 기능을 지정합니다. 모든 측정값은 합계로 집계합니다.

witadmin reportfield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field /reportingtype:measure  

사용자 지정 사용자 이름 필드의 동기화 사용

다음 명령은 작업 항목 필드 AW에 대한 동기화를 사용하도록 설정합니다. AdventureWorksServer의 Collection1에 대해 정의된 CustomerName입니다.

변환할 필드의 데이터 형식 확인

다음 명령을 입력하여 동기화하려는 MyCompany.CustomerName과 같은 필드에 할당된 데이터 형식을 확인합니다.

witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName  

동기화 사용

  1. 사용자 이름 필드에 대한 동기화를 사용하도록 설정하려면 다음 명령을 입력하고 여기에 표시된 인수에 대한 데이터를 대체합니다.

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true  
    
  2. 다음 확인 프롬프트가 나타납니다.

    그러면 Azure DevOps Server의 필드 {0} 속성이 변경됩니다. 계속할까요?

  3. 필드를 변경할지 확인하거나 0 요청을 취소하려면 입력 1 합니다.

    변경 요청이 성공하면 다음 확인 메시지가 나타납니다.

    필드가 업데이트되었습니다.

    변경 요청이 실패하면 오류 메시지가 나타납니다. 가장 일반적인 실수는 시스템 참조 필드를 변경하거나 String 이외의 데이터 형식의 필드를 변경하려고 하는 것입니다. 이러한 작업은 지원되지 않습니다.

필드 삭제

필드를 삭제하기 전에 필드가 사용되고 있지 않은지 확인합니다. 필드를 사용 중인 경우 먼저 프로젝트 컬렉션에서 필드를 삭제하기 전에 해당 필드를 사용하는 작업 항목 형식에서 제거해야 합니다. 다음 명령은 Collection1AdventureWorks.Field필드를 삭제합니다.

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field  

필드가 사용되지 않는지 확인

  1. 작업 항목 필드의 참조 이름(예: MyCompany.MyProcess.MyField.)을 지정하여 다음 명령을 입력합니다.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.MyProcess.MyField  
    

    필드에 표시되는 정보에서 이 예제와 같이 사용이 "사용되지 않음"인지 확인합니다.

    Field: MyCompany.MyProcess.MyField  
    Name: MyField  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
  2. 사용 필드에 필드가 사용 중임을 나타내는 경우 나열된 각 프로젝트의 각 작업 항목 유형에서 해당 필드를 삭제해야 합니다. 예를 들어 필드는 4개의 프로젝트인 Arroyo, Microsoft.VSTS.TCM.SystemInfo Desert, Palm 및 Springs에 대해 버그 및 코드 결함 작업 항목 유형에서 사용되고 있음을 나타냅니다.

    Field: Microsoft.VSTS.TCM.SystemInfo  
    Name: System Info  
    Type: Html  
    Reportable As: None  
    Use: Arroyo (Bug), Desert (Bug), Palm (Bug), Springs (Bug, Code Defect)  
    Indexed: False  
    

    이 필드를 삭제하려면 먼저 정의된 각 프로젝트에 대해 나열된 각 작업 항목 유형에서 제거해야 합니다. 필드를 제거하려면 필드 참조 이름을 포함하는 요소와 FIELD 항목을 삭제하여 작업 항목 형식에 Control 대한 정의를 수정합니다. 가져오기, 내보내기 및 작업 항목 형식, FIELD(정의) 요소 참조Control을 참조하세요.

프로젝트 컬렉션에서 필드 삭제

다음 명령을 입력하여 필드를 삭제한 MyCompany.MyProcess.MyField 다음 Enter 키를 선택합니다.

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:RefName  

확인 프롬프트에 y를 입력하여 이 단계를 완료합니다.