次の方法で共有


リンクされた作業項目のサンプル クエリとレポートを一覧表示する

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

この記事では、他の作業項目にリンクされている作業項目を一覧表示するレポートを作成する方法について説明します。 たとえば、次のレポートは、親子リンクの種類を持つユーザー ストーリーにリンクされている機能の一覧を示しています。

フィーチャーとユーザー ストーリー テーブル レポートの親子リンクのスクリーンショット。

リンクの種類と作業項目のリンクの詳細については、「 ユーザー ストーリー、問題、バグ、その他の作業項目をリンクする」を参照してください

その他のサンプル クエリには、別のバグへの重複リンクを含むバグの一覧表示や、別のバグへの重複リンクを含まないバグの一覧が含まれます。

Note

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

前提条件

  • アクセス レベル: Basic 以上のプロジェクトのメンバーである必要があります。
  • Permission: 既定では、プロジェクト メンバーは 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 'Feature' "
            &"and State ne 'Closed' and State ne 'Removed' "
            &"and startswith(Area/AreaPath,'{areapath}') " 
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Child' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,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 'Feature'

ユーザー ストーリーを返します。

and State ne 'Closed' and State ne 'Removed'

StateClosed または Removed に設定されているフィーチャーを省略します。

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

特定のエリア パスの下にフィーチャーのみを含める'{areapath}'を置き換えます。
チーム名でフィルター処理するには、filter ステートメント Teams/any(x:x/TeamName eq '{teamname})'を使用します。

&$select=WorkItemId,Title,WorkItemType,State,AreaSK

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

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

AssignedToIteration、およびAreaエンティティの展開に使用するフィールドを指定します。

Links(

Links エンティティを展開します。

$filter=LinkTypeName eq 'Child'

リンクされた作業項目をフィルター処理して、 Child リンクの種類を持つアイテムのみに絞り込みます。 その他の例としては、 ParentChildDuplicateDuplicate OfAffectsAffected By があります。

and TargetWorkItem/WorkItemType eq 'User Story';

リンクされたユーザー ストーリーのみを含めます。

$select=LinkTypeName;

返す LinkTypeName プロパティを選択します。

$expand=TargetWorkItem($select=WorkItemType, WorkItemId, Title, State)

返すリンクされた作業項目のプロパティを選択します。

)

Links()句を閉じます。

以下に示す 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 State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Teams でフィルター処理されたリンクされたユーザー ストーリーを返す

次のクエリは、エリア パスではなくチーム名でフィルター処理される点を除き、この記事で前に使用したクエリと同じです。

以下に示す 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 State ne 'Closed' "
            &"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), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,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 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
            &"Links( "
                &"$filter=LinkTypeName eq 'Duplicate' "
                &"and TargetWorkItem/WorkItemType eq 'Bug'; "
                    &"$select=LinkTypeName; "
                &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
            &") "
    ,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 'Bug' "
                &"and State ne 'Closed' "
                &"and startswith(Area/AreaPath,'{areapath}') "
                &"and not (Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug')) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$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 エディターでデータを変換する

レポートを作成する前に、複数のフィールドを含むレコードを返す列を展開する必要があります。 この例では、次のレコードを展開します。

  • Links
  • Links.TargetWorkItem
  • Area
  • Iteration
  • AssignedTo

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

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

列を展開したら、1 つ以上のフィールドの名前を変更できます。 たとえば、列 AreaPath の名前を Area Path に変更できます。 データ テーブル ビューで名前を変更することも、後でレポートを作成するときに名前を変更することもできます。 方法については、「 Rename 列フィールドを参照してください。

この例では、次のフィールドの名前が変更されています。

元のフィールド名 名前の変更
Links.TargetWorkItem.ID ターゲット ID
LinksLinkTypeName リンクの種類
Links.TargetWorkItem.State ターゲットの状態
Links.TargetWorkItem.Title ターゲット タイトル

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

すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。

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

リンクされた作業項目を一覧表示するテーブル レポートを作成する

  1. Power BI で、VisualizationsTable レポートを選択します。

    親子リンク リスト テーブル レポートの Power BI の [視覚化] と [フィールド] の選択のスクリーンショット。

  2. 次のフィールドを、 Columns に示されている順序で追加します

    • IDを右クリックして 集計しないを選択します。
    • State
    • Title
    • ターゲット ID右クリックして 集計しない] を選択します。
    • リンクの種類
    • ターゲットの状態
    • ターゲット タイトル

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

フィーチャーとユーザー ストーリー テーブル レポートのサンプル親子リンクのスクリーンショット。