Azure Boards で CSV ファイルを使用して一括作業項目をインポート、更新、エクスポートする

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

Azure Boards で CSV 形式のファイルを使用して、作業項目を一括でインポートおよびエクスポートします。 一括インポートと更新には引き続き Excel を使用できますが、Excel を必要としないネイティブのインポートとエクスポート機能を使用できます。 詳細については、「Excel での作業項目の一括追加または変更」を参照してください。

CSV 形式のファイルを使って、作業項目を一括でエクスポートできます。 一括インポートと更新には引き続き Excel を使いますが、Excel を必要としないクエリからのネイティブ エクスポート機能を使用できます。 詳細については、「Excel での作業項目の一括追加または変更」を参照してください。

新しい作業項目をインポートする

新しい作業項目をインポートするには、以下の手順を実行します。

Note

最大 1,000 個の作業項目を一度にインポートできます。 インポートする作業項目が 1,000 個を超える場合、複数のファイルに分割し、個別にインポートします。

  1. ローカル環境に import.csv ファイルを作成し、Visual Studio Code または Excel で開きます。

  2. ファイルには、Work Item TypeTitle フィールドが含まれている必要があります。 必要に応じて、他のフィールドを含めることができます。 既定のフィールドの一覧については、「作業項目フィールドのインデックス」を参照してください。

    次の例には、 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
    
  3. プロジェクトの Web ポータルから、[Boards]> > [クエリ] を開き、[作業項目のインポート] を選択します。

    [クエリ]、[Import work items]\(作業項目のインポート\) が選択されている [Boards] ページを示すスクリーンショット。

  4. [ファイルの選択] を選択し、ファイルを選択して、[インポート] を選択します。

    [インポート] ボタンが強調表示された [作業項目のインポート] ダイアログを示すスクリーンショット。

    インポート プロセスにより、インポートされた作業項目が保存されていない状態でクエリ ビューに読み込まれます。 ID は割り当てられません。

  5. 結果を確認し、[項目の保存] を選択して作業項目を保存します。

    インポートされた作業項目のアイテムを保存するを示すスクリーンショット。

    ヒント

    追加する新しい作業項目に ID を割り当てないでください。 ID を割り当てると、エラー メッセージが表示されます。

  6. データに問題がある作業項目が強調表示されます。 作業項目を保存する前に、データの問題を解決します。 この例では、[優先度] フィールドに無効な値があります。 作業項目を直接開いてデータを修正します。 または、一括編集を使って、同じ問題がある複数の作業項目を修正します。

    修正するデータの問題を含む作業項目を示すスクリーンショット。

次のヒントが役立ちます。

  • 親子リンク:親子リンクを含む CSV ファイルをインポートできますか?」に示されているように、タイトル列をインデントすることで、インポートする作業項目間に親子リンクを追加できます。 ただし、作業項目をインポートまたは更新するときに、他のリンクの種類を指定することはできません。

  • 既定の状態フィールド: 新しい作業項目をインポートする場合、 State フィールドは既定で New に設定されます。 インポートのプロセスで別の状態を指定することはできません。 インポートされた作業項目の状態を変更する必要がある場合は、次の回避策を使用します。

    1. 既定の New 状態で作業項目をインポートします。
    2. インポートした作業項目を CSV ファイルにエクスポートします。
    3. エクスポートした CSV ファイルの State フィールド値を更新します。
    4. 更新した CSV ファイルを再インポートすることで、目的の状態を設定します。
  • 既定の領域フィールドと反復フィールド: Area フィールドと Iteration フィールドの既定値は最上位ノードです。 CSV ファイルで明示的に指定されていない限り、インポート プロセスにこれらのフィールドのコンテキストがないため、この動作が発生します。 インポート時に特定の Area パスと Iteration パスを設定するには、これらのフィールドが正しい値で CSV ファイルに含まれていることを確認します。 次に例を示します。

    Title,Description,Area Path,Iteration Path
    "Sample Work Item","This is a sample description.","Project\Team","Project\Sprint 1"
    

