作業項目フィールドの管理
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 を参照するユーザー名の割り当てに使用されるカスタム作業項目フィールドの同期を手動で有効にする必要があります。 ユーザー設定フィールドを含むプロジェクト コレクションごとに、フィールドごとに同期を有効にする必要があります。
ユーザー名を表示するすべてのシステム参照フィールドには、属性syncnamechanges
true
に設定されています。 このようなフィールドには、System.AuthorizedAs、System.AssignedTo、System.ChangedBy、System.CreatedBy が含まれます。 既定のプロセス テンプレートのいずれかで定義されている各ユーザー名フィールドの同期が有効になります。 詳細については、「 割り当てとワークフロー フィールドを参照してください。
同期が有効になった後、フィールドに静的文字列が表示されなくなります。 代わりに、ユーザー アカウントに関連付けられている名前がフィールドに表示されます。 Active Directory またはワークグループでユーザー名を変更すると、 syncnamechanges
が true
に設定されているフィールドに新しい名前が自動的に表示されます。
syncnamechanges
属性を文字列フィールドに割り当てると、フィールドは常に有効なユーザー名を受け入れます。 ただし、次のいずれかの条件が true
されている場合、このフィールドでは Team Foundation Server または Active Directory に格納されるグループ名は許可されません。
VALIDUSER
ルールは、すべての作業項目の種類で指定されます作業項目の種類に対して
VALIDUSER
ルールが指定されているALLOWEDVALUES
ルールは作業項目の種類に対して指定され、そのルールにはグループを除外するフィルター条件があります詳細については、「 すべての FIELD 要素」を参照してください。
作業項目の種類ごとに変更できる属性
フィールドに対して定義されている次の属性または値を変更するには、フィールドが表示される作業項目タイプ定義を変更します。
- 作業項目フォームに表示される名前 。 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
フィールドの名前を変更する
チームが使用する名前付け規則を満たすように、作業項目フィールドのフレンドリ名を変更できます。 新しい名前は、プロジェクト コレクション内のすべてのプロジェクトの変更されたフィールドを参照するすべての作業項目の種類に適用されることに注意してください。 作業項目クエリでフィルター条件を定義すると、フレンドリ名が表示されます。 作業項目フォームに表示される名前は、フィールドに定義されているフレンドリ名とは異なる場合があります。
作業項目フィールドの名前を変更するには
次のコマンドを入力して、
Microsoft.VSTS.Common.Rank
に割り当てられたフレンドリ名の名前を Important Rank に変更します。witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"
確認プロンプトで「 y」と入力し Enter キーを押します。 次のメッセージが表示されるまで待ちます。
フィールドの名前が変更された。
1 つのプロジェクトにインポートされた変更を確認するには
チーム エクスプローラーで、 Refresh を選択します。
最新の更新プログラムは、フィールド名に加えた変更を含むサーバーからダウンロードされます。 更新が完了するまで数秒待ちます。
[新しいクエリ 選択して クエリを作成します。
クエリ エディターで、クリックして句を追加しますリンクをクリックして行を追加し、空白の Field セルを選択し、セルに「Rank」と入力します。 結果一覧の上に表示される次のメッセージ。 このメッセージは、Rank が見つからないことを示します。
クエリを実行して、クエリの結果を表示します。 TF51005: クエリは存在しないフィールドを参照します。 このエラーは、 <<Rank>> が原因で発生します。
Field セルから値 Rank を削除し、セルに「Important Rank」と入力します。
Operator セルで<>を選択し、Value セルに「1」と入力します。
Query ツール バーで、Run を選択します。
結果内の任意の行のショートカット メニューを開き、 Column オプションを選択します。 Available 列一覧内を下にスクロールします。 Rank フィールドが存在しなくなったが、Important Rank フィールドが存在していることに注意してください。
[Available columns] ボックスで [Important Rank を選択し、> ボタン (選択した列を追加) を選択します。 OK を選択します。
Microsoft.VSTS.Common.Rank のフレンドリ名の名前が、クエリ ビルダーと結果リスト全体で Rank から Important Rank に変更されていることに注意してください。
クエリを閉じます。 クエリの保存を求めるメッセージが表示されたら、[ No を選択します。
新しいタスク作業項目を作成します。 [新しい作業項目] リンクを選択し、[Task] を選択します。
この作業項目は、変更およびインポートした作業項目タイプから作成されます。
Status ボックスで、名前が変更されたフィールドのラベルRankが変更されていないことに注意してください。 これは、作業項目フォームのフィールド ラベルのスコープが親プロジェクトに設定され、指定したサーバー全体のフィールド名に依存しないためです。
Note
作業項目フォームのフィールド ラベルを変更する方法の詳細については、「 Control XML 要素リファレンスを参照してください。
新しいタスクを閉じ、作業項目の保存を求められたらを選択します。
フィールドの値としてレポートを変更する
次のコマンドは、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
同期を有効にする
ユーザー名フィールドの同期を有効にするには、次のコマンドを入力し、次に示す引数のデータを置き換えます。
witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true
次の確認プロンプトが表示されます。
これにより、Team Foundation Server のフィールド {0} のプロパティが変更されます。 Do you want to continue? (続行してもよろしいですか?)
0を入力してフィールドを変更することを確認するか、1を入力して要求を取り消します。
変更要求が成功すると、次の確認メッセージが表示されます。
フィールドが更新されました。
変更要求が失敗すると、エラー メッセージが表示されます。 最も一般的な間違いは、システム参照フィールドを変更しようとしたり、文字列以外のデータ型のフィールドを変更しようとしたりすることです。 これらの操作はサポートされていません。
フィールドの削除
フィールドを削除する前に、フィールドが使用されていないことを確認します。 フィールドが使用中の場合は、プロジェクト コレクションからフィールドを削除する前に、そのフィールドを使用する作業項目の種類からフィールドを削除する必要があります。 次のコマンドは、Collection1 からフィールドAdventureWorks.Field
を削除します。
witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field
フィールドが使用されていないことを確認する
次のコマンドを入力し、作業項目フィールドの参照名 (
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
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 」と入力して、この手順を完了します。