2018年8月5日日曜日

FlowとSharePointのリストと組み合わせにメール承認機能を追加したフローの落とし穴

前回「FlowでSharePoint Onlineのリストの情報を取得し、その情報を基にメールを送信するフローを作成する」というフローを作成した際に、

メールを受信した側が、メール内のリンク(例えば「継続」「不要」)を押すだけで、その結果が戻ってきて、SharePoint Onlineのリストを更新してくれるくらいまでは作りこめると、より楽な運用に繋がりそうなので、次はその仕組みを考えてみようと思っている

と書いた。

この時点では、ここまでに作った処理の次アクションでApprovalのアクションを足し、その応答に対してSharePointのリストの対象の項目の内容を更新するだけだからいけるだろうと高を括っていた。そして作ったフローが以下。



これでは想定していた通りの挙動にはならなかった。

枠線で表現されているので考えたらわかりそうなものだけど、「Apply to each」の動きを考えていなかった。つまり、承認依頼のメールを投げる対象の行が複数行ある場合、頭の中ではそれぞれの行に対して並行してメールが飛ぶようなイメージだったが、この作りではそのようには動かない。並列ではなく直列の繰り返し。

対象行が2行以上あるとどのようなことが起こるかというと、

1.1行目の対象者に承認依頼のメールを送信する
2.受信した対象者が承認処理をする
3.承認の結果をもとにSharePointのリストを更新する
4.2行目の対象者に承認依頼のメールを送信する
(以下略)

つまり、前の行の対象者が承認なり却下なりの処理を行わない限り、次の対象者にメールは飛ばないということ。前の人がすぐに承認なり却下をしてくれる保証は一切ない。むしろしてくれない、と思った方が良い。とはいえ、一つのリストとの組み合わせだけで実現できそうなアクションも見当たらない。

(以下、追記)
考え方を変えて、要件を満たすために作ったフローがこちらのエントリー「Flowによる承認依頼とSharePointリストの更新を並列で行うための考え方」。

0 件のコメント:

コメントを投稿

Microsoft Ignite2018でもFlowのセッションは多数開催される様子

現地(フロリダ州オーランド)で9月24日~28日に開催されるMicrosoft Ignite 2018でもFlowに関連するセッションが多数盛り込まれている様子。 9月9日確認時点で、81セッションが登録されている。今年も現地に行く予定のため、いくつかは参加してみようと思...