ごきげんよう、百合宮桜です!
うっかり Power Automate のアップデートに気づいたことを呟いたら、有識者をワラワラと釣り上げてしまったので、お詫びに検証してみました。
Dataverse を利用するので、有償ライセンスが必要です。
今回のお題は、「開始して承認を待機」アクションで「連続した承認」を選択して、多段階承認をした時に「今どのステップにいるのか」を見つけることです。
連続した承認での多段階承認の方法についてはコルネさんが記事を書いてくださっているので、こちらも合わせてお読みください。
承認はどこに保存されるのか?
承認は、承認が走り始めた時に Dataverse の「承認」テーブルにレコードが作成されます。
ここに保存されるのは承認アクションが起動したという記録です。
その為、ここには承認段階(第一承認・第二承認など)、承認の応答(Approve や Rejectなど)や承認時のコメントは含まれていません。
あくまでも承認が走っているということが記録されているだけです。
承認の応答はどこに保存されるのか?
Approve や Reject という応答は、Dataverse の「承認応答」というテーブルに保存されます。
連続した承認を使用した場合は、承認者が承認 or 却下の判断をするタイミングで、1ステップに1レコードずつ作成されます。
先に出てきた「承認」テーブルの承認列に格納されている一意識別子が、「承認応答」テーブルでは「承認 ID インデックス」に格納されています。
その為、「承認 ID インデックス」列に格納されている、承認テーブルの一意識別子を検索して、当該承認のレコードを探します。
多段階承認だと当該承認のレコードが複数出てきます。
どの段階なのかという区別は「ステップ番号」という列に格納されます。
連続した承認のステップ番号は、0 から始まります。
その為、第一承認の「RyotaHR」がステップ番号「0」、第二承認の「SakuraIT」がステップ番号「1」という具合に登録されます。
結論
仕組みとしては上記のような感じなので、
申請段階を確認したい承認の一覧を作成し、承認応答テーブルにレコードが作成されたときにステップ番号を確認するような仕組みを作れば、申請段階を把握することはできます。
結構長くなりそうなので、私が考えたフローは別記事に分けたいと思います。