OData クエリを使用して Power BI レポートを作成する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Power BI Desktop を使用すると、Azure DevOps でプロジェクトのレポートの作成を簡単に開始できます。
Power BI Desktop をお持ちでない場合は、 ダウンロードし 無料でインストールします。
前提条件
Power BI レポートを作成するには、次の条件を満たす必要があります。
- プロジェクト メンバーになる。 そうでない場合は、今すぐ追加。 プロジェクトへのアクセス権を持つすべてのユーザー (利害関係者を除く) は、Analytics ビューを表示できます。
- View Analytics アクセス許可を Allow に設定します。 Analytics アクセスに対するアクセス許可を参照してください。
- Boards を有効にします。 Boards を再度有効にするには、「 Azure DevOps サービスを有効または無効にするを参照してください。
- Power BI Desktop October 2018 Update 以降のバージョンを使用します。
- 傾向レポートを生成する作業項目を一定期間追跡します。
- プロジェクト メンバーになる。 そうでない場合は、今すぐ追加。 プロジェクトへのアクセス権を持つすべてのユーザー (利害関係者を除く) は、Analytics ビューを表示できます。
- Analytics を有効またはインストールします。 拡張機能を追加したり、サービスを有効にしたりするには、アカウント所有者または Project Collection Administrators グループ のメンバーである必要があります。
- Boards を有効にします。 Boards を再度有効にするには、「 Azure DevOps サービスを有効または無効にするを参照してください。
- View Analytics アクセス許可を Allow に設定します。 Analytics アクセスに対するアクセス許可を参照してください。
- Power BI Desktop October 2018 Update 以降のバージョンを使用します。
- 傾向レポートを生成する作業項目を一定期間追跡します。
Power BI クエリを作成する
次のように Power BI にデータをプルする Power BI クエリを作成します。
[データの取得] を選択し、[クエリします。
Power BI クエリ エディターで、[詳細エディター] を選択します。
詳細エディター ウィンドウが開きます。
内容を次のクエリに置き換えます。
let The query you provided has a syntax issue due to the placement of double quotes. Specifically, the `$apply` and `$orderby` parameters should be part of the URL string, but they are not correctly concatenated. Here is the corrected version:
let
Source = OData.Feed (
"https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.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,Area/AreaPath), aggregate($count as Count))"
&"&$orderby=DateValue",
null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
)
in
Source
サンプル クエリ内の値に置き換えます。
サンプル クエリには、値に置き換える必要がある文字列があります。
{organization}
- 組織名{project}
- チーム プロジェクト名。 または、プロジェクト間クエリの場合は、/{project}
を完全に省略します{areapath}
- エリア パス。 形式: Project\Level1\Level2{startdate}
- 傾向レポートを開始する日付。 形式: YYYY-MM-DDZ。 例:2022-09-01Z
は 2022 年 9 月 1 日を表します。 引用符で囲む必要はありません。
Done を選択してクエリを実行します。
Power BI では、認証が必要になる場合があります。 詳細については、「 Client 認証オプション」を参照してください。
[領域]、[イテレーション]、[AssignedTo] 列の展開
このクエリでは、Power BI で使用する前に展開する必要がある複数の列が返されます。 $expand
ステートメントを使用して取り込まれたエンティティは、複数のフィールドを含むレコードを返します。 エンティティをフィールドにフラット化するには、レコードを展開する必要があります。 このようなエンティティの例としては、 AssignedTo
、 Iteration
、 Area
があります。
詳細エディターを閉じ、Power Query エディターに残っている間に、フラット化する必要があるエンティティの展開ボタンを選択します。
たとえば、 Area の展開ボタンを選択し、展開するプロパティを選択して、 OKを選択します。 ここでは、フラット化する
AreaName
とAreaPath
を選択します。AreaName
プロパティは、Node Name フィールドに似ています。Note
選択できるプロパティは、クエリで返すように要求されたプロパティによって異なります。 プロパティを指定しない場合は、すべてのプロパティを使用できます。 これらのプロパティの詳細については、 Areas、 Iterations、および Users のメタデータ参照を参照してください。
テーブルにエンティティ フィールドが含まれるようになりました。
展開する必要があるエンティティを表すすべてのフィールドについて、手順 1 から 3 を繰り返します。 これらのフィールドは、 Record が展開されていない場合にテーブル列に表示されます。
フィールドとクエリの名前を変更し、[閉じて適用]
完了したら、列の名前を変更することもできます。
列ヘッダーを右クリックし、 Rename... を選択します。
また、クエリの名前を既定の Query1 から意味のあるものに変更することもできます。
完了したら、 Close & Apply を選択してクエリを保存し、Power BI に戻ります。
レポートを作成する
Power BI には、レポートできるフィールドが表示されます。
Note
次の例では、どの列も名前が変更されていないことを前提としています。
単純なレポートの場合は、次の手順を実行します。
- [Power BI 視覚化] [折れ線グラフ] を選択します。
- フィールド "DateValue" を Axis に追加する
- [DateValue] を右クリックし、[日付階層] ではなく [DateValue] を選択します
- フィールド "State" を Legend に追加する
- フィールド "Count" を Values に追加する
- WorkItemId フィールドを右クリックし、 Sum が選択されていることを確認します
レポートの例: