担当者が複数指定されている経路では、そのうちの 1 人が処理すればいい場合と全員が処理すればいい場合があります。
1人が処理すればいい場合はボタンの種類で「次に進む」を指定し、全員が処理すればいい場合は「次に進む(全)」を指定します。
では、複数人指定しているうちの 2 名が処理すれば次に進む場合はどうすればいいでしょう。
ここではそういったケースを実現する方法をご紹介します。
重要:
ここで使用するスクリプトについては、サポート対象外となります。入門書や Web サイトをご覧いただき解決してください。
設定の手順 - 入力フォーム
経路
申請から承認の流れ
仕組みについて
設定の手順 - 入力フォーム
モデルの編集画面を開いて、入力フォームにて以下の 4 つの入力フォームを作成します。
1. 最大承認者数
- 名前
- 最大承認者数
- タイプ
- 数値
- 初期値設定
- 2 以上の任意の数値を入力
- 経路ごとの表示・編集設定
- 最大承認者数をユーザーが入力できるようにする場合は申請経路を「編集可能」を、そうでない場合は「表示」を選択する
2. 承認者数
- タイプ
- カスタムラベル
- 名前
- 承認者数
- スクリプト
-
if (${承認者} == "") {
return 0;
}
var auth = ${承認者}.split(",");
return auth.length;
- 経路ごとの表示・編集設定
- 全経路で「表示」を選択
3. 承認者
- タイプ
- 単行テキスト
- 名前
- 承認者
- 経路ごとの表示・編集設定
- 全経路で「表示」を選択
4. 差し戻し用テキスト
- タイプ
- 単行テキスト
- 名前
- 差し戻し用テキスト
- 経路ごとの表示・編集設定
- 全経路で「表示」を選択
情報:
承認経路で「差し戻し」を使わない場合はこの項目は不要です。
経路
「経路」にて以下の設定を追加します。
処理(ボタン)の設定
「承認待ち」の経路の「承認」の処理の種類を「終了(全)」に変更します。
「承認2」の処理を追加します。ボタンの種類は「次に進む」を選択します。
ボタン表示切替で「承認」「承認2」に、それぞれ以下のスクリプトを追加します。
「承認」のスクリプト
if(${最大承認者数} != ${承認者数} + 1) {
return true;
}
reutrn false;
「承認2」のスクリプト
if(${最大承認者数} == ${承認者数} + 1) {
return true;
}
reutrn false;
自動処理の追加(承認)
「承認」に以下の 4 つの自動処理を追加します。
次の自動処理を飛ばす(初回承認者の場合はスキップ)
- 自動処理の種類
- 次の自動処理を飛ばす
- 自動処理の名前
- 初回承認者の場合はスキップ
- スキップする条件
- いずれかを満たす
${承認者数} が次と同じ 0
- スキップ数
- 1
入力フォーム更新(承認者に承認者を追加)
- 自動処理の種類
- 入力フォーム更新
- 自動処理の名前
- 承認者に承認者を追加
- 更新対象項目名
- 承認者
- 更新内容
- ${承認者},${承認待ち.処理者}
次の自動処理を飛ばす(初回承認者でない場合はスキップ)
- 自動処理の種類
- 次の自動処理を飛ばす
- 自動処理の名前
- 初回承認者でない場合はスキップ
- スキップする条件
- いずれかを満たす
${承認者数} が次と異なる 0
- スキップ数
- 1
入力フォーム更新(承認者を直接追加)
- 自動処理の種類
- 入力フォーム更新
- 自動処理の名前
- 承認者を直接追加
- 更新対象項目名
- 承認者
- 更新内容
- ${承認待ち.処理者}
自動処理の追加(差し戻し)
「差し戻し」に以下の自動処理を追加します。
- 自動処理の種類
- 入力フォーム更新
- 自動処理の名前
- 承認者をクリア
- 更新対象項目名
- 承認者
- 更新内容
- ${差し戻し用テキスト}
情報:
差し戻しを使わない場合は不要です。
担当者設定
担当者設定にて担当者に2人以上の担当者を指定します。
申請から承認の流れ
モデルを保存したら、テストのため作成を行って確認します。確認目的なので、決裁待ちの担当者には作成者を設定します。
承認の経路で 1 人目(管理さん)の承認を実行します。
承認の経路で 2 人目(神谷町さん)の承認を実行します。
承認の経路で 3 人目(広尾さん)の承認を実行します。
これまでと違い、「承認2」が表示されます。
恵比寿さんの承認なしで決裁待ちの経路に進みます。
仕組みについて
前項でご確認いただいたように、入力フォーム「最大承認者数」「承認者数」「承認者」が次に進める上で必要になります。
「最大承認者数」は、承認者が複数人設定されているうち、何人が承認すれば次の経路に進めるかを表しています。今回の例では担当者を 4 人設定し、3 人が承認すれば次に進めるので「3」が初期値に設定されています。この数を変更すると承認者を増減できます。
「承認者」は承認した人のメールアドレスが表示されます。これは「入力フォームアップデート」自動処理で承認者のメールアドレスを追加する仕組みで実現しています。
「承認者数」は承認した人数を表します。申請した時点では「0」が表示されています。1 人目の承認者が承認すると「1」に変わります。「承認者」に追加されたメールアドレスの値をスクリプトで計算して取得しています。
また、「承認」の処理についてはタスクを進めずに留めるため、「次に進む(全)」を設定したいのですが、1 つの経路で「次に進む」「次に進む(全)」の両方を作成することができないので「終了(全)」を用いています。