OData クエリを使用して Power BI レポートを作成する

Azure DevOps Services |Azure DevOps Server 2020 |Azure DevOps Server 2019

Power BI Desktop を使用すると、Azure DevOps でプロジェクトのレポートの作成を簡単に開始できます。

Power BI Desktop がない場合は、無料で ダウンロード してインストールすることができます。

Power BI のデスクトップでレポートを作成する手順に従って、 バグの日単位の傾向 を表示します。

  • Power BI クエリを作成する
  • Power BI 変換の作成
  • 未解決のバグの傾向レポートを作成する

前提条件

Power BI レポートを作成するには、次の条件を満たす必要があります。

  • プロジェクトのメンバーである必要があります。 プロジェクトがまだない場合は、プロジェクトを作成します。 「 無料のサインアップ」を参照してください。
  • プロジェクトメンバーとして追加されていない場合は、 今すぐ追加してください。 利害関係者を除く、プロジェクトへのアクセス権を持つすべてのユーザーは、分析ビューを表示できます。
  • [ View Analytics ] アクセス許可が [ 許可] に設定されていることを確認します。 「 アクセス許可を付与する」を参照してください。
  • ボード を有効にする必要があります。 再度有効にするには、「 Azure DevOps サービスを有効または無効にする」を参照してください。
  • 2018 年10月 以降のバージョン Power BI Desktop がインストールされている。 このクライアントアプリケーションは、公式の Power BI Desktop ダウンロードページからダウンロードできます。
  • 傾向レポートを生成する一定期間、追跡対象の作業項目を保持します。
  • プロジェクトのメンバーである必要があります。 プロジェクトがまだない場合は、プロジェクトを 作成します。
  • プロジェクトメンバーとして追加されていない場合は、 今すぐ追加してください。 利害関係者を除く、プロジェクトへのアクセス権を持つすべてのユーザーは、分析ビューを表示できます。
  • Analytics が有効になっているか、インストールされている。 拡張機能を追加したり、サービスを有効にしたりするには、アカウント所有者または プロジェクトコレクション管理者グループ のメンバーである必要があります。
  • ボード を有効にする必要があります。 再度有効にするには、「 Azure DevOps サービスを有効または無効にする」を参照してください。
  • [ View Analytics ] アクセス許可が [ 許可] に設定されていることを確認します。 「 アクセス許可を付与する」を参照してください。
  • 2018 年10月 以降のバージョン Power BI Desktop がインストールされている。 このクライアントアプリケーションは、公式の Power BI Desktop ダウンロードページからダウンロードできます。
  • 傾向レポートを生成する一定期間、追跡対象の作業項目を保持します。

Power BI クエリを作成する

次のように Power BI にデータをプルする Power BI クエリを作成します。

  1. [ データの取得]、[ 空のクエリ] の順に選択します。

    Power BI-空のクエリ

  2. Power BI クエリエディターで、[ 詳細エディター] を選択します。

    Power BI-選択詳細エディター

  3. [詳細エディター] ウィンドウが開きます。

    Power BI-詳細エディター

  4. 内容を次のクエリに置き換えます。

    let
       Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
            &"$apply=filter( "
                &"WorkItemType eq 'Bug' "
                &"and StateCategory ne 'Completed' "
                &"and startswith(Area/AreaPath,'{areapath}') "
                &"and DateValue ge {startdate}  "
                &") "
            &"/groupby( "
                &"(DateValue,State,WorkItemType,Priority,Severity,Area/AreaPath,Iteration/IterationPath,AreaSK), "
                &"aggregate($count as Count) "
                &") "
        ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
    in
        Source
    

    Power BI-詳細エディター貼り付けられたクエリ

  5. サンプルクエリ内の値を置き換えます。

    サンプルクエリには、値に置き換える必要がある文字列が含まれています。

    • {organization}-組織名
    • {project}-チームプロジェクトの名前。 または、クロスプロジェクトクエリの場合は、"/{project}" を完全に省略します。
    • {system.areapath}-自分の区分パス。 形式: Project\Level1\Level2
    • {startdate}-傾向レポートを開始する日付。 形式: YYYY-MM-DDZ。 例: 2019-07-01Z は 2019-7 月01を表します。 引用符で囲まないでください。

    Power BI-詳細エディター-クエリ内の文字列の置換

  6. [ 完了 ] をクリックしてクエリを実行します。

    アカウントに接続したことがない場合は、Power BI 認証が必要になることがあります。 詳細については、「 クライアント認証オプション 」を参照してください。

Power BI 変換の作成

区分、イテレーション、担当者の列を展開する

このクエリでは、Power BI で使用する前に拡張する必要があるいくつかの列が返されます。 OData $expand ステートメントを使用してプルされたエンティティは、いくつかのフィールドを持つレコードを返します。 レコードを展開して、エンティティをそのフィールドにフラット化する必要があります。 このようなエンティティの例として、担当者、イテレーション、領域などがあります。

Power Query エディターで詳細エディターを閉じた後、必要なエンティティの展開ボタンを選択します。

  1. [展開] ボタンをクリックします。

    エンティティ列の展開、Power BI + OData

  2. フラット化するフィールドを選択します。

    フラット化するフィールドを選択します。

  3. テーブルにエンティティフィールドが含まれるようになりました。

    テーブルにエンティティフィールドが含まれるようになりました。

  4. エンティティを表すすべてのフィールドに対して、手順 1. ~ 3. を繰り返します。区分、イテレーション、担当者。

フィールドとクエリの名前を変更し、& 適用を閉じる

完了したら、列の名前を変更することができます。

  1. 列ヘッダーを右クリックし、[名前の変更] を選択します。

    列名の変更 Power BI

  2. また、クエリの名前 を既定のクエリ名 からより意味のあるものに変更することもできます。

    クエリ名の変更 Power BI

  3. 完了したら、[ 閉じる & 適用 ] をクリックしてクエリを保存し、Power BI に戻ります。

    Power BI 閉じ & 適用

レポートを作成する

Power BI には、レポート可能なフィールドが表示されます。

注意

次の例では、どの列も名前を変更していないことを前提としています。

サンプル-ボードのロールアップ-フィールド

単純なレポートを作成するには、次の手順を実行します。

  1. Power BI ビジュアライゼーションの 折れ線グラフ を選択します。
  2. "DateValue" フィールドを [] に追加します。
    • "DateValue" を右クリックし、日付階層ではなく "DateValue" を選択します。
  3. フィールド "State" を 凡例 に追加します
  4. フィールド "Count" を に追加します
    • [作業項目] フィールドを右クリックし、[ 合計 ] が選択されていることを確認します。

レポートの例を次に示します。

サンプル-ボードロールアップ-レポート

複数のチームからデータを取り込む

多くの場合、複数のチームのデータを集計して比較する必要があります。 複数のチームから項目をプルする場合は、レポートに チームスライサーを追加 することを検討してください。 チームスライサーを使用すると、既存のレポートをチーム名でフィルター処理できます。

次の操作: