クエステトラユーザのみなさん、こんにちは。開発責任者の畠中です。

今日の内容は、昔のブログの改訂になります。

バージョン 11.7 から登場しました「受信タスク(フォーム)」の使い方について、以下のブログの続きになります。

申込フォームで、メールの存在確認をはさむ — 受信タスク (フォーム) の使い方 —

前回のブログで作成したワークフローアプリは以下の通りです。

  1. 開始イベント(フォーム)でメールアドレスを入力してもらう。
  2. 1 で入力されたメールアドレスにメール送信。3 の URL を伝える。
  3. 受信タスク (フォーム) で続きの情報を入力してもらう。
  4. ヒューマンタスクはおまけ。

これの 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]}

今回の改良は以上です。

昔の ブログ と比較してみると、設定はかなり簡単になりました。ワークフロー図もかなりシンプルになっています。

%d人のブロガーが「いいね」をつけました。