次の方法で共有


作業項目フィールドの管理

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

重要

オンプレミスの XML プロセス モデルでは、 witadmin を使用して、プロジェクトのプロセスの一覧表示、インポート、エクスポート、変更を行うことができます。 継承およびホストされた XML プロセス モデルの場合は、 witadmin を使用してプロセス情報の一覧表示とエクスポートのみを行うことができます。 プロセス モデルの概要とサポートされる内容については、「 作業追跡エクスペリエンスのカスタマイズ」を参照してください

次の witadmin コマンドを使用して、プロジェクト コレクション (オンプレミス XML) に対して定義されている作業項目の種類に対して定義されたフィールドを管理できます。 グローバル フィールド (オンプレミス XML に対して有効) を追加する場合は、グローバル ワークフロー ファイルを 変更し それをコレクションに インポートします

  • changefield: フィールドの 1 つ以上の属性を変更します。 次のいずれかの属性を変更すると、プロジェクト コレクション内のすべての作業項目の種類とプロジェクトに対して属性が変更されます。
    • PlainTextフィールドまたはHTML フィールドのデータ型

      重要

      Team Foundation Server を以前のバージョンから現在のバージョンにアップグレードすると、 Description (System.Description) フィールドの型割り当てが PlainText から HTMLに自動的に変換されます。 changefield コマンドを使用すると、このフィールドの内容を復元してプレーン テキストを表示できます。

    • 作業項目クエリに表示されるフレンドリ名 。 この名前は、作業項目フォームに表示される名前とは異なる場合があります。

    • レポート属性 レポートに表示されるフィールドの名前、参照レポート名、およびレポートの種類が含まれます。

    • Active Directory との同期 - ユーザー名フィールドの同期を有効または無効にすることができます。

  • deletefield: 指定したフィールドを削除します。
  • listfields: すべてのフィールドまたは指定したフィールドの属性を一覧表示します。

Note

witadmin indexfield コマンドは、Azure DevOps Server 2019 以降のバージョンでは非推奨になりました。 インデックス作成フィールドは不要になりました。

witadmin コマンド ライン ツールを実行する

witadminコマンド ライン ツールを実行するには、Visual Studio がインストールされているコマンド プロンプト ウィンドウを開きます。 witadmin コマンドライン ツールは、任意のバージョンの Visual Studio と共にインストールされます。 このツールにアクセスするには、 Visual Studio Community または Visual Studio チーム エクスプローラーの無料バージョンをインストールします。

Note

Azure DevOps Services に接続するには、最新バージョンの Visual Studio または Visual Studio Community を使用することをお勧めします。

Note

オンプレミス サーバーに接続するには、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

インストールしたバージョンに応じて、Communityの代わりにProfessionalまたはEnterprise

Visual Studio 2019 の場合

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

インストールしたバージョンに応じて、Communityの代わりにProfessionalまたはEnterprise

Visual Studio 2017 の場合

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

インストールしたバージョンに応じて、Enterpriseの代わりにTeamExplorerまたはProfessional

32 ビット 版の Windows では、 %programfiles(x86)%%programfiles% に置き換えます。 Visual Studio Community (チーム エクスプローラーへのアクセスを提供する) または Visual Studio Team Explorer 2017 を無料でインストールできます。

既定のプロセス テンプレート内で定義されているフィールドの概要については、「 作業項目フィールドのインデックスを参照してください。

ヒント

witadmin を使用すると、定義ファイルをインポートおよびエクスポートできます。 使用できるその他のツールには、プロセス エディターが含まれます (Visual Studio のバージョンをインストールしている必要があります)。 Visual Studio Marketplace からプロセス テンプレート エディターをインストールします

前提条件

  • フィールドを一覧表示するには、コレクション内のプロジェクトの View プロジェクト レベルの情報 アクセス許可が Allow に設定されている必要があります。
  • フィールドを削除または名前変更したり、フィールドの属性を変更したりするには、 Team Foundation Administrators セキュリティ グループまたは Project Collection Administrators セキュリティ グループのメンバーである必要があります。

詳細については、「 プロジェクト コレクション レベルのアクセス許可を変更する」を参照してください。

Note

