【Power Automate】多段階承認フローの担当者を動的に設定する
Power Automate の承認コネクタで、『連続した承認』(多段階承認) が実装されました。※2024/06
『開始して承認を待機』アクションの [承認の種類] プロパティで『連続した承認』を指定すると、多段階での承認フローが作成できます。
[承認ステップ] プロパティで [+新しい項目の追加] をクリックすると担当者を増やしていけるような UI になっています。しかし、この設定方法だと固定の人数でしか設定することができません。
[承認ステップ] プロパティの右上にある [アレイ全体の入力に切り替える] をクリックすると、設定されている JSON 形式の文字列が確認できます。
上記の様に3名の担当者を設定した場合は、以下のような JSON 形式の文字列になっています。
メールアドレスの配列を上記のような JSON 形式の文字列に変換することができれば、動的に多段階の承認ルートを設定できるということです。
変換方法
例として、今回はインスタント クラウドフローを構築します。
複数ユーザーを設定できる UI の準備
『フローを手動でトリガーする』トリガーに [+入力の追加] から『電子メール』を追加します。
メールアドレスが格納された配列の作成
『フローを手動でトリガーする』トリガーの『電子メール』には、指定したユーザーメールアドレスがセミコロン区切りで格納されています。『作成』アクションで split 関数を使用して配列に変換します。※ここではアクションの名前を『作成:セミコロン区切りを配列に変換』に変更しています。
split(triggerBody()?['email'], ';')
配列の各アイテムを加工する
『選択』アクションを使って配列のアイテムを JSON 形式に加工します。
※作成した配列を Apply to each アクションの繰り返し処理で変換してもよいです。
range(0, length(outputs('作成:セミコロン区切りを配列に変換')))
concat('{"assignedTo":"', outputs('作成:セミコロン区切りを配列に変換')[item()], '"}')
変換した配列をカンマ区切りで結合して JSON 形式の配列にする
concat('[',body('結合:カンマ区切りでつなげる'),']')
作成した文字列を JSON データに変換する
『JSON の解析』で作成した文字列を JSON データに変換します
{
"type": "array",
"items": {
"type": "object",
"properties": {
"assignedTo": {
"type": "string"
}
},
"required": [
"assignedTo"
]
}
}
これで完成です。この処理を子フロー化しておくと汎用的に使えます。
承認ステップに設定
[承認ステップ] に生成した JSON データを指定します。
参考サイト