
クエステトラユーザのみなさん、こんにちは。開発責任者の畠中です。
今日の内容は、昔のブログの改訂になります。
バージョン 11.7 から登場しました「受信タスク(フォーム)」の使い方について、以下のブログの続きになります。
申込フォームで、メールの存在確認をはさむ — 受信タスク (フォーム) の使い方 —
前回のブログで作成したワークフローアプリは以下の通りです。
- 開始イベント(フォーム)でメールアドレスを入力してもらう。
- 1 で入力されたメールアドレスにメール送信。3 の URL を伝える。
- 受信タスク (フォーム) で続きの情報を入力してもらう。
- ヒューマンタスクはおまけ。
これの 3 ステップ目に「締め切り」がありませんでした。3 ステップ目の URL は類推が難しいとは言え、無期限だと攻撃されるリスクも高まります。申し込みを受け付ける側の業務の観点でも、締め切りを設定したほうが良いでしょう。そこで バージョン 11.8 から登場した、フォームの「締め切り」の機能を使います。
まずデータ項目について。締め切りを表すデータ項目を追加しました。初期値で締め切りを「7日後」に設定しています。
データ項目名 | 番号 | データ型 | 必須 | 開始イベント (フォーム) |
受信タスク (フォーム) |
ヒューマン タスク |
---|---|---|---|---|---|---|
件名 | – | – | – | – | – | 表示のみ |
メールアドレス | 0 | 文字型 単一行 |
〇 | 編集可 | 表示のみ | 表示のみ |
名前 | 1 | 文字型 単一行 |
〇 | – | 編集可 | 表示のみ |
フォームキー | 2 | 文字型 単一行 |
– | – | – | 表示のみ |
初期値
#{#randomString(20)} |
||||||
申し込み締め切り | 3 | 日時型 | – | – | – | 表示のみ |
初期値
processInstanceStartDatetime.addDays(7) |
受信タスク(フォーム)の設定を変更します。「データ編集許可」については、上のデータ項目の表の通りです。それ以外の設定について、記載します。締め切り時刻として「申し込み締め切り」の値、つまりプロセスインスタンスの開始から7日後を設定しています。
API キーの値を指定する文字型データ項目 | データ項目「フォームキー」 |
---|---|
送信完了ページ URL | 空のまま |
締め切り |
data['3'] |
受信タスク(フォーム) の設定を変えた上で、ワークフロー図は以下のように変更します。
締め切りを設定すると、受信タスク (フォーム) にタイマー境界イベントが現れます。実際のプロセスインスタンスの処理において、締め切り時刻に到達すると、受信タスク (フォーム) は強制的に終了し、トークンはタイマー境界イベントに移動します。トークンはタイマー境界イベントから終了イベントに移動しますので、その時点でプロセスインスタンスは終了します。締め切り時刻までに受信タスク(フォーム)が完了すれば、トークンは「受付担当」の「確認」タスクに移動します。
「送信」イベントから送られる、メールの本文も変更しています。最初にメールアドレスを入力してくれた人に、締め切りを伝えてあげる必要があります。その人には、メール以外から締め切りを知る術がありません。
宛先 |
${[メールアドレス:0]} |
---|---|
標題 | 申込ありがとうございました。 |
本文 | |
以下の URL にアクセスして、続きの入力をお願いします。 ${var[applicationRoot]}System/ReceiveTask/Form/1760/2/${[プロセスID]}/${[フォームキー:2]}/view 締め切り日時は以下の通りです。 ${[申し込み締め切り:3]} |
今回の改良は以上です。
昔の ブログ と比較してみると、設定はかなり簡単になりました。ワークフロー図もかなりシンプルになっています。