カードビジュアルの値をそのまま自動メール送信したい
「データセットに対してクエリを実行する」アクションを使用すると、PowerBI 上のデータをPowerAutomate で利用することができる。 PowerBI 上のKPIをメール送信したり、KPIが基準値以上・以下のときにアラートを発したりというフローを組むことができる。
[PowerBI] パフォーマンスアナライザーからクエリをコピー
PowerAutomate からPowerBI コネクタでDAXクエリを実行し、計算結果を取得することができる。DAXクエリはPowerBI のパフォーマンスアナライザーからコピーした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