Hi, there!

Today, I will continue with the previous story about how to use the new function “Receive Task (Form)” in version 11.7.

How to Utilize Receive Task (Form) – Email Address Verification through Webform Application

The Workflow App we have created in the last post is as follows.

  • #1, Have an applicant input an email address at Message Star Event (Form)
  • #2, Send an email to the email address entered at #1 to inform the URL of #3
  • #3, Let the applicant input the rest of information at a Receive Task (Form)
  • #4, The Human Task is something additional

There was no “deadline” for the #3 Step of this App.
Even though the URL for the #3 Step is difficult to infer, the risk of being attacked also increases if the period is unlimited.
It is better to set a deadline also in the aspect of the work of the reception side.

So I will refine the above Workflow App. First, I added a Data Item specifying the deadline.
In the initial value of the deadline, I have set to “after 7 days”.

Data Item Type Required Start Event
(Form)
Receive Task
(Form)
Human Task
Title Only display
Email address String type
single line
Editable Only display Only display
Name String type
single line
Editable Only display
Form key String type
single line
Only display
Initial value

#{#randomString(20)}
Deadline Datetime type Only display
Initial value

processInstanceStartDatetime.addDays(7)

I also changed the email body. Because nobody knows it unless I tell.

Destination
${[Email address:0]}
Subject Thank you for applying
Body
Please access the following URL, and enter the rest of required information.

${var[applicationRoot]}System/ReceiveTask/Form/1760/2/${[ProcessID]}/${[Form key:2]}/view

The expiration date is as follows.

${[Deadline:3]}

Then I will change the Workflow diagram. In between Steps 1 and 2, place an “AND gateway”. This is what makes a token flowing to all split destinations, and the subsequent processing will operate in parallel.

Manual for Gateway

In the other Process that operates in parallel, a Timer Intermediate Event is used. Of course, the time to be specified for the Timer Intermediate Event is the Data Item “Deadline” which I added earlier.

Manual for Timer Intermediate Event

After that, I will use Terminate End Event so that the Process is entirely terminated forcibly when the deadline comes. In other words, it forcibly terminates the other token which flows in parallel.

Manual for Terminate End Event

However, in this method, the whole Process is forcibly terminated when the deadline arrives, even if the Receive Task (Form) has been completed. It is only “Confirmation” to be done in this simple Workflow App, but if the subsequent procedure is long, forced termination must be avoided. So I will refine the Workflow App, again.

Put an XOR gateway after the Timer Intermediate Event so that the token will flow to the Terminate end Event (the Process will be terminated forcibly) only when the Receive Task is not completed. If the Receive Task has been completed, the token flows to the normal End Event, and the processing of the Process continues as it is.

To judge whether the Receive Task is completed or not, I utilize the required Data Item “Name” which is to be input for the first time in the Receive Task. If nothing has been entered in “Name”, it is judged that the Receive Task (Form) is not completed, so the token flows to the Terminate End Event. If the Item is not empty, it is judged that the Receive Task (Form) has been completed, and the token flows to the End Event. In the case of End Event, the other token flowing in parallel is not terminated. It will continue flowing on the Workflow diagram as it is.

Name Conditional Expression Destination
Uncompleted Name (has not entered) Terminate End
Default Flow Always move to Destination End

That’s it, for today! We are about to release the version 11.7 (2018-06-11)

v11.7 2018-06-11 Equipped the Open Form that Receives Entry in the Middle of Workflow