カスタム分析ビューを使用してチームでフィルター処理された Power BI レポートを作成する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
分析ビューでは、チームに基づいて作業項目をフィルター処理するためのフィールド条件がサポートされます。 ただし、Power BI レポートのフィルター処理をサポートするために使用できるチーム固有のフィールドはありません。 各作業項目は特定のエリア パスに関連付けられますが、エリア パスは複数のチームに関連付けることができます。 この一対多の関連付けのため、Analytics ではチーム固有のフィールドは提供されません。
ただし、この記事に記載されている手順を使用して、チームに対してフィルター処理を行うことができます。 一般的なプロセスでは、Analytics ビューと teams エンティティの間にマッピング テーブルが導入されます。
Note
同様に、Analytics ビュー内の作業項目のボード固有の列を決定する際に制限があります。 ただし、この記事で説明するガイダンスは、ビューで選択した履歴データへの依存関係のため、ボードの場所では機能しません。
前提条件
- 分析データを表示してサービスにクエリを実行するには、 Basic アクセス以上のプロジェクトのメンバーである必要があります。 既定では、すべてのプロジェクト メンバーには、Analytics のクエリと 分析ビューの定義に対するアクセス許可が付与されます。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件については、「 Analytics にアクセスするためのアクセス許可と前提条件」を参照してください。
分析ビューに AreaSK フィールドを追加する
既定の分析ビューに含まれる既定のフィールドには、Power BI でリレーションシップ マッピングを作成するために必要なフィールドは含まれません。 次の手順を使用して、モデルにマッピング テーブルを導入し、チームでのフィルター処理をサポートするために必要なリレーションシップを構築します。
- 分析ビューを編集 します。
- [フィールド] タブで、[AreaSK] フィールドを追加します。
- 更新されたビューを保存します。
- Power BI Desktop の Analytics ビューに関連付けられている Power BI pbix ファイルを読み込みます。
- ビューを更新し、AreaSK フィールドが期待どおりに表示されることを確認します。
チームのテーブルを追加する
次の手順では、Power BI データ モデルに Teams エンティティを追加し、Power BI でリレーションシップを作成するために必要なマッピング テーブルを生成します。 このプロセスでは、Power Query エディターを使用して 3 つのクエリを追加する必要があります。
Power BI Desktop で、ビューに関連付けられている Power BI pbix ファイルを読み込みます。
[データの取得] を選択 します。
[空のクエリ] オプションを 選択します 。
詳細エディターを開きます。
次のクエリ コードを追加し、Analytics ビューに合わせて組織情報とチーム名を置き換えます。
let #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Teams?$select=TeamName,TeamSK&$filter=TeamName eq '{TeamName1}' or TeamName eq '{TeamName2}"), #"Select columns" = Table.SelectColumns(#"Get table", {"TeamName", "TeamSK"}) in #"Select columns"
クエリの名前を Teams に 変更します。
[ホーム] タブで、[新しいソース] を選択して別の空のクエリを追加し、その名前を [領域] に変更します。
詳細エディター開き、次のクエリ コードを追加して、ビューに合わせて組織の情報を置き換えます。
let #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaName,AreaSK"), #"Select columns" = Table.SelectColumns(#"Get table", {"AreaName", "AreaSK"}) in #"Select columns"
[ホーム] タブから [新しいソース] を選択して、別の空のクエリを追加し、AreaToTeam に名前を変更します。
詳細エディター開き、次のクエリ コードを追加して、ビューに合わせて組織の情報を置き換えます。
let #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaSK&$expand=Teams($select=TeamSK)"), #"Select columns" = Table.SelectColumns(#"Get table", {"AreaSK", "Teams"}), #"Expand Teams" = Table.ExpandTableColumn(#"Select columns", "Teams", {"TeamSK"}, {"TeamSK"}) in #"Expand Teams"
重要
3 つのクエリを追加するプロセスは、1,000 チーム以下にマップされるエリア パスでのみ機能します。
[ホーム] タブで、[閉じる] & [適用] を選択します。
次に、[最新の情報に更新] を選択して、AreaSK をビューに追加します。
Power BI リレーションシップ マッピングを作成する
最後の手順では、Power BI で必要なリレーションシップを作成します。
リレーションシップ ビューを開きます。
[ホーム] タブで、リレーションシップの管理を開きます。
[リレーションシップの管理] ダイアログで、次の手順を実行します。
a. 自動的に検出された可能性のあるリレーションシップを削除します。
b. [新規] を選択すると、ビューとエリアの間に双方向の多対一リレーションシップが作成されます。 詳細については、Power BI Desktop での DirectQuery を使用した双方向のクロスフィルター処理に関するページを参照してください。Areas と AreaToTeam の間に双方向の One to Many リレーションシップを作成します。
AreaToTeam と Teams の間に双方向の多対一リレーションシップを作成します。
レポート ビューに戻り、TeamName フィールドと TeamSK フィールドのコンテキスト メニューを開き、[非表示] オプションを選択します。
ビュー テーブルとチーム テーブルで対応する SK を非表示にします。
チームのレポート ビューをフィルター処理する
マッピングが設定されたので、Teams に基づいてレポート ビューをフィルター処理できます。 まず、チーム名に基づいてレポートにスライサーを追加します (必要に応じて空白を削除します)。
これで、Power BI でスライサーまたはその他のサポートされているフィルター機能を使用して、レポートのすべての視覚化をフィルター処理できるようになりました。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示