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関数のドキュメントです。