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

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

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

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

Note

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

前提条件

  • 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
  • サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。

サンプル クエリ

バグやユーザー ストーリーをエリア パス、イテレーション パス、またはチームでフィルター処理するクエリがいくつか用意されています。 これらのクエリはすべて、履歴データではなく、現在の 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 マトリックス レポートのスクリーンショット。