2018年5月15日火曜日

【事例:Gluegent Flow】ワークフロー申請に締切日時を設ける

日常で運用しているワークフローの中には申請する日や時間に制限付きものがあります。例えば、有給申請はその日の10時までに申請してほしい、交通費精算は25日までに申請してほしいといったものです。そこで、このようなご要望にお応えしたGluegent Flowでの「事例」をご紹介します。

10時を過ぎたら申請を拒否したい

このお客様はお弁当の注文をワークフローで申請するよう、Gluegent Flowで申請モデルを作成していました。申請モデルの画面上に「お弁当の申請は当日10時までにお願いします」と書いていても、10時を過ぎて申請するユーザーがいて、申請したのにお弁当が届かないというトラブルになっていました。
そこで、10時を過ぎたら申請できないようなワークフローを作成したいと思い立ちました。
私達はお客様のご要望を受け、入力チェックで現在の時刻が10時を過ぎていたら申請できないような申請モデルを提案しました。以下にその内容をご説明します。

カスタムバリデーションを使う

申請モデルの入力チェック「カスタムバリデーション」はJavaScriptを使うことで柔軟な入力チェックを実現できます。
このお客様には以下のスクリプトを使うよう提案しました。
var now = new Date();    // 今の日時を取得する
var hour = now.getHours();    // 今の日時から「時間」のみを取得する
if (hour >= 10) {    // 「時間」が 10 以上だったら
    return false;     // false を返す=エラー
}    // そうでないなら=9以下だったら
return true;    // true を返す=OK
設定画面は以下の通りです。

このカスタムバリデーションを導入したことで、10時以降は申請できないため、上記のようなトラブルは起きなくなりました。

日付で制限するには?

このように、getHoursメソッドを使うことで、現在日時の「時」のみを取得できます。
同様に、毎月26日以降は交通費申請を受け付けないという申請モデルを作りたい場合は、getDateメソッドを使うといいでしょう。

いかがだったでしょうか。Gluegent Flowのカスタムバリデーションを使うことで申請に対する締切日時の設定ができることがお分かりいただけたのではないかと思います。カスタムバリデーションを利用するにはJavaScriptで記述する必要があり、その点について少し抵抗感がある方もいらっしゃるかもしれませんが、入門者向け書籍やサイト等、参考となる学習先はたくさんございます。ちょっとした工夫でお客様のやりたいことを実現できます。ぜひご利用をご検討ください。