既存の作業項目を更新する

  1. 作業項目を更新するには、エクスポートして編集する可能性のあるすべての列を含むクエリを作成します。 クエリを保存し、 Export to CSV を選択して data.csv ファイルをローカル コンピューターに保存します。

    [CSV にエクスポート] オプションが選択されているクエリの作業項目を示すスクリーンショット。

    エクスポートされたファイルは、次の例のようになります。

    ID,Work Item Type,Title,Assigned To,State,Tags
    "272","Issue","Fix issues with code","Active","",
    "273","Issue","Merge testing modules","Active","",
    "274","Issue","Open private preview for select customers","Active","",
    "275","Issue","Enable feature for customer champs","Active","",
    "276","Issue","Remove old test code","Active","",
    
  2. 作業項目を編集します。 CSV ファイルには、IDWork Item TypeTitle の各フィールドが含まれている必要があります。 その他のフィールドは必要に応じて含めることができます。

    Note

    ID フィールドをインポートするときは、名前とメール アドレスを "Display Name <email>" の形式で入力します。 たとえば、Jamal Hartnett に作業を割り当てるには、"Jamal Hartnett <fabrikamfiber4@hotmail.com>" と指定します。 システムが有効なユーザーとして認識しない値を指定すると、インポートで問題が発生する可能性があります。

    次の例では、既存の作業項目の値を変更します。

    ID,Work Item Type,Title,Assigned To,State,Tags
    "272","Issue","Fix issues with code","Jamal Hartnett <fabrikamfiber4@hotmail.com>","Active",
    "273","Issue","Merge testing modules","Jamal Hartnett <fabrikamfiber4@hotmail.com>","Active",
    "274","Issue","Open private preview for select customers","Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>","Active",
    "275","Issue","Enable feature for customer champs","Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>","Active",
    "276","Issue","Remove old test code","Christie Church <fabrikamfiber1@hotmail.com>","Active",
    
  3. 前のセクションで説明したように、ファイルを保存してインポートします。

  4. 結果リストでは、値の変更を含む作業項目は太字で強調表示されます。 [項目の保存] を選んで変更を適用します。

    [アイテムを保存する] オプションを含む作業項目のインポートを示すスクリーンショット。

  5. データに問題がある作業項目は赤で強調表示され、保存する前に解決する必要があります。 この例では、Assigned To フィールドの値が無効です。 作業項目を直接開いてデータを修正します。 同じ問題を持つ作業項目が多数ある場合は、一括編集を使用できます。

    [割り当て済み] フィールドに無効な値が表示されているスクリーンショット。

リストを CSV ファイルとしてエクスポートする

どのクエリからでも、作業項目の一覧をコンマ区切りのリストとしてエクスポートできます。 クエリを開き アクション アイコンを選んで、[CSV にエクスポート] を選びます。

Note

Azure DevOps Server 2019 Update 1 以降のバージョンが必要です。

CSV としてクエリをエクスポートしているスクリーンショット。

作業項目をエクスポートして別のプロジェクトにインポートする

この機能を使うと、あるプロジェクトから作業項目をエクスポートして、別のプロジェクトにインポートできます。 ただし、別のプロジェクトにインポートする前に、作業項目 ID を削除する必要があります。 ID が指定されている新しい作業項目をプロジェクトにインポートしようとすると、エラーが発生します。

HTML フィールドのインポート

説明や受け入れ条件などの HTML フィールドには、リッチ テキストの書式設定が含まれています。 この書式設定を保持するには、次のタスクを実行します。

  1. CSV ファイルの関連フィールド内に HTML タグが含まれていることを確認します。
  2. CSV ファイルを Excel にインポートします。

Excel では、複数行のテキスト フィールドを処理する場合の形態が異なることがあるため、インポート後に書式を確認することが重要です。 CRLF で終わる行は、文を <p>... </p> で囲んで置き換えます。

たとえば、 Description フィールドに 3 行のテキストを含む次の作業項目をインポートできます。

Work Item Type,Title,Description
"Product Backlog Item","Hello World Web Site - 8","<p><strong>&nbsp;You can include bold text</strong></p><p><em>&nbsp;And italic text</em></p><p><u>&nbsp;Underline text</u></p>"

複数行のフィールドをプレーンテキストに変換する

複数行フィールドの HTML を無効にしてプレーンテキストになるようにするには、 witadmin changefield コマンドを使用します。 詳細については、「 作業項目フィールドの管理を参照してください。

コマンドの例:

witadmin changefield /collection:CollectionURL /n:FieldName /type:PlainText

一貫しない書式設定を処理する

さまざまな Microsoft 製品で HTML フィールドを使用すると、書式設定が一貫しない問題が発生する可能性があります。 このような問題を処理するためのヒントを次に示します。

  • インポート後に書式設定を確認して、要件を満たしていることを確認します。
  • 適切な HTML タグと構造を使用して、不一致を最小限に抑えます。 複数のタグを追加する場合は、セミコロンで区切ります。 詳しくは、「Excel で実行できるタスクと実行できないタスク」をご覧ください。

HTML コンテンツの管理と互換性の確保の詳細については、「 Provide ヘルプ テキスト、ハイパーリンク、または Web コンテンツを作業項目フォームに表示するを参照してください。

よく寄せられる質問

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",

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",

Excel ビューを示すスクリーンショット。

Q: インポートされるファイルにエラーがあるかどうかは、どうすればわかりますか?

A: たとえば、スペースとハイフンを含むタグを追加し、それをエクスポートに含めることでテストできます。 インポートは同じ形式になっている必要があります。 CSV ファイルの書式設定に関する問題は、インポート ビューの [結果] ページに表示されます。 書式と構文が正しくなるまで、作業項目をインポートすることはできません。

[作業項目のインポート] ページの 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 のインポートでは、次の作業項目の種類はサポートされていません。

  • コード レビュー リクエスト
  • コード レビュー応答
  • フィードバック要求
  • フィードバック応答
  • テスト ケース
  • テスト計画
  • テスト スイート
  • 共有パラメーター

詳細については、「テスト ケースの一括インポートまたはエクスポート」を参照してください。