バグやユーザー ストーリーのサンプル レポートを開く

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

開いているバグやユーザー ストーリーを一覧表示するレポートを生成するには、Power BI でマトリックス レポートを選択し、この記事に記載されているクエリと同様のクエリを使用します。 生成するレポートには、次の図に示すように、[状態] フィールドと [割り当て済み] フィールド別に分類された未開のバグまたはユーザー ストーリーが一覧表示されます

Open Bugs サンプル マトリックス レポートのスクリーンショット。

Note

この記事では、OData クエリを使用したサンプル レポートの概要を読み、Power BI の基本的な理解を持っていることを前提としています。

前提条件

サンプル クエリ

バグやユーザー ストーリーをエリア パス、イテレーション パス、またはチームでフィルター処理するクエリがいくつか用意されています。 これらのクエリはすべて、履歴データではなく、現在の WorkItems データを返すエンティティ セットを指定します。

Note

フィルターまたはレポートの目的で使用できるプロパティを確認するには、「Azure Boardsのメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のPropertyEntityTypeNavigationPropertyBinding Pathの値のいずれかを使用してプロパティをEntitySet返したりできます。 各 は EntitySetEntityType対応します。 各値のデータ型の詳細については、対応する EntityType値に指定されたメタデータを確認してください。

エリア パスでフィルター処理されたバグ

次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

置換文字列とクエリの内訳

次の文字列を実際の値に置き換えます。 置換に角かっこを {} 含めないでください。 たとえば、組織名が "Fabrikam" の場合は、 ではなく {Fabrikam}を にFabrikam置き換えます{organization}

  • {organization} - 組織名
  • {project} - プロジェクト間クエリの場合は、チーム プロジェクト名を指定するか、"/{project}" を完全に省略します
  • {areapath} - エリア パス。 形式の例: Project\Level1\Level2

クエリの内訳

次の表では、クエリの各部分について説明します。

クエリ パーツ

説明

$filter=WorkItemType eq 'Bug'

バグを返します。

and StateCategory ne 'Completed'

完了した項目をフィルターで除外します。 状態カテゴリの詳細については、「Azure Boards のバックログとボードでのワークフロー カテゴリの状態の使用方法」を参照してください

and startswith(Area/AreaPath,'{areapath}')

特定のエリア パスで作業項目をフィルター処理します。 チーム名でフィルター処理するには、filter ステートメントを使用します Teams/any(x:x/TeamName eq '{teamname})'

&$select=WorkItemId, Title, WorkItemType, State, Priority, Severity, TagNames

返すフィールドを選択します。

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)

展開可能なプロパティ フィールド AssignedTo、、 AreaIterationを選択します。

チームでフィルター処理されたユーザー ストーリー

エリア パスではなく、1 つ以上のチームによって開いているバグのクエリを実行できます。

次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"and StateCategory ne 'Completed'' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

特定のエリア パスと反復パス内のユーザ ストーリー

次のクエリでは、特定のエリア パスと反復パスに対するユーザー ストーリーのフィルター処理がサポートされています。

次の Power BI クエリをコピーして、[データ>の空のクエリの取得] ウィンドウに直接貼り付けます。 詳細については、OData クエリを使用したサンプル レポートの概要を参照してください

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and startswith(Iteration/IterationPath,'{iterationpath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(省略可能)クエリの名前を変更する

既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。

Power BI クエリ メニュー オプションのスクリーンショット。クエリの名前を変更します。

Power Query エディターの列を展開する

この句は &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath) 、複数のフィールドを含むレコードを返します。 レポートを作成する前に、レコードを展開して特定のフィールドにフラット化する必要があります。 この例では、次のレコードを展開します。

  • AssignedTo
  • AreaPath
  • IterationPath

方法については、「Analytics データを変換して Power BI レポートを生成する」を参照してください

(省略可能)フィールドの名前を変更する

列を展開したら、1 つ以上のフィールドの名前を変更できます。 たとえば、列AreaPathArea Pathの名前を . 方法については、「列フィールドの名前を変更する」を参照してください

クエリを閉じて変更を適用する

すべてのデータ変換が完了したら、[ホーム] メニューから [閉じる] & [適用] を選択してクエリを保存し、Power BI の [レポート] タブに戻ります。

[閉じて適用] オプションPower Query エディタースクリーンショット。

マトリックス レポートを作成する

  1. Power BI で、[視覚化] の下にあるマトリックス レポートを選択します

    [バグを開く] レポートの Power BI の [視覚化] と [フィールド] の選択のスクリーンショット。

  2. 行に追加Assigned Toします

  3. 列に追加Stateします

  4. 1WorkItemId1 を値追加し、1WorkItemId' を右クリックし、[カウント] が選択されていることを確認します。

レポートの例が表示されます。

サンプルの Open Bugs マトリックス レポートのスクリーンショット。