Skip to main content

Non-Interrupting

Let’s add new requirements to our thesis registration and submission process:

  • Besides the name of the student and the topic the exam committee defines the deadline for the submission at the start of the process. The deadline is stored in a variable and is used to define the attached timer boundary event {#deadline}
  • During the submission phase the students have the possibility to extend the deadline. For doing so they have to send a request with the reason for the extension and the amount of extended days
  • In the following step the exam committee proves the reason and the amount of extended days. If the reason is accepted, the committee can set a new deadline for the submission.
  • During the submission phase the professor Mary gets every third week a reminder to check in with the students

Model the process#

Add the new requirements to the process model:

process_attached_boundary_events

Implement the process#

Hint: In order to update the deadline model the request for a deadline extension as an attached interrupting boundary event (We could use a non-interrupting event as well but if we do so we would need to provide some additional code to update the job within the Camunda Engine.)

  • Implement a form for the exam committee to check the reason, the amount of extended days and a date field to adjust the deadline
  • Define the timer, so the professor mary get's every third week a reminder
  • Define the message for the extension request

Send a message:#

Instead of submitting the thesis send a message for an extension request:

{
"messageName" : "yourMessageName",
"correlationKeys" : {
"student" : {"value" : "yourStudentInput", "type": "String"}
},
"processVariables" : {
"reason" : {"value" : "Your reason for an extension", "type": "String"},
"extendedDays" :{"value" : 3, "type": "Integer"}
}
}

Observe the process in Cockpit

Advanced#

Can the same logic be modeled by using an event-based gateway?