次に進む(全)/ 終了(全)で最後の人が処理した時だけ自動処理を実行する方法
Gluegent Flow をご利用いただいている多くのお客様は「次に進む(全)」や「終了(全)」をご利用いただいているのではないでしょうか。
「次に進む(全)」「終了(全)」とは、経路の担当者が複数選択されていた時に、全員が処理するまでその経路にとどまるボタンの種類です。
「次に進む(全)」「終了(全)」が設定された経路で自動処理を追加している時、一人ひとりがボタンをクリックするたびに自動処理が実行されてお困りではないでしょうか。
今回はこのお悩みを解消する方法をご紹介します。
1. 入力フォームの作成
それでは早速ご紹介します。
今回は簡単な申請→承認→決裁の経路のモデルを使ってご紹介します。承認経路に「次に進む(全)」が設定されており、メール送信自動処理を追加しています。
まず、以下の入力フォームを作成します。
■承認待ちの担当者
タイプ:単行テキスト
経路ごとの表示・編集設定:全経路で「表示」を選択
■承認待ちの担当者数
タイプ:カスタムラベル
個別設定:以下のスクリプトを追加
if ((${承認待ちの担当者} == undefined) || ${承認待ちの担当者} == "") {
return 0;
}
return ${承認待ちの担当者}.split(',').length;
経路ごとの表示・編集設定:全経路で「表示」を選択
■現在処理した人の数
タイプ:単行テキスト
経路ごとの表示・編集設定:全経路で「表示」を選択
■この人が処理したら?
タイプ:カスタムラベル
個別設定:以下のスクリプトを追加
return ${現在処理した人の数} + 1;
経路ごとの表示・編集設定:全経路で「表示」を選択
2. 自動処理の追加(申請経路)
続いて、申請経路に以下の自動処理を追加します。
■入力フォームアップデート自動処理
自動処理の名前:任意
更新対象項目名:承認待ちの担当者
更新内容:${承認待ち.担当者}
■入力フォームアップデート自動処理
自度処理の名前:任意
更新対象項目名:現在処理した人の数
更新内容:0
3. 自動処理の追加(承認経路)
最後に、承認経路に以下の自動処理を追加します。
■入力フォームアップデート自動処理
自動処理の名前:任意
更新対象項目:現在処理した人の数
更新内容:${この人が処理したら?}
■次を飛ばす自動処理
自動処理の名前:任意
スキップする条件:いずれかを満たす
${承認待ちの担当者数} が次と異なる ${現在処理した人の数}
スキップ数:1
■メール送信自動処理
※各種設定は運用に合わせて行なってください。
解説
「承認待ちの担当者」には申請経路で追加した最初の「入力フォームアップデート自動処理」により、対象経路の担当者のメールアドレスがカンマ区切りで入力されます。
「承認待ちの担当者数」には「承認待ちの担当者」をカンマで分割したメールアドレスの件数が表示されます。
「現在処理した人の数」には最初は 0 が表示されます。
「この人が処理したら?」には、「現在処理した人の数」+1 の値が表示されます。
承認経路の「入力フォームアップデート自動処理」が実行されることで、「この人が処理したら?」の値が「現在処理した人の数」に入力されます。
つまり、処理する毎に 1 ずつカウントアップされます。
「承認待ちの担当者数」と「現在処理した人の数」が異なる場合は、「メール送信自動処理」はスキップされるため、実行されません。
最後の担当者のときのみ、これらの値が一致するため、メール送信自動処理が実行されます。
「グループが指定された場合、グループ全員の決定が必要」のチェックがオンの場合、承認待ちの経路に来た時にグループからグループメンバーの表示に変わります。
もし、申請と承認待ちの経路の間に経路がある場合は、申請経路の1つ目の入力フォームアップデート自動処理と同じものを追加してください。
※1
各入力フォームは申請から承認の経路までは非表示にしないでください。非表示にすると正常に動作しません。もし、これらの内容を表示したくない場合は、フォームレイアウトで「Google ドキュメント」または「HTMLレイアウトエディタ―」をお使いください。レイアウト上にこれらの入力フォームのプレースホルダーを入力しないことで非表示にすることができます。
※2
申請の2番目の入力フォームアップデート自動処理は「差し戻し」や「やり直し」された時のためのものです。これらの操作を行う可能性がない場合は、不要です。
※3
次を飛ばす自動処理のスキップ数は、その後に実行する自動処理の個数に合わせて変更してください。
「次に進む(全)」「終了(全)」は自動処理との相性がイマイチでしたが、この方法を使うことで利用の機会が広がるのではないでしょうか。スクリプトがありますので、敬遠したくなりそうですが、複雑なことはやっていません。皆様もぜひご活用ください。
(SUTO)