We have modelled a wizard as FlowableProcess, where each step of the wizard is modelled like humanTask. The user can go back and redo previous tasks. If he choses so we complete the abandoned tasks but set local variable in the abandoned execution so it can exit from the process.
All works as expected up until we complete the “enterAddressData” step where the process hangs at the gateways (see debugger screenshot).
We have no explanation for this behavior. Could please anyone share why a process is working up until a point and hangs at the gateways. Is there something that causes the gateway to wait something?
@Test
@Deployment(resources = {"processes/registration-process.bpmn20.xml"})
void moveToMobileNumberVerificationTasks() {
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("RegistrationProcess");
assertFalse(super.isProcessMainProcessEnded(processInstance));
// Get all open tasks. User can not bypass tasks.
List<Task> allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(1, allOpenTasks.size());
assertEquals(ENTER_LOGIN_DETAILS_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
// Complete LOGIN_DETAILS_USER_TASK
completeStep(processInstance.getProcessInstanceId(), allOpenTasks.get(0).getId());
// New open tasks 3
allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(3, allOpenTasks.size());
assertEquals(ENTER_LOGIN_DETAILS_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
assertEquals(VERIFY_EMAIL_USER_TASK, allOpenTasks.get(1).getTaskDefinitionKey());
assertEquals(RESEND_VERIFICATION_MAIL_USER_TASK, allOpenTasks.get(2).getTaskDefinitionKey());
// move forward - complete VERIFY_EMAIL_USER_TASK
completeStep(processInstance.getProcessInstanceId(), allOpenTasks.get(1).getId());
// There should be 2 open tasks
allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(1, allOpenTasks.size());
assertEquals(ENTER_PERSONAL_DETAILS_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
// assertEquals(LOGIN_DETAILS_USER_TASK, allOpenTasks.get(1).getTaskDefinitionKey());
// move forward - complete PERSONAL_DETAILS_USER_TASK
completeStep(processInstance.getProcessInstanceId(), allOpenTasks.get(0).getId());
// There should be 2 open tasks
allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(3, allOpenTasks.size());
assertEquals(VERIFY_EMAIL_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
assertEquals(ENTER_ADDRESS_DATA_USER_TASK, allOpenTasks.get(1).getTaskDefinitionKey());
assertEquals(ENTER_PERSONAL_DETAILS_USER_TASK, allOpenTasks.get(2).getTaskDefinitionKey());
// move forward - complete ADDRESS_DATA_USER_TASK <-- Hangs here
completeStep(processInstance.getProcessInstanceId(), allOpenTasks.get(1).getId());
// There should be 2 open tasks
allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(2, allOpenTasks.size());
assertEquals(ENTER_ADDRESS_DATA_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
assertEquals(ENTER_MOBILE_NUMBER_USER_TASK, allOpenTasks.get(1).getTaskDefinitionKey());
// move back - complete ADDRESS_DATA_USER_TASK
completeStep(processInstance.getProcessInstanceId(), allOpenTasks.get(0).getId());
// There should be 2 open tasks
allOpenTasks = getOpenTasks(processInstance.getProcessInstanceId());
assertEquals(2, allOpenTasks.size());
assertEquals(ENTER_ADDRESS_DATA_USER_TASK, allOpenTasks.get(0).getTaskDefinitionKey());
assertEquals(ENTER_MOBILE_NUMBER_USER_TASK, allOpenTasks.get(1).getTaskDefinitionKey());
// Check business logic executed 3 times
verify(sendVerificationMailTaskSpy, times(1)).executeTask(any(TestProcessContext.class));
}
private List<Task> getOpenTasks(final String processInstanceId) {
return taskService.createTaskQuery().processInstanceId(processInstanceId).list();
}
private void completeStep(final String processInstanceId, final String taskId) {
List<Task> openTasks = getOpenTasks(processInstanceId);
openTasks.stream().filter(task -> !task.getId().equals(taskId))
.forEach(task -> {
String executionId = task.getExecutionId();
System.out.println(
"task: " + task.getTaskDefinitionKey() + ", id: " + task.getId() + ", executionId: " + executionId);
runtimeService.setVariableLocal(executionId, "exitProcess", "true");
taskService.complete(task.getId());
});
getOpenTasks(processInstanceId).forEach(task -> System.out.println(
"Task: " + task.getTaskDefinitionKey() + ", id: " + task.getId() + ", executionId: " + task.getExecutionId()));
taskService.complete(taskId);
}
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
<process id="RegistrationProcess" name="RegistrationProcess" isExecutable="true">
<startEvent id="startEvent" name="Start Event"/>
<endEvent id="endEvent"/>
<sequenceFlow id="startEvent_flow" sourceRef="startEvent" targetRef="loginDetails"/>
<userTask id="loginDetails" name="Enter Login Details"/>
<sequenceFlow id="loginDetails_flow" sourceRef="loginDetails" targetRef="loginDetails_gw"/>
<inclusiveGateway id="loginDetails_gw" default="loginDetails_gw_default_flow"/>
<sequenceFlow id="loginDetails_gw_default_flow" sourceRef="loginDetails_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="loginDetails_gw_back" sourceRef="loginDetails_gw" targetRef="loginDetails" name="back">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="loginDetails_gw_sendMail" sourceRef="loginDetails_gw" targetRef="sendVerificationMail" name="send mail">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<serviceTask id="sendVerificationMail" flowable:exclusive="true" name="Send Verification Mail" flowable:delegateExpression="${sendVerificationMailTask}"/>
<sequenceFlow id="sendVerificationMail_flow" sourceRef="sendVerificationMail" targetRef="resendVerificationMail"/>
<userTask id="resendVerificationMail" name="Resend Verification Mail"/>
<sequenceFlow id="resendVerificationMail_flow" sourceRef="resendVerificationMail" targetRef="loginDetails_gw"/>
<sequenceFlow id="loginDetails_gw_continue" sourceRef="loginDetails_gw" targetRef="verifyEmailAddress" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<userTask id="verifyEmailAddress" name="Verify Email Address"/>
<sequenceFlow id="verifyEmailAddress_flow" sourceRef="verifyEmailAddress" targetRef="verifyEmail_gw">
<conditionExpression xsi:type="tFormalExpression"/>
</sequenceFlow>
<inclusiveGateway id="verifyEmail_gw" default="verifyEmail_gw_default_flow"/>
<sequenceFlow id="verifyEmail_gw_default_flow" sourceRef="verifyEmail_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="verifyEmail_gw_continue" sourceRef="verifyEmail_gw" targetRef="personalDetails" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<userTask id="personalDetails" name="Enter Personal Details"/>
<sequenceFlow id="personalDetails_flow" sourceRef="personalDetails" targetRef="personalDetails_gw">
<conditionExpression xsi:type="tFormalExpression"/>
</sequenceFlow>
<inclusiveGateway id="personalDetails_gw" default="personalDetails_gw_default_flow"/>
<sequenceFlow id="personalDetails_gw_default_flow" sourceRef="personalDetails_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="personalDetails_gw_back" sourceRef="personalDetails_gw" targetRef="verifyEmailAddress" name="back">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="personalDetails_gw_continue" sourceRef="personalDetails_gw" targetRef="addressData" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<userTask id="addressData" name="Enter Address Data"/>
<sequenceFlow id="addressData_flow" sourceRef="addressData" targetRef="addressData_gw">
<conditionExpression xsi:type="tFormalExpression"/>
</sequenceFlow>
<inclusiveGateway id="addressData_gw" default="addressData_gw_default_flow"/>
<sequenceFlow id="addressData_gw_default_flow" sourceRef="addressData_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="addressData_gw_back" sourceRef="addressData_gw" targetRef="addressData" name="back">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="addressData_gw_continue" sourceRef="addressData_gw" targetRef="mobileNumber" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<userTask id="mobileNumber" name="Enter Mobile Number"/>
<sequenceFlow id="mobileNumber_flow" sourceRef="mobileNumber" targetRef="mobileNumer_gw"/>
<inclusiveGateway id="mobileNumer_gw" default="mobileNumer_gw_default_flow"/>
<sequenceFlow id="mobileNumer_gw_default_flow" sourceRef="mobileNumer_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="mobileNumer_gw_back" sourceRef="mobileNumer_gw" targetRef="mobileNumber" name="back">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<sequenceFlow id="mobileNumer_gw_sendSms" sourceRef="mobileNumer_gw" targetRef="sendVerificationSms" name="send SMS">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<serviceTask id="sendVerificationSms" flowable:exclusive="true" name="Send Verification SMS" flowable:delegateExpression="${sendVerificationSmsTask}"/>
<sequenceFlow id="sendVerificationSms_flow" sourceRef="sendVerificationSms" targetRef="resendVerificationSms"/>
<userTask id="resendVerificationSms" name="Resend Verification SMS"/>
<sequenceFlow id="resendVerificationSms_flow" sourceRef="resendVerificationSms" targetRef="mobileNumer_gw"/>
<sequenceFlow id="mobileNumer_gw_continue" sourceRef="mobileNumer_gw" targetRef="verifyMobileNumber" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<userTask id="verifyMobileNumber" name="Verify Mobile Number"/>
<sequenceFlow id="verifyMobileNumber_flow" sourceRef="verifyMobileNumber" targetRef="createCustomer_gw"/>
<exclusiveGateway id="createCustomer_gw" default="createCustomer_gw_default_flow"/>
<sequenceFlow id="createCustomer_gw_default_flow" sourceRef="createCustomer_gw" targetRef="endEvent" name="exit"/>
<sequenceFlow id="createCustomer_gw_continue" sourceRef="createCustomer_gw" targetRef="createCustomer" name="continue">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
<serviceTask id="createCustomer" flowable:exclusive="true" name="Create Customer" flowable:delegateExpression="${createCustomerTask}"/>
<sequenceFlow id="createCustomer_flow" sourceRef="createCustomer" targetRef="endEvent"/>
<sequenceFlow id="sid-e0ed9ee5-3314-4600-9100-a8f155958b2e" sourceRef="personalDetails_gw" targetRef="personalDetails">
<conditionExpression xsi:type="tFormalExpression">${!variables:exists(exitProcess)}</conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_EmptyProcess.bpmn20">
<bpmndi:BPMNPlane bpmnElement="RegistrationProcess" id="BPMNPlane_RegistrationProcess.bpmn20">
<bpmndi:BPMNShape id="shape-e85115b7-ca85-46f6-878b-5cc96447d9fb" bpmnElement="startEvent">
<omgdc:Bounds x="-710.0" y="-25.0" width="30.0" height="30.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-4521691c-6383-40b9-990e-fdfa8541359b" bpmnElement="endEvent">
<omgdc:Bounds x="860.0" y="-25.0" width="30.0" height="30.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-d51fbcdb-d295-4e55-8395-39917500eae4" bpmnElement="startEvent_flow">
<omgdi:waypoint x="-680.0" y="-10.0"/>
<omgdi:waypoint x="-630.0" y="-9.999998"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-967e33a1-b7a7-400e-a5f6-9c5f6821271d" bpmnElement="personalDetails_flow">
<omgdi:waypoint x="-98.50001" y="-10.0"/>
<omgdi:waypoint x="-55.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-d66c7ccd-0814-4c0a-9257-59626d829ad3" bpmnElement="verifyEmailAddress">
<omgdc:Bounds x="-425.0" y="-29.338707" width="105.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="sid-00aea978-7eee-4ec9-950d-0b1cdc7ad72b" bpmnElement="personalDetails">
<omgdc:Bounds x="-213.5" y="-30.0" width="114.99999" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-7152b1a8-4e4b-4b1e-89ef-e164121b0358" bpmnElement="verifyEmailAddress_flow">
<omgdi:waypoint x="-320.0" y="-9.338707"/>
<omgdi:waypoint x="-295.66132" y="-9.338707"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-c00c118c-f338-4988-b336-116c4494db07" bpmnElement="verifyEmail_gw_continue">
<omgdi:waypoint x="-255.66133" y="-9.338707"/>
<omgdi:waypoint x="-234.58066" y="-10.0"/>
<omgdi:waypoint x="-213.5" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-79efde77-d3cf-4f91-adc6-2b5b9247b0d8" bpmnElement="verifyEmail_gw">
<omgdc:Bounds x="-295.66132" y="-29.338707" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-cab1ad6f-8013-47cf-9ce5-25f1b2014d16" bpmnElement="verifyEmail_gw_default_flow">
<omgdi:waypoint x="-275.66132" y="10.661293"/>
<omgdi:waypoint x="-275.66132" y="73.749985"/>
<omgdi:waypoint x="875.0" y="73.749985"/>
<omgdi:waypoint x="875.0" y="5.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-c289d91d-e759-42ea-8a8c-ac233a6c1639" bpmnElement="createCustomer_gw">
<omgdc:Bounds x="655.0" y="-30.0" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-91d99172-c595-4e39-93f1-0d743ca127b3" bpmnElement="createCustomer">
<omgdc:Bounds x="730.0" y="-32.5" width="90.0" height="45.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-145308c8-b036-47ce-af63-4310d9f8758c" bpmnElement="createCustomer_gw_default_flow">
<omgdi:waypoint x="675.0" y="10.0"/>
<omgdi:waypoint x="674.99994" y="28.749998"/>
<omgdi:waypoint x="875.0" y="28.75"/>
<omgdi:waypoint x="875.0" y="5.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-c8580f33-af00-4474-a2b2-d713e2d3a222" bpmnElement="createCustomer_gw_continue">
<omgdi:waypoint x="695.0" y="-10.0"/>
<omgdi:waypoint x="730.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-b7dc03ab-4408-4b3a-96d8-b348e4893498" bpmnElement="createCustomer_flow">
<omgdi:waypoint x="820.0" y="-10.0"/>
<omgdi:waypoint x="860.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-608d0c0a-4608-43ce-86f2-0678e089d7ce" bpmnElement="resendVerificationMail">
<omgdc:Bounds x="-381.0" y="-170.00005" width="130.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-fdd70998-ba25-4414-b21b-c8085579d62f" bpmnElement="loginDetails_gw_sendMail">
<omgdi:waypoint x="-480.0" y="-29.999998"/>
<omgdi:waypoint x="-480.0" y="-130.00003"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-c02616f3-7076-401b-b8d4-d633c2acf37b" bpmnElement="resendVerificationMail_flow">
<omgdi:waypoint x="-316.0" y="-130.00005"/>
<omgdi:waypoint x="-316.0" y="-70.0"/>
<omgdi:waypoint x="-451.25" y="-70.0"/>
<omgdi:waypoint x="-479.99997" y="-29.999998"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-5ac7101d-2cc0-4f84-860f-85780f58d7a3" bpmnElement="sendVerificationMail">
<omgdc:Bounds x="-537.5" y="-170.00003" width="115.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-680bf412-340b-4679-b354-07855e93800e" bpmnElement="sendVerificationMail_flow">
<omgdi:waypoint x="-422.5" y="-150.00003"/>
<omgdi:waypoint x="-381.0" y="-150.00005"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-58f3a284-9526-4cc5-ba19-45f73a6f4874" bpmnElement="loginDetails">
<omgdc:Bounds x="-630.0" y="-30.0" width="100.0" height="40.000004"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-460c1427-ff62-4ea3-beda-0e524bcabd60" bpmnElement="loginDetails_flow">
<omgdi:waypoint x="-530.0" y="-9.999998"/>
<omgdi:waypoint x="-500.00003" y="-9.999998"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-4b65cd89-1f73-439a-97ba-009e562b1030" bpmnElement="addressData">
<omgdc:Bounds x="35.0" y="-32.5" width="100.0" height="45.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-72af6717-45b2-4632-aa7d-56d6f10b5a4c" bpmnElement="mobileNumber">
<omgdc:Bounds x="260.0" y="-35.0" width="105.0" height="50.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-4d75e5e5-3b1f-4fec-9ddf-26ea51a96c3e" bpmnElement="verifyMobileNumber">
<omgdc:Bounds x="495.0" y="-35.0" width="120.0" height="50.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-4ce2e5a1-50c6-4622-be70-17a4bd4fa241" bpmnElement="addressData_flow">
<omgdi:waypoint x="135.0" y="-10.0"/>
<omgdi:waypoint x="180.0" y="-10.000001"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-0dc78866-febc-4827-ba47-e276b538fc29" bpmnElement="mobileNumber_flow">
<omgdi:waypoint x="365.0" y="-10.0"/>
<omgdi:waypoint x="410.00003" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-6414f278-9ec4-4171-803e-16f587711549" bpmnElement="verifyMobileNumber_flow">
<omgdi:waypoint x="615.0" y="-10.0"/>
<omgdi:waypoint x="655.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-d33e2797-45bf-482a-9d97-56bc3c7ac85b" bpmnElement="mobileNumer_gw">
<omgdc:Bounds x="410.0" y="-30.0" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-f1995142-0803-44b1-9f3d-54a7e6bf55a2" bpmnElement="mobileNumer_gw_continue">
<omgdi:waypoint x="450.0" y="-10.0"/>
<omgdi:waypoint x="495.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-48e684c7-6b14-486b-bda4-5ae3f8d73d3a" bpmnElement="mobileNumer_gw_default_flow">
<omgdi:waypoint x="430.0" y="10.0"/>
<omgdi:waypoint x="430.0" y="37.500004"/>
<omgdi:waypoint x="875.0" y="37.500004"/>
<omgdi:waypoint x="874.99994" y="5.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-a468aa94-6a22-48f1-bca5-c70b5d2ef217" bpmnElement="resendVerificationSms">
<omgdc:Bounds x="515.0" y="-172.50003" width="120.00003" height="45.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="shape-93cd12aa-2f21-4e30-95f2-952b59e22626" bpmnElement="sendVerificationSms">
<omgdc:Bounds x="370.0" y="-170.00002" width="120.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-a9a61d8a-602f-4a14-acdd-4f76be68a8f2" bpmnElement="mobileNumer_gw_sendSms">
<omgdi:waypoint x="430.0" y="-30.0"/>
<omgdi:waypoint x="430.00006" y="-80.0"/>
<omgdi:waypoint x="430.0" y="-130.00002"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-53578584-8294-4409-ab30-f67e6dfee400" bpmnElement="sendVerificationSms_flow">
<omgdi:waypoint x="490.0" y="-150.00002"/>
<omgdi:waypoint x="515.0" y="-150.00003"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-ebfb5ac2-3983-4d34-b9f0-0d8ad08f4273" bpmnElement="resendVerificationSms_flow">
<omgdi:waypoint x="575.0" y="-127.50003"/>
<omgdi:waypoint x="575.0" y="-70.0"/>
<omgdi:waypoint x="450.0" y="-70.0"/>
<omgdi:waypoint x="430.0" y="-30.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-d9564423-410a-4fa5-921a-e5ce07810464" bpmnElement="mobileNumer_gw_back">
<omgdi:waypoint x="430.0" y="-30.0"/>
<omgdi:waypoint x="430.00003" y="-60.0"/>
<omgdi:waypoint x="312.50003" y="-60.0"/>
<omgdi:waypoint x="312.50003" y="-35.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-78a9f9d1-d8ca-41cc-88ba-3f4872c0b470" bpmnElement="loginDetails_gw">
<omgdc:Bounds x="-500.0" y="-29.999998" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-8fbc3564-225b-4622-8b1a-c017f1f19bcd" bpmnElement="loginDetails_gw_continue">
<omgdi:waypoint x="-460.0" y="-9.999998"/>
<omgdi:waypoint x="-425.0" y="-9.338707"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-3d825955-9951-4ad6-a9a3-098a1e400eca" bpmnElement="loginDetails_gw_back">
<omgdi:waypoint x="-479.99997" y="-29.999996"/>
<omgdi:waypoint x="-479.99997" y="-55.0"/>
<omgdi:waypoint x="-580.0" y="-55.0"/>
<omgdi:waypoint x="-579.99994" y="-30.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-486e9227-1c1e-4755-870d-ac23993c6765" bpmnElement="loginDetails_gw_default_flow">
<omgdi:waypoint x="-480.0" y="10.000002"/>
<omgdi:waypoint x="-480.0" y="82.5"/>
<omgdi:waypoint x="875.0" y="82.5"/>
<omgdi:waypoint x="875.0" y="5.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-18ab997e-5991-4e17-a48b-26dec89752ef" bpmnElement="personalDetails_gw">
<omgdc:Bounds x="-55.0" y="-30.0" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-fc463d81-968b-4089-8642-9c5fe33eb9f8" bpmnElement="personalDetails_gw_continue">
<omgdi:waypoint x="-15.0" y="-10.0"/>
<omgdi:waypoint x="35.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-b2dd8588-3f56-4cc9-967c-7f94ef891dd5" bpmnElement="personalDetails_gw_default_flow">
<omgdi:waypoint x="-35.0" y="10.0"/>
<omgdi:waypoint x="-35.0" y="61.25"/>
<omgdi:waypoint x="875.0" y="61.25"/>
<omgdi:waypoint x="874.9999" y="5.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-e0e536f1-2cb0-4c27-9d26-eb110b97f32a" bpmnElement="personalDetails_gw_back">
<omgdi:waypoint x="-35.0" y="-30.0"/>
<omgdi:waypoint x="-35.0" y="-55.0"/>
<omgdi:waypoint x="-346.25" y="-55.0"/>
<omgdi:waypoint x="-346.25" y="-29.338705"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="shape-354afe82-b9ba-4b30-af8f-8cc12222712f" bpmnElement="addressData_gw">
<omgdc:Bounds x="180.0" y="-30.0" width="40.0" height="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="edge-286d3998-7b42-462a-bcbf-3869642b59b0" bpmnElement="addressData_gw_continue">
<omgdi:waypoint x="220.00002" y="-10.0"/>
<omgdi:waypoint x="260.0" y="-10.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-17a2c217-4290-46ac-a40c-72d4944e7141" bpmnElement="addressData_gw_back">
<omgdi:waypoint x="200.0" y="-30.0"/>
<omgdi:waypoint x="200.0" y="-54.999996"/>
<omgdi:waypoint x="85.0" y="-54.999996"/>
<omgdi:waypoint x="85.0" y="-32.500004"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-89f0d57f-948d-4183-a17e-8bd3472ef468" bpmnElement="addressData_gw_default_flow">
<omgdi:waypoint x="200.0" y="10.0"/>
<omgdi:waypoint x="200.0" y="48.75"/>
<omgdi:waypoint x="875.0" y="48.75"/>
<omgdi:waypoint x="875.00006" y="4.9999995"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="edge-ed9414b7-9e7a-434e-827f-1d993e8849a4" bpmnElement="sid-e0ed9ee5-3314-4600-9100-a8f155958b2e">
<omgdi:waypoint x="-35.000004" y="-30.0"/>
<omgdi:waypoint x="-35.0" y="-90.0"/>
<omgdi:waypoint x="-156.0" y="-90.0"/>
<omgdi:waypoint x="-156.0" y="-30.000002"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>