管理者権限でサインインした場合でも、管理者特権のコマンド プロンプト ウィンドウを開いて、Windows Server 2008 を実行しているサーバーでこの機能を実行する必要があります。 管理者特権のコマンド プロンプト ウィンドウを開くには、 Start を選択し、 コマンド プロンプト ショートカット メニューを開き、[管理者として実行 ] を選択。 詳細については、「Microsoft Web サイト: User Access Control」を参照してください。

構文

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
作業項目の種類フィールドの参照名。
/index 指定したフィールドのインデックス作成を有効または無効にすることを指定します。 onを指定してインデックス作成を有効にし、offインデックス作成を無効にします。
/name:NewName フィールドの新しい名前を指定します。
/syncnamechanges 作業項目フィールドを使用して名前を格納し、Active Directory またはワークグループで変更が行われると更新するように指定します。 このオプションは、データ型が String のフィールドが typenameに指定されている場合にのみ有効です。

データ フィールドの同期を有効にする true を指定し、データ フィールドの同期を無効にする false を指定します。
/reportingname:ReportingName レポートに使用するデータ ウェアハウス内のフィールドの名前を指定します。
/reportingrefname:ReportingRefName レポートに使用するデータ ウェアハウス内のフィールドの参照名を指定します。
/reportingtype:Type レポート用に倉庫でフィールドを使用する方法を指定します。 有効な値は、次のとおりです。

- dimension: 整数、文字列、または DateTime フィールドに使用されます。
- detail: Integer、Double、String、または DateTime フィールドに使用されます。
- measure: [整数] フィールドと [倍精度浮動小数点型] フィールドに使用されます。 既定の集計の種類は合計です。 formula パラメーターを使用して、別の集計の種類を指定できます。
- none: フィールドのレポート機能を無効にするために使用されます。

詳細については、「 作業項目のフィールドと属性についてを参照してください。
/reportingformula:Formula フィールドが measureとして報告されるときに使用する集計式を指定します。 サポートされている数式は sumのみです。
/type:HTML | PlainText フィールドの内容を PlainText から HTML に変換するか、 HTML から PlainTextに変換するように指定します。 このオプションは、型の割り当てが PlainText または HTMLフィールドにのみ指定できます。 FIELD (定義) 要素のリファレンスを参照してください。
/unused プロジェクト コレクションで定義されているプロジェクトで使用されていないすべてのフィールドを一覧表示します。
/noprompt 確認のプロンプトを無効にします。
/? または help コマンド プロンプト ウィンドウにコマンドに関するヘルプを表示します。

Active Directory とのユーザー名の同期

Active Directory を参照するユーザー名の割り当てに使用されるカスタム作業項目フィールドの同期を手動で有効にする必要があります。 ユーザー設定フィールドを含むプロジェクト コレクションごとに、フィールドごとに同期を有効にする必要があります。

ユーザー名を表示するすべてのシステム参照フィールドには、属性syncnamechangestrueに設定されています。 このようなフィールドには、System.AuthorizedAs、System.AssignedTo、System.ChangedBy、System.CreatedBy が含まれます。 既定のプロセス テンプレートのいずれかで定義されている各ユーザー名フィールドの同期が有効になります。 詳細については、「 割り当てとワークフロー フィールドを参照してください。

同期が有効になった後、フィールドに静的文字列が表示されなくなります。 代わりに、ユーザー アカウントに関連付けられている名前がフィールドに表示されます。 Active Directory またはワークグループでユーザー名を変更すると、 syncnamechangestrue に設定されているフィールドに新しい名前が自動的に表示されます。

syncnamechanges属性を文字列フィールドに割り当てると、フィールドは常に有効なユーザー名を受け入れます。 ただし、次のいずれかの条件が trueされている場合、このフィールドでは Team Foundation Server または Active Directory に格納されるグループ名は許可されません。

  • VALIDUSERルールは、すべての作業項目の種類で指定されます

  • 作業項目の種類に対して VALIDUSER ルールが指定されている

  • ALLOWEDVALUESルールは作業項目の種類に対して指定され、そのルールにはグループを除外するフィルター条件があります

    詳細については、「 すべての FIELD 要素」を参照してください。

作業項目の種類ごとに変更できる属性

