Power Automateで使える関数の一つに「workflow関数」というものがあります。
実行したフローの情報を取得できる関数です。この記事では「workflow関数」の取得できる情報や使い道についてまとめていきます。
取得できるデータ
workflow関数で取得できるjson形式のデータはこちら。
(※値はそれっぽいものを適当に入れています。)
{ "id": "/workflows/a756b5f39fca4e72afb2f02bc0ae0901", "name": "21644460-be8d-40bf-bf58-5594c59e6618", "type": "Microsoft.Logic/workflows", "location": "japaneast", "tags": { "flowDisplayName": "workflow関数テスト", "environmentName": "Default-99b882ac-b043-6d2e-9579-dbbec4dfb778", "logicAppName": "21644460-be9d-40bf-af58-5594d59e7718", "environmentFlowSuspensionReason": "Default:2D97b882ac:2Da045:2D4d2e:2E9579:2Ddbbef4dccc629-None" }, "run": { "id": "/workflows/b756b5f39fca4e72afb2f02bc0ae0901/runs/08585429441071882851047185048CU56", "name": "08585429441071882851047185048CU56", "type": "Microsoft.Logic/workflows/runs" }
}
{ "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "location": { "type": "string" }, "tags": { "type": "object", "properties": { "flowDisplayName": { "type": "string" }, "environmentName": { "type": "string" }, "logicAppName": { "type": "string" }, "environmentFlowSuspensionReason": { "type": "string" } } }, "run": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" } } } }
}
公式ドキュメントに記載が見当たらず、色々な場所を確認して調べました。(間違っていたらごめんなさい)
入力(関数) | 出力される内容 |
---|---|
workflow()[‘id’] | ? |
workflow()[‘name’] | ? |
workflow()[‘type’] | ? |
workflow()[‘location’] | 環境のタイムゾーン(?) |
workflow()[‘tags’][‘flowDisplayName’] | フロー表示名 画面上で入力したフローの名前 |
workflow()[‘tags’][‘environmentName’] | 環境ID 初期値の環境は”Default-”が付きます |
workflow()[‘tags’][‘logicAppName’] | フローID |
workflow()[‘tags’][‘environmentFlowSuspensionReason’] | 停止理由(?) |
workflow().run.id | ? |
workflow().run.name | 実行ID |
workflow().run. type | ? |
workflow関数でできること
workflow関数を利用することで、下記のことができます。
- 実行されたフローの表示名が取得できる。
- 実行されたフローのページへのURLが作成できる。
- 実行されたフローの実行結果画面へのURLが作成できる。
フローの実行された結果を管理したり、アクションと組み合わせれば色々な使い方が出来そうです。
workflow関数を利用することでフローの画面へのURLを作成することができます。
この画面へのURLを作成することができます。
フローのページへのURLの構成はこのようになっています。
https://japan.flow.microsoft.com/manage/environments/【環境ID】/flows/【フローID】/details
workflow関数で実行されたフローの情報を取得してURLを作成することこのようになります。
https://flow.microsoft.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/details
次に実行画面へのURLです。
実行されたフローの詳細を確認することができる画面です。
フロー実行結果へのページへのURLの構成はこのようになっています。
https://japan.flow.microsoft.com/manage/environments/【環境ID】/flows/【フローID】/runs/【実行ID】
workflow関数で実行されたフローの情報を取得してURLを作成することこのようになります。
https://flow.microsoft.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/runs/@{workflow()['run']['name']}
2022年6月頃から”https://flow.microsoft.com”は”https://make.powerautomate.com“に変更されます。
“make.powerautomate.com”へリダイレクトされた後は”https://make.powerautomate.com“で設定されることをおすすめします。
workflow関数の使い道「エラーが発生した時に便利」
フローでエラーが発生した際、Teamsへ実行結果へのURLの通知を送ることでエラー内容の確認がスムーズにできます。
エラーが起こる(起こりそう)なアクションの1つ後ろにTeasmやメールなど通知できるアクションを作成します。今回はTeamsで作成していきます。
メッセージの内容にエラーが出たフローやフローの実行結果画面へのURLを設定します。
↓こちらをコピペしてご利用ください。
<p>処理が失敗しました。
<br>
<br>■フローはこちら
<br>
<a href="https://flow.microsoft.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/details"> @{workflow()['tags']['flowDisplayName']}</a>
<br>
<br>■実行結果はこちら
<br>
<a href="https://flow.microsoft.com/manage/environments/@{workflow()['tags']['environmentName']}/flows/@{workflow()['name']}/runs/@{workflow()['run']['name']}">実行結果を開く</a></p>
右上の3点リーダーから「実行条件の構成」で実行されるタイミングを設定します。
最初は「に成功しました」にチェックが入っているので、それ以外の項目にチェックを入れます。
エラーが出るとTeamsにメッセージでが送信されます。
フローの画面や実行結果の画面などにアクセスできるので、フローへのアクセスがスムーズにできます。
参考記事など
workflow関数のドキュメントです。