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

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

重要

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

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

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

      重要

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

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

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

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

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

Note

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

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

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

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

または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 (Team エクスプローラー へのアクセスを提供) または Visual Studio Team エクスプローラー 2017 を無料でインストールできます

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

ヒント

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

前提条件

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

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

Note

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

構文

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]  

Parameters

パラメーター 説明
/collection:CollectionURL プロジェクト コレクションの URI を指定します。 次に例を示します。

オンプレミスの形式:http://ServerName:Port/VirtualDirectoryName/CollectionName
仮想ディレクトリを使用しない場合は、次の形式 http://ServerName:Port/CollectionNameを使用します。
/n:RefName
/n:Name
作業項目の種類フィールドの参照名。
/index 指定したフィールドのインデックス作成を有効または無効にすることを指定します。 インデックス作成を有効にする場合は onインデックス作成を無効にするには off を指定します。
/name:NewName フィールドの新しい名前を指定します。
/syncnamechanges 作業項目フィールドを使用して名前を格納し、Active Directory またはワークグループで変更が行われると更新するように指定します。 このオプションは、文字列のデータ型を持つフィールドが指定されている場合にのみ有効です。typename

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

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

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

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

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

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

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

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

  • ルールは 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変更します

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

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

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

  1. チーム エクスプローラーで、[最新の情報に更新] を選択します更新

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

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

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

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

  4. [フィールド] セルから値 Rank削除し、セルに「重要なランク」と入力します。

  5. [演算子] セルを選択<>し、[値] セルに「1と入力します。

  6. [クエリ] ツール バーの [実行] を選択クエリを実行するします。

  7. 結果の任意の行のショートカット メニューを開き、[列のオプション] を選択 します。 [使用可能な列] の一覧を下にスクロールします。 [ランク] フィールドは存在しなくなったが、重要なランク フィールドが存在していることに注意してください。

  8. [使用可能な列] ボックスで [重要なランク] を選択し、ボタンを選択します (選択した列を>追加します)。 OK を選択します。

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

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

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

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

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

    Note

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

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

    Field: MyCompany.MyProcess.MyField  
    Name: MyField  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
  2. [使用] フィールドにフィールドが使用中であることが示されている場合は、一覧に表示されている各プロジェクトの作業項目の種類ごとにフィールドを削除する必要があります。 たとえば、この 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  
    

    このフィールドを削除する前に、定義されている各プロジェクトに一覧表示されている各作業項目の種類からフィールドを削除する必要があります。 フィールドを削除するには、フィールド参照名を含む要素をControl削除FIELDして、作業項目の種類の定義を変更します。 作業項目の種類、FIELD (定義) 要素の参照、およびコントロールのインポート、エクスポート、管理を参照してください。

プロジェクト コレクションからフィールドを削除する

次のコマンドを入力してフィールドを MyCompany.MyProcess.MyField 削除し、Enter キーを押します。

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

確認プロンプトに「y」と入力して、この手順を完了します。