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

今日は、バージョン 11.7 の新機能「受信タスク(フォーム)」の使い方について、前回の話の続きになります。

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

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

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

これの 3 ステップ目に「締め切り」がありませんでした。
3 ステップ目の URL は類推が難しいとは言え、無期限だと攻撃されるリスクも高まります。
申し込みを受け付ける側の業務の観点でも、締め切りを設定したほうが良いでしょう。

そこで先ほどのワークフローアプリを改良します。まず締め切りを表すデータ項目を追加しました。
初期値で締め切りを「7日後」に設定しています。

データ項目 タイプ 必須 開始イベント
(フォーム)
受信タスク
(フォーム)
ヒューマン
タスク
件名 表示のみ
メールアドレス 文字型
単一行
編集可 表示のみ 表示のみ
名前 文字型
単一行
編集可 表示のみ
フォームキー 文字型
単一行
表示のみ
初期値

#{#randomString(20)}
申し込み締め切り 日時型 表示のみ
初期値

processInstanceStartDatetime.addDays(7)

メール本文も変更しています。締め切りを伝えてあげないと、解らないので。

宛先
${[メールアドレス:0]}
標題 申込ありがとうございました。
本文
以下の URL にアクセスして、続きの入力をお願いします。

${var[applicationRoot]}System/ReceiveTask/Form/1760/2/${[プロセスID]}/${[フォームキー:2]}/view

締め切り日時は以下の通りです。

${[申し込み締め切り:3]}

その上で、ワークフロー図を変更します。1 と 2 のステップの間に、「AND ゲートウェイ」をはさみます。これは分岐先全てにトークンを流すもので、以降の処理が並列に動作するようになります。

ゲートウェイのマニュアル

並列に動作するもう1つの処理には、タイマー中間イベントを使用します。もちろんタイマー中間イベントで指定する時刻は、先に追加したデータ項目「申し込み締め切り」です。

タイマー中間イベントのマニュアル

その後に全終了イベントを使い、締め切りが来た場合には、プロセス全体を強制終了させてしまうようにします。つまり並列で流れている、もう1つのトークンについても、強制的に終了するようにします。

全終了イベントのマニュアル

ただこのやり方だと、受信タスク(フォーム)が完了していても、締め切りが来たらプロセス全体が強制終了してしまいます。この簡単なワークフローアプリでは「確認」だけですが、この先の手続きが長い場合には、強制終了しないようにしたいです。そこで、ワークフローアプリを再改良します。

タイマー中間イベント後、XOR ゲートウェイをはさみ、受信タスク未終了の場合のみ、全終了イベントにトークンが流れる(プロセスが強制終了される)ようにします。受信タスクが終了済みの場合は、通常の終了イベントにトークンが流れ、プロセスの処理はそのまま続くようにします。

受信タスクが未終了か終了済みかどうかの判定は、受信タスクで初めて入力される必須データ項目 「名前」を活用します。「名前」が空であれば、受信タスク(フォーム)は未終了と判断し、全終了イベントにトークンを流します。空でなければ、受信タスク(フォーム)は終了済みと判定し、終了イベントにトークンを流します。終了イベントの場合、並列で流れているもう1つのトークンは終了しません。そのままワークフロー図上を、流れていきます。

条件名 条件式 遷移先
受信タスク未終了 名前(値が入力されていない) 全終了
デフォルトフロー 無条件に遷移 終了

今回は以上です。11.7.0 のリリース (2018-06-11) まであと少しです。

Ver.11.7 ワークフロー途中で入力を受け付ける公開フォームに対応 (2018年6月11日)

“申し込みフォームに期限を設定する — 受信タスク (フォーム) の使い方 —” への2件のコメント

  1. ピンバック: 申込フォームで、電話番号の存在確認をはさむ – Questetra Support

  2. ピンバック: 申し込みフォームに期限を設定する (改訂版) — 受信タスク (フォーム) の使い方 — – Questetra Support

コメントは受け付けていません。