全員が承認した後に条件アクションを使いたいとき、承認者が増えるたびに、条件アクションの右辺に「Approve, Approve…」という文字列を入力していました。
これを数式を入れることで解消できる方法がわかりましたので紹介します!

フローの全体図
サンプルのため、トリガーは「フローを手動でトリガーする」にしています。

手順と解説(詳細)
1. 「開始して承認を待機」アクションの確認
まずは通常の承認アクションを配置します。
今回は「開始して承認を待機」アクションで、承認の種類を「連続した承認」にしました。

2. 「条件」アクションの左辺に式を設定する
通常は動的コンテンツから「開始して承認を待機」の「結果」を選びますが、今回は「式」を使用します。
条件アクションを追加し、左辺(値の選択)をクリックして、「式」タブに以下のコードを入力してください。
replace(replace(outputs('開始して承認を待機')?['body/outcome'],',',''),'Approve','')
※注意: outputs('開始して承認を待機') の部分は、あなたのアクション名に合わせて書き換える必要があります(スペースはアンダースコアになります)。

なぜこの式でいいのか?
この式は以下の処理を行っています。
- 承認結果(例:
Approve, Approve)から、カンマ,を空文字に置換して消す。 - さらに
Approveという文字も空文字に置換して消す。 - 全員が承認した場合、何も残らず「空っぽ」になります。
- 誰かが拒否した場合、
Rejectという文字が残ります。
3. 右辺は「空欄」のままにする
左辺に式を入れたら、真ん中の条件は「等しい」、そして右辺は何も入力せず空欄のままにします。
これにより、「式の結果が空文字(=全員承認)であれば True(はい)」という判定になります。

4. 動作確認
これで設定は完了です。
承認者が2人でも、5人に増えても、全員が承認すれば「はい」に分岐し、一人でも拒否すれば「いいえ」に分岐することを確認しましょう。


コメント