<?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: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" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_1ujhdw6" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.15.0">
  <bpmn:process id="Main_Process" isExecutable="true">
    <bpmn:startEvent id="Start_Event" name="Start">
      <bpmn:outgoing>Flow_0ppdvks</bpmn:outgoing>
    </bpmn:startEvent>
    <bpmn:transaction id="Subprocess" name="Collect Data">
      <bpmn:incoming>Flow_0ppdvks</bpmn:incoming>
      <bpmn:outgoing>Flow_0bnlh0h</bpmn:outgoing>
      <bpmn:startEvent id="Start_Subprocess" name="Start Subprocess">
        <bpmn:outgoing>Flow_039gvks</bpmn:outgoing>
      </bpmn:startEvent>
      <bpmn:userTask id="Activity_Get_Data" name="Get Data" camunda:formKey="FirstTaskForm">
        <bpmn:extensionElements>
          <camunda:formData>
            <camunda:formField id="value" label="Enter Data" type="string" />
          </camunda:formData>
        </bpmn:extensionElements>
        <bpmn:incoming>Flow_039gvks</bpmn:incoming>
        <bpmn:outgoing>Flow_0cfipfp</bpmn:outgoing>
      </bpmn:userTask>
      <bpmn:userTask id="Activity_Get_Quantity" name="Get Quantity" camunda:formKey="SecondTaskForm">
        <bpmn:extensionElements>
          <camunda:formData>
            <camunda:formField id="quantity" label="Get Quantity" type="long" />
          </camunda:formData>
        </bpmn:extensionElements>
        <bpmn:incoming>Data_Default</bpmn:incoming>
        <bpmn:outgoing>Flow_0oab4hv</bpmn:outgoing>
      </bpmn:userTask>
      <bpmn:endEvent id="End_Subprocess" name="End Subprocess">
        <bpmn:incoming>Quantity_Default</bpmn:incoming>
      </bpmn:endEvent>
      <bpmn:sequenceFlow id="Flow_0oab4hv" sourceRef="Activity_Get_Quantity" targetRef="Check_Quantity" />
      <bpmn:sequenceFlow id="Flow_0cfipfp" sourceRef="Activity_Get_Data" targetRef="Check_Data" />
      <bpmn:sequenceFlow id="Flow_039gvks" sourceRef="Start_Subprocess" targetRef="Activity_Get_Data" />
      <bpmn:exclusiveGateway id="Check_Quantity" name="Check Quantity" default="Quantity_Default">
        <bpmn:incoming>Flow_0oab4hv</bpmn:incoming>
        <bpmn:outgoing>Quantity_Default</bpmn:outgoing>
        <bpmn:outgoing>Quantity_LT_Zero</bpmn:outgoing>
        <bpmn:outgoing>Flow_1k10r1p</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:sequenceFlow id="Quantity_Default" name="Default Flow" sourceRef="Check_Quantity" targetRef="End_Subprocess" />
      <bpmn:sequenceFlow id="Quantity_LT_Zero" name="Quantity &#60; Zero" sourceRef="Check_Quantity" targetRef="Error_1">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">quantity &lt; 0</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:endEvent id="Error_1" name="Error 1">
        <bpmn:incoming>Quantity_LT_Zero</bpmn:incoming>
        <bpmn:errorEventDefinition id="ErrorEventDefinition_1ygfmb2" errorRef="Error_04iwzwk" />
      </bpmn:endEvent>
      <bpmn:sequenceFlow id="Flow_1k10r1p" name="Quantity == Zero" sourceRef="Check_Quantity" targetRef="Error_None">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">quantity == 0</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
      <bpmn:endEvent id="Error_None" name="Error_None">
        <bpmn:incoming>Flow_1k10r1p</bpmn:incoming>
        <bpmn:errorEventDefinition id="ErrorEventDefinition_108f6dp" />
      </bpmn:endEvent>
      <bpmn:endEvent id="Cancel_Event" name="Cancel Event">
        <bpmn:incoming>Flow_1j0zczv</bpmn:incoming>
        <bpmn:cancelEventDefinition id="CancelEventDefinition_17o9a91" />
      </bpmn:endEvent>
      <bpmn:exclusiveGateway id="Check_Data" name="Check Data" default="Data_Default">
        <bpmn:incoming>Flow_0cfipfp</bpmn:incoming>
        <bpmn:outgoing>Flow_1j0zczv</bpmn:outgoing>
        <bpmn:outgoing>Data_Default</bpmn:outgoing>
      </bpmn:exclusiveGateway>
      <bpmn:sequenceFlow id="Data_Default" name="Default Flow" sourceRef="Check_Data" targetRef="Activity_Get_Quantity" />
      <bpmn:sequenceFlow id="Flow_1j0zczv" name="Empty Data" sourceRef="Check_Data" targetRef="Cancel_Event">
        <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">value == ""</bpmn:conditionExpression>
      </bpmn:sequenceFlow>
    </bpmn:transaction>
    <bpmn:sequenceFlow id="Flow_0ppdvks" sourceRef="Start_Event" targetRef="Subprocess" />
    <bpmn:sequenceFlow id="Flow_0bnlh0h" sourceRef="Subprocess" targetRef="Activity_Print_Data" />
    <bpmn:endEvent id="End_Event" name="End Event">
      <bpmn:incoming>Flow_1yafeny</bpmn:incoming>
    </bpmn:endEvent>
    <bpmn:sequenceFlow id="Flow_1yafeny" sourceRef="Activity_Print_Data" targetRef="End_Event" />
    <bpmn:scriptTask id="Activity_Print_Data" name="Print Data">
      <bpmn:incoming>Flow_0bnlh0h</bpmn:incoming>
      <bpmn:outgoing>Flow_1yafeny</bpmn:outgoing>
      <bpmn:script>print(f"Value: {value} / Quantity {quantity}")</bpmn:script>
    </bpmn:scriptTask>
    <bpmn:sequenceFlow id="Flow_0qzlrzx" sourceRef="Catch_Error_1" targetRef="Error_1_Action" />
    <bpmn:scriptTask id="Error_1_Action" name="Error 1 Action">
      <bpmn:incoming>Flow_0qzlrzx</bpmn:incoming>
      <bpmn:script>reason = "Error 1"</bpmn:script>
    </bpmn:scriptTask>
    <bpmn:boundaryEvent id="Catch_Error_1" name="Catch Error 1" attachedToRef="Subprocess">
      <bpmn:outgoing>Flow_0qzlrzx</bpmn:outgoing>
      <bpmn:errorEventDefinition id="ErrorEventDefinition_0ov08la" errorRef="Error_04iwzwk" />
    </bpmn:boundaryEvent>
    <bpmn:boundaryEvent id="Catch_Error_None" name="Catch Error None" attachedToRef="Subprocess">
      <bpmn:outgoing>Flow_189pa5w</bpmn:outgoing>
      <bpmn:errorEventDefinition id="ErrorEventDefinition_0jtlrgg" />
    </bpmn:boundaryEvent>
    <bpmn:sequenceFlow id="Flow_189pa5w" sourceRef="Catch_Error_None" targetRef="Error_None_Action" />
    <bpmn:scriptTask id="Error_None_Action" name="Error None Action">
      <bpmn:incoming>Flow_189pa5w</bpmn:incoming>
      <bpmn:script>reason = "Error None"</bpmn:script>
    </bpmn:scriptTask>
    <bpmn:boundaryEvent id="Catch_Cancel_Event" name="Catch Cancel Event" attachedToRef="Subprocess">
      <bpmn:outgoing>Flow_12218kd</bpmn:outgoing>
      <bpmn:cancelEventDefinition id="CancelEventDefinition_1vafyea" />
    </bpmn:boundaryEvent>
    <bpmn:sequenceFlow id="Flow_12218kd" sourceRef="Catch_Cancel_Event" targetRef="Cancel_Action" />
    <bpmn:scriptTask id="Cancel_Action" name="Cancel Action">
      <bpmn:incoming>Flow_12218kd</bpmn:incoming>
      <bpmn:script>reason = "Cancel"</bpmn:script>
    </bpmn:scriptTask>
  </bpmn:process>
  <bpmn:error id="Error_04iwzwk" name="TransactionError" errorCode="1" camunda:errorMessage="An Error Occurred" />
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Main_Process">
      <bpmndi:BPMNEdge id="Flow_12218kd_di" bpmnElement="Flow_12218kd">
        <di:waypoint x="670" y="618" />
        <di:waypoint x="670" y="750" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_189pa5w_di" bpmnElement="Flow_189pa5w">
        <di:waypoint x="1140" y="618" />
        <di:waypoint x="1140" y="750" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0qzlrzx_di" bpmnElement="Flow_0qzlrzx">
        <di:waypoint x="900" y="618" />
        <di:waypoint x="900" y="750" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1yafeny_di" bpmnElement="Flow_1yafeny">
        <di:waypoint x="1510" y="397" />
        <di:waypoint x="1602" y="397" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0bnlh0h_di" bpmnElement="Flow_0bnlh0h">
        <di:waypoint x="1300" y="397" />
        <di:waypoint x="1410" y="397" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0ppdvks_di" bpmnElement="Flow_0ppdvks">
        <di:waypoint x="215" y="397" />
        <di:waypoint x="330" y="397" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="Start_Event">
        <dc:Bounds x="179" y="379" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="185" y="422" width="24" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1in6lbd_di" bpmnElement="Subprocess" isExpanded="true">
        <dc:Bounds x="330" y="80" width="970" height="520" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="Flow_1j0zczv_di" bpmnElement="Flow_1j0zczv">
        <di:waypoint x="670" y="215" />
        <di:waypoint x="670" y="392" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="670" y="263" width="59" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1ihwemn_di" bpmnElement="Data_Default">
        <di:waypoint x="695" y="190" />
        <di:waypoint x="830" y="190" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="732" y="172" width="62" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_1k10r1p_di" bpmnElement="Flow_1k10r1p">
        <di:waypoint x="1040" y="215" />
        <di:waypoint x="1040" y="410" />
        <di:waypoint x="1172" y="410" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1058" y="390" width="83" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_16lf40r_di" bpmnElement="Quantity_LT_Zero">
        <di:waypoint x="1040" y="215" />
        <di:waypoint x="1040" y="293" />
        <di:waypoint x="1172" y="293" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1061" y="273" width="77" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0u70dse_di" bpmnElement="Quantity_Default">
        <di:waypoint x="1065" y="190" />
        <di:waypoint x="1172" y="190" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1088" y="172" width="62" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_039gvks_di" bpmnElement="Flow_039gvks">
        <di:waypoint x="416" y="190" />
        <di:waypoint x="480" y="190" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0cfipfp_di" bpmnElement="Flow_0cfipfp">
        <di:waypoint x="580" y="190" />
        <di:waypoint x="645" y="190" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="Flow_0oab4hv_di" bpmnElement="Flow_0oab4hv">
        <di:waypoint x="930" y="190" />
        <di:waypoint x="1015" y="190" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="Event_1uvzab9_di" bpmnElement="Start_Subprocess">
        <dc:Bounds x="380" y="172" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="356" y="215" width="85" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1r4oab1_di" bpmnElement="Activity_Get_Data">
        <dc:Bounds x="480" y="150" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0isz7v9_di" bpmnElement="Activity_Get_Quantity">
        <dc:Bounds x="830" y="150" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1plsw7h_di" bpmnElement="End_Subprocess">
        <dc:Bounds x="1172" y="172" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1149" y="215" width="82" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Gateway_08gn74y_di" bpmnElement="Check_Quantity" isMarkerVisible="true">
        <dc:Bounds x="1015" y="165" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1002" y="141" width="76" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_1q6c2bb_di" bpmnElement="Error_1">
        <dc:Bounds x="1172" y="275" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1174" y="318" width="34" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0iqyx6t_di" bpmnElement="Error_None">
        <dc:Bounds x="1172" y="392" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1163" y="435" width="57" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0qw7qua_di" bpmnElement="Cancel_Event">
        <dc:Bounds x="652" y="392" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="638" y="435" width="66" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Gateway_1s5i1g9_di" bpmnElement="Check_Data" isMarkerVisible="true">
        <dc:Bounds x="645" y="165" width="50" height="50" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="640" y="141" width="59" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_004mt8h_di" bpmnElement="End_Event">
        <dc:Bounds x="1602" y="379" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1595" y="422" width="51" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_16m4rsd_di" bpmnElement="Activity_Print_Data">
        <dc:Bounds x="1410" y="357" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1j6t8qk_di" bpmnElement="Error_1_Action">
        <dc:Bounds x="850" y="750" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_1vkl1jo_di" bpmnElement="Error_None_Action">
        <dc:Bounds x="1090" y="750" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Activity_0c2u24o_di" bpmnElement="Cancel_Action">
        <dc:Bounds x="620" y="750" width="100" height="80" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_179v19a_di" bpmnElement="Catch_Cancel_Event">
        <dc:Bounds x="652" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="638" y="625" width="67" height="27" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0us158a_di" bpmnElement="Catch_Error_None">
        <dc:Bounds x="1122" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="1098" y="625" width="86" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="Event_0qca25c_di" bpmnElement="Catch_Error_1">
        <dc:Bounds x="882" y="582" width="36" height="36" />
        <bpmndi:BPMNLabel>
          <dc:Bounds x="869" y="625" width="66" height="14" />
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNShape>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>