【PowerBI】「カードビジュアル」の結果をPowerAutomate でメール送信

カードビジュアルの値をそのまま自動メール送信したい

「データセットに対してクエリを実行する」アクションを使用すると、PowerBI 上のデータをPowerAutomate で利用することができる。 PowerBI 上のKPIをメール送信したり、KPIが基準値以上・以下のときにアラートを発したりというフローを組むことができる。

PowerAutomate でPowerBI のカードビジュアルの値を表示

[PowerBI] パフォーマンスアナライザーからクエリをコピー

PowerAutomate からPowerBI コネクタでDAXクエリを実行し、計算結果を取得することができる。DAXクエリはPowerBI のパフォーマンスアナライザーからコピーしたDAXクエリをそのまま使用すると便利。

最適化タブ>パフォーマンスアナライザーを選択し、パフォーマンスアナライザーのペインを開く。 記録の開始を押し、ビジュアルを更新する。 各ビジュアルの結果が表示されるので、使用したいデータのカードビジュアルを選択する。その後、「クエリのコピー」からDAXクエリを取得する。

パフォーマンスアナライザからDAXのクエリを取得する

「クエリのコピー」で取得したDAXクエリ

// DAX Query
EVALUATE
    ROW(
    "total_sales", 'financials'[total sales]
)

[PowerAutomate]PowerBI から(カード)データを取得するアクション

PowerAutomate で新しいフローを作成する。 アクションの追加でPower BI >「データセットに対してクエリを実行する」アクションを追加する。

データセットに対してクエリを実行する

パラメータとして、ワークスペース・データセットを指定する必要があるので、予めワークスペースに発行しておく必要がある。 クエリテキストは、パフォーマンスアナライザーから取得したDAXクエリをペーストする。 ビジュアルの名前は後続の処理で使用するので、識別・入力が容易な命名をしておく。

実行して結果を確認する。 カードビジュアルの内容をPowerAutomate で取り出すことができる。JSON形式で出力されるので、「118726350.26000008」を利用するためには少し工夫をする必要がある。

OUTPUTS>Body

{
  "results": [
    {
      "tables": [
        {
          "rows": [
            {
              "[total_sales]": 118726350.26000008
            }
          ]
        }
      ]
    }
  ],
  "firstTableRows": [
    {
      "[total_sales]": 118726350.26000008
    }
  ]
}

[PowerAutomate] 取得したデータを変数として初期化する

OutlookやTeamsで取得した値を再利用するため、「変数」として初期化する。

Variable>変数を初期化するアクションを追加する。

Type: 数値の値を取得する場合、[Type]は基本的にFloatにしておく。整数のはずなのにInterger型でエラーが発生することがあった。

Value: 'Get-Card-Value' > 「データセットに対してクエリを実行する」アクションの名前を入力する。 [total_sales] > 「データセットに対してクエリを実行する」アクションのOUTPUTS>Bodyから名前を入力する。 "[total_sales]": 118726350.26000008 の部分のこと。

outputs('Get-Card-Value')?['body/firstTableRows'][0]?['[total_sales]']

variables 実行結果

[
  {
    "name": "CardValue",
    "type": "Float",
    "value": 118726350.26000008
  }
]

変数の初期化

[PowerAutomate] メールの送信(V2)アクションでメールを送信する

メール送信のときにはformatNumber 関数を使用して、表示形式をフォーマットする。 Reference guide for expression functions - Azure Logic Apps | Microsoft Learn

%表示の場合:

formatNumber(variables('GetByDataset'), 'p')

円表示の場合:

formatNumber(variables('CardValue'), 'C','ja-jp')

カンマ区切り表示の場合:

formatNumber(variables('CardValue'),'N')

メール送信アクション

実行結果:メール本文

​
% :11,872,635,026.00 %
円:¥118,726,350
カンマ:118,726,350.26

参考

www.youtube.com