diff --git a/create_server_dist.sh b/create_server_dist.sh index da6a00d9..f81cfe1e 100755 --- a/create_server_dist.sh +++ b/create_server_dist.sh @@ -212,7 +212,6 @@ cp ${INSTALL_DIR}/refresh_cws_token.sh ${CWS} cp ${INSTALL_DIR}/deploy_proc_def.sh ${CWS} cp ${INSTALL_DIR}/launch_ls.sh ${CWS} cp ${INSTALL_DIR}/launch_es.sh ${CWS} -cp -R ${INSTALL_DIR}/external_tasks ${CWS} print 'Copying Modeller scripts and libraries...' cp -R ${INSTALL_DIR}/modeler ${CWS} diff --git a/cws-engine-service/pom.xml b/cws-engine-service/pom.xml index f621a07a..990932eb 100644 --- a/cws-engine-service/pom.xml +++ b/cws-engine-service/pom.xml @@ -60,7 +60,11 @@ <groupId>org.camunda.bpm</groupId> <artifactId>camunda-engine-spring</artifactId> </dependency> - + + <dependency> + <groupId>org.camunda.spin</groupId> + <artifactId>camunda-spin-dataformat-all</artifactId> + </dependency> <!-- Spring MVC framework --> <dependency> <groupId>org.springframework</groupId> diff --git a/cws-engine-service/src/main/java/jpl/cws/engine/CmdLineInputFields.java b/cws-engine-service/src/main/java/jpl/cws/engine/CmdLineInputFields.java new file mode 100644 index 00000000..86ba8694 --- /dev/null +++ b/cws-engine-service/src/main/java/jpl/cws/engine/CmdLineInputFields.java @@ -0,0 +1,14 @@ +package jpl.cws.engine; + +public class CmdLineInputFields { + + public String command = null; + public String workingDir = null; + public String successfulValues = null; + public String exitCodeEvents = null; + public boolean throwOnFailures; + public boolean throwOnTruncatedVariable; + public long timeout = 0; // in seconds + public int retries = 0; + public int retryDelay = 0; // in milliseconds +} diff --git a/cws-engine-service/src/main/java/jpl/cws/engine/CwsEngineProcessApplication.java b/cws-engine-service/src/main/java/jpl/cws/engine/CwsEngineProcessApplication.java index a609c088..87553c92 100644 --- a/cws-engine-service/src/main/java/jpl/cws/engine/CwsEngineProcessApplication.java +++ b/cws-engine-service/src/main/java/jpl/cws/engine/CwsEngineProcessApplication.java @@ -6,12 +6,12 @@ import javax.jms.Session; +import com.google.gson.Gson; import org.apache.commons.mail.Email; import org.apache.commons.mail.HtmlEmail; import org.camunda.bpm.application.PostDeploy; import org.camunda.bpm.application.PreUndeploy; import org.camunda.bpm.application.ProcessApplication; -import org.camunda.bpm.application.impl.ServletProcessApplication; import org.camunda.bpm.engine.IdentityService; import org.camunda.bpm.engine.ProcessEngine; import org.camunda.bpm.engine.RepositoryService; @@ -26,10 +26,11 @@ import org.camunda.bpm.engine.impl.context.CoreExecutionContext; import org.camunda.bpm.engine.impl.core.instance.CoreExecution; import org.camunda.bpm.engine.impl.el.ExpressionManager; -import org.camunda.bpm.engine.spring.application.SpringProcessApplication; import org.camunda.bpm.engine.spring.application.SpringServletProcessApplication; import org.camunda.bpm.model.bpmn.BpmnModelInstance; import org.camunda.bpm.model.bpmn.instance.camunda.CamundaField; +import org.camunda.spin.plugin.variable.SpinValues; +import org.camunda.spin.plugin.variable.value.JsonValue; import org.slf4j.Logger; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; @@ -364,7 +365,9 @@ public void notify(final DelegateExecution execution) throws Exception { final String activityId = execution.getCurrentActivityId(); String fieldName = null; - + + CmdLineInputFields cmdFields = new CmdLineInputFields(); + try { log.debug("Service Task with External Task's ExecutionId = " + execution.getId()); log.debug("Service task current ActivityId = " + execution.getCurrentActivityId()); @@ -376,64 +379,63 @@ public void notify(final DelegateExecution execution) throws Exception { ExpressionManager expressionManager = Context .getProcessEngineConfiguration() .getExpressionManager(); - + fieldName = "cmdLine"; - String command = getFieldValue(fieldName, fields, expressionManager, execution); + cmdFields.command = getFieldValue(fieldName, fields, expressionManager, execution); fieldName = "workingDir"; - String workingDir = getFieldValue(fieldName, fields, expressionManager, execution); + cmdFields.workingDir = getFieldValue(fieldName, fields, expressionManager, execution); - if (workingDir == null) { - workingDir = System.getProperty("user.home"); + if (cmdFields.workingDir == null) { + cmdFields.workingDir = System.getProperty("user.home"); } fieldName = "successExitValues"; - String successExitValues = getFieldValue(fieldName, fields, expressionManager, execution); - + cmdFields.successfulValues = getFieldValue(fieldName, fields, expressionManager, execution).replaceAll("\\s+", ""); + + // Verify field format + for (String successCode : cmdFields.successfulValues.split(",")) { + Integer.parseInt(successCode); + } + fieldName = "exitCodeEvents"; - String exitCodeEvents = getFieldValue(fieldName, fields, expressionManager, execution).replaceAll("\\s+", ""); - - fieldName = "throwOnFailures"; - String throwOnFailures = getFieldValue(fieldName, fields, expressionManager, execution); - - fieldName = "throwOnTruncatedVariable"; - String throwOnTruncatedVariable = getFieldValue(fieldName, fields, expressionManager, execution); - - fieldName = "timeout"; - String timeout = getFieldValue(fieldName, fields, expressionManager, execution); - - fieldName = "retries"; - String retries = getFieldValue(fieldName, fields, expressionManager, execution); - - fieldName = "retryDelay"; - String retryDelay = getFieldValue(fieldName, fields, expressionManager, execution); + cmdFields.exitCodeEvents = getFieldValue(fieldName, fields, expressionManager, execution).replaceAll("\\s+", ""); + + // Verify field format + String[] exitCodeMapArray = cmdFields.exitCodeEvents.split(","); + for (String exitCodeMap : exitCodeMapArray) { + + String[] keyVal = exitCodeMap.split("="); + if (keyVal.length != 2) { + throw new Exception("Bad format: " + exitCodeMap); + } + Integer.parseInt(keyVal[0]); + } - execution.setVariable(activityId + "_cwsCommand", command); - execution.setVariable(activityId + "_cwsWorkingDir", workingDir); - execution.setVariable(activityId + "_cwsSuccessExitValues", successExitValues); - execution.setVariable(activityId + "_cwsExitCodeEvents", exitCodeEvents); - fieldName = "throwOnFailures"; - execution.setVariable(activityId + "_cwsThrowOnFailures", Boolean.parseBoolean(throwOnFailures)); + cmdFields.throwOnFailures = Boolean.parseBoolean(getFieldValue(fieldName, fields, expressionManager, execution)); fieldName = "throwOnTruncatedVariable"; - execution.setVariable(activityId + "_cwsThrowOnTruncatedVariable", Boolean.parseBoolean(throwOnTruncatedVariable)); + cmdFields.throwOnTruncatedVariable = Boolean.parseBoolean(getFieldValue(fieldName, fields, expressionManager, execution)); fieldName = "timeout"; - execution.setVariable(activityId + "_cwsTimeout", Long.parseLong(timeout)); + cmdFields.timeout = Long.parseLong(getFieldValue(fieldName, fields, expressionManager, execution)); fieldName = "retries"; - execution.setVariable(activityId + "_cwsRetries", Integer.parseInt(retries)); + cmdFields.retries = Integer.parseInt(getFieldValue(fieldName, fields, expressionManager, execution)); fieldName = "retryDelay"; - execution.setVariable(activityId + "_cwsRetryDelay", Integer.parseInt(retryDelay)); + cmdFields.retryDelay = Integer.parseInt(getFieldValue(fieldName, fields, expressionManager, execution)); + + JsonValue jsonValue = SpinValues.jsonValue(new Gson().toJson(cmdFields)).create(); + execution.setVariable(activityId + "_input", jsonValue); } catch (Throwable t) { log.error("Error parsing cmdLine fields", t); String msg = "Error parsing field '" + fieldName + "': " + t.getMessage(); - - execution.setVariable(activityId + "_cwsError", msg); + + execution.setVariable(activityId + "_errorMsg", msg); } finally { diff --git a/cws-engine-service/src/main/java/jpl/cws/engine/CwsExternalTaskThread.java b/cws-engine-service/src/main/java/jpl/cws/engine/CwsExternalTaskThread.java index f97a642f..703546cb 100644 --- a/cws-engine-service/src/main/java/jpl/cws/engine/CwsExternalTaskThread.java +++ b/cws-engine-service/src/main/java/jpl/cws/engine/CwsExternalTaskThread.java @@ -32,7 +32,6 @@ import org.camunda.bpm.engine.RuntimeService; import org.camunda.bpm.engine.delegate.BpmnError; import org.camunda.bpm.engine.externaltask.LockedExternalTask; -import com.google.gson.JsonObject; import com.google.gson.Gson; @@ -40,6 +39,7 @@ import jersey.repackaged.com.google.common.base.Function; import jersey.repackaged.com.google.common.collect.Collections2; import jpl.cws.task.CwsTaskLogger; +import org.camunda.spin.json.SpinJsonNode; public class CwsExternalTaskThread extends Thread { @@ -66,7 +66,6 @@ public class CwsExternalTaskThread extends Thread { private static final String TRUNCATION_MESSAGE = "\n******* OUTPUT TRUNCATED TO FIRST " + STRING_MAX_SIZE + " CHARACTERS!!! *******"; private Map<String, String> exitCodeEventsMap = new HashMap<String,String>(); - private boolean throwOnFailuresBoolean; private boolean throwOnTruncatedVariableBoolean; private String activityId; @@ -132,70 +131,40 @@ private void runTask() { log.debug("runTask: Running external task for procInstId = " + task.getProcessInstanceId() + ", taskId = " + task.getId() + ", activityId = " + task.getActivityId() + ", executionId = " + task.getExecutionId() + ", with topic = " + task.getTopicName() + ", task priority = " + task.getPriority() + "..."); - - String command = null; - String workingDir = null; - String successfulValues = null; - long timeout = 0L; - int retries = 0; - int retryDelay = 0; - - String fieldName = null; + CmdLineInputFields cmdFields = new CmdLineInputFields(); try { - fieldName = activityId + "_cwsCommand"; - - if (!task.getVariables().containsKey(fieldName)) { - throw new Exception("Task does not contain any variables. It must contain variables for cwsCommand, cwsWorkingDir, etc."); - } - - fieldName = null; - - executionId = task.getExecutionId(); - if (executionId == null) { - log.error("executionId for task: " + task + " was null! Possible instance of https://jira.camunda.com/browse/CAM-10750. " + - "This hopefully will be fixed in Camunda 7.14"); - } - - if (task.getVariables().containsKey(activityId + "_cwsError")) { + if (task.getVariables().containsKey(activityId + "_errorMsg")) { - String error = (String)task.getVariables().get(activityId + "_cwsError"); + String errorMsg = (String)task.getVariables().get(activityId + "_errorMsg"); // Create an incident - handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), error, "", 0, 0L); + handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), errorMsg, "", 0, 0L); + + // Don't do anything else with this task -- go to the next one. + return; } else { + String inputFieldName = activityId + "_input"; - // Load and parse all inputs necessary to execute command line task - fieldName = activityId + "_cwsCommand"; - command = (String)task.getVariables().get(fieldName); - - fieldName = activityId + "_cwsWorkingDir"; - workingDir = (String)task.getVariables().get(fieldName); - - fieldName = activityId + "_cwsThrowOnFailures"; - throwOnFailuresBoolean = (Boolean)task.getVariables().get(fieldName); - - fieldName = activityId + "_cwsThrowOnTruncatedVariable"; - throwOnTruncatedVariableBoolean = (Boolean)task.getVariables().get(fieldName); - - fieldName = activityId + "_cwsTimeout"; - timeout = (long)task.getVariables().get(fieldName) * 1000L; // convert seconds to milliseconds - - fieldName = activityId + "_cwsRetries"; - retries = (int)task.getVariables().get(fieldName); + if (!task.getVariables().containsKey(inputFieldName)) { + throw new Exception("Task does not contain the input fields variable."); + } - fieldName = activityId + "_cwsRetryDelay"; - retryDelay = (int)task.getVariables().get(fieldName); + executionId = task.getExecutionId(); + if (executionId == null) { + log.error("executionId for task: " + task + " was null! Possible instance of https://jira.camunda.com/browse/CAM-10750. " + + "This hopefully will be fixed in Camunda 7.14"); + } - fieldName = activityId + "_cwsSuccessExitValues"; - successfulValues = (String)task.getVariables().get(fieldName); + // Get input fields as json and convert to CmdLineInputFields object + SpinJsonNode jsonNode = (SpinJsonNode)task.getVariables().get(inputFieldName); + cmdFields = new Gson().fromJson(jsonNode.toString(), CmdLineInputFields.class); - fieldName = activityId + "_cwsExitCodeEvents"; - String exitCodeEventsString = ((String)task.getVariables().get(fieldName)).replaceAll("\\s+", ""); + throwOnTruncatedVariableBoolean = cmdFields.throwOnTruncatedVariable; exitCodeEventsMap.clear(); - String[] exitCodeMapArray = exitCodeEventsString.split(","); + String[] exitCodeMapArray = cmdFields.exitCodeEvents.split(","); for (String exitCodeMap : exitCodeMapArray) { String[] keyVal = exitCodeMap.split("="); @@ -203,20 +172,7 @@ private void runTask() { exitCodeEventsMap.put(keyVal[0], keyVal[1]); } - // Serialize to a JSON object for log debug info - JsonObject jo = new JsonObject(); - - jo.addProperty("command", command); - jo.addProperty("workingDir", workingDir); - jo.addProperty("throwOnFailures", throwOnFailuresBoolean); - jo.addProperty("throwOnTruncatedVariable", throwOnTruncatedVariableBoolean); - jo.addProperty("timeout_ms", timeout); - jo.addProperty("retries", retries); - jo.addProperty("retryDelay", retryDelay); - jo.addProperty("successExitValues", successfulValues); - jo.addProperty("exitCodeEvents", exitCodeEventsString); - - String msg = "Gathering inputs for ProcInstId \"" + task.getProcessInstanceId() + "\": " + jo.toString(); + String msg = "Gathering inputs for ProcInstId \"" + task.getProcessInstanceId() + "\": " + jsonNode.toString(); log.debug("runTask: " + msg); } @@ -224,15 +180,15 @@ private void runTask() { catch (Throwable t) { // See if we have any more retries for variable lookup failure - String _fieldName = activityId + "_cwsVariableLookupFailRetries"; + String fieldName = activityId + "_cwsVariableLookupFailRetries"; // Initialize it to 3 if not already set int variableLookupRetries = 3; - if (task.getVariables().containsKey(_fieldName)) { + if (task.getVariables().containsKey(fieldName)) { // It does exist, so read it in - variableLookupRetries = Integer.parseInt((String)task.getVariables().get(_fieldName)); + variableLookupRetries = Integer.parseInt((String)task.getVariables().get(fieldName)); } log.warn("runTask: Error: Failed to retrieve input variables from execution listener. " + variableLookupRetries + " retries remaining."); @@ -243,12 +199,12 @@ private void runTask() { variableLookupRetries--; // Update in database - setOutputVariable(_fieldName, variableLookupRetries + ""); + setOutputVariable(fieldName, variableLookupRetries + ""); // Allow for this task to be fetched again and wait for the listener to set the input variables // // Get retries for this task - int taskRetries = getAndIncrementRetriesForTask(task, retries); + int taskRetries = getAndIncrementRetriesForTask(task, cmdFields.retries); // Retry this external task handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), "Retrying due to variable lookup failure...", t.toString(), taskRetries, 3000L); @@ -258,29 +214,21 @@ private void runTask() { // We got an error and failed to retry this task 3 times, indicating that a critical failure caused the // variables to never get set. An incident can now be reasonably thrown. - String details = t.getMessage(); - - if (fieldName != null) { - details = "Error getting field '" + fieldName + "': " + t.getMessage(); - } - - String msg = "Failed to retrieve and/or parse input variables. Details: " + details; - + String msg = "Failed to retrieve and/or parse input variables. Details: " + t.getMessage(); log.error("runTask: Error: " + msg, t); // Create an incident handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), msg, t.toString(), 0, 0L); - - // Don't do anything else with this task -- go to the next one. - return; } + + // Don't do anything else with this task -- go to the next one. + return; } try { - setOutputVariable("lockedTime", lockedTime); - boolean success = executeTask(command, workingDir, successfulValues.split(","), timeout); + boolean success = executeTask(cmdFields); if (success) { log.debug("runTask: External task completed successfully!"); @@ -295,14 +243,14 @@ private void runTask() { // BpmnError occurred, retry or signal a Bpmn Error // - int taskRetries = getAndDecrementRetriesForTask(task, retries); + int taskRetries = getAndDecrementRetriesForTask(task, cmdFields.retries); if (taskRetries > 0) { - log.warn("runTask: handleFailure: (BpmnError: " + e.getMessage() + ") (retries remaining: " + taskRetries + ") (retrying in: " + retryDelay + "ms)", e); + log.warn("runTask: handleFailure: (BpmnError: " + e.getMessage() + ") (retries remaining: " + taskRetries + ") (retrying in: " + cmdFields.retryDelay + "ms)", e); // Do retry - handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), "Retrying...", e.toString(), taskRetries, retryDelay); + handleCamundaApiCall(Resolution.HANDLE_FAILURE, task.getId(), "Retrying...", e.toString(), taskRetries, cmdFields.retryDelay); } else { // Create Bpmn Error @@ -311,7 +259,7 @@ private void runTask() { } catch (OptimisticLockingException e) { - int taskRetries = getAndIncrementRetriesForTask(task, retries); + int taskRetries = getAndIncrementRetriesForTask(task, cmdFields.retries); log.error("runTask: Error: Optimistic locking exception occurred! Retrying this job.", e); @@ -321,7 +269,7 @@ private void runTask() { catch (BatchExecutorException e) { // Retry database exceptions such as foreign key constraint failures, as they are typically recoverable - int taskRetries = getAndIncrementRetriesForTask(task, retries); + int taskRetries = getAndIncrementRetriesForTask(task, cmdFields.retries); log.error("runTask: Error: Foreign key exception occurred! Retrying this job.", e); @@ -331,7 +279,7 @@ private void runTask() { catch (ProcessEngineException e) { // These are typically issues with the database which are fixed by retrying the job - int taskRetries = getAndIncrementRetriesForTask(task, retries); + int taskRetries = getAndIncrementRetriesForTask(task, cmdFields.retries); log.error("runTask: Error: Process engine exception occurred! Retrying this job. Caused by: " + e.getClass().getCanonicalName(), e); @@ -527,8 +475,7 @@ private void setStdOutVariables(List<String> stdOutLines) { Matcher m = p.matcher(line); if (m.matches()) { String jsonToParse = m.group(1); - Gson gson = new Gson(); - Map<String, Object> jsonAsMap = gson.fromJson(jsonToParse, Map.class); + Map<String, Object> jsonAsMap = new Gson().fromJson(jsonToParse, Map.class); log.debug("JSON MAP: " + jsonAsMap); for (Entry<String, Object> entry : jsonAsMap.entrySet()) { String key = entry.getKey(); @@ -541,13 +488,13 @@ private void setStdOutVariables(List<String> stdOutLines) { } - private Boolean executeTask(String cmdLineString, String workingDirString, String[] successExitValuesSplit, long timeout) { + private Boolean executeTask(CmdLineInputFields cmdLineFields) { Boolean success = null; CollectingLogOutputStream collectingLogOutStream = null; CollectingLogOutputStream collectingLogErrStream = null; try { - log.info("CmdLineExec (" + cmdLineString + ")\nWorkingDir (" + workingDirString + ")"); + log.info("CmdLineExec (" + cmdLineFields.command + ")\nWorkingDir (" + cmdLineFields.workingDir + ")"); // ------------------------------------------------------------------ // Workaround for issues in Commons-exec where extra quotes are added. @@ -555,7 +502,7 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin // See: // https://commons.apache.org/proper/commons-exec/faq.html // - List<String> cmdTokens = ArgumentTokenizer.tokenize(cmdLineString); + List<String> cmdTokens = ArgumentTokenizer.tokenize(cmdLineFields.command); CommandLine cmdLine = CommandLine.parse(cmdTokens.get(0)); int i = 0; for (String token : cmdTokens) { @@ -563,13 +510,13 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin log.trace("Added token: " + token); cmdLine.addArgument(token, false); } - log.debug("Parsed command: '" + cmdLineString + "' into: " + cmdLine); + log.debug("Parsed command: '" + cmdLineFields.command + "' into: " + cmdLine); DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler(); // Don't require process to execute in a certain amount of time // - ExecuteWatchdog watchdog = new ExecuteWatchdog(timeout); + ExecuteWatchdog watchdog = new ExecuteWatchdog(cmdLineFields.timeout * 1000); // convert seconds to milliseconds Executor executor = new DefaultExecutor(); executor.setWatchdog(watchdog); @@ -580,15 +527,15 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin executor.setStreamHandler(psh); // Check if working directory is valid - if (!Files.exists(Paths.get(workingDirString))) { + if (!Files.exists(Paths.get(cmdLineFields.workingDir))) { // Working directory does not exist - log.error("Problem executing command line: '" + cmdLineString - + "', working directory " + workingDirString + " does not exist."); + log.error("Problem executing command line: '" + cmdLineFields.command + + "', working directory " + cmdLineFields.workingDir + " does not exist."); throw new BpmnError(WORKING_DIR_NOT_FOUND_ERROR, "Working directory not found"); } - executor.setWorkingDirectory(new File(workingDirString)); + executor.setWorkingDirectory(new File(cmdLineFields.workingDir)); // // Set environment variables for execution based on convention that CWS variables @@ -618,7 +565,7 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin // Get the exit value, log it, and put it in return map // int exitValue = resultHandler.getExitValue(); - log.info("Command '" + cmdLineString + "' exit value:" + exitValue + ". Ran in: " + (t1 - t0) + " ms."); + log.info("Command '" + cmdLineFields.command + "' exit value:" + exitValue + ". Ran in: " + (t1 - t0) + " ms."); // putting redundant names here on purpose to reduce operator error setOutputVariable("exitValue", exitValue + ""); @@ -627,8 +574,8 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin // Set "success" variable based on comparison with successExitValue // success = false; // false until proven success - for (String successCode : successExitValuesSplit) { - success = new Boolean(Integer.parseInt(successCode.trim()) == exitValue); + for (String successCode : cmdLineFields.successfulValues.split(",")) { + success = new Boolean(Integer.parseInt(successCode) == exitValue); if (success) { break; // found a match, so must be success } @@ -684,13 +631,13 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin // Check if process timed out if (watchdog.killedProcess()) { // it was killed on purpose by the watchdog - throw new BpmnError(TIMEOUT_ERROR, "Execution exceeded timeout limit: " + timeout + "ms"); + throw new BpmnError(TIMEOUT_ERROR, "Execution exceeded timeout limit: " + cmdLineFields.timeout + " sec"); } } catch (BpmnError e) { // Pass these along throw e; } catch (Throwable e) { - log.error("Problem executing command line: '" + cmdLineString + "'", e); + log.error("Problem executing command line: '" + cmdLineFields.command + "'", e); throw new BpmnError(UNEXPECTED_ERROR, e.getMessage()); // What happens to underlying process if it's running?? @@ -710,7 +657,7 @@ private Boolean executeTask(String cmdLineString, String workingDirString, Strin // set BpmnError due to non-success return code if necessary // - if (throwOnFailuresBoolean && !success) { + if (cmdLineFields.throwOnFailures && !success) { throw new BpmnError(EXECUTION_NOT_SUCCESS, "throwOnFailuresBoolean is true, and the execution was NOT successful."); } diff --git a/cws-service/src/main/java/jpl/cws/service/CwsConsoleService.java b/cws-service/src/main/java/jpl/cws/service/CwsConsoleService.java index c460a684..4d21bff1 100644 --- a/cws-service/src/main/java/jpl/cws/service/CwsConsoleService.java +++ b/cws-service/src/main/java/jpl/cws/service/CwsConsoleService.java @@ -39,6 +39,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonNull; +import org.camunda.bpm.engine.impl.persistence.entity.HistoricDetailVariableInstanceUpdateEntity; import org.camunda.bpm.engine.repository.Deployment; import org.camunda.bpm.engine.repository.DeploymentBuilder; import org.camunda.bpm.engine.repository.ProcessDefinition; @@ -474,9 +475,18 @@ private void getHistoryVarDetails(List<HistoryDetail> history, String processIns if (detail instanceof HistoricVariableUpdate) { - HistoricVariableUpdate variable = (HistoricVariableUpdate)detail; + HistoricDetailVariableInstanceUpdateEntity variable = (HistoricDetailVariableInstanceUpdateEntity)detail; - String message = "Setting (" + variable.getTypeName() + ") " + variable.getVariableName() + " = " + variable.getValue(); + String message = ""; + + if (variable.getSerializerName().equals("json")) { + + // TODO: Update this to display the actual JSON data in history (Collapsible table hopefully?) + message = "Setting (json) " + variable.getVariableName() + " = " + " <jsonData>"; + } + else { + message = "Setting (" + variable.getTypeName() + ") " + variable.getVariableName() + " = " + variable.getValue(); + } HistoryDetail historyDetail = new HistoryDetail(variable.getTime(), "VarUpdate", variable.getActivityInstanceId().split(":")[0], message); diff --git a/cws-test/src/test/resources/bpmn/test_error_handling.bpmn b/cws-test/src/test/resources/bpmn/test_error_handling.bpmn index cc17858f..f67bf09e 100644 --- a/cws-test/src/test/resources/bpmn/test_error_handling.bpmn +++ b/cws-test/src/test/resources/bpmn/test_error_handling.bpmn @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_002r6k1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="1.12.0"> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_002r6k1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1"> <bpmn:process id="test_error_handling" name="Test Error Handling" isExecutable="true"> <bpmn:startEvent id="StartEvent_1" name="START" camunda:asyncBefore="true"> <bpmn:outgoing>SequenceFlow_1v9pepy</bpmn:outgoing> @@ -8,7 +8,7 @@ <bpmn:serviceTask id="Task_0n1pyix" name="EXEC 1: no error, no throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 0"]]></camunda:expression> + <camunda:expression>bash -c "exit 0"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -48,7 +48,7 @@ <bpmn:serviceTask id="Task_11lz5p2" name="EXEC 2: no error, no throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 0"]]></camunda:expression> + <camunda:expression>bash -c "exit 0"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -129,7 +129,7 @@ <bpmn:serviceTask id="Task_0soaz9r" name="EXEC 3: no error, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 0"]]></camunda:expression> + <camunda:expression>bash -c "exit 0"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -205,7 +205,7 @@ <bpmn:serviceTask id="Task_18kndcj" name="EXEC 4: no error, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 0"]]></camunda:expression> + <camunda:expression>bash -c "exit 0"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -280,7 +280,7 @@ <bpmn:serviceTask id="Task_153ch63" name="EXEC 5: error, no throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 5"]]></camunda:expression> + <camunda:expression>bash -c "exit 5"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -319,10 +319,10 @@ </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="SequenceFlow_0tftgbi" sourceRef="Task_153ch63" targetRef="ExclusiveGateway_0pi2f5r" /> <bpmn:sequenceFlow id="SequenceFlow_17ubkbm" sourceRef="ExclusiveGateway_0pi2f5r" targetRef="Task_169nxbp"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${Task_153ch63_exitValue != "5" || Task_153ch63_success != "false"}]]></bpmn:conditionExpression> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Task_153ch63_exitValue != "5" || Task_153ch63_success != "false"}</bpmn:conditionExpression> </bpmn:sequenceFlow> <bpmn:sequenceFlow id="SequenceFlow_0zrbl5f" sourceRef="ExclusiveGateway_0pi2f5r" targetRef="Task_09xvn30"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${Task_153ch63_exitValue == "5" && Task_153ch63_success == "false"}]]></bpmn:conditionExpression> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Task_153ch63_exitValue == "5" && Task_153ch63_success == "false"}</bpmn:conditionExpression> </bpmn:sequenceFlow> <bpmn:serviceTask id="Task_09xvn30" name="LOG: SUCCESS, EXEC 5" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> <bpmn:extensionElements> @@ -359,7 +359,7 @@ <bpmn:serviceTask id="Task_15vna7u" name="EXEC 6: error, no throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 6"]]></camunda:expression> + <camunda:expression>bash -c "exit 6"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -442,7 +442,7 @@ <bpmn:serviceTask id="Task_15ytfq0" name="EXEC 7: error, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 7"]]></camunda:expression> + <camunda:expression>bash -c "exit 7"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -500,7 +500,7 @@ <bpmn:serviceTask id="Task_1f7k8dh" name="EXEC 8: error, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "exit 8"]]></camunda:expression> + <camunda:expression>bash -c "exit 8"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -602,7 +602,7 @@ <bpmn:serviceTask id="ServiceTask_0rgml7r" name="EXEC 9: timeout, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "sleep 10"]]></camunda:expression> + <camunda:expression>bash -c "sleep 10"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -661,7 +661,7 @@ <bpmn:serviceTask id="ServiceTask_0xtwwnb" name="EXEC 10: timeout, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c "sleep 10"]]></camunda:expression> + <camunda:expression>bash -c "sleep 10"</camunda:expression> </camunda:field> <camunda:field name="workingDir" /> <camunda:field name="successExitValues"> @@ -753,13 +753,13 @@ <bpmn:serviceTask id="Task_1pnbpuy" name="EXEC 11: retry with success" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count']]></camunda:expression> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> </camunda:field> <camunda:field name="successExitValues"> - <camunda:expression>0</camunda:expression> + <camunda:expression>7</camunda:expression> </camunda:field> <camunda:field name="throwOnFailures"> <camunda:expression>true</camunda:expression> @@ -778,7 +778,7 @@ <camunda:expression>86400</camunda:expression> </camunda:field> <camunda:field name="retries"> - <camunda:expression>3</camunda:expression> + <camunda:expression>4</camunda:expression> </camunda:field> <camunda:field name="retryDelay"> <camunda:expression>1000</camunda:expression> @@ -799,7 +799,7 @@ <bpmn:serviceTask id="Task_1mf8d63" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'echo 4 > count.txt']]></camunda:expression> + <camunda:expression>bash -c 'echo 11 > count.txt'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> @@ -884,7 +884,7 @@ <bpmn:serviceTask id="ServiceTask_1p7awhn" name="EXEC 12: retry fail" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count']]></camunda:expression> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> @@ -909,7 +909,7 @@ <camunda:expression>86400</camunda:expression> </camunda:field> <camunda:field name="retries"> - <camunda:expression>2</camunda:expression> + <camunda:expression>3</camunda:expression> </camunda:field> <camunda:field name="retryDelay"> <camunda:expression>1000</camunda:expression> @@ -921,7 +921,7 @@ <bpmn:serviceTask id="ServiceTask_0gkjgp7" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'echo 4 > count.txt']]></camunda:expression> + <camunda:expression>bash -c 'echo 12 > count.txt'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> @@ -1009,7 +1009,7 @@ <bpmn:serviceTask id="ServiceTask_0f2syr4" name="EXEC 13: timeout and retry with success" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; sleep $count; exit 0']]></camunda:expression> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; sleep $count; exit 0'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> @@ -1021,7 +1021,7 @@ <camunda:expression>true</camunda:expression> </camunda:field> <camunda:field name="exitCodeEvents"> - <camunda:expression>0=success</camunda:expression> + <camunda:expression>0=success,143=fail</camunda:expression> </camunda:field> <camunda:field name="throwOnTruncatedVariable"> <camunda:expression>false</camunda:expression> @@ -1031,10 +1031,10 @@ <camunda:expression>ABORT_PROCESS</camunda:expression> </camunda:field> <camunda:field name="timeout"> - <camunda:expression>5</camunda:expression> + <camunda:expression>10</camunda:expression> </camunda:field> <camunda:field name="retries"> - <camunda:expression>3</camunda:expression> + <camunda:expression>10</camunda:expression> </camunda:field> <camunda:field name="retryDelay"> <camunda:expression>1000</camunda:expression> @@ -1046,7 +1046,7 @@ <bpmn:serviceTask id="ServiceTask_0xucp01" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> <bpmn:extensionElements> <camunda:field name="cmdLine"> - <camunda:expression><![CDATA[bash -c 'echo 8 > count.txt']]></camunda:expression> + <camunda:expression>bash -c 'echo 13 > count.txt'</camunda:expression> </camunda:field> <camunda:field name="workingDir"> <camunda:expression>/tmp</camunda:expression> @@ -1123,18 +1123,16 @@ <bpmn:sequenceFlow id="SequenceFlow_11g6os8" sourceRef="ServiceTask_1al0pck" targetRef="EndEvent_10r6hd2" /> <bpmn:sequenceFlow id="SequenceFlow_01xzzzt" sourceRef="ServiceTask_1rtbt4j" targetRef="SubProcess_18wkc4m" /> <bpmn:sequenceFlow id="SequenceFlow_0ndm3og" sourceRef="ServiceTask_1ufgxlc" targetRef="EndEvent_1nqcd3n" /> - <bpmn:exclusiveGateway id="ExclusiveGateway_1mqy34e"> + <bpmn:exclusiveGateway id="ExclusiveGateway_1mqy34e" default="SequenceFlow_0i1vvi9"> <bpmn:incoming>SequenceFlow_1jeej0r</bpmn:incoming> <bpmn:outgoing>SequenceFlow_1tsitl7</bpmn:outgoing> <bpmn:outgoing>SequenceFlow_0i1vvi9</bpmn:outgoing> </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="SequenceFlow_1jeej0r" sourceRef="SubProcess_18wkc4m" targetRef="ExclusiveGateway_1mqy34e" /> <bpmn:sequenceFlow id="SequenceFlow_1tsitl7" sourceRef="ExclusiveGateway_1mqy34e" targetRef="ServiceTask_1ufgxlc"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${ServiceTask_0f2syr4_output == "count = 4" && ServiceTask_0f2syr4_success == "true"}]]></bpmn:conditionExpression> - </bpmn:sequenceFlow> - <bpmn:sequenceFlow id="SequenceFlow_0i1vvi9" sourceRef="ExclusiveGateway_1mqy34e" targetRef="ServiceTask_1al0pck"> - <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression"><![CDATA[${ServiceTask_0f2syr4_output != "count = 4"}]]></bpmn:conditionExpression> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ServiceTask_0f2syr4_output == "count = 9" && ServiceTask_0f2syr4_success == "true"}</bpmn:conditionExpression> </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="SequenceFlow_0i1vvi9" sourceRef="ExclusiveGateway_1mqy34e" targetRef="ServiceTask_1al0pck" /> <bpmn:endEvent id="EndEvent_10r6hd2" name="EXEC 13 FAILED"> <bpmn:incoming>SequenceFlow_11g6os8</bpmn:incoming> <bpmn:errorEventDefinition errorRef="Error_0qgeyix" /> @@ -1184,7 +1182,7 @@ <bpmn:errorEventDefinition errorRef="Error_0vvgl6d" /> </bpmn:endEvent> <bpmn:textAnnotation id="TextAnnotation_02zrjl5"> - <bpmn:text><![CDATA[CASES: + <bpmn:text>CASES: ------------ EXEC 1: no error, no throw, no boundary catch EXEC 2: no error, no throw, boundary catch @@ -1199,15 +1197,15 @@ EXEC 10: timeout, throw, boundary catch EXEC 11: retry with success EXEC 12: retry fail EXEC 13: timeout and retry with success -]]></bpmn:text> +</bpmn:text> </bpmn:textAnnotation> <bpmn:association id="Association_0tnfp5s" sourceRef="Task_0n1pyix" targetRef="TextAnnotation_02zrjl5" /> <bpmn:textAnnotation id="TextAnnotation_1ohx03e"> - <bpmn:text><![CDATA[This tests having no boundary catch, so we put one on a surrounding sub-pocess just in case a BPMN error is thrown. If one is thrown, then that's unexpected]]></bpmn:text> + <bpmn:text>This tests having no boundary catch, so we put one on a surrounding sub-pocess just in case a BPMN error is thrown. If one is thrown, then that's unexpected</bpmn:text> </bpmn:textAnnotation> <bpmn:association id="Association_1jdu3g6" sourceRef="SubProcess_1aryk9p" targetRef="TextAnnotation_1ohx03e" /> <bpmn:textAnnotation id="TextAnnotation_0x0tng2"> - <bpmn:text><![CDATA[EXEC 5 throws an error, but doesn't throw it. The exitCode is recorded as a variable, and we check whether it was correctly set here.]]></bpmn:text> + <bpmn:text>EXEC 5 throws an error, but doesn't throw it. The exitCode is recorded as a variable, and we check whether it was correctly set here.</bpmn:text> </bpmn:textAnnotation> <bpmn:association id="Association_1q6pxu6" sourceRef="Task_153ch63" targetRef="TextAnnotation_0x0tng2" /> <bpmn:textAnnotation id="TextAnnotation_0i8b4xm"> @@ -1219,7 +1217,7 @@ EXEC 13: timeout and retry with success </bpmn:textAnnotation> <bpmn:association id="Association_0siar4u" sourceRef="SubProcess_1gd4872" targetRef="TextAnnotation_0ng5tqw" /> <bpmn:textAnnotation id="TextAnnotation_06o2otu"> - <bpmn:text><![CDATA[EXEC 12 doesn't have enough retries to succeed, so this is expected to throw an error, and take the boundary catch flow.]]></bpmn:text> + <bpmn:text>EXEC 12 doesn't have enough retries to succeed, so this is expected to throw an error, and take the boundary catch flow.</bpmn:text> </bpmn:textAnnotation> <bpmn:association id="Association_0squ8i0" sourceRef="SubProcess_1prxazd" targetRef="TextAnnotation_06o2otu" /> <bpmn:textAnnotation id="TextAnnotation_08w6mdr"> @@ -1241,943 +1239,943 @@ EXEC 13: timeout and retry with success <bpmn:error id="Error_0v7xh9l" name="Error_1lmk35n" errorCode="11" /> <bpmndi:BPMNDiagram id="BPMNDiagram_1"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_error_handling"> - <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> - <dc:Bounds x="398" y="114" width="36" height="36" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="398" y="84" width="36" height="12" /> - </bpmndi:BPMNLabel> + <bpmndi:BPMNShape id="TextAnnotation_02zrjl5_di" bpmnElement="TextAnnotation_02zrjl5"> + <dc:Bounds x="622" y="78" width="290" height="232" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1v9pepy_di" bpmnElement="SequenceFlow_1v9pepy"> - <di:waypoint x="416" y="150" /> - <di:waypoint x="416" y="222" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="179.5" width="0" height="13" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_00bfu59_di" bpmnElement="Task_0n1pyix"> - <dc:Bounds x="366" y="222" width="100" height="80" /> + <bpmndi:BPMNShape id="TextAnnotation_1ohx03e_di" bpmnElement="TextAnnotation_1ohx03e"> + <dc:Bounds x="659" y="576" width="137" height="134" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="Task_05qo2b7_di" bpmnElement="Task_05qo2b7"> - <dc:Bounds x="208" y="222" width="100" height="80" /> + <bpmndi:BPMNShape id="TextAnnotation_0x0tng2_di" bpmnElement="TextAnnotation_0x0tng2"> + <dc:Bounds x="624" y="1064" width="188" height="96" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_17s3hbt_di" bpmnElement="SequenceFlow_17s3hbt"> - <di:waypoint x="366" y="262" /> - <di:waypoint x="308" y="262" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="240" width="0" height="13" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="TextAnnotation_02zrjl5_di" bpmnElement="TextAnnotation_02zrjl5"> - <dc:Bounds x="542" y="78" width="290" height="232" /> + <bpmndi:BPMNShape id="TextAnnotation_0i8b4xm_di" bpmnElement="TextAnnotation_0i8b4xm"> + <dc:Bounds x="160" y="1530" width="184" height="166" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_0tnfp5s_di" bpmnElement="Association_0tnfp5s"> - <di:waypoint x="466" y="251" /> - <di:waypoint x="542" y="233" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0k2q43e_di" bpmnElement="Task_11lz5p2"> - <dc:Bounds x="366" y="377" width="100" height="80" /> + <bpmndi:BPMNShape id="TextAnnotation_0ng5tqw_di" bpmnElement="TextAnnotation_0ng5tqw"> + <dc:Bounds x="160" y="2089" width="183" height="167" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_08f37km_di" bpmnElement="SequenceFlow_08f37km"> - <di:waypoint x="258" y="302" /> - <di:waypoint x="258" y="334" /> - <di:waypoint x="416" y="334" /> - <di:waypoint x="416" y="377" /> + <bpmndi:BPMNShape id="TextAnnotation_06o2otu_di" bpmnElement="TextAnnotation_06o2otu"> + <dc:Bounds x="659" y="3132" width="100" height="140" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_08w6mdr_di" bpmnElement="TextAnnotation_08w6mdr"> + <dc:Bounds x="659" y="3593" width="100" height="84" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0i1vvi9_di" bpmnElement="SequenceFlow_0i1vvi9"> + <di:waypoint x="521" y="3955" /> + <di:waypoint x="709" y="3955" /> + <di:waypoint x="709" y="3817" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="312.5" width="0" height="13" /> + <dc:Bounds x="535" y="3933.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="BoundaryEvent_09jr242_di" bpmnElement="BoundaryEvent_16tisyd"> - <dc:Bounds x="448" y="439" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_1tsitl7_di" bpmnElement="SequenceFlow_1tsitl7"> + <di:waypoint x="496" y="3980" /> + <di:waypoint x="496" y="4019" /> <bpmndi:BPMNLabel> - <dc:Bounds x="466" y="478" width="0" height="13" /> + <dc:Bounds x="431" y="3992.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0l9c135_di" bpmnElement="SequenceFlow_0l9c135"> - <di:waypoint x="484" y="457" /> - <di:waypoint x="545" y="457" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1jeej0r_di" bpmnElement="SequenceFlow_1jeej0r"> + <di:waypoint x="496" y="3884" /> + <di:waypoint x="496" y="3930" /> <bpmndi:BPMNLabel> - <dc:Bounds x="514.5" y="435.5" width="0" height="13" /> + <dc:Bounds x="431" y="3900" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_06rhiq8_di" bpmnElement="Task_09ldt3b"> - <dc:Bounds x="545" y="417" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0ocesge_di" bpmnElement="SequenceFlow_0ocesge"> - <di:waypoint x="366" y="417" /> - <di:waypoint x="308" y="417" /> + <bpmndi:BPMNEdge id="SequenceFlow_0ndm3og_di" bpmnElement="SequenceFlow_0ndm3og"> + <di:waypoint x="496" y="4099" /> + <di:waypoint x="496" y="4164" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="395.5" width="0" height="13" /> + <dc:Bounds x="431" y="4125" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1oetwm3_di" bpmnElement="Task_1bqcbb6"> - <dc:Bounds x="208" y="377" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_1aryk9p_di" bpmnElement="SubProcess_1aryk9p" isExpanded="true"> - <dc:Bounds x="346" y="540" width="140" height="282" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="StartEvent_10lyuwu_di" bpmnElement="StartEvent_10lyuwu"> - <dc:Bounds x="398" y="574" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_01xzzzt_di" bpmnElement="SequenceFlow_01xzzzt"> + <di:waypoint x="296" y="3483" /> + <di:waypoint x="296" y="3508" /> + <di:waypoint x="496" y="3508" /> + <di:waypoint x="496" y="3540" /> <bpmndi:BPMNLabel> - <dc:Bounds x="416" y="550.5" width="0" height="13" /> + <dc:Bounds x="316" y="3486.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_03ubyh1_di" bpmnElement="EndEvent_03ubyh1"> - <dc:Bounds x="398" y="753" width="36" height="36" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_11g6os8_di" bpmnElement="SequenceFlow_11g6os8"> + <di:waypoint x="743" y="3776" /> + <di:waypoint x="801" y="3776" /> <bpmndi:BPMNLabel> - <dc:Bounds x="416" y="792" width="0" height="13" /> + <dc:Bounds x="692" y="3754.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1bfeyxu_di" bpmnElement="Task_0soaz9r"> - <dc:Bounds x="366" y="640" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1fo3x1q_di" bpmnElement="SequenceFlow_1fo3x1q"> - <di:waypoint x="416" y="610" /> - <di:waypoint x="416" y="640" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1btfmxd_di" bpmnElement="SequenceFlow_1btfmxd"> + <di:waypoint x="588" y="3884" /> + <di:waypoint x="676" y="3884" /> + <di:waypoint x="676" y="3816" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="618" width="0" height="13" /> + <dc:Bounds x="552" y="3862.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_03l1qjb_di" bpmnElement="SequenceFlow_03l1qjb"> - <di:waypoint x="416" y="720" /> - <di:waypoint x="416" y="753" /> + <bpmndi:BPMNEdge id="SequenceFlow_1bwwqgb_di" bpmnElement="SequenceFlow_1bwwqgb"> + <di:waypoint x="725" y="3335" /> + <di:waypoint x="801" y="3335" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="729.5" width="0" height="13" /> + <dc:Bounds x="683" y="3313.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_13svdv3_di" bpmnElement="SequenceFlow_13svdv3"> - <di:waypoint x="258" y="457" /> - <di:waypoint x="258" y="503" /> - <di:waypoint x="416" y="503" /> - <di:waypoint x="416" y="540" /> + <bpmndi:BPMNEdge id="SequenceFlow_1hn952u_di" bpmnElement="SequenceFlow_1hn952u"> + <di:waypoint x="570" y="3335" /> + <di:waypoint x="598" y="3335" /> + <di:waypoint x="625" y="3335" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="481.5" width="0" height="13" /> + <dc:Bounds x="504" y="3313.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1nvhsbd_di" bpmnElement="SequenceFlow_1nvhsbd"> - <di:waypoint x="346" y="681" /> - <di:waypoint x="308" y="681" /> + <bpmndi:BPMNEdge id="SequenceFlow_0nf81s5_di" bpmnElement="SequenceFlow_0nf81s5"> + <di:waypoint x="315" y="2908" /> + <di:waypoint x="315" y="3057" /> + <di:waypoint x="496" y="3057" /> + <di:waypoint x="496" y="3099" /> <bpmndi:BPMNLabel> - <dc:Bounds x="327" y="659.5" width="0" height="13" /> + <dc:Bounds x="325.5" y="3035.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1vechum_di" bpmnElement="Task_0beex68"> - <dc:Bounds x="208" y="641" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="TextAnnotation_1ohx03e_di" bpmnElement="TextAnnotation_1ohx03e"> - <dc:Bounds x="579" y="576" width="137" height="134" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_1jdu3g6_di" bpmnElement="Association_1jdu3g6"> - <di:waypoint x="486" y="672" /> - <di:waypoint x="579" y="661" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="BoundaryEvent_1gzh66k_di" bpmnElement="BoundaryEvent_0ti8teb"> - <dc:Bounds x="468" y="804" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_0j6w1i1_di" bpmnElement="SequenceFlow_0j6w1i1"> + <di:waypoint x="403" y="3443" /> + <di:waypoint x="346" y="3443" /> <bpmndi:BPMNLabel> - <dc:Bounds x="486" y="843" width="0" height="13" /> + <dc:Bounds x="294.5" y="3421.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1cs2kii_di" bpmnElement="SequenceFlow_1cs2kii"> - <di:waypoint x="504" y="822" /> - <di:waypoint x="545" y="822" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_14aw9kh_di" bpmnElement="SequenceFlow_14aw9kh"> + <di:waypoint x="421" y="2838" /> + <di:waypoint x="393" y="2838" /> + <di:waypoint x="393" y="2868" /> + <di:waypoint x="365" y="2868" /> <bpmndi:BPMNLabel> - <dc:Bounds x="524.5" y="800.5" width="0" height="13" /> + <dc:Bounds x="328" y="2846.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_08lsaav_di" bpmnElement="Task_1ndn5z8"> - <dc:Bounds x="545" y="782" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0zurb6n_di" bpmnElement="SequenceFlow_0zurb6n"> - <di:waypoint x="258" y="721" /> - <di:waypoint x="258" y="864" /> - <di:waypoint x="416" y="864" /> - <di:waypoint x="416" y="908" /> + <bpmndi:BPMNEdge id="SequenceFlow_1f6dsy1_di" bpmnElement="SequenceFlow_1f6dsy1"> + <di:waypoint x="743" y="2901" /> + <di:waypoint x="801" y="2901" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="842.5" width="0" height="13" /> + <dc:Bounds x="692" y="2879.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0svdh6v_di" bpmnElement="Task_18kndcj"> - <dc:Bounds x="366" y="908" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_1fvz9ks_di" bpmnElement="BoundaryEvent_1cwbka0"> - <dc:Bounds x="448" y="970" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_16gscvv_di" bpmnElement="SequenceFlow_16gscvv"> + <di:waypoint x="588" y="3009" /> + <di:waypoint x="693" y="3009" /> + <di:waypoint x="693" y="2941" /> <bpmndi:BPMNLabel> - <dc:Bounds x="466" y="1009" width="0" height="13" /> + <dc:Bounds x="560.5" y="2987.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0e6ebxr_di" bpmnElement="SequenceFlow_0e6ebxr"> - <di:waypoint x="645" y="457" /> - <di:waypoint x="721" y="457" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ao694i_di" bpmnElement="SequenceFlow_1ao694i"> + <di:waypoint x="338" y="2595" /> + <di:waypoint x="338" y="2627" /> + <di:waypoint x="496" y="2627" /> + <di:waypoint x="496" y="2665" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="435.5" width="90" height="13" /> + <dc:Bounds x="337" y="2605.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0qeoxh1_di" bpmnElement="SequenceFlow_0qeoxh1"> - <di:waypoint x="645" y="822" /> - <di:waypoint x="721" y="822" /> + <bpmndi:BPMNEdge id="SequenceFlow_0x36h9u_di" bpmnElement="SequenceFlow_0x36h9u"> + <di:waypoint x="546" y="2515" /> + <di:waypoint x="625" y="2515" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="800.5" width="90" height="13" /> + <dc:Bounds x="505.5" y="2493" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_021tokq_di" bpmnElement="SequenceFlow_021tokq"> - <di:waypoint x="484" y="988" /> - <di:waypoint x="545" y="988" /> + <bpmndi:BPMNEdge id="SequenceFlow_17ohc6x_di" bpmnElement="SequenceFlow_17ohc6x"> + <di:waypoint x="725" y="2515" /> + <di:waypoint x="801" y="2515" /> <bpmndi:BPMNLabel> - <dc:Bounds x="514.5" y="966.5" width="0" height="13" /> + <dc:Bounds x="683" y="2493.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_16k6son_di" bpmnElement="Task_1f9i5os"> - <dc:Bounds x="545" y="948" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1ta6zx7_di" bpmnElement="SequenceFlow_1ta6zx7"> - <di:waypoint x="645" y="988" /> - <di:waypoint x="721" y="988" /> + <bpmndi:BPMNEdge id="SequenceFlow_0h45bhr_di" bpmnElement="SequenceFlow_0h45bhr"> + <di:waypoint x="428" y="2555" /> + <di:waypoint x="388" y="2555" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="966.5" width="90" height="13" /> + <dc:Bounds x="328" y="2533" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_19b7bny_di" bpmnElement="SequenceFlow_19b7bny"> - <di:waypoint x="366" y="948" /> - <di:waypoint x="308" y="948" /> + <bpmndi:BPMNEdge id="SequenceFlow_1jzdbrf_di" bpmnElement="SequenceFlow_1jzdbrf"> + <di:waypoint x="338" y="2393" /> + <di:waypoint x="338" y="2435" /> + <di:waypoint x="496" y="2435" /> + <di:waypoint x="496" y="2475" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="926.5" width="0" height="13" /> + <dc:Bounds x="337" y="2413.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1389ptq_di" bpmnElement="Task_0tbioux"> - <dc:Bounds x="208" y="908" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0af7rfa_di" bpmnElement="SequenceFlow_0af7rfa"> - <di:waypoint x="258" y="988" /> - <di:waypoint x="258" y="1024" /> - <di:waypoint x="416" y="1024" /> - <di:waypoint x="416" y="1072" /> + <bpmndi:BPMNEdge id="SequenceFlow_1lv786n_di" bpmnElement="SequenceFlow_1lv786n"> + <di:waypoint x="408" y="2353" /> + <di:waypoint x="388" y="2353" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="1002.5" width="0" height="13" /> + <dc:Bounds x="318" y="2331" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1xa83r5_di" bpmnElement="Task_153ch63"> - <dc:Bounds x="366" y="1072" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ExclusiveGateway_0pi2f5r_di" bpmnElement="ExclusiveGateway_0pi2f5r" isMarkerVisible="true"> - <dc:Bounds x="391" y="1203.558" width="50" height="50" /> + <bpmndi:BPMNEdge id="SequenceFlow_040sxgr_di" bpmnElement="SequenceFlow_040sxgr"> + <di:waypoint x="566" y="2224" /> + <di:waypoint x="625" y="2224" /> <bpmndi:BPMNLabel> - <dc:Bounds x="416" y="1256.558" width="0" height="13" /> + <dc:Bounds x="515.5" y="2202.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0tftgbi_di" bpmnElement="SequenceFlow_0tftgbi"> - <di:waypoint x="416" y="1152" /> - <di:waypoint x="416" y="1204" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_11dwd7c_di" bpmnElement="SequenceFlow_11dwd7c"> + <di:waypoint x="725" y="2224" /> + <di:waypoint x="801" y="2224" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="1171" width="0" height="13" /> + <dc:Bounds x="683" y="2202.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="TextAnnotation_0x0tng2_di" bpmnElement="TextAnnotation_0x0tng2"> - <dc:Bounds x="544" y="1064" width="188" height="96" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_1q6pxu6_di" bpmnElement="Association_1q6pxu6"> - <di:waypoint x="466" y="1118" /> - <di:waypoint x="544" y="1127" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_17ubkbm_di" bpmnElement="SequenceFlow_17ubkbm"> - <di:waypoint x="441" y="1229" /> - <di:waypoint x="545" y="1229" /> + <bpmndi:BPMNEdge id="SequenceFlow_1rtrpt5_di" bpmnElement="SequenceFlow_1rtrpt5"> + <di:waypoint x="725" y="1946" /> + <di:waypoint x="801" y="1946" /> <bpmndi:BPMNLabel> - <dc:Bounds x="493" y="1207.5" width="0" height="13" /> + <dc:Bounds x="638" y="1924.5" width="90" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0zrbl5f_di" bpmnElement="SequenceFlow_0zrbl5f"> - <di:waypoint x="391" y="1229" /> - <di:waypoint x="308" y="1229" /> + <bpmndi:BPMNEdge id="SequenceFlow_0e6nepr_di" bpmnElement="SequenceFlow_0e6nepr"> + <di:waypoint x="546" y="1946" /> + <di:waypoint x="625" y="1946" /> <bpmndi:BPMNLabel> - <dc:Bounds x="349.5" y="1207.5" width="0" height="13" /> + <dc:Bounds x="505.5" y="1924.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0mmd35v_di" bpmnElement="Task_09xvn30"> - <dc:Bounds x="208" y="1189" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0qimjtt_di" bpmnElement="Task_169nxbp"> - <dc:Bounds x="545" y="1189" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_05v6vy6_di" bpmnElement="SequenceFlow_05v6vy6"> - <di:waypoint x="645" y="1229" /> - <di:waypoint x="721" y="1229" /> + <bpmndi:BPMNEdge id="SequenceFlow_0sk3ap9_di" bpmnElement="SequenceFlow_0sk3ap9"> + <di:waypoint x="566" y="1658" /> + <di:waypoint x="625" y="1658" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="1207.5" width="90" height="13" /> + <dc:Bounds x="515.5" y="1636" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0h89kak_di" bpmnElement="SequenceFlow_0h89kak"> - <di:waypoint x="258" y="1269" /> - <di:waypoint x="258" y="1304" /> - <di:waypoint x="416" y="1304" /> - <di:waypoint x="416" y="1346" /> + <bpmndi:BPMNEdge id="SequenceFlow_1vs943e_di" bpmnElement="SequenceFlow_1vs943e"> + <di:waypoint x="725" y="1658" /> + <di:waypoint x="801" y="1658" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="1282.5" width="0" height="13" /> + <dc:Bounds x="638" y="1637" width="90" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1k4t77n_di" bpmnElement="Task_15vna7u"> - <dc:Bounds x="366" y="1346" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0spo4hq_di" bpmnElement="BoundaryEvent_1xtency"> - <dc:Bounds x="448" y="1408" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_0289la0_di" bpmnElement="SequenceFlow_0289la0"> + <di:waypoint x="338" y="2026" /> + <di:waypoint x="338" y="2056" /> + <di:waypoint x="496" y="2056" /> + <di:waypoint x="496" y="2095" /> <bpmndi:BPMNLabel> - <dc:Bounds x="466" y="1447" width="0" height="13" /> + <dc:Bounds x="292" y="2034.5" width="90" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0wsbmz7_di" bpmnElement="SequenceFlow_0wsbmz7"> - <di:waypoint x="484" y="1426" /> - <di:waypoint x="545" y="1426" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_16lhzwv_di" bpmnElement="SequenceFlow_16lhzwv"> + <di:waypoint x="428" y="1986" /> + <di:waypoint x="388" y="1986" /> <bpmndi:BPMNLabel> - <dc:Bounds x="514.5" y="1404.5" width="0" height="13" /> + <dc:Bounds x="328" y="1964.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0zfpi3w_di" bpmnElement="Task_1dodxgm"> - <dc:Bounds x="545" y="1386" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_05zcf1z_di" bpmnElement="SequenceFlow_05zcf1z"> - <di:waypoint x="645" y="1426" /> - <di:waypoint x="721" y="1426" /> + <bpmndi:BPMNEdge id="SequenceFlow_1l86ge3_di" bpmnElement="SequenceFlow_1l86ge3"> + <di:waypoint x="338" y="1826" /> + <di:waypoint x="338" y="1868" /> + <di:waypoint x="496" y="1868" /> + <di:waypoint x="496" y="1906" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="1404.5" width="90" height="13" /> + <dc:Bounds x="337" y="1846.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0sz1nlv_di" bpmnElement="SequenceFlow_0sz1nlv"> - <di:waypoint x="366" y="1386" /> - <di:waypoint x="308" y="1386" /> + <bpmndi:BPMNEdge id="SequenceFlow_1wf13xv_di" bpmnElement="SequenceFlow_1wf13xv"> + <di:waypoint x="408" y="1786" /> + <di:waypoint x="388" y="1786" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="1364.5" width="0" height="13" /> + <dc:Bounds x="318" y="1764.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1hcqsmf_di" bpmnElement="Task_0vujjfw"> - <dc:Bounds x="208" y="1346" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_17ubnip_di" bpmnElement="SubProcess_17ubnip" isExpanded="true"> - <dc:Bounds x="346" y="1529" width="140" height="257" /> - </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="SequenceFlow_0v99q9q_di" bpmnElement="SequenceFlow_0v99q9q"> - <di:waypoint x="258" y="1426" /> - <di:waypoint x="258" y="1468" /> - <di:waypoint x="416" y="1468" /> - <di:waypoint x="416" y="1529" /> + <di:waypoint x="338" y="1426" /> + <di:waypoint x="338" y="1468" /> + <di:waypoint x="496" y="1468" /> + <di:waypoint x="496" y="1529" /> <bpmndi:BPMNLabel> <dc:Bounds x="337" y="1446.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_1kngum0_di" bpmnElement="StartEvent_1kngum0"> - <dc:Bounds x="397" y="1545.9859999999999" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_0sz1nlv_di" bpmnElement="SequenceFlow_0sz1nlv"> + <di:waypoint x="446" y="1386" /> + <di:waypoint x="388" y="1386" /> <bpmndi:BPMNLabel> - <dc:Bounds x="415" y="1523.4719999999998" width="0" height="13" /> + <dc:Bounds x="337" y="1364.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0b9qoib_di" bpmnElement="EndEvent_0b9qoib"> - <dc:Bounds x="397" y="1735.9859999999999" width="36" height="36" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_05zcf1z_di" bpmnElement="SequenceFlow_05zcf1z"> + <di:waypoint x="725" y="1426" /> + <di:waypoint x="801" y="1426" /> <bpmndi:BPMNLabel> - <dc:Bounds x="415" y="1774.9859999999999" width="0" height="13" /> + <dc:Bounds x="638" y="1404.5" width="90" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0lxjrp1_di" bpmnElement="SequenceFlow_0lxjrp1"> - <di:waypoint x="415" y="1581.9859999999999" /> - <di:waypoint x="415" y="1615" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0wsbmz7_di" bpmnElement="SequenceFlow_0wsbmz7"> + <di:waypoint x="564" y="1426" /> + <di:waypoint x="625" y="1426" /> <bpmndi:BPMNLabel> - <dc:Bounds x="430" y="1591.993" width="0" height="13" /> + <dc:Bounds x="514.5" y="1404.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0k3u8ii_di" bpmnElement="SequenceFlow_0k3u8ii"> - <di:waypoint x="415" y="1695" /> - <di:waypoint x="415" y="1736" /> + <bpmndi:BPMNEdge id="SequenceFlow_0h89kak_di" bpmnElement="SequenceFlow_0h89kak"> + <di:waypoint x="338" y="1269" /> + <di:waypoint x="338" y="1304" /> + <di:waypoint x="496" y="1304" /> + <di:waypoint x="496" y="1346" /> <bpmndi:BPMNLabel> - <dc:Bounds x="430" y="1709" width="0" height="13" /> + <dc:Bounds x="337" y="1282.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="TextAnnotation_0i8b4xm_di" bpmnElement="TextAnnotation_0i8b4xm"> - <dc:Bounds x="80" y="1530" width="184" height="166" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_199geb7_di" bpmnElement="Association_199geb7"> - <di:waypoint x="346" y="1637" /> - <di:waypoint x="264" y="1612" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="BoundaryEvent_18epjzl_di" bpmnElement="BoundaryEvent_14dzlp6"> - <dc:Bounds x="328" y="1768" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_05v6vy6_di" bpmnElement="SequenceFlow_05v6vy6"> + <di:waypoint x="725" y="1229" /> + <di:waypoint x="801" y="1229" /> <bpmndi:BPMNLabel> - <dc:Bounds x="346" y="1807" width="0" height="13" /> + <dc:Bounds x="638" y="1207.5" width="90" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_135qhll_di" bpmnElement="Task_15ytfq0"> - <dc:Bounds x="365" y="1615" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1wf13xv_di" bpmnElement="SequenceFlow_1wf13xv"> - <di:waypoint x="328" y="1786" /> - <di:waypoint x="308" y="1786" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0zrbl5f_di" bpmnElement="SequenceFlow_0zrbl5f"> + <di:waypoint x="471" y="1229" /> + <di:waypoint x="388" y="1229" /> <bpmndi:BPMNLabel> - <dc:Bounds x="318" y="1764.5" width="0" height="13" /> + <dc:Bounds x="349.5" y="1207.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1imu6cl_di" bpmnElement="Task_1c0pkaj"> - <dc:Bounds x="208" y="1746" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1l86ge3_di" bpmnElement="SequenceFlow_1l86ge3"> - <di:waypoint x="258" y="1826" /> - <di:waypoint x="258" y="1868" /> - <di:waypoint x="416" y="1868" /> - <di:waypoint x="416" y="1906" /> + <bpmndi:BPMNEdge id="SequenceFlow_17ubkbm_di" bpmnElement="SequenceFlow_17ubkbm"> + <di:waypoint x="521" y="1229" /> + <di:waypoint x="625" y="1229" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="1846.5" width="0" height="13" /> + <dc:Bounds x="493" y="1207.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0hi69fz_di" bpmnElement="Task_1f7k8dh"> - <dc:Bounds x="366" y="1906" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0pzsztl_di" bpmnElement="BoundaryEvent_133h24c"> - <dc:Bounds x="348" y="1968" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_0tftgbi_di" bpmnElement="SequenceFlow_0tftgbi"> + <di:waypoint x="496" y="1152" /> + <di:waypoint x="496" y="1204" /> <bpmndi:BPMNLabel> - <dc:Bounds x="366" y="2007" width="0" height="13" /> + <dc:Bounds x="431" y="1171" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_16lhzwv_di" bpmnElement="SequenceFlow_16lhzwv"> - <di:waypoint x="348" y="1986" /> - <di:waypoint x="308" y="1986" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0af7rfa_di" bpmnElement="SequenceFlow_0af7rfa"> + <di:waypoint x="338" y="988" /> + <di:waypoint x="338" y="1024" /> + <di:waypoint x="496" y="1024" /> + <di:waypoint x="496" y="1072" /> <bpmndi:BPMNLabel> - <dc:Bounds x="328" y="1964.5" width="0" height="13" /> + <dc:Bounds x="337" y="1002.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1isfyd0_di" bpmnElement="Task_1b0pni0"> - <dc:Bounds x="208" y="1946" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1nqcd3n_di" bpmnElement="EndEvent_1nqcd3n"> - <dc:Bounds x="398" y="4164" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_19b7bny_di" bpmnElement="SequenceFlow_19b7bny"> + <di:waypoint x="446" y="948" /> + <di:waypoint x="388" y="948" /> <bpmndi:BPMNLabel> - <dc:Bounds x="375" y="4210" width="82" height="36" /> + <dc:Bounds x="337" y="926.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0289la0_di" bpmnElement="SequenceFlow_0289la0"> - <di:waypoint x="258" y="2026" /> - <di:waypoint x="258" y="2056" /> - <di:waypoint x="416" y="2056" /> - <di:waypoint x="416" y="2095" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ta6zx7_di" bpmnElement="SequenceFlow_1ta6zx7"> + <di:waypoint x="725" y="988" /> + <di:waypoint x="801" y="988" /> <bpmndi:BPMNLabel> - <dc:Bounds x="292" y="2034.5" width="90" height="13" /> + <dc:Bounds x="638" y="966.5" width="90" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1vs943e_di" bpmnElement="SequenceFlow_1vs943e"> - <di:waypoint x="645" y="1658" /> - <di:waypoint x="721" y="1658" /> + <bpmndi:BPMNEdge id="SequenceFlow_021tokq_di" bpmnElement="SequenceFlow_021tokq"> + <di:waypoint x="564" y="988" /> + <di:waypoint x="625" y="988" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="1637" width="90" height="13" /> + <dc:Bounds x="514.5" y="966.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0r6hoib_di" bpmnElement="Task_0au9i4c"> - <dc:Bounds x="545" y="1618" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0sk3ap9_di" bpmnElement="SequenceFlow_0sk3ap9"> - <di:waypoint x="486" y="1658" /> - <di:waypoint x="545" y="1658" /> + <bpmndi:BPMNEdge id="SequenceFlow_0qeoxh1_di" bpmnElement="SequenceFlow_0qeoxh1"> + <di:waypoint x="725" y="822" /> + <di:waypoint x="801" y="822" /> <bpmndi:BPMNLabel> - <dc:Bounds x="515.5" y="1636" width="0" height="13" /> + <dc:Bounds x="638" y="800.5" width="90" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0e6nepr_di" bpmnElement="SequenceFlow_0e6nepr"> - <di:waypoint x="466" y="1946" /> - <di:waypoint x="545" y="1946" /> + <bpmndi:BPMNEdge id="SequenceFlow_0e6ebxr_di" bpmnElement="SequenceFlow_0e6ebxr"> + <di:waypoint x="725" y="457" /> + <di:waypoint x="801" y="457" /> <bpmndi:BPMNLabel> - <dc:Bounds x="505.5" y="1924.5" width="0" height="13" /> + <dc:Bounds x="638" y="435.5" width="90" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1rtrpt5_di" bpmnElement="SequenceFlow_1rtrpt5"> - <di:waypoint x="645" y="1946" /> - <di:waypoint x="721" y="1946" /> + <bpmndi:BPMNEdge id="SequenceFlow_0zurb6n_di" bpmnElement="SequenceFlow_0zurb6n"> + <di:waypoint x="338" y="721" /> + <di:waypoint x="338" y="864" /> + <di:waypoint x="496" y="864" /> + <di:waypoint x="496" y="908" /> <bpmndi:BPMNLabel> - <dc:Bounds x="638" y="1924.5" width="90" height="13" /> + <dc:Bounds x="337" y="842.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0b33i74_di" bpmnElement="Task_0486lne"> - <dc:Bounds x="545" y="1906" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_1gd4872_di" bpmnElement="SubProcess_1gd4872" isExpanded="true"> - <dc:Bounds x="346" y="2095" width="140" height="257" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_1ncxcp7_di" bpmnElement="BoundaryEvent_1ncxcp7"> - <dc:Bounds x="328" y="2335" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_1cs2kii_di" bpmnElement="SequenceFlow_1cs2kii"> + <di:waypoint x="584" y="822" /> + <di:waypoint x="625" y="822" /> <bpmndi:BPMNLabel> - <dc:Bounds x="346" y="2374" width="0" height="13" /> + <dc:Bounds x="524.5" y="800.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="StartEvent_02knsq2_di" bpmnElement="StartEvent_02knsq2"> - <dc:Bounds x="397" y="2113" width="36" height="36" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1nvhsbd_di" bpmnElement="SequenceFlow_1nvhsbd"> + <di:waypoint x="426" y="681" /> + <di:waypoint x="388" y="681" /> <bpmndi:BPMNLabel> - <dc:Bounds x="370" y="2090.5" width="0" height="13" /> + <dc:Bounds x="327" y="659.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_033ijmx_di" bpmnElement="EndEvent_033ijmx"> - <dc:Bounds x="397" y="2303" width="36" height="36" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_13svdv3_di" bpmnElement="SequenceFlow_13svdv3"> + <di:waypoint x="338" y="457" /> + <di:waypoint x="338" y="503" /> + <di:waypoint x="496" y="503" /> + <di:waypoint x="496" y="540" /> <bpmndi:BPMNLabel> - <dc:Bounds x="370" y="2342" width="0" height="13" /> + <dc:Bounds x="337" y="481.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0rgml7r_di" bpmnElement="ServiceTask_0rgml7r"> - <dc:Bounds x="365" y="2182" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1f3207x_di" bpmnElement="SequenceFlow_1f3207x"> - <di:waypoint x="415" y="2262" /> - <di:waypoint x="415" y="2303" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0ocesge_di" bpmnElement="SequenceFlow_0ocesge"> + <di:waypoint x="446" y="417" /> + <di:waypoint x="388" y="417" /> <bpmndi:BPMNLabel> - <dc:Bounds x="385" y="2276.5" width="0" height="13" /> + <dc:Bounds x="337" y="395.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0o9a23o_di" bpmnElement="SequenceFlow_0o9a23o"> - <di:waypoint x="415" y="2149" /> - <di:waypoint x="415" y="2182" /> + <bpmndi:BPMNEdge id="SequenceFlow_0l9c135_di" bpmnElement="SequenceFlow_0l9c135"> + <di:waypoint x="564" y="457" /> + <di:waypoint x="625" y="457" /> <bpmndi:BPMNLabel> - <dc:Bounds x="385" y="2159.5" width="0" height="13" /> + <dc:Bounds x="514.5" y="435.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="TextAnnotation_0ng5tqw_di" bpmnElement="TextAnnotation_0ng5tqw"> - <dc:Bounds x="80" y="2089" width="183" height="167" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_0siar4u_di" bpmnElement="Association_0siar4u"> - <di:waypoint x="346" y="2209" /> - <di:waypoint x="263" y="2192" /> + <bpmndi:BPMNEdge id="SequenceFlow_08f37km_di" bpmnElement="SequenceFlow_08f37km"> + <di:waypoint x="338" y="302" /> + <di:waypoint x="338" y="334" /> + <di:waypoint x="496" y="334" /> + <di:waypoint x="496" y="377" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="312.5" width="0" height="13" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1k9y5sv_di" bpmnElement="ServiceTask_1k9y5sv"> - <dc:Bounds x="545" y="2184" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_11dwd7c_di" bpmnElement="SequenceFlow_11dwd7c"> - <di:waypoint x="645" y="2224" /> - <di:waypoint x="721" y="2224" /> + <bpmndi:BPMNEdge id="SequenceFlow_17s3hbt_di" bpmnElement="SequenceFlow_17s3hbt"> + <di:waypoint x="446" y="262" /> + <di:waypoint x="388" y="262" /> <bpmndi:BPMNLabel> - <dc:Bounds x="683" y="2202.5" width="0" height="13" /> + <dc:Bounds x="337" y="240" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_040sxgr_di" bpmnElement="SequenceFlow_040sxgr"> - <di:waypoint x="486" y="2224" /> - <di:waypoint x="545" y="2224" /> + <bpmndi:BPMNEdge id="SequenceFlow_1v9pepy_di" bpmnElement="SequenceFlow_1v9pepy"> + <di:waypoint x="496" y="150" /> + <di:waypoint x="496" y="222" /> <bpmndi:BPMNLabel> - <dc:Bounds x="515.5" y="2202.5" width="0" height="13" /> + <dc:Bounds x="431" y="179.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0xtwwnb_di" bpmnElement="ServiceTask_0xtwwnb"> - <dc:Bounds x="366" y="2475" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_028yywk_di" bpmnElement="BoundaryEvent_028yywk"> - <dc:Bounds x="348" y="2537" width="36" height="36" /> + <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> + <dc:Bounds x="478" y="114" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="366" y="2576" width="0" height="13" /> + <dc:Bounds x="478" y="84" width="36" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_07j7g5q_di" bpmnElement="ServiceTask_07j7g5q"> - <dc:Bounds x="208" y="2313" width="100" height="80" /> + <bpmndi:BPMNShape id="ServiceTask_00bfu59_di" bpmnElement="Task_0n1pyix"> + <dc:Bounds x="446" y="222" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1lv786n_di" bpmnElement="SequenceFlow_1lv786n"> - <di:waypoint x="328" y="2353" /> - <di:waypoint x="308" y="2353" /> + <bpmndi:BPMNShape id="Task_05qo2b7_di" bpmnElement="Task_05qo2b7"> + <dc:Bounds x="288" y="222" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0k2q43e_di" bpmnElement="Task_11lz5p2"> + <dc:Bounds x="446" y="377" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_06rhiq8_di" bpmnElement="Task_09ldt3b"> + <dc:Bounds x="625" y="417" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1oetwm3_di" bpmnElement="Task_1bqcbb6"> + <dc:Bounds x="288" y="377" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1vechum_di" bpmnElement="Task_0beex68"> + <dc:Bounds x="288" y="641" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_08lsaav_di" bpmnElement="Task_1ndn5z8"> + <dc:Bounds x="625" y="782" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0svdh6v_di" bpmnElement="Task_18kndcj"> + <dc:Bounds x="446" y="908" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_16k6son_di" bpmnElement="Task_1f9i5os"> + <dc:Bounds x="625" y="948" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1389ptq_di" bpmnElement="Task_0tbioux"> + <dc:Bounds x="288" y="908" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1xa83r5_di" bpmnElement="Task_153ch63"> + <dc:Bounds x="446" y="1072" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ExclusiveGateway_0pi2f5r_di" bpmnElement="ExclusiveGateway_0pi2f5r" isMarkerVisible="true"> + <dc:Bounds x="471" y="1204" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="318" y="2331" width="0" height="13" /> + <dc:Bounds x="416" y="1256.558" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1jzdbrf_di" bpmnElement="SequenceFlow_1jzdbrf"> - <di:waypoint x="258" y="2393" /> - <di:waypoint x="258" y="2435" /> - <di:waypoint x="416" y="2435" /> - <di:waypoint x="416" y="2475" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0mmd35v_di" bpmnElement="Task_09xvn30"> + <dc:Bounds x="288" y="1189" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0qimjtt_di" bpmnElement="Task_169nxbp"> + <dc:Bounds x="625" y="1189" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1k4t77n_di" bpmnElement="Task_15vna7u"> + <dc:Bounds x="446" y="1346" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0zfpi3w_di" bpmnElement="Task_1dodxgm"> + <dc:Bounds x="625" y="1386" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1hcqsmf_di" bpmnElement="Task_0vujjfw"> + <dc:Bounds x="288" y="1346" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1imu6cl_di" bpmnElement="Task_1c0pkaj"> + <dc:Bounds x="288" y="1746" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0hi69fz_di" bpmnElement="Task_1f7k8dh"> + <dc:Bounds x="446" y="1906" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1isfyd0_di" bpmnElement="Task_1b0pni0"> + <dc:Bounds x="288" y="1946" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1nqcd3n_di" bpmnElement="EndEvent_1nqcd3n"> + <dc:Bounds x="478" y="4164" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="2413.5" width="0" height="13" /> + <dc:Bounds x="453" y="4210" width="87" height="40" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0r6hoib_di" bpmnElement="Task_0au9i4c"> + <dc:Bounds x="625" y="1618" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0b33i74_di" bpmnElement="Task_0486lne"> + <dc:Bounds x="625" y="1906" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1k9y5sv_di" bpmnElement="ServiceTask_1k9y5sv"> + <dc:Bounds x="625" y="2184" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0xtwwnb_di" bpmnElement="ServiceTask_0xtwwnb"> + <dc:Bounds x="446" y="2475" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_07j7g5q_di" bpmnElement="ServiceTask_07j7g5q"> + <dc:Bounds x="288" y="2313" width="100" height="80" /> + </bpmndi:BPMNShape> <bpmndi:BPMNShape id="ServiceTask_0zpdbhd_di" bpmnElement="ServiceTask_0zpdbhd"> - <dc:Bounds x="208" y="2515" width="100" height="80" /> + <dc:Bounds x="288" y="2515" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0h45bhr_di" bpmnElement="SequenceFlow_0h45bhr"> - <di:waypoint x="348" y="2555" /> - <di:waypoint x="308" y="2555" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="328" y="2533" width="0" height="13" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="ServiceTask_0z1p6um_di" bpmnElement="ServiceTask_0z1p6um"> - <dc:Bounds x="545" y="2475" width="100" height="80" /> + <dc:Bounds x="625" y="2475" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_17ohc6x_di" bpmnElement="SequenceFlow_17ohc6x"> - <di:waypoint x="645" y="2515" /> - <di:waypoint x="721" y="2515" /> + <bpmndi:BPMNShape id="ServiceTask_1wz6vii_di" bpmnElement="ServiceTask_1wz6vii"> + <dc:Bounds x="643" y="2861" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1kzrjm6_di" bpmnElement="ServiceTask_1kzrjm6"> + <dc:Bounds x="265" y="2828" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1h45jew_di" bpmnElement="ServiceTask_1h45jew"> + <dc:Bounds x="625" y="3295" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1rtbt4j_di" bpmnElement="ServiceTask_1rtbt4j"> + <dc:Bounds x="246" y="3403" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1ufgxlc_di" bpmnElement="ServiceTask_1ufgxlc"> + <dc:Bounds x="446" y="4019" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1al0pck_di" bpmnElement="ServiceTask_1al0pck"> + <dc:Bounds x="643" y="3736" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ExclusiveGateway_1mqy34e_di" bpmnElement="ExclusiveGateway_1mqy34e" isMarkerVisible="true"> + <dc:Bounds x="471" y="3930" width="50" height="50" /> <bpmndi:BPMNLabel> - <dc:Bounds x="683" y="2493.5" width="0" height="13" /> + <dc:Bounds x="381" y="3948.232" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0x36h9u_di" bpmnElement="SequenceFlow_0x36h9u"> - <di:waypoint x="466" y="2515" /> - <di:waypoint x="545" y="2515" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1ysn9pm_di" bpmnElement="EndEvent_10r6hd2"> + <dc:Bounds x="801" y="3758" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="505.5" y="2493" width="0" height="13" /> + <dc:Bounds x="777" y="3797" width="87" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1b1m1yf_di" bpmnElement="Task_1pnbpuy"> - <dc:Bounds x="367" y="2849" width="100" height="80" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_1lxt3r5_di" bpmnElement="SubProcess_1lxt3r5" isExpanded="true"> - <dc:Bounds x="341" y="2665" width="149" height="344" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1ao694i_di" bpmnElement="SequenceFlow_1ao694i"> - <di:waypoint x="258" y="2595" /> - <di:waypoint x="258" y="2627" /> - <di:waypoint x="416" y="2627" /> - <di:waypoint x="416" y="2665" /> + <bpmndi:BPMNShape id="EndEvent_00grmmk_di" bpmnElement="EndEvent_0ygeuep"> + <dc:Bounds x="801" y="3317" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="337" y="2605.5" width="0" height="13" /> + <dc:Bounds x="777" y="3356" width="87" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1wz6vii_di" bpmnElement="ServiceTask_1wz6vii"> - <dc:Bounds x="563" y="2861" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_16gscvv_di" bpmnElement="SequenceFlow_16gscvv"> - <di:waypoint x="508" y="3009" /> - <di:waypoint x="613" y="3009" /> - <di:waypoint x="613" y="2941" /> + <bpmndi:BPMNShape id="EndEvent_0y1zsd3_di" bpmnElement="EndEvent_1yn2488"> + <dc:Bounds x="801" y="2883" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="560.5" y="2987.5" width="0" height="13" /> + <dc:Bounds x="777" y="2922" width="86" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="BoundaryEvent_0f82kgw_di" bpmnElement="BoundaryEvent_0dvbxwa"> - <dc:Bounds x="472" y="2991" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0r00b7r_di" bpmnElement="EndEvent_1fiznu4"> + <dc:Bounds x="801" y="2497" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="490" y="3030" width="0" height="13" /> + <dc:Bounds x="776" y="2536" width="87" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1f6dsy1_di" bpmnElement="SequenceFlow_1f6dsy1"> - <di:waypoint x="663" y="2901" /> - <di:waypoint x="721" y="2901" /> + <bpmndi:BPMNShape id="EndEvent_101jc4v_di" bpmnElement="EndEvent_17pzov5"> + <dc:Bounds x="801" y="2206" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="692" y="2879.5" width="0" height="13" /> + <dc:Bounds x="779" y="2245" width="81" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_1kzrjm6_di" bpmnElement="ServiceTask_1kzrjm6"> - <dc:Bounds x="185" y="2828" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_14aw9kh_di" bpmnElement="SequenceFlow_14aw9kh"> - <di:waypoint x="341" y="2838" /> - <di:waypoint x="313" y="2838" /> - <di:waypoint x="313" y="2868" /> - <di:waypoint x="285" y="2868" /> + <bpmndi:BPMNShape id="EndEvent_0ypbenn_di" bpmnElement="EndEvent_0qsrrml"> + <dc:Bounds x="801" y="1928" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="328" y="2846.5" width="0" height="13" /> + <dc:Bounds x="779" y="1967" width="81" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_03lxxzm_di" bpmnElement="StartEvent_03lxxzm"> - <dc:Bounds x="399" y="2685.141" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0g3f1w3_di" bpmnElement="EndEvent_0p87pr0"> + <dc:Bounds x="801" y="1408" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="2661.782" width="0" height="13" /> + <dc:Bounds x="779" y="1447" width="81" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_01mkagd_di" bpmnElement="SequenceFlow_01mkagd"> - <di:waypoint x="417" y="2721" /> - <di:waypoint x="417" y="2745" /> + <bpmndi:BPMNShape id="EndEvent_0rfftim_di" bpmnElement="EndEvent_0weeyfu"> + <dc:Bounds x="801" y="1211" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="2726.5" width="0" height="13" /> + <dc:Bounds x="779" y="1250" width="81" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="EndEvent_1ot7d8w_di" bpmnElement="EndEvent_1ot7d8w"> - <dc:Bounds x="399" y="2956.152" width="36" height="36" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1218nar_di" bpmnElement="EndEvent_1mu8jjy"> + <dc:Bounds x="801" y="970" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="3001.804" width="0" height="13" /> + <dc:Bounds x="779" y="1009" width="81" height="14" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0aadj3f_di" bpmnElement="SequenceFlow_0aadj3f"> - <di:waypoint x="417" y="2929" /> - <di:waypoint x="417" y="2956" /> + <bpmndi:BPMNShape id="EndEvent_1g9m9rw_di" bpmnElement="EndEvent_1pelf6o"> + <dc:Bounds x="801" y="804" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="2936" width="0" height="13" /> + <dc:Bounds x="779" y="843" width="81" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1by7xiy_di" bpmnElement="SequenceFlow_1by7xiy"> - <di:waypoint x="417" y="2825" /> - <di:waypoint x="417" y="2849" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_009sjc4_di" bpmnElement="EndEvent_1tbq4qs"> + <dc:Bounds x="801" y="439" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="2830.5" width="0" height="13" /> + <dc:Bounds x="779" y="478" width="81" height="14" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ServiceTask_0n1gekf_di" bpmnElement="Task_1mf8d63"> - <dc:Bounds x="367" y="2745" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="SubProcess_1prxazd_di" bpmnElement="SubProcess_1prxazd" isExpanded="true"> - <dc:Bounds x="341" y="3099" width="149" height="344" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1h45jew_di" bpmnElement="ServiceTask_1h45jew"> - <dc:Bounds x="545" y="3295" width="100" height="80" /> + <bpmndi:BPMNShape id="EndEvent_19lx2jo_di" bpmnElement="EndEvent_0a32aye"> + <dc:Bounds x="801" y="1640" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1679" width="81" height="14" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1rtbt4j_di" bpmnElement="ServiceTask_1rtbt4j"> - <dc:Bounds x="166" y="3403" width="100" height="80" /> + <bpmndi:BPMNShape id="SubProcess_1aryk9p_di" bpmnElement="SubProcess_1aryk9p" isExpanded="true"> + <dc:Bounds x="426" y="540" width="140" height="282" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0ck26j4_di" bpmnElement="BoundaryEvent_0ck26j4"> - <dc:Bounds x="323" y="3425" width="36" height="36" /> + <bpmndi:BPMNEdge id="SequenceFlow_03l1qjb_di" bpmnElement="SequenceFlow_03l1qjb"> + <di:waypoint x="496" y="720" /> + <di:waypoint x="496" y="753" /> <bpmndi:BPMNLabel> - <dc:Bounds x="341" y="3464" width="0" height="13" /> + <dc:Bounds x="431" y="729.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0j6w1i1_di" bpmnElement="SequenceFlow_0j6w1i1"> - <di:waypoint x="323" y="3443" /> - <di:waypoint x="266" y="3443" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1fo3x1q_di" bpmnElement="SequenceFlow_1fo3x1q"> + <di:waypoint x="496" y="610" /> + <di:waypoint x="496" y="640" /> <bpmndi:BPMNLabel> - <dc:Bounds x="294.5" y="3421.5" width="0" height="13" /> + <dc:Bounds x="431" y="618" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_19bilqz_di" bpmnElement="StartEvent_19bilqz"> - <dc:Bounds x="399" y="3119" width="36" height="36" /> + <bpmndi:BPMNShape id="StartEvent_10lyuwu_di" bpmnElement="StartEvent_10lyuwu"> + <dc:Bounds x="478" y="574" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="3095.5" width="0" height="13" /> + <dc:Bounds x="416" y="550.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1t88z9v_di" bpmnElement="EndEvent_1t88z9v"> - <dc:Bounds x="399" y="3390" width="36" height="36" /> + <bpmndi:BPMNShape id="EndEvent_03ubyh1_di" bpmnElement="EndEvent_03ubyh1"> + <dc:Bounds x="478" y="753" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="3436" width="0" height="13" /> + <dc:Bounds x="416" y="792" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1p7awhn_di" bpmnElement="ServiceTask_1p7awhn"> - <dc:Bounds x="367" y="3283" width="100" height="80" /> + <bpmndi:BPMNShape id="ServiceTask_1bfeyxu_di" bpmnElement="Task_0soaz9r"> + <dc:Bounds x="446" y="640" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0gkjgp7_di" bpmnElement="ServiceTask_0gkjgp7"> - <dc:Bounds x="367" y="3179" width="100" height="80" /> + <bpmndi:BPMNShape id="SubProcess_17ubnip_di" bpmnElement="SubProcess_17ubnip" isExpanded="true"> + <dc:Bounds x="426" y="1529" width="140" height="257" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_0zfim76_di" bpmnElement="SequenceFlow_0zfim76"> - <di:waypoint x="417" y="3155" /> - <di:waypoint x="417" y="3179" /> + <bpmndi:BPMNEdge id="SequenceFlow_0k3u8ii_di" bpmnElement="SequenceFlow_0k3u8ii"> + <di:waypoint x="495" y="1695" /> + <di:waypoint x="495" y="1736" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3161" width="0" height="13" /> + <dc:Bounds x="430" y="1709" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1iip0i8_di" bpmnElement="SequenceFlow_1iip0i8"> - <di:waypoint x="417" y="3363" /> - <di:waypoint x="417" y="3390" /> + <bpmndi:BPMNEdge id="SequenceFlow_0lxjrp1_di" bpmnElement="SequenceFlow_0lxjrp1"> + <di:waypoint x="495" y="1581.9859999999999" /> + <di:waypoint x="495" y="1615" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3370.5" width="0" height="13" /> + <dc:Bounds x="430" y="1591.993" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0z6uy7p_di" bpmnElement="SequenceFlow_0z6uy7p"> - <di:waypoint x="417" y="3259" /> - <di:waypoint x="417" y="3283" /> + <bpmndi:BPMNShape id="StartEvent_1kngum0_di" bpmnElement="StartEvent_1kngum0"> + <dc:Bounds x="477" y="1546" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3265" width="0" height="13" /> + <dc:Bounds x="415" y="1523.4719999999998" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0nf81s5_di" bpmnElement="SequenceFlow_0nf81s5"> - <di:waypoint x="235" y="2908" /> - <di:waypoint x="235" y="3057" /> - <di:waypoint x="416" y="3057" /> - <di:waypoint x="416" y="3099" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0b9qoib_di" bpmnElement="EndEvent_0b9qoib"> + <dc:Bounds x="477" y="1736" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="325.5" y="3035.5" width="0" height="13" /> + <dc:Bounds x="415" y="1774.9859999999999" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1hn952u_di" bpmnElement="SequenceFlow_1hn952u"> - <di:waypoint x="490" y="3335" /> - <di:waypoint x="518" y="3335" /> - <di:waypoint x="545" y="3335" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_135qhll_di" bpmnElement="Task_15ytfq0"> + <dc:Bounds x="445" y="1615" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_1gd4872_di" bpmnElement="SubProcess_1gd4872" isExpanded="true"> + <dc:Bounds x="426" y="2095" width="140" height="257" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0o9a23o_di" bpmnElement="SequenceFlow_0o9a23o"> + <di:waypoint x="495" y="2149" /> + <di:waypoint x="495" y="2182" /> <bpmndi:BPMNLabel> - <dc:Bounds x="504" y="3313.5" width="0" height="13" /> + <dc:Bounds x="385" y="2159.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1bwwqgb_di" bpmnElement="SequenceFlow_1bwwqgb"> - <di:waypoint x="645" y="3335" /> - <di:waypoint x="721" y="3335" /> + <bpmndi:BPMNEdge id="SequenceFlow_1f3207x_di" bpmnElement="SequenceFlow_1f3207x"> + <di:waypoint x="495" y="2262" /> + <di:waypoint x="495" y="2303" /> <bpmndi:BPMNLabel> - <dc:Bounds x="683" y="3313.5" width="0" height="13" /> + <dc:Bounds x="385" y="2276.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="SubProcess_18wkc4m_di" bpmnElement="SubProcess_18wkc4m" isExpanded="true"> - <dc:Bounds x="341" y="3540" width="149" height="344" /> + <bpmndi:BPMNShape id="StartEvent_02knsq2_di" bpmnElement="StartEvent_02knsq2"> + <dc:Bounds x="477" y="2113" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="370" y="2090.5" width="0" height="13" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1ufgxlc_di" bpmnElement="ServiceTask_1ufgxlc"> - <dc:Bounds x="366" y="4019" width="100" height="80" /> + <bpmndi:BPMNShape id="EndEvent_033ijmx_di" bpmnElement="EndEvent_033ijmx"> + <dc:Bounds x="477" y="2303" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="370" y="2342" width="0" height="13" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_1al0pck_di" bpmnElement="ServiceTask_1al0pck"> - <dc:Bounds x="563" y="3736" width="100" height="80" /> + <bpmndi:BPMNShape id="ServiceTask_0rgml7r_di" bpmnElement="ServiceTask_0rgml7r"> + <dc:Bounds x="445" y="2182" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="BoundaryEvent_0er8wmn_di" bpmnElement="BoundaryEvent_0er8wmn"> - <dc:Bounds x="472" y="3866" width="36" height="36" /> + <bpmndi:BPMNShape id="SubProcess_1lxt3r5_di" bpmnElement="SubProcess_1lxt3r5" isExpanded="true"> + <dc:Bounds x="421" y="2665" width="149" height="344" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1by7xiy_di" bpmnElement="SequenceFlow_1by7xiy"> + <di:waypoint x="497" y="2825" /> + <di:waypoint x="497" y="2849" /> <bpmndi:BPMNLabel> - <dc:Bounds x="490" y="3905" width="0" height="13" /> + <dc:Bounds x="432" y="2830.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1btfmxd_di" bpmnElement="SequenceFlow_1btfmxd"> - <di:waypoint x="508" y="3884" /> - <di:waypoint x="596" y="3884" /> - <di:waypoint x="596" y="3816" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0aadj3f_di" bpmnElement="SequenceFlow_0aadj3f"> + <di:waypoint x="497" y="2929" /> + <di:waypoint x="497" y="2956" /> <bpmndi:BPMNLabel> - <dc:Bounds x="552" y="3862.5" width="0" height="13" /> + <dc:Bounds x="432" y="2936" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_11g6os8_di" bpmnElement="SequenceFlow_11g6os8"> - <di:waypoint x="663" y="3776" /> - <di:waypoint x="721" y="3776" /> + <bpmndi:BPMNEdge id="SequenceFlow_01mkagd_di" bpmnElement="SequenceFlow_01mkagd"> + <di:waypoint x="497" y="2721" /> + <di:waypoint x="497" y="2745" /> <bpmndi:BPMNLabel> - <dc:Bounds x="692" y="3754.5" width="0" height="13" /> + <dc:Bounds x="432" y="2726.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="StartEvent_0x0dcgo_di" bpmnElement="StartEvent_0x0dcgo"> - <dc:Bounds x="399" y="3560" width="36" height="36" /> + <bpmndi:BPMNShape id="ServiceTask_1b1m1yf_di" bpmnElement="Task_1pnbpuy"> + <dc:Bounds x="447" y="2849" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="StartEvent_03lxxzm_di" bpmnElement="StartEvent_03lxxzm"> + <dc:Bounds x="479" y="2685" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="3536.5" width="0" height="13" /> + <dc:Bounds x="417" y="2661.782" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0bm48z6_di" bpmnElement="EndEvent_0bm48z6"> - <dc:Bounds x="399" y="3831" width="36" height="36" /> + <bpmndi:BPMNShape id="EndEvent_1ot7d8w_di" bpmnElement="EndEvent_1ot7d8w"> + <dc:Bounds x="479" y="2956" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="417" y="3877" width="0" height="13" /> + <dc:Bounds x="417" y="3001.804" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0f2syr4_di" bpmnElement="ServiceTask_0f2syr4"> - <dc:Bounds x="367" y="3724" width="100" height="80" /> + <bpmndi:BPMNShape id="ServiceTask_0n1gekf_di" bpmnElement="Task_1mf8d63"> + <dc:Bounds x="447" y="2745" width="100" height="80" /> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="ServiceTask_0xucp01_di" bpmnElement="ServiceTask_0xucp01"> - <dc:Bounds x="367" y="3620" width="100" height="80" /> + <bpmndi:BPMNShape id="SubProcess_1prxazd_di" bpmnElement="SubProcess_1prxazd" isExpanded="true"> + <dc:Bounds x="421" y="3099" width="149" height="344" /> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1a4i8qe_di" bpmnElement="SequenceFlow_1a4i8qe"> - <di:waypoint x="417" y="3596" /> - <di:waypoint x="417" y="3620" /> - <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3602" width="0" height="13" /> - </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_10k16y6_di" bpmnElement="SequenceFlow_10k16y6"> - <di:waypoint x="417" y="3804" /> - <di:waypoint x="417" y="3831" /> + <bpmndi:BPMNEdge id="SequenceFlow_0z6uy7p_di" bpmnElement="SequenceFlow_0z6uy7p"> + <di:waypoint x="497" y="3259" /> + <di:waypoint x="497" y="3283" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3811.5" width="0" height="13" /> + <dc:Bounds x="432" y="3265" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0jp1mud_di" bpmnElement="SequenceFlow_0jp1mud"> - <di:waypoint x="417" y="3700" /> - <di:waypoint x="417" y="3724" /> + <bpmndi:BPMNEdge id="SequenceFlow_1iip0i8_di" bpmnElement="SequenceFlow_1iip0i8"> + <di:waypoint x="497" y="3363" /> + <di:waypoint x="497" y="3390" /> <bpmndi:BPMNLabel> - <dc:Bounds x="432" y="3706" width="0" height="13" /> + <dc:Bounds x="432" y="3370.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_01xzzzt_di" bpmnElement="SequenceFlow_01xzzzt"> - <di:waypoint x="216" y="3483" /> - <di:waypoint x="216" y="3508" /> - <di:waypoint x="416" y="3508" /> - <di:waypoint x="416" y="3540" /> + <bpmndi:BPMNEdge id="SequenceFlow_0zfim76_di" bpmnElement="SequenceFlow_0zfim76"> + <di:waypoint x="497" y="3155" /> + <di:waypoint x="497" y="3179" /> <bpmndi:BPMNLabel> - <dc:Bounds x="316" y="3486.5" width="0" height="13" /> + <dc:Bounds x="432" y="3161" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0ndm3og_di" bpmnElement="SequenceFlow_0ndm3og"> - <di:waypoint x="416" y="4099" /> - <di:waypoint x="416" y="4164" /> + <bpmndi:BPMNShape id="StartEvent_19bilqz_di" bpmnElement="StartEvent_19bilqz"> + <dc:Bounds x="479" y="3119" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="4125" width="0" height="13" /> + <dc:Bounds x="417" y="3095.5" width="0" height="13" /> </bpmndi:BPMNLabel> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="ExclusiveGateway_1mqy34e_di" bpmnElement="ExclusiveGateway_1mqy34e" isMarkerVisible="true"> - <dc:Bounds x="391" y="3930.232" width="50" height="50" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1t88z9v_di" bpmnElement="EndEvent_1t88z9v"> + <dc:Bounds x="479" y="3390" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="381" y="3948.232" width="0" height="13" /> + <dc:Bounds x="417" y="3436" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="SequenceFlow_1jeej0r_di" bpmnElement="SequenceFlow_1jeej0r"> - <di:waypoint x="416" y="3884" /> - <di:waypoint x="416" y="3930" /> + <bpmndi:BPMNShape id="ServiceTask_1p7awhn_di" bpmnElement="ServiceTask_1p7awhn"> + <dc:Bounds x="447" y="3283" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0gkjgp7_di" bpmnElement="ServiceTask_0gkjgp7"> + <dc:Bounds x="447" y="3179" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_18wkc4m_di" bpmnElement="SubProcess_18wkc4m" isExpanded="true"> + <dc:Bounds x="421" y="3540" width="149" height="344" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0jp1mud_di" bpmnElement="SequenceFlow_0jp1mud"> + <di:waypoint x="497" y="3700" /> + <di:waypoint x="497" y="3724" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="3900" width="0" height="13" /> + <dc:Bounds x="432" y="3706" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_1tsitl7_di" bpmnElement="SequenceFlow_1tsitl7"> - <di:waypoint x="416" y="3980" /> - <di:waypoint x="416" y="4019" /> + <bpmndi:BPMNEdge id="SequenceFlow_10k16y6_di" bpmnElement="SequenceFlow_10k16y6"> + <di:waypoint x="497" y="3804" /> + <di:waypoint x="497" y="3831" /> <bpmndi:BPMNLabel> - <dc:Bounds x="431" y="3992.5" width="0" height="13" /> + <dc:Bounds x="432" y="3811.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNEdge id="SequenceFlow_0i1vvi9_di" bpmnElement="SequenceFlow_0i1vvi9"> - <di:waypoint x="441" y="3955" /> - <di:waypoint x="629" y="3955" /> - <di:waypoint x="629" y="3817" /> + <bpmndi:BPMNEdge id="SequenceFlow_1a4i8qe_di" bpmnElement="SequenceFlow_1a4i8qe"> + <di:waypoint x="497" y="3596" /> + <di:waypoint x="497" y="3620" /> <bpmndi:BPMNLabel> - <dc:Bounds x="535" y="3933.5" width="0" height="13" /> + <dc:Bounds x="432" y="3602" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="EndEvent_1ysn9pm_di" bpmnElement="EndEvent_10r6hd2"> - <dc:Bounds x="721" y="3758" width="36" height="36" /> + <bpmndi:BPMNShape id="StartEvent_0x0dcgo_di" bpmnElement="StartEvent_0x0dcgo"> + <dc:Bounds x="479" y="3560" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="697" y="3797" width="87" height="12" /> + <dc:Bounds x="417" y="3536.5" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_00grmmk_di" bpmnElement="EndEvent_0ygeuep"> - <dc:Bounds x="721" y="3317" width="36" height="36" /> + <bpmndi:BPMNShape id="EndEvent_0bm48z6_di" bpmnElement="EndEvent_0bm48z6"> + <dc:Bounds x="479" y="3831" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="697" y="3356" width="87" height="12" /> + <dc:Bounds x="417" y="3877" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0y1zsd3_di" bpmnElement="EndEvent_1yn2488"> - <dc:Bounds x="721" y="2883" width="36" height="36" /> + <bpmndi:BPMNShape id="ServiceTask_0f2syr4_di" bpmnElement="ServiceTask_0f2syr4"> + <dc:Bounds x="447" y="3724" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0xucp01_di" bpmnElement="ServiceTask_0xucp01"> + <dc:Bounds x="447" y="3620" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Association_0tnfp5s_di" bpmnElement="Association_0tnfp5s"> + <di:waypoint x="546" y="251" /> + <di:waypoint x="622" y="233" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_1jdu3g6_di" bpmnElement="Association_1jdu3g6"> + <di:waypoint x="566" y="672" /> + <di:waypoint x="659" y="661" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_1q6pxu6_di" bpmnElement="Association_1q6pxu6"> + <di:waypoint x="546" y="1118" /> + <di:waypoint x="624" y="1127" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_199geb7_di" bpmnElement="Association_199geb7"> + <di:waypoint x="426" y="1637" /> + <di:waypoint x="344" y="1612" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_0siar4u_di" bpmnElement="Association_0siar4u"> + <di:waypoint x="426" y="2209" /> + <di:waypoint x="343" y="2192" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_0squ8i0_di" bpmnElement="Association_0squ8i0"> + <di:waypoint x="570" y="3247" /> + <di:waypoint x="659" y="3218" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_08835l7_di" bpmnElement="Association_08835l7"> + <di:waypoint x="570" y="3685" /> + <di:waypoint x="659" y="3653" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="BoundaryEvent_0er8wmn_di" bpmnElement="BoundaryEvent_0er8wmn"> + <dc:Bounds x="552" y="3866" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="697" y="2922" width="86" height="12" /> + <dc:Bounds x="490" y="3905" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0r00b7r_di" bpmnElement="EndEvent_1fiznu4"> - <dc:Bounds x="721" y="2497" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_0ck26j4_di" bpmnElement="BoundaryEvent_0ck26j4"> + <dc:Bounds x="403" y="3425" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="696" y="2536" width="87" height="12" /> + <dc:Bounds x="341" y="3464" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_101jc4v_di" bpmnElement="EndEvent_17pzov5"> - <dc:Bounds x="721" y="2206" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_0f82kgw_di" bpmnElement="BoundaryEvent_0dvbxwa"> + <dc:Bounds x="552" y="2991" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="2245" width="81" height="12" /> + <dc:Bounds x="490" y="3030" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0ypbenn_di" bpmnElement="EndEvent_0qsrrml"> - <dc:Bounds x="721" y="1928" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_028yywk_di" bpmnElement="BoundaryEvent_028yywk"> + <dc:Bounds x="428" y="2537" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="1967" width="81" height="12" /> + <dc:Bounds x="366" y="2576" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0g3f1w3_di" bpmnElement="EndEvent_0p87pr0"> - <dc:Bounds x="721" y="1408" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_1ncxcp7_di" bpmnElement="BoundaryEvent_1ncxcp7"> + <dc:Bounds x="408" y="2335" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="1447" width="81" height="12" /> + <dc:Bounds x="346" y="2374" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_0rfftim_di" bpmnElement="EndEvent_0weeyfu"> - <dc:Bounds x="721" y="1211" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_0pzsztl_di" bpmnElement="BoundaryEvent_133h24c"> + <dc:Bounds x="428" y="1968" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="1250" width="81" height="12" /> + <dc:Bounds x="366" y="2007" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1218nar_di" bpmnElement="EndEvent_1mu8jjy"> - <dc:Bounds x="721" y="970" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_18epjzl_di" bpmnElement="BoundaryEvent_14dzlp6"> + <dc:Bounds x="408" y="1768" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="1009" width="81" height="12" /> + <dc:Bounds x="346" y="1807" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_1g9m9rw_di" bpmnElement="EndEvent_1pelf6o"> - <dc:Bounds x="721" y="804" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_0spo4hq_di" bpmnElement="BoundaryEvent_1xtency"> + <dc:Bounds x="528" y="1408" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="843" width="81" height="12" /> + <dc:Bounds x="466" y="1447" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_009sjc4_di" bpmnElement="EndEvent_1tbq4qs"> - <dc:Bounds x="721" y="439" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_1fvz9ks_di" bpmnElement="BoundaryEvent_1cwbka0"> + <dc:Bounds x="528" y="970" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="478" width="81" height="12" /> + <dc:Bounds x="466" y="1009" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="EndEvent_19lx2jo_di" bpmnElement="EndEvent_0a32aye"> - <dc:Bounds x="721" y="1640" width="36" height="36" /> + <bpmndi:BPMNShape id="BoundaryEvent_1gzh66k_di" bpmnElement="BoundaryEvent_0ti8teb"> + <dc:Bounds x="548" y="804" width="36" height="36" /> <bpmndi:BPMNLabel> - <dc:Bounds x="699" y="1679" width="81" height="13" /> + <dc:Bounds x="486" y="843" width="0" height="13" /> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNShape id="TextAnnotation_06o2otu_di" bpmnElement="TextAnnotation_06o2otu"> - <dc:Bounds x="579" y="3132" width="100" height="140" /> - </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_0squ8i0_di" bpmnElement="Association_0squ8i0"> - <di:waypoint x="490" y="3247" /> - <di:waypoint x="579" y="3218" /> - </bpmndi:BPMNEdge> - <bpmndi:BPMNShape id="TextAnnotation_08w6mdr_di" bpmnElement="TextAnnotation_08w6mdr"> - <dc:Bounds x="579" y="3592.75" width="100" height="84" /> + <bpmndi:BPMNShape id="BoundaryEvent_09jr242_di" bpmnElement="BoundaryEvent_16tisyd"> + <dc:Bounds x="528" y="439" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="466" y="478" width="0" height="13" /> + </bpmndi:BPMNLabel> </bpmndi:BPMNShape> - <bpmndi:BPMNEdge id="Association_08835l7_di" bpmnElement="Association_08835l7"> - <di:waypoint x="490" y="3685" /> - <di:waypoint x="579" y="3653" /> - </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> -</bpmn:definitions> \ No newline at end of file +</bpmn:definitions> diff --git a/install/cws-engine/applicationContext.xml b/install/cws-engine/applicationContext.xml index 2dee7013..36720633 100644 --- a/install/cws-engine/applicationContext.xml +++ b/install/cws-engine/applicationContext.xml @@ -75,6 +75,7 @@ <property name="processEnginePlugins"> <list> <bean id="procAppEventListenerPlugin" class="org.camunda.bpm.application.impl.event.ProcessApplicationEventListenerPlugin" /> + <bean id="spinProcessEnginePlugin" class="org.camunda.spin.plugin.impl.SpinProcessEnginePlugin" /> </list> </property> diff --git a/install/dev/bpmn/test_error_handling.bpmn b/install/dev/bpmn/test_error_handling.bpmn new file mode 100644 index 00000000..f67bf09e --- /dev/null +++ b/install/dev/bpmn/test_error_handling.bpmn @@ -0,0 +1,2181 @@ +<?xml version="1.0" encoding="UTF-8"?> +<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_002r6k1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.1.1"> + <bpmn:process id="test_error_handling" name="Test Error Handling" isExecutable="true"> + <bpmn:startEvent id="StartEvent_1" name="START" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_1v9pepy</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:sequenceFlow id="SequenceFlow_1v9pepy" sourceRef="StartEvent_1" targetRef="Task_0n1pyix" /> + <bpmn:serviceTask id="Task_0n1pyix" name="EXEC 1: no error, no throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 0"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1v9pepy</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_17s3hbt</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:task id="Task_05qo2b7" name="LOG: after EXEC 1"> + <bpmn:incoming>SequenceFlow_17s3hbt</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_08f37km</bpmn:outgoing> + </bpmn:task> + <bpmn:sequenceFlow id="SequenceFlow_17s3hbt" sourceRef="Task_0n1pyix" targetRef="Task_05qo2b7" /> + <bpmn:serviceTask id="Task_11lz5p2" name="EXEC 2: no error, no throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 0"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_08f37km</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0ocesge</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_08f37km" sourceRef="Task_05qo2b7" targetRef="Task_11lz5p2" /> + <bpmn:boundaryEvent id="BoundaryEvent_16tisyd" attachedToRef="Task_11lz5p2"> + <bpmn:outgoing>SequenceFlow_0l9c135</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_0l9c135" sourceRef="BoundaryEvent_16tisyd" targetRef="Task_09ldt3b" /> + <bpmn:serviceTask id="Task_09ldt3b" name="LOG: ERROR, EXEC 2, should not get here" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 2 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0l9c135</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0e6ebxr</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0ocesge" sourceRef="Task_11lz5p2" targetRef="Task_1bqcbb6" /> + <bpmn:serviceTask id="Task_1bqcbb6" name="LOG: after EXEC 2" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 2 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0ocesge</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_13svdv3</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:subProcess id="SubProcess_1aryk9p"> + <bpmn:incoming>SequenceFlow_13svdv3</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1nvhsbd</bpmn:outgoing> + <bpmn:startEvent id="StartEvent_10lyuwu" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_1fo3x1q</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_03ubyh1"> + <bpmn:incoming>SequenceFlow_03l1qjb</bpmn:incoming> + </bpmn:endEvent> + <bpmn:serviceTask id="Task_0soaz9r" name="EXEC 3: no error, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 0"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1fo3x1q</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_03l1qjb</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1fo3x1q" sourceRef="StartEvent_10lyuwu" targetRef="Task_0soaz9r" /> + <bpmn:sequenceFlow id="SequenceFlow_03l1qjb" sourceRef="Task_0soaz9r" targetRef="EndEvent_03ubyh1" /> + </bpmn:subProcess> + <bpmn:sequenceFlow id="SequenceFlow_13svdv3" sourceRef="Task_1bqcbb6" targetRef="SubProcess_1aryk9p" /> + <bpmn:sequenceFlow id="SequenceFlow_1nvhsbd" sourceRef="SubProcess_1aryk9p" targetRef="Task_0beex68" /> + <bpmn:serviceTask id="Task_0beex68" name="LOG: SUCCESS, EXEC 3" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 3 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1nvhsbd</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0zurb6n</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_0ti8teb" attachedToRef="SubProcess_1aryk9p"> + <bpmn:outgoing>SequenceFlow_1cs2kii</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_1cs2kii" sourceRef="BoundaryEvent_0ti8teb" targetRef="Task_1ndn5z8" /> + <bpmn:serviceTask id="Task_1ndn5z8" name="LOG: ERROR, EXEC 3" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 3 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1cs2kii</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0qeoxh1</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0zurb6n" sourceRef="Task_0beex68" targetRef="Task_18kndcj" /> + <bpmn:serviceTask id="Task_18kndcj" name="EXEC 4: no error, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 0"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0zurb6n</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_19b7bny</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_1cwbka0" attachedToRef="Task_18kndcj"> + <bpmn:outgoing>SequenceFlow_021tokq</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_0e6ebxr" sourceRef="Task_09ldt3b" targetRef="EndEvent_1tbq4qs" /> + <bpmn:sequenceFlow id="SequenceFlow_0qeoxh1" sourceRef="Task_1ndn5z8" targetRef="EndEvent_1pelf6o" /> + <bpmn:sequenceFlow id="SequenceFlow_021tokq" sourceRef="BoundaryEvent_1cwbka0" targetRef="Task_1f9i5os" /> + <bpmn:serviceTask id="Task_1f9i5os" name="LOG: ERROR, EXEC 4" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 4 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_021tokq</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1ta6zx7</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1ta6zx7" sourceRef="Task_1f9i5os" targetRef="EndEvent_1mu8jjy" /> + <bpmn:sequenceFlow id="SequenceFlow_19b7bny" sourceRef="Task_18kndcj" targetRef="Task_0tbioux" /> + <bpmn:serviceTask id="Task_0tbioux" name="LOG: SUCCESS, EXEC 4" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 4 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_19b7bny</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0af7rfa</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0af7rfa" sourceRef="Task_0tbioux" targetRef="Task_153ch63" /> + <bpmn:serviceTask id="Task_153ch63" name="EXEC 5: error, no throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 5"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0af7rfa</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0tftgbi</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:exclusiveGateway id="ExclusiveGateway_0pi2f5r"> + <bpmn:incoming>SequenceFlow_0tftgbi</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_17ubkbm</bpmn:outgoing> + <bpmn:outgoing>SequenceFlow_0zrbl5f</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="SequenceFlow_0tftgbi" sourceRef="Task_153ch63" targetRef="ExclusiveGateway_0pi2f5r" /> + <bpmn:sequenceFlow id="SequenceFlow_17ubkbm" sourceRef="ExclusiveGateway_0pi2f5r" targetRef="Task_169nxbp"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Task_153ch63_exitValue != "5" || Task_153ch63_success != "false"}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="SequenceFlow_0zrbl5f" sourceRef="ExclusiveGateway_0pi2f5r" targetRef="Task_09xvn30"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${Task_153ch63_exitValue == "5" && Task_153ch63_success == "false"}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:serviceTask id="Task_09xvn30" name="LOG: SUCCESS, EXEC 5" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 5 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0zrbl5f</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0h89kak</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:serviceTask id="Task_169nxbp" name="LOG: ERROR, EXEC 5" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 5 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_17ubkbm</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_05v6vy6</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_05v6vy6" sourceRef="Task_169nxbp" targetRef="EndEvent_0weeyfu" /> + <bpmn:sequenceFlow id="SequenceFlow_0h89kak" sourceRef="Task_09xvn30" targetRef="Task_15vna7u" /> + <bpmn:serviceTask id="Task_15vna7u" name="EXEC 6: error, no throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 6"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0h89kak</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0sz1nlv</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_1xtency" attachedToRef="Task_15vna7u"> + <bpmn:outgoing>SequenceFlow_0wsbmz7</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_0wsbmz7" sourceRef="BoundaryEvent_1xtency" targetRef="Task_1dodxgm" /> + <bpmn:serviceTask id="Task_1dodxgm" name="LOG: ERROR, EXEC 6" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 6 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0wsbmz7</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_05zcf1z</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_05zcf1z" sourceRef="Task_1dodxgm" targetRef="EndEvent_0p87pr0" /> + <bpmn:sequenceFlow id="SequenceFlow_0sz1nlv" sourceRef="Task_15vna7u" targetRef="Task_0vujjfw" /> + <bpmn:serviceTask id="Task_0vujjfw" name="LOG: SUCCESS, EXEC 6" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 6 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0sz1nlv</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0v99q9q</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:subProcess id="SubProcess_17ubnip"> + <bpmn:incoming>SequenceFlow_0v99q9q</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0sk3ap9</bpmn:outgoing> + <bpmn:startEvent id="StartEvent_1kngum0" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_0lxjrp1</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_0b9qoib"> + <bpmn:incoming>SequenceFlow_0k3u8ii</bpmn:incoming> + </bpmn:endEvent> + <bpmn:sequenceFlow id="SequenceFlow_0lxjrp1" sourceRef="StartEvent_1kngum0" targetRef="Task_15ytfq0" /> + <bpmn:sequenceFlow id="SequenceFlow_0k3u8ii" sourceRef="Task_15ytfq0" targetRef="EndEvent_0b9qoib" /> + <bpmn:serviceTask id="Task_15ytfq0" name="EXEC 7: error, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 7"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0lxjrp1</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0k3u8ii</bpmn:outgoing> + </bpmn:serviceTask> + </bpmn:subProcess> + <bpmn:sequenceFlow id="SequenceFlow_0v99q9q" sourceRef="Task_0vujjfw" targetRef="SubProcess_17ubnip" /> + <bpmn:boundaryEvent id="BoundaryEvent_14dzlp6" attachedToRef="SubProcess_17ubnip"> + <bpmn:outgoing>SequenceFlow_1wf13xv</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_1wf13xv" sourceRef="BoundaryEvent_14dzlp6" targetRef="Task_1c0pkaj" /> + <bpmn:serviceTask id="Task_1c0pkaj" name="LOG: SUCCESS, EXEC 7" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 7 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1wf13xv</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1l86ge3</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1l86ge3" sourceRef="Task_1c0pkaj" targetRef="Task_1f7k8dh" /> + <bpmn:serviceTask id="Task_1f7k8dh" name="EXEC 8: error, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "exit 8"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1l86ge3</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0e6nepr</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_133h24c" attachedToRef="Task_1f7k8dh"> + <bpmn:outgoing>SequenceFlow_16lhzwv</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_16lhzwv" sourceRef="BoundaryEvent_133h24c" targetRef="Task_1b0pni0" /> + <bpmn:serviceTask id="Task_1b0pni0" name="LOG: SUCCESS, EXEC 8" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 8 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_16lhzwv</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0289la0</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:endEvent id="EndEvent_1nqcd3n" name="ALL EXAMPLES RAN SUCCESSFULLY"> + <bpmn:incoming>SequenceFlow_0ndm3og</bpmn:incoming> + </bpmn:endEvent> + <bpmn:sequenceFlow id="SequenceFlow_0289la0" sourceRef="Task_1b0pni0" targetRef="SubProcess_1gd4872" /> + <bpmn:sequenceFlow id="SequenceFlow_1vs943e" sourceRef="Task_0au9i4c" targetRef="EndEvent_0a32aye" /> + <bpmn:serviceTask id="Task_0au9i4c" name="LOG: ERROR, EXEC 7" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 7 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0sk3ap9</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1vs943e</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0sk3ap9" sourceRef="SubProcess_17ubnip" targetRef="Task_0au9i4c" /> + <bpmn:sequenceFlow id="SequenceFlow_0e6nepr" sourceRef="Task_1f7k8dh" targetRef="Task_0486lne" /> + <bpmn:sequenceFlow id="SequenceFlow_1rtrpt5" sourceRef="Task_0486lne" targetRef="EndEvent_0qsrrml" /> + <bpmn:serviceTask id="Task_0486lne" name="LOG: ERROR, EXEC 8" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 8 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0e6nepr</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1rtrpt5</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:subProcess id="SubProcess_1gd4872"> + <bpmn:incoming>SequenceFlow_0289la0</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_040sxgr</bpmn:outgoing> + <bpmn:startEvent id="StartEvent_02knsq2" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_0o9a23o</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_033ijmx"> + <bpmn:incoming>SequenceFlow_1f3207x</bpmn:incoming> + </bpmn:endEvent> + <bpmn:serviceTask id="ServiceTask_0rgml7r" name="EXEC 9: timeout, throw, no boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "sleep 10"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>5</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0o9a23o</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1f3207x</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1f3207x" sourceRef="ServiceTask_0rgml7r" targetRef="EndEvent_033ijmx" /> + <bpmn:sequenceFlow id="SequenceFlow_0o9a23o" sourceRef="StartEvent_02knsq2" targetRef="ServiceTask_0rgml7r" /> + </bpmn:subProcess> + <bpmn:boundaryEvent id="BoundaryEvent_1ncxcp7" attachedToRef="SubProcess_1gd4872"> + <bpmn:outgoing>SequenceFlow_1lv786n</bpmn:outgoing> + <bpmn:errorEventDefinition id="ErrorEventDefinition_14j7mg1" /> + </bpmn:boundaryEvent> + <bpmn:serviceTask id="ServiceTask_1k9y5sv" name="LOG: TIMEOUT, EXEC 9" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 9 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_040sxgr</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_11dwd7c</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_11dwd7c" sourceRef="ServiceTask_1k9y5sv" targetRef="EndEvent_17pzov5" /> + <bpmn:sequenceFlow id="SequenceFlow_040sxgr" sourceRef="SubProcess_1gd4872" targetRef="ServiceTask_1k9y5sv" /> + <bpmn:serviceTask id="ServiceTask_0xtwwnb" name="EXEC 10: timeout, throw, boundary catch" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c "sleep 10"</camunda:expression> + </camunda:field> + <camunda:field name="workingDir" /> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>5</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1jzdbrf</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0x36h9u</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_028yywk" attachedToRef="ServiceTask_0xtwwnb"> + <bpmn:outgoing>SequenceFlow_0h45bhr</bpmn:outgoing> + <bpmn:errorEventDefinition id="ErrorEventDefinition_1uji9up" /> + </bpmn:boundaryEvent> + <bpmn:serviceTask id="ServiceTask_07j7g5q" name="LOG: SUCCESS, EXEC 9" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 9 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1lv786n</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1jzdbrf</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1lv786n" sourceRef="BoundaryEvent_1ncxcp7" targetRef="ServiceTask_07j7g5q" /> + <bpmn:sequenceFlow id="SequenceFlow_1jzdbrf" sourceRef="ServiceTask_07j7g5q" targetRef="ServiceTask_0xtwwnb" /> + <bpmn:serviceTask id="ServiceTask_0zpdbhd" name="LOG: SUCCESS, EXEC 10" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 10 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0h45bhr</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1ao694i</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0h45bhr" sourceRef="BoundaryEvent_028yywk" targetRef="ServiceTask_0zpdbhd" /> + <bpmn:serviceTask id="ServiceTask_0z1p6um" name="LOG: ERROR, EXEC 10" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 10 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0x36h9u</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_17ohc6x</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_17ohc6x" sourceRef="ServiceTask_0z1p6um" targetRef="EndEvent_1fiznu4" /> + <bpmn:sequenceFlow id="SequenceFlow_0x36h9u" sourceRef="ServiceTask_0xtwwnb" targetRef="ServiceTask_0z1p6um" /> + <bpmn:subProcess id="SubProcess_1lxt3r5"> + <bpmn:incoming>SequenceFlow_1ao694i</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_14aw9kh</bpmn:outgoing> + <bpmn:serviceTask id="Task_1pnbpuy" name="EXEC 11: retry with success" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>7</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>4</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1by7xiy</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0aadj3f</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:startEvent id="StartEvent_03lxxzm" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_01mkagd</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:sequenceFlow id="SequenceFlow_01mkagd" sourceRef="StartEvent_03lxxzm" targetRef="Task_1mf8d63" /> + <bpmn:endEvent id="EndEvent_1ot7d8w"> + <bpmn:incoming>SequenceFlow_0aadj3f</bpmn:incoming> + </bpmn:endEvent> + <bpmn:sequenceFlow id="SequenceFlow_0aadj3f" sourceRef="Task_1pnbpuy" targetRef="EndEvent_1ot7d8w" /> + <bpmn:sequenceFlow id="SequenceFlow_1by7xiy" sourceRef="Task_1mf8d63" targetRef="Task_1pnbpuy" /> + <bpmn:serviceTask id="Task_1mf8d63" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'echo 11 > count.txt'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_01mkagd</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1by7xiy</bpmn:outgoing> + </bpmn:serviceTask> + </bpmn:subProcess> + <bpmn:sequenceFlow id="SequenceFlow_1ao694i" sourceRef="ServiceTask_0zpdbhd" targetRef="SubProcess_1lxt3r5" /> + <bpmn:serviceTask id="ServiceTask_1wz6vii" name="LOG: FAIL, EXEC 11" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 11 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_16gscvv</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1f6dsy1</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_16gscvv" sourceRef="BoundaryEvent_0dvbxwa" targetRef="ServiceTask_1wz6vii" /> + <bpmn:boundaryEvent id="BoundaryEvent_0dvbxwa" attachedToRef="SubProcess_1lxt3r5"> + <bpmn:outgoing>SequenceFlow_16gscvv</bpmn:outgoing> + <bpmn:errorEventDefinition /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_1f6dsy1" sourceRef="ServiceTask_1wz6vii" targetRef="EndEvent_1yn2488" /> + <bpmn:serviceTask id="ServiceTask_1kzrjm6" name="LOG: SUCCESS, EXEC 11" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 11 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_14aw9kh</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0nf81s5</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_14aw9kh" sourceRef="SubProcess_1lxt3r5" targetRef="ServiceTask_1kzrjm6" /> + <bpmn:subProcess id="SubProcess_1prxazd"> + <bpmn:incoming>SequenceFlow_0nf81s5</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1hn952u</bpmn:outgoing> + <bpmn:startEvent id="StartEvent_19bilqz" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_0zfim76</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_1t88z9v"> + <bpmn:incoming>SequenceFlow_1iip0i8</bpmn:incoming> + </bpmn:endEvent> + <bpmn:serviceTask id="ServiceTask_1p7awhn" name="EXEC 12: retry fail" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; exit $count'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>3</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0z6uy7p</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1iip0i8</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:serviceTask id="ServiceTask_0gkjgp7" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'echo 12 > count.txt'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0zfim76</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0z6uy7p</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_0zfim76" sourceRef="StartEvent_19bilqz" targetRef="ServiceTask_0gkjgp7" /> + <bpmn:sequenceFlow id="SequenceFlow_1iip0i8" sourceRef="ServiceTask_1p7awhn" targetRef="EndEvent_1t88z9v" /> + <bpmn:sequenceFlow id="SequenceFlow_0z6uy7p" sourceRef="ServiceTask_0gkjgp7" targetRef="ServiceTask_1p7awhn" /> + </bpmn:subProcess> + <bpmn:serviceTask id="ServiceTask_1h45jew" name="LOG: FAIL, EXEC 12" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 12 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1hn952u</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1bwwqgb</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:serviceTask id="ServiceTask_1rtbt4j" name="LOG: SUCCESS, EXEC 12" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 12 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0j6w1i1</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_01xzzzt</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_0ck26j4" attachedToRef="SubProcess_1prxazd"> + <bpmn:outgoing>SequenceFlow_0j6w1i1</bpmn:outgoing> + <bpmn:errorEventDefinition id="ErrorEventDefinition_04vpfaz" /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_0j6w1i1" sourceRef="BoundaryEvent_0ck26j4" targetRef="ServiceTask_1rtbt4j" /> + <bpmn:sequenceFlow id="SequenceFlow_0nf81s5" sourceRef="ServiceTask_1kzrjm6" targetRef="SubProcess_1prxazd" /> + <bpmn:sequenceFlow id="SequenceFlow_1hn952u" sourceRef="SubProcess_1prxazd" targetRef="ServiceTask_1h45jew" /> + <bpmn:sequenceFlow id="SequenceFlow_1bwwqgb" sourceRef="ServiceTask_1h45jew" targetRef="EndEvent_0ygeuep" /> + <bpmn:subProcess id="SubProcess_18wkc4m"> + <bpmn:incoming>SequenceFlow_01xzzzt</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1jeej0r</bpmn:outgoing> + <bpmn:startEvent id="StartEvent_0x0dcgo" camunda:asyncBefore="true"> + <bpmn:outgoing>SequenceFlow_1a4i8qe</bpmn:outgoing> + </bpmn:startEvent> + <bpmn:endEvent id="EndEvent_0bm48z6"> + <bpmn:incoming>SequenceFlow_10k16y6</bpmn:incoming> + </bpmn:endEvent> + <bpmn:serviceTask id="ServiceTask_0f2syr4" name="EXEC 13: timeout and retry with success" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'count=$(<count.txt); (( count-- )); echo count = $count; echo $count > count.txt; sleep $count; exit 0'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success,143=fail</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>10</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>10</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_0jp1mud</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_10k16y6</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:serviceTask id="ServiceTask_0xucp01" name="Setup Count Input File" camunda:modelerTemplate="jpl.cws.task.CmdLineExecTask" camunda:type="external" camunda:topic="__CWS_CMD_TOPIC__"> + <bpmn:extensionElements> + <camunda:field name="cmdLine"> + <camunda:expression>bash -c 'echo 13 > count.txt'</camunda:expression> + </camunda:field> + <camunda:field name="workingDir"> + <camunda:expression>/tmp</camunda:expression> + </camunda:field> + <camunda:field name="successExitValues"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="throwOnFailures"> + <camunda:expression>true</camunda:expression> + </camunda:field> + <camunda:field name="exitCodeEvents"> + <camunda:expression>0=success</camunda:expression> + </camunda:field> + <camunda:field name="throwOnTruncatedVariable"> + <camunda:expression>false</camunda:expression> + </camunda:field> + <camunda:field name="preCondition" /> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + <camunda:field name="timeout"> + <camunda:expression>86400</camunda:expression> + </camunda:field> + <camunda:field name="retries"> + <camunda:expression>0</camunda:expression> + </camunda:field> + <camunda:field name="retryDelay"> + <camunda:expression>1000</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1a4i8qe</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0jp1mud</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:sequenceFlow id="SequenceFlow_1a4i8qe" sourceRef="StartEvent_0x0dcgo" targetRef="ServiceTask_0xucp01" /> + <bpmn:sequenceFlow id="SequenceFlow_10k16y6" sourceRef="ServiceTask_0f2syr4" targetRef="EndEvent_0bm48z6" /> + <bpmn:sequenceFlow id="SequenceFlow_0jp1mud" sourceRef="ServiceTask_0xucp01" targetRef="ServiceTask_0f2syr4" /> + </bpmn:subProcess> + <bpmn:serviceTask id="ServiceTask_1ufgxlc" name="LOG: SUCCESS, EXEC 13" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 13 [OK]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1tsitl7</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_0ndm3og</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:serviceTask id="ServiceTask_1al0pck" name="LOG: FAIL, EXEC 13" camunda:modelerTemplate="jpl.cws.task.LogTask" camunda:class="jpl.cws.task.LogTask"> + <bpmn:extensionElements> + <camunda:field name="message"> + <camunda:expression>AFTER EXEC 13 [ERROR]</camunda:expression> + </camunda:field> + <camunda:field name="preCondition"> + <camunda:expression>none</camunda:expression> + </camunda:field> + <camunda:field name="onPreConditionFail"> + <camunda:expression>ABORT_PROCESS</camunda:expression> + </camunda:field> + </bpmn:extensionElements> + <bpmn:incoming>SequenceFlow_1btfmxd</bpmn:incoming> + <bpmn:incoming>SequenceFlow_0i1vvi9</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_11g6os8</bpmn:outgoing> + </bpmn:serviceTask> + <bpmn:boundaryEvent id="BoundaryEvent_0er8wmn" attachedToRef="SubProcess_18wkc4m"> + <bpmn:outgoing>SequenceFlow_1btfmxd</bpmn:outgoing> + <bpmn:errorEventDefinition id="ErrorEventDefinition_12txeh3" /> + </bpmn:boundaryEvent> + <bpmn:sequenceFlow id="SequenceFlow_1btfmxd" sourceRef="BoundaryEvent_0er8wmn" targetRef="ServiceTask_1al0pck" /> + <bpmn:sequenceFlow id="SequenceFlow_11g6os8" sourceRef="ServiceTask_1al0pck" targetRef="EndEvent_10r6hd2" /> + <bpmn:sequenceFlow id="SequenceFlow_01xzzzt" sourceRef="ServiceTask_1rtbt4j" targetRef="SubProcess_18wkc4m" /> + <bpmn:sequenceFlow id="SequenceFlow_0ndm3og" sourceRef="ServiceTask_1ufgxlc" targetRef="EndEvent_1nqcd3n" /> + <bpmn:exclusiveGateway id="ExclusiveGateway_1mqy34e" default="SequenceFlow_0i1vvi9"> + <bpmn:incoming>SequenceFlow_1jeej0r</bpmn:incoming> + <bpmn:outgoing>SequenceFlow_1tsitl7</bpmn:outgoing> + <bpmn:outgoing>SequenceFlow_0i1vvi9</bpmn:outgoing> + </bpmn:exclusiveGateway> + <bpmn:sequenceFlow id="SequenceFlow_1jeej0r" sourceRef="SubProcess_18wkc4m" targetRef="ExclusiveGateway_1mqy34e" /> + <bpmn:sequenceFlow id="SequenceFlow_1tsitl7" sourceRef="ExclusiveGateway_1mqy34e" targetRef="ServiceTask_1ufgxlc"> + <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${ServiceTask_0f2syr4_output == "count = 9" && ServiceTask_0f2syr4_success == "true"}</bpmn:conditionExpression> + </bpmn:sequenceFlow> + <bpmn:sequenceFlow id="SequenceFlow_0i1vvi9" sourceRef="ExclusiveGateway_1mqy34e" targetRef="ServiceTask_1al0pck" /> + <bpmn:endEvent id="EndEvent_10r6hd2" name="EXEC 13 FAILED"> + <bpmn:incoming>SequenceFlow_11g6os8</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0qgeyix" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_0ygeuep" name="EXEC 12 FAILED"> + <bpmn:incoming>SequenceFlow_1bwwqgb</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_16u1830" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_1yn2488" name="EXEC 11 FAILED"> + <bpmn:incoming>SequenceFlow_1f6dsy1</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0v7xh9l" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_1fiznu4" name="EXEC 10 FAILED"> + <bpmn:incoming>SequenceFlow_17ohc6x</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0ftzye8" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_17pzov5" name="EXEC 9 FAILED"> + <bpmn:incoming>SequenceFlow_11dwd7c</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0olps61" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_0qsrrml" name="EXEC 8 FAILED"> + <bpmn:incoming>SequenceFlow_1rtrpt5</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0zwr2kc" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_0p87pr0" name="EXEC 6 FAILED"> + <bpmn:incoming>SequenceFlow_05zcf1z</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_1w12g1v" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_0weeyfu" name="EXEC 5 FAILED"> + <bpmn:incoming>SequenceFlow_05v6vy6</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0cposp4" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_1mu8jjy" name="EXEC 4 FAILED"> + <bpmn:incoming>SequenceFlow_1ta6zx7</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_1pjht2p" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_1pelf6o" name="EXEC 3 FAILED"> + <bpmn:incoming>SequenceFlow_0qeoxh1</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_04a9ctu" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_1tbq4qs" name="EXEC 2 FAILED"> + <bpmn:incoming>SequenceFlow_0e6ebxr</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_1et7a50" /> + </bpmn:endEvent> + <bpmn:endEvent id="EndEvent_0a32aye" name="EXEC 7 FAILED"> + <bpmn:incoming>SequenceFlow_1vs943e</bpmn:incoming> + <bpmn:errorEventDefinition errorRef="Error_0vvgl6d" /> + </bpmn:endEvent> + <bpmn:textAnnotation id="TextAnnotation_02zrjl5"> + <bpmn:text>CASES: +------------ +EXEC 1: no error, no throw, no boundary catch +EXEC 2: no error, no throw, boundary catch +EXEC 3: no error, throw, no boundary catch +EXEC 4: no error, throw, boundary catch +EXEC 5: error, no throw, no boundary catch +EXEC 6: error, no throw, boundary catch +EXEC 7: error, throw, no boundary catch +EXEC 8: error, throw, boundary catch +EXEC 9: timeout, throw, no boundary catch +EXEC 10: timeout, throw, boundary catch +EXEC 11: retry with success +EXEC 12: retry fail +EXEC 13: timeout and retry with success +</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_0tnfp5s" sourceRef="Task_0n1pyix" targetRef="TextAnnotation_02zrjl5" /> + <bpmn:textAnnotation id="TextAnnotation_1ohx03e"> + <bpmn:text>This tests having no boundary catch, so we put one on a surrounding sub-pocess just in case a BPMN error is thrown. If one is thrown, then that's unexpected</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_1jdu3g6" sourceRef="SubProcess_1aryk9p" targetRef="TextAnnotation_1ohx03e" /> + <bpmn:textAnnotation id="TextAnnotation_0x0tng2"> + <bpmn:text>EXEC 5 throws an error, but doesn't throw it. The exitCode is recorded as a variable, and we check whether it was correctly set here.</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_1q6pxu6" sourceRef="Task_153ch63" targetRef="TextAnnotation_0x0tng2" /> + <bpmn:textAnnotation id="TextAnnotation_0i8b4xm"> + <bpmn:text>In this case no boundary catch on the command line exec task is defined, but an error is thrown. We put this in a sub-proces so that the error can be caught without exiting the whole process instance. The boundary catch should be followed in the nominal case.</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_199geb7" sourceRef="SubProcess_17ubnip" targetRef="TextAnnotation_0i8b4xm" /> + <bpmn:textAnnotation id="TextAnnotation_0ng5tqw"> + <bpmn:text>In this case no boundary catch on the command line exec task is defined, but a timeout occured. We put this in a sub-proces so that the timeout can be caught without exiting the whole process instance. The boundary catch should be followed in the nominal case.</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_0siar4u" sourceRef="SubProcess_1gd4872" targetRef="TextAnnotation_0ng5tqw" /> + <bpmn:textAnnotation id="TextAnnotation_06o2otu"> + <bpmn:text>EXEC 12 doesn't have enough retries to succeed, so this is expected to throw an error, and take the boundary catch flow.</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_0squ8i0" sourceRef="SubProcess_1prxazd" targetRef="TextAnnotation_06o2otu" /> + <bpmn:textAnnotation id="TextAnnotation_08w6mdr"> + <bpmn:text>This is expected to perform some retries, but eventually succeed.</bpmn:text> + </bpmn:textAnnotation> + <bpmn:association id="Association_08835l7" sourceRef="SubProcess_18wkc4m" targetRef="TextAnnotation_08w6mdr" /> + </bpmn:process> + <bpmn:error id="Error_16u1830" name="Error_1cn0195" errorCode="12" /> + <bpmn:error id="Error_1et7a50" name="Error_2urn8i5" errorCode="2" /> + <bpmn:error id="Error_04a9ctu" name="Error_26qipo8" errorCode="3" /> + <bpmn:error id="Error_1pjht2p" name="Error_3gro6ku" errorCode="4" /> + <bpmn:error id="Error_0cposp4" name="Error_337kjbm" errorCode="5" /> + <bpmn:error id="Error_1w12g1v" name="Error_3fcfma4" errorCode="6" /> + <bpmn:error id="Error_0vvgl6d" name="Error_3751vhi" errorCode="7" /> + <bpmn:error id="Error_0zwr2kc" name="Error_0ejkuah" errorCode="8" /> + <bpmn:error id="Error_0olps61" name="Error_0efkp19" errorCode="9" /> + <bpmn:error id="Error_0ftzye8" name="Error_26fe2r2" errorCode="10" /> + <bpmn:error id="Error_0qgeyix" name="Error_0f9mmt8" errorCode="13" /> + <bpmn:error id="Error_0v7xh9l" name="Error_1lmk35n" errorCode="11" /> + <bpmndi:BPMNDiagram id="BPMNDiagram_1"> + <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="test_error_handling"> + <bpmndi:BPMNShape id="TextAnnotation_02zrjl5_di" bpmnElement="TextAnnotation_02zrjl5"> + <dc:Bounds x="622" y="78" width="290" height="232" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_1ohx03e_di" bpmnElement="TextAnnotation_1ohx03e"> + <dc:Bounds x="659" y="576" width="137" height="134" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_0x0tng2_di" bpmnElement="TextAnnotation_0x0tng2"> + <dc:Bounds x="624" y="1064" width="188" height="96" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_0i8b4xm_di" bpmnElement="TextAnnotation_0i8b4xm"> + <dc:Bounds x="160" y="1530" width="184" height="166" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_0ng5tqw_di" bpmnElement="TextAnnotation_0ng5tqw"> + <dc:Bounds x="160" y="2089" width="183" height="167" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_06o2otu_di" bpmnElement="TextAnnotation_06o2otu"> + <dc:Bounds x="659" y="3132" width="100" height="140" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="TextAnnotation_08w6mdr_di" bpmnElement="TextAnnotation_08w6mdr"> + <dc:Bounds x="659" y="3593" width="100" height="84" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0i1vvi9_di" bpmnElement="SequenceFlow_0i1vvi9"> + <di:waypoint x="521" y="3955" /> + <di:waypoint x="709" y="3955" /> + <di:waypoint x="709" y="3817" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="535" y="3933.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1tsitl7_di" bpmnElement="SequenceFlow_1tsitl7"> + <di:waypoint x="496" y="3980" /> + <di:waypoint x="496" y="4019" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="3992.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1jeej0r_di" bpmnElement="SequenceFlow_1jeej0r"> + <di:waypoint x="496" y="3884" /> + <di:waypoint x="496" y="3930" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="3900" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0ndm3og_di" bpmnElement="SequenceFlow_0ndm3og"> + <di:waypoint x="496" y="4099" /> + <di:waypoint x="496" y="4164" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="4125" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_01xzzzt_di" bpmnElement="SequenceFlow_01xzzzt"> + <di:waypoint x="296" y="3483" /> + <di:waypoint x="296" y="3508" /> + <di:waypoint x="496" y="3508" /> + <di:waypoint x="496" y="3540" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="316" y="3486.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_11g6os8_di" bpmnElement="SequenceFlow_11g6os8"> + <di:waypoint x="743" y="3776" /> + <di:waypoint x="801" y="3776" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="692" y="3754.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1btfmxd_di" bpmnElement="SequenceFlow_1btfmxd"> + <di:waypoint x="588" y="3884" /> + <di:waypoint x="676" y="3884" /> + <di:waypoint x="676" y="3816" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="552" y="3862.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1bwwqgb_di" bpmnElement="SequenceFlow_1bwwqgb"> + <di:waypoint x="725" y="3335" /> + <di:waypoint x="801" y="3335" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="683" y="3313.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1hn952u_di" bpmnElement="SequenceFlow_1hn952u"> + <di:waypoint x="570" y="3335" /> + <di:waypoint x="598" y="3335" /> + <di:waypoint x="625" y="3335" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="504" y="3313.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0nf81s5_di" bpmnElement="SequenceFlow_0nf81s5"> + <di:waypoint x="315" y="2908" /> + <di:waypoint x="315" y="3057" /> + <di:waypoint x="496" y="3057" /> + <di:waypoint x="496" y="3099" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="325.5" y="3035.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0j6w1i1_di" bpmnElement="SequenceFlow_0j6w1i1"> + <di:waypoint x="403" y="3443" /> + <di:waypoint x="346" y="3443" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="294.5" y="3421.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_14aw9kh_di" bpmnElement="SequenceFlow_14aw9kh"> + <di:waypoint x="421" y="2838" /> + <di:waypoint x="393" y="2838" /> + <di:waypoint x="393" y="2868" /> + <di:waypoint x="365" y="2868" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="328" y="2846.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1f6dsy1_di" bpmnElement="SequenceFlow_1f6dsy1"> + <di:waypoint x="743" y="2901" /> + <di:waypoint x="801" y="2901" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="692" y="2879.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_16gscvv_di" bpmnElement="SequenceFlow_16gscvv"> + <di:waypoint x="588" y="3009" /> + <di:waypoint x="693" y="3009" /> + <di:waypoint x="693" y="2941" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="560.5" y="2987.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ao694i_di" bpmnElement="SequenceFlow_1ao694i"> + <di:waypoint x="338" y="2595" /> + <di:waypoint x="338" y="2627" /> + <di:waypoint x="496" y="2627" /> + <di:waypoint x="496" y="2665" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="2605.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0x36h9u_di" bpmnElement="SequenceFlow_0x36h9u"> + <di:waypoint x="546" y="2515" /> + <di:waypoint x="625" y="2515" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="505.5" y="2493" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_17ohc6x_di" bpmnElement="SequenceFlow_17ohc6x"> + <di:waypoint x="725" y="2515" /> + <di:waypoint x="801" y="2515" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="683" y="2493.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0h45bhr_di" bpmnElement="SequenceFlow_0h45bhr"> + <di:waypoint x="428" y="2555" /> + <di:waypoint x="388" y="2555" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="328" y="2533" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1jzdbrf_di" bpmnElement="SequenceFlow_1jzdbrf"> + <di:waypoint x="338" y="2393" /> + <di:waypoint x="338" y="2435" /> + <di:waypoint x="496" y="2435" /> + <di:waypoint x="496" y="2475" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="2413.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1lv786n_di" bpmnElement="SequenceFlow_1lv786n"> + <di:waypoint x="408" y="2353" /> + <di:waypoint x="388" y="2353" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="318" y="2331" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_040sxgr_di" bpmnElement="SequenceFlow_040sxgr"> + <di:waypoint x="566" y="2224" /> + <di:waypoint x="625" y="2224" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="515.5" y="2202.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_11dwd7c_di" bpmnElement="SequenceFlow_11dwd7c"> + <di:waypoint x="725" y="2224" /> + <di:waypoint x="801" y="2224" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="683" y="2202.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1rtrpt5_di" bpmnElement="SequenceFlow_1rtrpt5"> + <di:waypoint x="725" y="1946" /> + <di:waypoint x="801" y="1946" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="1924.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0e6nepr_di" bpmnElement="SequenceFlow_0e6nepr"> + <di:waypoint x="546" y="1946" /> + <di:waypoint x="625" y="1946" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="505.5" y="1924.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0sk3ap9_di" bpmnElement="SequenceFlow_0sk3ap9"> + <di:waypoint x="566" y="1658" /> + <di:waypoint x="625" y="1658" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="515.5" y="1636" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1vs943e_di" bpmnElement="SequenceFlow_1vs943e"> + <di:waypoint x="725" y="1658" /> + <di:waypoint x="801" y="1658" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="1637" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0289la0_di" bpmnElement="SequenceFlow_0289la0"> + <di:waypoint x="338" y="2026" /> + <di:waypoint x="338" y="2056" /> + <di:waypoint x="496" y="2056" /> + <di:waypoint x="496" y="2095" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="292" y="2034.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_16lhzwv_di" bpmnElement="SequenceFlow_16lhzwv"> + <di:waypoint x="428" y="1986" /> + <di:waypoint x="388" y="1986" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="328" y="1964.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1l86ge3_di" bpmnElement="SequenceFlow_1l86ge3"> + <di:waypoint x="338" y="1826" /> + <di:waypoint x="338" y="1868" /> + <di:waypoint x="496" y="1868" /> + <di:waypoint x="496" y="1906" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="1846.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1wf13xv_di" bpmnElement="SequenceFlow_1wf13xv"> + <di:waypoint x="408" y="1786" /> + <di:waypoint x="388" y="1786" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="318" y="1764.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0v99q9q_di" bpmnElement="SequenceFlow_0v99q9q"> + <di:waypoint x="338" y="1426" /> + <di:waypoint x="338" y="1468" /> + <di:waypoint x="496" y="1468" /> + <di:waypoint x="496" y="1529" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="1446.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0sz1nlv_di" bpmnElement="SequenceFlow_0sz1nlv"> + <di:waypoint x="446" y="1386" /> + <di:waypoint x="388" y="1386" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="1364.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_05zcf1z_di" bpmnElement="SequenceFlow_05zcf1z"> + <di:waypoint x="725" y="1426" /> + <di:waypoint x="801" y="1426" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="1404.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0wsbmz7_di" bpmnElement="SequenceFlow_0wsbmz7"> + <di:waypoint x="564" y="1426" /> + <di:waypoint x="625" y="1426" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="514.5" y="1404.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0h89kak_di" bpmnElement="SequenceFlow_0h89kak"> + <di:waypoint x="338" y="1269" /> + <di:waypoint x="338" y="1304" /> + <di:waypoint x="496" y="1304" /> + <di:waypoint x="496" y="1346" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="1282.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_05v6vy6_di" bpmnElement="SequenceFlow_05v6vy6"> + <di:waypoint x="725" y="1229" /> + <di:waypoint x="801" y="1229" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="1207.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0zrbl5f_di" bpmnElement="SequenceFlow_0zrbl5f"> + <di:waypoint x="471" y="1229" /> + <di:waypoint x="388" y="1229" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="349.5" y="1207.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_17ubkbm_di" bpmnElement="SequenceFlow_17ubkbm"> + <di:waypoint x="521" y="1229" /> + <di:waypoint x="625" y="1229" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="493" y="1207.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0tftgbi_di" bpmnElement="SequenceFlow_0tftgbi"> + <di:waypoint x="496" y="1152" /> + <di:waypoint x="496" y="1204" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="1171" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0af7rfa_di" bpmnElement="SequenceFlow_0af7rfa"> + <di:waypoint x="338" y="988" /> + <di:waypoint x="338" y="1024" /> + <di:waypoint x="496" y="1024" /> + <di:waypoint x="496" y="1072" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="1002.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_19b7bny_di" bpmnElement="SequenceFlow_19b7bny"> + <di:waypoint x="446" y="948" /> + <di:waypoint x="388" y="948" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="926.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1ta6zx7_di" bpmnElement="SequenceFlow_1ta6zx7"> + <di:waypoint x="725" y="988" /> + <di:waypoint x="801" y="988" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="966.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_021tokq_di" bpmnElement="SequenceFlow_021tokq"> + <di:waypoint x="564" y="988" /> + <di:waypoint x="625" y="988" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="514.5" y="966.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0qeoxh1_di" bpmnElement="SequenceFlow_0qeoxh1"> + <di:waypoint x="725" y="822" /> + <di:waypoint x="801" y="822" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="800.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0e6ebxr_di" bpmnElement="SequenceFlow_0e6ebxr"> + <di:waypoint x="725" y="457" /> + <di:waypoint x="801" y="457" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="638" y="435.5" width="90" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0zurb6n_di" bpmnElement="SequenceFlow_0zurb6n"> + <di:waypoint x="338" y="721" /> + <di:waypoint x="338" y="864" /> + <di:waypoint x="496" y="864" /> + <di:waypoint x="496" y="908" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="842.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1cs2kii_di" bpmnElement="SequenceFlow_1cs2kii"> + <di:waypoint x="584" y="822" /> + <di:waypoint x="625" y="822" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="524.5" y="800.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1nvhsbd_di" bpmnElement="SequenceFlow_1nvhsbd"> + <di:waypoint x="426" y="681" /> + <di:waypoint x="388" y="681" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="327" y="659.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_13svdv3_di" bpmnElement="SequenceFlow_13svdv3"> + <di:waypoint x="338" y="457" /> + <di:waypoint x="338" y="503" /> + <di:waypoint x="496" y="503" /> + <di:waypoint x="496" y="540" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="481.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0ocesge_di" bpmnElement="SequenceFlow_0ocesge"> + <di:waypoint x="446" y="417" /> + <di:waypoint x="388" y="417" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="395.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0l9c135_di" bpmnElement="SequenceFlow_0l9c135"> + <di:waypoint x="564" y="457" /> + <di:waypoint x="625" y="457" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="514.5" y="435.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_08f37km_di" bpmnElement="SequenceFlow_08f37km"> + <di:waypoint x="338" y="302" /> + <di:waypoint x="338" y="334" /> + <di:waypoint x="496" y="334" /> + <di:waypoint x="496" y="377" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="312.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_17s3hbt_di" bpmnElement="SequenceFlow_17s3hbt"> + <di:waypoint x="446" y="262" /> + <di:waypoint x="388" y="262" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="337" y="240" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1v9pepy_di" bpmnElement="SequenceFlow_1v9pepy"> + <di:waypoint x="496" y="150" /> + <di:waypoint x="496" y="222" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="179.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"> + <dc:Bounds x="478" y="114" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="478" y="84" width="36" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_00bfu59_di" bpmnElement="Task_0n1pyix"> + <dc:Bounds x="446" y="222" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="Task_05qo2b7_di" bpmnElement="Task_05qo2b7"> + <dc:Bounds x="288" y="222" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0k2q43e_di" bpmnElement="Task_11lz5p2"> + <dc:Bounds x="446" y="377" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_06rhiq8_di" bpmnElement="Task_09ldt3b"> + <dc:Bounds x="625" y="417" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1oetwm3_di" bpmnElement="Task_1bqcbb6"> + <dc:Bounds x="288" y="377" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1vechum_di" bpmnElement="Task_0beex68"> + <dc:Bounds x="288" y="641" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_08lsaav_di" bpmnElement="Task_1ndn5z8"> + <dc:Bounds x="625" y="782" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0svdh6v_di" bpmnElement="Task_18kndcj"> + <dc:Bounds x="446" y="908" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_16k6son_di" bpmnElement="Task_1f9i5os"> + <dc:Bounds x="625" y="948" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1389ptq_di" bpmnElement="Task_0tbioux"> + <dc:Bounds x="288" y="908" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1xa83r5_di" bpmnElement="Task_153ch63"> + <dc:Bounds x="446" y="1072" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ExclusiveGateway_0pi2f5r_di" bpmnElement="ExclusiveGateway_0pi2f5r" isMarkerVisible="true"> + <dc:Bounds x="471" y="1204" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="416" y="1256.558" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0mmd35v_di" bpmnElement="Task_09xvn30"> + <dc:Bounds x="288" y="1189" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0qimjtt_di" bpmnElement="Task_169nxbp"> + <dc:Bounds x="625" y="1189" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1k4t77n_di" bpmnElement="Task_15vna7u"> + <dc:Bounds x="446" y="1346" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0zfpi3w_di" bpmnElement="Task_1dodxgm"> + <dc:Bounds x="625" y="1386" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1hcqsmf_di" bpmnElement="Task_0vujjfw"> + <dc:Bounds x="288" y="1346" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1imu6cl_di" bpmnElement="Task_1c0pkaj"> + <dc:Bounds x="288" y="1746" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0hi69fz_di" bpmnElement="Task_1f7k8dh"> + <dc:Bounds x="446" y="1906" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1isfyd0_di" bpmnElement="Task_1b0pni0"> + <dc:Bounds x="288" y="1946" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1nqcd3n_di" bpmnElement="EndEvent_1nqcd3n"> + <dc:Bounds x="478" y="4164" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="453" y="4210" width="87" height="40" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0r6hoib_di" bpmnElement="Task_0au9i4c"> + <dc:Bounds x="625" y="1618" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0b33i74_di" bpmnElement="Task_0486lne"> + <dc:Bounds x="625" y="1906" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1k9y5sv_di" bpmnElement="ServiceTask_1k9y5sv"> + <dc:Bounds x="625" y="2184" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0xtwwnb_di" bpmnElement="ServiceTask_0xtwwnb"> + <dc:Bounds x="446" y="2475" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_07j7g5q_di" bpmnElement="ServiceTask_07j7g5q"> + <dc:Bounds x="288" y="2313" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0zpdbhd_di" bpmnElement="ServiceTask_0zpdbhd"> + <dc:Bounds x="288" y="2515" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0z1p6um_di" bpmnElement="ServiceTask_0z1p6um"> + <dc:Bounds x="625" y="2475" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1wz6vii_di" bpmnElement="ServiceTask_1wz6vii"> + <dc:Bounds x="643" y="2861" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1kzrjm6_di" bpmnElement="ServiceTask_1kzrjm6"> + <dc:Bounds x="265" y="2828" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1h45jew_di" bpmnElement="ServiceTask_1h45jew"> + <dc:Bounds x="625" y="3295" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1rtbt4j_di" bpmnElement="ServiceTask_1rtbt4j"> + <dc:Bounds x="246" y="3403" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1ufgxlc_di" bpmnElement="ServiceTask_1ufgxlc"> + <dc:Bounds x="446" y="4019" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1al0pck_di" bpmnElement="ServiceTask_1al0pck"> + <dc:Bounds x="643" y="3736" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ExclusiveGateway_1mqy34e_di" bpmnElement="ExclusiveGateway_1mqy34e" isMarkerVisible="true"> + <dc:Bounds x="471" y="3930" width="50" height="50" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="381" y="3948.232" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1ysn9pm_di" bpmnElement="EndEvent_10r6hd2"> + <dc:Bounds x="801" y="3758" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="777" y="3797" width="87" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_00grmmk_di" bpmnElement="EndEvent_0ygeuep"> + <dc:Bounds x="801" y="3317" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="777" y="3356" width="87" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0y1zsd3_di" bpmnElement="EndEvent_1yn2488"> + <dc:Bounds x="801" y="2883" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="777" y="2922" width="86" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0r00b7r_di" bpmnElement="EndEvent_1fiznu4"> + <dc:Bounds x="801" y="2497" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="776" y="2536" width="87" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_101jc4v_di" bpmnElement="EndEvent_17pzov5"> + <dc:Bounds x="801" y="2206" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="2245" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0ypbenn_di" bpmnElement="EndEvent_0qsrrml"> + <dc:Bounds x="801" y="1928" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1967" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0g3f1w3_di" bpmnElement="EndEvent_0p87pr0"> + <dc:Bounds x="801" y="1408" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1447" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0rfftim_di" bpmnElement="EndEvent_0weeyfu"> + <dc:Bounds x="801" y="1211" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1250" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1218nar_di" bpmnElement="EndEvent_1mu8jjy"> + <dc:Bounds x="801" y="970" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1009" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1g9m9rw_di" bpmnElement="EndEvent_1pelf6o"> + <dc:Bounds x="801" y="804" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="843" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_009sjc4_di" bpmnElement="EndEvent_1tbq4qs"> + <dc:Bounds x="801" y="439" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="478" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_19lx2jo_di" bpmnElement="EndEvent_0a32aye"> + <dc:Bounds x="801" y="1640" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="779" y="1679" width="81" height="14" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_1aryk9p_di" bpmnElement="SubProcess_1aryk9p" isExpanded="true"> + <dc:Bounds x="426" y="540" width="140" height="282" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_03l1qjb_di" bpmnElement="SequenceFlow_03l1qjb"> + <di:waypoint x="496" y="720" /> + <di:waypoint x="496" y="753" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="729.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1fo3x1q_di" bpmnElement="SequenceFlow_1fo3x1q"> + <di:waypoint x="496" y="610" /> + <di:waypoint x="496" y="640" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="431" y="618" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="StartEvent_10lyuwu_di" bpmnElement="StartEvent_10lyuwu"> + <dc:Bounds x="478" y="574" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="416" y="550.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_03ubyh1_di" bpmnElement="EndEvent_03ubyh1"> + <dc:Bounds x="478" y="753" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="416" y="792" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1bfeyxu_di" bpmnElement="Task_0soaz9r"> + <dc:Bounds x="446" y="640" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_17ubnip_di" bpmnElement="SubProcess_17ubnip" isExpanded="true"> + <dc:Bounds x="426" y="1529" width="140" height="257" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0k3u8ii_di" bpmnElement="SequenceFlow_0k3u8ii"> + <di:waypoint x="495" y="1695" /> + <di:waypoint x="495" y="1736" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="430" y="1709" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0lxjrp1_di" bpmnElement="SequenceFlow_0lxjrp1"> + <di:waypoint x="495" y="1581.9859999999999" /> + <di:waypoint x="495" y="1615" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="430" y="1591.993" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="StartEvent_1kngum0_di" bpmnElement="StartEvent_1kngum0"> + <dc:Bounds x="477" y="1546" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="415" y="1523.4719999999998" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0b9qoib_di" bpmnElement="EndEvent_0b9qoib"> + <dc:Bounds x="477" y="1736" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="415" y="1774.9859999999999" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_135qhll_di" bpmnElement="Task_15ytfq0"> + <dc:Bounds x="445" y="1615" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_1gd4872_di" bpmnElement="SubProcess_1gd4872" isExpanded="true"> + <dc:Bounds x="426" y="2095" width="140" height="257" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0o9a23o_di" bpmnElement="SequenceFlow_0o9a23o"> + <di:waypoint x="495" y="2149" /> + <di:waypoint x="495" y="2182" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="385" y="2159.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1f3207x_di" bpmnElement="SequenceFlow_1f3207x"> + <di:waypoint x="495" y="2262" /> + <di:waypoint x="495" y="2303" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="385" y="2276.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="StartEvent_02knsq2_di" bpmnElement="StartEvent_02knsq2"> + <dc:Bounds x="477" y="2113" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="370" y="2090.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_033ijmx_di" bpmnElement="EndEvent_033ijmx"> + <dc:Bounds x="477" y="2303" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="370" y="2342" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0rgml7r_di" bpmnElement="ServiceTask_0rgml7r"> + <dc:Bounds x="445" y="2182" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_1lxt3r5_di" bpmnElement="SubProcess_1lxt3r5" isExpanded="true"> + <dc:Bounds x="421" y="2665" width="149" height="344" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_1by7xiy_di" bpmnElement="SequenceFlow_1by7xiy"> + <di:waypoint x="497" y="2825" /> + <di:waypoint x="497" y="2849" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="2830.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0aadj3f_di" bpmnElement="SequenceFlow_0aadj3f"> + <di:waypoint x="497" y="2929" /> + <di:waypoint x="497" y="2956" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="2936" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_01mkagd_di" bpmnElement="SequenceFlow_01mkagd"> + <di:waypoint x="497" y="2721" /> + <di:waypoint x="497" y="2745" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="2726.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="ServiceTask_1b1m1yf_di" bpmnElement="Task_1pnbpuy"> + <dc:Bounds x="447" y="2849" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="StartEvent_03lxxzm_di" bpmnElement="StartEvent_03lxxzm"> + <dc:Bounds x="479" y="2685" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="2661.782" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1ot7d8w_di" bpmnElement="EndEvent_1ot7d8w"> + <dc:Bounds x="479" y="2956" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="3001.804" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0n1gekf_di" bpmnElement="Task_1mf8d63"> + <dc:Bounds x="447" y="2745" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_1prxazd_di" bpmnElement="SubProcess_1prxazd" isExpanded="true"> + <dc:Bounds x="421" y="3099" width="149" height="344" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0z6uy7p_di" bpmnElement="SequenceFlow_0z6uy7p"> + <di:waypoint x="497" y="3259" /> + <di:waypoint x="497" y="3283" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3265" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1iip0i8_di" bpmnElement="SequenceFlow_1iip0i8"> + <di:waypoint x="497" y="3363" /> + <di:waypoint x="497" y="3390" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3370.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_0zfim76_di" bpmnElement="SequenceFlow_0zfim76"> + <di:waypoint x="497" y="3155" /> + <di:waypoint x="497" y="3179" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3161" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="StartEvent_19bilqz_di" bpmnElement="StartEvent_19bilqz"> + <dc:Bounds x="479" y="3119" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="3095.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_1t88z9v_di" bpmnElement="EndEvent_1t88z9v"> + <dc:Bounds x="479" y="3390" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="3436" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_1p7awhn_di" bpmnElement="ServiceTask_1p7awhn"> + <dc:Bounds x="447" y="3283" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0gkjgp7_di" bpmnElement="ServiceTask_0gkjgp7"> + <dc:Bounds x="447" y="3179" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="SubProcess_18wkc4m_di" bpmnElement="SubProcess_18wkc4m" isExpanded="true"> + <dc:Bounds x="421" y="3540" width="149" height="344" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="SequenceFlow_0jp1mud_di" bpmnElement="SequenceFlow_0jp1mud"> + <di:waypoint x="497" y="3700" /> + <di:waypoint x="497" y="3724" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3706" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_10k16y6_di" bpmnElement="SequenceFlow_10k16y6"> + <di:waypoint x="497" y="3804" /> + <di:waypoint x="497" y="3831" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3811.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="SequenceFlow_1a4i8qe_di" bpmnElement="SequenceFlow_1a4i8qe"> + <di:waypoint x="497" y="3596" /> + <di:waypoint x="497" y="3620" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="432" y="3602" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="StartEvent_0x0dcgo_di" bpmnElement="StartEvent_0x0dcgo"> + <dc:Bounds x="479" y="3560" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="3536.5" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="EndEvent_0bm48z6_di" bpmnElement="EndEvent_0bm48z6"> + <dc:Bounds x="479" y="3831" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="417" y="3877" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0f2syr4_di" bpmnElement="ServiceTask_0f2syr4"> + <dc:Bounds x="447" y="3724" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="ServiceTask_0xucp01_di" bpmnElement="ServiceTask_0xucp01"> + <dc:Bounds x="447" y="3620" width="100" height="80" /> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge id="Association_0tnfp5s_di" bpmnElement="Association_0tnfp5s"> + <di:waypoint x="546" y="251" /> + <di:waypoint x="622" y="233" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_1jdu3g6_di" bpmnElement="Association_1jdu3g6"> + <di:waypoint x="566" y="672" /> + <di:waypoint x="659" y="661" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_1q6pxu6_di" bpmnElement="Association_1q6pxu6"> + <di:waypoint x="546" y="1118" /> + <di:waypoint x="624" y="1127" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_199geb7_di" bpmnElement="Association_199geb7"> + <di:waypoint x="426" y="1637" /> + <di:waypoint x="344" y="1612" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_0siar4u_di" bpmnElement="Association_0siar4u"> + <di:waypoint x="426" y="2209" /> + <di:waypoint x="343" y="2192" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_0squ8i0_di" bpmnElement="Association_0squ8i0"> + <di:waypoint x="570" y="3247" /> + <di:waypoint x="659" y="3218" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge id="Association_08835l7_di" bpmnElement="Association_08835l7"> + <di:waypoint x="570" y="3685" /> + <di:waypoint x="659" y="3653" /> + </bpmndi:BPMNEdge> + <bpmndi:BPMNShape id="BoundaryEvent_0er8wmn_di" bpmnElement="BoundaryEvent_0er8wmn"> + <dc:Bounds x="552" y="3866" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="490" y="3905" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_0ck26j4_di" bpmnElement="BoundaryEvent_0ck26j4"> + <dc:Bounds x="403" y="3425" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="341" y="3464" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_0f82kgw_di" bpmnElement="BoundaryEvent_0dvbxwa"> + <dc:Bounds x="552" y="2991" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="490" y="3030" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_028yywk_di" bpmnElement="BoundaryEvent_028yywk"> + <dc:Bounds x="428" y="2537" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="366" y="2576" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_1ncxcp7_di" bpmnElement="BoundaryEvent_1ncxcp7"> + <dc:Bounds x="408" y="2335" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="346" y="2374" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_0pzsztl_di" bpmnElement="BoundaryEvent_133h24c"> + <dc:Bounds x="428" y="1968" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="366" y="2007" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_18epjzl_di" bpmnElement="BoundaryEvent_14dzlp6"> + <dc:Bounds x="408" y="1768" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="346" y="1807" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_0spo4hq_di" bpmnElement="BoundaryEvent_1xtency"> + <dc:Bounds x="528" y="1408" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="466" y="1447" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_1fvz9ks_di" bpmnElement="BoundaryEvent_1cwbka0"> + <dc:Bounds x="528" y="970" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="466" y="1009" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_1gzh66k_di" bpmnElement="BoundaryEvent_0ti8teb"> + <dc:Bounds x="548" y="804" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="486" y="843" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape id="BoundaryEvent_09jr242_di" bpmnElement="BoundaryEvent_16tisyd"> + <dc:Bounds x="528" y="439" width="36" height="36" /> + <bpmndi:BPMNLabel> + <dc:Bounds x="466" y="478" width="0" height="13" /> + </bpmndi:BPMNLabel> + </bpmndi:BPMNShape> + </bpmndi:BPMNPlane> + </bpmndi:BPMNDiagram> +</bpmn:definitions> diff --git a/install/docker/cws-image/Dockerfile b/install/docker/cws-image/Dockerfile index 82b35f9e..5889b674 100644 --- a/install/docker/cws-image/Dockerfile +++ b/install/docker/cws-image/Dockerfile @@ -4,7 +4,6 @@ RUN yum update -y && \ yum install -y mariadb-server mariadb-client java-1.8.0-openjdk java-1.8.0-openjdk-devel && \ yum clean all -#TODO Update this because it might break later ENV JAVA_HOME /usr/lib/jvm/java-1.8.0 ENV TZ=America/Los_Angeles diff --git a/pom.xml b/pom.xml index 25bee1f2..07d5553d 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,7 @@ <software.amazon.awssdk.version>2.15.47</software.amazon.awssdk.version> <!-- <boon.version>0.12</boon.version> --> <camunda.version>7.13.0</camunda.version> + <camunda-spin.version>1.9.0</camunda-spin.version> <commons-compress.version>1.5</commons-compress.version> <commons-configuration.version>1.10</commons-configuration.version> <commons-exec.version>1.3</commons-exec.version> @@ -170,6 +171,13 @@ <type>pom</type> </dependency> + <dependency> + <groupId>org.camunda.spin</groupId> + <artifactId>camunda-spin-dataformat-all</artifactId> + <scope>import</scope> + <type>pom</type> + <version>${camunda-spin.version}</version> + </dependency> <dependency> <groupId>org.camunda.bpm</groupId> <artifactId>camunda-engine-plugin-spin</artifactId>