CSV ファイルを使用して作業項目を一括でインポートおよび更新する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure DevOps で CSV 形式のファイルを使用して、作業項目を一括でインポートおよびエクスポートします。 一括インポートと更新には引き続き Excel を使用できますが、Excel を必要としないネイティブのインポートとエクスポート機能を使用できます。 詳細については、「Excel での作業項目の一括追加または変更」を参照してください。
CSV 形式のファイルを使って、作業項目を一括でエクスポートできます。 一括インポートと更新には引き続き Excel を使いますが、Excel を必要としないクエリからのネイティブ エクスポート機能を使用できます。 詳細については、「Excel での作業項目の一括追加または変更」を参照してください。
Note
エクスポート機能は、Azure DevOps Server 2019 Update 1 以降のバージョンで使用できます。 インポート機能は、Azure DevOps Server 2020 と Azure DevOps Services で使用できます。
新しい作業項目をインポートする
新しい作業項目をインポートするには、以下の手順を実行します。
Note
最大 1,000 個の作業項目を一度にインポートできます。 インポートする作業項目が 1,000 個を超える場合、複数のファイルに分割し、個別にインポートします。
ローカル環境に import.csv ファイルを作成し、Visual Studio Code または Excel で開きます。
ファイルには、Work Item Type と Title フィールドが含まれている必要があります。 必要に応じて、他のフィールドを含めることができます。 既定のフィールドの一覧については、「作業項目フィールドのインデックス」を参照してください。
次の例では、Priority フィールドを含めています。
Work Item Type,Title,Priority Issue,Fix issues with code,1 Issue,Merge testing modules,3 Issue,Open private preview for select customers,2 Issue,Enable feature for customer champs,2 Issue,Remove old test code,2
プロジェクトの Web ポータルから、[Boards]> > [クエリ] を開き、[作業項目のインポート] を選択します。
[ファイルの選択] を選択し、ファイルを選択して、[インポート] を選択します。
インポート プロセスにより、インポートされた作業項目が保存されていない状態でクエリ ビューに読み込まれます。 ID は割り当てられません。
結果を確認し、[項目の保存] を選択して作業項目を保存します。
ヒント
追加する新しい作業項目には ID を割り当てないでください。割り当てるとエラー メッセージが表示されます。
データに問題がある作業項目が強調表示されます。 作業項目を保存する前に、データの問題を解決します。 この例では、[優先度] フィールドに無効な値があります。 作業項目を直接開いてデータを修正します。 または、一括編集を使って、同じ問題がある複数の作業項目を修正します。
ヒント
- 親子リンク: 「親子リンクを含む CSV ファイルをインポートできますか?」に示されているように、タイトル列をインデントすることで、インポートする作業項目間に親子リンクを追加できます。 ただし、作業項目をインポートまたは更新するときに、他のリンクの種類を指定することはできません。
- 既定の [状態] フィールド: 新しい作業項目をインポートすると、既定で [状態] フィールドが常に "新規" に設定されます。 インポートのプロセスで別の状態を指定することはできません。 インポートされた作業項目の状態を変更する必要がある場合は、以下に示す回避策を使用できます。
- 既定の "新規" 状態で、作業項目をインポートします。
- インポートした作業項目を CSV ファイルにエクスポートします。
- エクスポートされた CSV ファイルの [状態] フィールドの値を更新します。
- 更新した CSV ファイルを再インポートすることで、目的の状態を設定します。
- 既定の [区分] フィールドと [イテレーション] フィールド: [区分] フィールドと [イテレーション] フィールドの既定値は最上位ノードです。 CSV ファイルで明示的に指定されていない限り、インポート プロセスにこれらのフィールドのコンテキストがないため、この動作が発生します。 インポート中に特定の "区分" パスと "イテレーション" パスを設定するには、これらのフィールドが正しい値で CSV ファイルに含まれていることを確認します。 例:
Title,Description,Area Path,Iteration Path "Sample Work Item","This is a sample description.","Project\Team","Project\Sprint 1"
既存の作業項目を更新する
作業項目を更新するには、エクスポートして編集する可能性のあるすべての列を含むクエリを作成します。 クエリを保存し、[CSV にエクスポート] を選んで、data.csv ファイルをローカル コンピューターに保存します。
エクスポートされたファイルは、次の構文のようになります。
ID,Work Item Type,State,Assigned To,Title,Tags "1043","Issue","To Do",,"Fix issues with code", "1044","Issue","To Do",,"Merge testing modules", "1045","Issue","To Do",,"Open private preview for select customers", "1046","Issue","To Do",,"Enable feature for customer champs", "1047","Issue","To Do",,"Remove old test code",
作業項目を編集します。 CSV ファイルには、ID、Work Item Type、Title、State の各フィールドが含まれている必要があります。 その他のフィールドは必要に応じて含めることができます。
Note
ID フィールドをインポートするときは、名前とメール アドレスを
"Display Name <email>"
の形式で入力します。 たとえば、Jamal Hartnett に作業を割り当てるには、"Jamal Hartnett <fabrikamfiber4@hotmail.com>"
と指定します。 システムが有効なユーザーとして認識しない値を指定すると、インポートで問題が発生する可能性があります。次の例では、既存の作業項目の複数の値を変更します。
"1043","Issue","To Do","Jamal Hartnett <fabrikamfiber4@hotmail.com>","Fix issues with code",architecture "1044","Issue","To Do","Jamal Hartnett <fabrikamfiber4@hotmail.com>","Merge testing modules",testing "1045","Issue","To Do","Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>","Open private preview for select customers","customer focus" "1046","Issue","To Do","Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>","Enable feature for customer champs","customer focus" "1047","Issue","To Do","Christie Church <fabrikamfiber1@hotmail.com>","Remove old test code",architecture```
ファイルを保存してインポートします (前のインポート セクションの手順 4 から 6 を参照)。
結果リストでは、値の変更を含む作業項目は太字で強調表示されます。 [項目の保存] を選んで変更を適用します。
データに問題がある作業項目は赤で強調表示され、保存する前に解決する必要があります。 この例では、Assigned To フィールドの値が無効です。 作業項目を直接開いてデータを修正します。 同じ問題を持つ作業項目が多数ある場合は、一括編集を使用できます。
リストを CSV ファイルとしてエクスポートする
どのクエリからでも、作業項目の一覧をコンマ区切りのリストとしてエクスポートできます。 クエリを開き、 アクション アイコンを選んで、[CSV にエクスポート] を選びます。
Note
Azure DevOps Server 2019 Update 1 以降のバージョンが必要です。
作業項目をエクスポートして別のプロジェクトにインポートする
この機能を使うと、あるプロジェクトから作業項目をエクスポートして、別のプロジェクトにインポートできます。 ただし、別のプロジェクトにインポートする前に、作業項目 ID を削除する必要があります。 ID が指定されている新しい作業項目をプロジェクトにインポートしようとすると、エラーが発生します。
HTML フィールドのインポート
説明や受け入れ条件などの HTML フィールドには、リッチ テキストの書式設定が含まれています。 この書式設定を保持するには、次のタスクを実行します。
- CSV ファイルの関連フィールド内に HTML タグが含まれていることを確認します。
- CSV ファイルを Excel にインポートします。
Excel では、複数行のテキスト フィールドを処理する場合の形態が異なることがあるため、インポート後に書式を確認することが重要です。 CRLF
で終わる行は、文を <p>... </p>
で囲んで置き換えます。
たとえば、Description フィールドに 3 行のテキストが含まれる次の作業項目をインポートできます。
Work Item Type,Title,Description
"Product Backlog Item","Hello World Web Site - 8","<p><strong> You can include bold text</strong></p><p><em> And italic text</em></p><p><u> Underline text</u></p>"
複数行のフィールドをプレーンテキストに変換する
複数行フィールドの HTML を無効にしてプレーンテキストにするには、witadmin changefield
コマンドを使用します。 詳細な手順については、「作業項目フィールドの管理」を参照してください。
コマンドの例:
witadmin changefield /collection:CollectionURL /n:FieldName /type:PlainText
一貫しない書式設定を処理する
さまざまな Microsoft 製品で HTML フィールドを使用すると、書式設定が一貫しない問題が発生する可能性があります。 このような問題を処理するためのヒントを次に示します。
- インポート後に書式設定を確認し、要件に適合しているか確認します。
- 適切な HTML タグと構造を使用して、不一致を最小限に抑えます。 複数のタグを追加する場合は、セミコロンで区切ります。 詳しくは、「Excel で実行できるタスクと実行できないタスク」をご覧ください。
HTML コンテンツの管理と互換性の確保の詳細については、Azure DevOps における HTML コンテンツに関する公式ドキュメントを参照してください。
よく寄せられる質問
Q: 同じ CSV ファイルで、新しい項目のインポートと、既存の項目の更新を行うことはできますか?
A: もちろん、可能です。 新しい作業項目の ID フィールドは空のままにします。 次の例では、Epic の最後のエントリには ID が指定されていません。
ID,Work Item Type,Title,Assigned To,State,Priority,Tags
"16504","Issue","Fix issues with code",,"To Do","1",
"16505","Issue","Merge testing modules",,"To Do","3",
"16506","Issue","Open private preview for select customers",,"To Do","2",
"16507","Issue","Enable feature for customer champs",,"To Do","2",
"16508","Issue","Remove old test code",,"To Do","2",
,"Epic","Track Telemetry for data imports",,"To Do","2",
Q: 親子リンクを含む CSV ファイルをインポートできますか?
A: はい。タイトル列をインデントすることで、子作業項目を追加できます。 次の例では、既に定義されているエピックの下に、3 つの子問題を追加しています。
ID,Work Item Type,Title 1,Title 2,Assigned To,State,Priority,Tags
"165","Epic","Track Telemetry for data imports",,,"To Do","2",
,"Issue",,"Fix issues with code",,"To Do","1",
,"Issue",,"Open private preview for select customers",,"To Do","2",
,"Issue",,"Enable feature for customer champs",,"To Do","2",
Q: インポートされるファイルにエラーがあるかどうかは、どうすればわかりますか?
A: たとえば、スペースとハイフンを含むタグを追加し、それをエクスポートに含めることでテストできます。 インポートは同じ形式になっている必要があります。 CSV ファイルの書式設定に関する問題は、インポート ビューの [結果] ページに表示されます。 書式と構文が正しくなるまで、作業項目をインポートすることはできません。
作業項目の結果には、個々の作業項目で検出されたデータ エラーが常に一覧表示されます。 Web ポータルまたは CSV ファイルで各エラーを修正してから、もう一度インポートします。
Q: 一部の ID 値でエラーが発生するのはなぜですか?
A: Web UI を使うと、ID ピッカーによって追加の手順が実行されてユーザーが検証されます。 最初に、そのユーザーが組織内の有効なユーザーかどうかを確認します。そうでない場合は、Microsoft Entra ID 内の ID を検索します。 ユーザーが Microsoft Entra ID 内にあっても組織内に存在しない場合、そのユーザーは有効な ID に追加されます。 CSV からインポートするときは、パフォーマンス上の理由から、ID ピッカーではこれらの追加手順を実行しません。 一致する UPN が既に組織に存在するかどうかだけを確認します。一致する UPN が見つからない場合は、ID が不明であることを報告します。
Q: CSV のインポートでは、すべての作業項目の種類がサポートされていますか?
A: いいえ。CSV のインポートでは、次の作業項目の種類はサポートされていません。
- コード レビュー リクエスト
- コード レビュー応答
- フィードバック要求
- フィードバック応答
- テスト ケース
- テスト計画
- テスト スイート
- 共有パラメーター
詳細については、「テスト ケースの一括インポートまたはエクスポート」を参照してください。