フィールドに対して定義されている次の属性または値を変更するには、フィールドが表示される作業項目タイプ定義を変更します。

特に指定がない限り、各例では次の値が適用されます。

  • プロジェクト コレクションの 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 に割り当てられたフレンドリ名の名前を Important Rank に変更します。

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"  
    
  2. 確認プロンプトで「 y」と入力し Enter キーを押します。 次のメッセージが表示されるまで待ちます。

    フィールドの名前が変更された。

1 つのプロジェクトにインポートされた変更を確認するには

  1. チーム エクスプローラーで、 最新のステータスに更新 Refresh を選択します。

    最新の更新プログラムは、フィールド名に加えた変更を含むサーバーからダウンロードされます。 更新が完了するまで数秒待ちます。

  2. [新しいクエリ 選択して クエリを作成します。

  3. クエリ エディターで、クリックして句を追加しますリンクをクリックして行を追加し、空白の Field セルを選択し、セルに「Rank」と入力します。 結果一覧の上に表示される次のメッセージ。 このメッセージは、Rank が見つからないことを示します。

    クエリを実行して、クエリの結果を表示します。 TF51005: クエリは存在しないフィールドを参照します。 このエラーは、 <<Rank>> が原因で発生します。

  4. Field セルから値 Rank を削除し、セルに「Important Rank」と入力します。

  5. Operator セルで<>を選択し、Value セルに「1」と入力します。

  6. Query ツール バーで、クエリを実行するRun を選択します。

  7. 結果内の任意の行のショートカット メニューを開き、 Column オプションを選択します。 Available 列一覧内を下にスクロールします。 Rank フィールドが存在しなくなったが、Important Rank フィールドが存在していることに注意してください。

  8. [Available columns] ボックスで [Important Rank を選択し、> ボタン (選択した列を追加) を選択します。 OK を選択します。

    Microsoft.VSTS.Common.Rank のフレンドリ名の名前が、クエリ ビルダーと結果リスト全体で Rank から Important Rank に変更されていることに注意してください。

  9. クエリを閉じます。 クエリの保存を求めるメッセージが表示されたら、[ No を選択します。

  10. 新しいタスク作業項目を作成します。 [新しい作業項目] リンクを選択し、[Task] を選択します。

    この作業項目は、変更およびインポートした作業項目タイプから作成されます。

  11. Status ボックスで、名前が変更されたフィールドのラベルRankが変更されていないことに注意してください。 これは、作業項目フォームのフィールド ラベルのスコープが親プロジェクトに設定され、指定したサーバー全体のフィールド名に依存しないためです。

    Note

    作業項目フォームのフィールド ラベルを変更する方法の詳細については、「 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。

変換するフィールドのデータ型を確認する

  1. 次のコマンドを入力して、同期するフィールドに割り当てられているデータ型 (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. 次の確認プロンプトが表示されます。

    これにより、Team Foundation Server のフィールド {0} のプロパティが変更されます。 Do you want to continue? (続行してもよろしいですか?)

  3. 0を入力してフィールドを変更することを確認するか、1を入力して要求を取り消します。

    変更要求が成功すると、次の確認メッセージが表示されます。

    フィールドが更新されました。

    変更要求が失敗すると、エラー メッセージが表示されます。 最も一般的な間違いは、システム参照フィールドを変更しようとしたり、文字列以外のデータ型のフィールドを変更しようとしたりすることです。 これらの操作はサポートされていません。

フィールドの削除

フィールドを削除する前に、フィールドが使用されていないことを確認します。 フィールドが使用中の場合は、プロジェクト コレクションからフィールドを削除する前に、そのフィールドを使用する作業項目の種類からフィールドを削除する必要があります。 次のコマンドは、Collection1 からフィールドAdventureWorks.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  
    

    フィールドに表示される情報で、次の例のように、 Use の値が "使用されていません" であることを確認します。

    Field: MyCompany.MyProcess.MyField  
    Name: MyField  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
  2. Use フィールドが使用されていることを示す場合は、一覧に表示されている各プロジェクトの作業項目の種類ごとに削除する必要があります。 たとえば、 Microsoft.VSTS.TCM.SystemInfo フィールドは、4 つのプロジェクト (Arroyo、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 」と入力して、この手順を完了します。