sample-process-models/manage-procurement/procurement/core-contributor-invoice-ma.../cc-invoice-approval/cc-invoice-approval-process...

2053 lines
105 KiB
XML

<?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:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" camunda:diagramRelationId="f01e22f1-a50b-42ba-afad-22f56fc3e635">
<bpmn:collaboration id="Collaboration_130jph2">
<bpmn:participant id="Participant_1fsb6gv" name="Core Contributor" processRef="Process_cc_invoice_approval_process_v2_b" />
<bpmn:participant id="Participant_11ab2hx" name="Process management platform" processRef="Process_cc_invoice_approval_process_v2_a" />
<bpmn:participant id="Participant_0a8arrz" name="AWS DynamoDB" />
<bpmn:participant id="Participant_1qabwrg" name="AWS S3" />
<bpmn:participant id="Participant_0b27sri" name="Xero" />
<bpmn:messageFlow id="Flow_0ppupld" sourceRef="Activity_175j3o7" targetRef="Participant_0a8arrz" />
<bpmn:messageFlow id="Flow_0yfnc92" sourceRef="Activity_0p88elm" targetRef="Participant_1qabwrg" />
<bpmn:messageFlow id="Flow_0jciftq" sourceRef="Activity_0gkpa9s" targetRef="Participant_1fsb6gv" />
<bpmn:messageFlow id="Flow_0p0bc5u" sourceRef="Activity_0fq1nb4" targetRef="Participant_0b27sri" />
<bpmn:messageFlow id="Flow_1getkzr" sourceRef="Activity_0rae8g6" targetRef="Participant_1fsb6gv" />
<bpmn:messageFlow id="Flow_1dgkwzr" sourceRef="Waku_Message_Pending_Payment" targetRef="Participant_1fsb6gv" />
<bpmn:messageFlow id="Flow_14gw1v6" sourceRef="Participant_0a8arrz" targetRef="Activity_0gkejaj" />
<bpmn:textAnnotation id="TextAnnotation_1uaw1w7">
<bpmn:text>Environment - Vendor portal, Mailbox, etc.</bpmn:text>
</bpmn:textAnnotation>
<bpmn:association id="Association_1eygti7" sourceRef="Participant_1fsb6gv" targetRef="TextAnnotation_1uaw1w7" />
<bpmn:correlationKey name="CorrelationKey_Submit_Invoice">
<bpmn:correlationPropertyRef>CorrelationProperty_Submit_Invoice</bpmn:correlationPropertyRef>
</bpmn:correlationKey>
</bpmn:collaboration>
<bpmn:process id="Process_cc_invoice_approval_process_v2_b" isExecutable="false" />
<bpmn:process id="Process_cc_invoice_approval_process_v2_a" isExecutable="true">
<bpmn:laneSet id="LaneSet_0txkzqg">
<bpmn:lane id="Lane_1a0qu8e" name="Process Initiator">
<bpmn:flowNodeRef>Submit_the_invoice</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_validation_successful_question_mark</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1usbnt0</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0lhkxwc</bpmn:flowNodeRef>
<bpmn:flowNodeRef>SubProcess_Data_validation_rules</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_invoice_validation_failed</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_0wk5se9</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_show_errors</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1colhao</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1u89kok</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1r3yh2kx</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_15y55nw</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_1lbghql</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0x83ruk</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0m3ri6v</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_1l4tz4i</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1b58a3z</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0faln91</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_07oyzdx</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_05ov5p5</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0p88elm</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_1717c0p</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_104xpp8</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_175j3o7</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_176ch98</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Delete_File</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_0dqj39f</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0rae8g6</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1ucvkk4</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1kgaqpf</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0gkpa9s</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0gkejaj</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_10p5t0r</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0twki30</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1864qj2</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Waku_Message_Pending_Payment</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_169on0z</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0fq1nb4</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1vi3um1</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0rwxlca</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_1b7abal" name="Project Lead">
<bpmn:flowNodeRef>Activity_1t8wi0r</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_06i3we9</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_06b32ar</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_09q0ym0</bpmn:flowNodeRef>
</bpmn:lane>
<bpmn:lane id="Lane_1so23vf" name="Finance Team">
<bpmn:flowNodeRef>Gateway_1ytq6m7</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0cdgqi0</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1simh9k</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:sequenceFlow id="Flow_1x4rtop" name="Yes" sourceRef="Gateway_validation_successful_question_mark" targetRef="Activity_10p5t0r" />
<bpmn:sequenceFlow id="Flow_05ffq52" name="No" sourceRef="Gateway_validation_successful_question_mark" targetRef="Event_invoice_validation_failed">
<bpmn:conditionExpression>not(svc_is_invoice_submit_pass)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_1c5u447" sourceRef="Activity_0gkejaj" targetRef="Gateway_1lbghql" />
<bpmn:sequenceFlow id="Flow_1gohkts" name="Yes" sourceRef="Gateway_1lbghql" targetRef="Event_0m3ri6v" />
<bpmn:sequenceFlow id="Flow_18xvx8w" name="yes" sourceRef="Gateway_1l4tz4i" targetRef="Activity_1kgaqpf" />
<bpmn:sequenceFlow id="Flow_1ex5hfx" sourceRef="Event_15y55nw" targetRef="Activity_0gkejaj" />
<bpmn:sequenceFlow id="Flow_16bw9hx" name="No" sourceRef="Gateway_1lbghql" targetRef="Event_0x83ruk">
<bpmn:conditionExpression>not(isMatch)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0bfs2xe" name="No" sourceRef="Gateway_1l4tz4i" targetRef="Activity_0rae8g6">
<bpmn:conditionExpression>not(isInvoiceApproved)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0c0c9mw" sourceRef="Activity_0rae8g6" targetRef="Event_1b58a3z" />
<bpmn:sequenceFlow id="Flow_13ng1f4" sourceRef="Event_invoice_validation_failed" targetRef="Activity_show_errors" />
<bpmn:sequenceFlow id="Flow_18cic3h" sourceRef="Activity_show_errors" targetRef="Activity_0twki30" />
<bpmn:sequenceFlow id="Flow_02moyg7" sourceRef="Submit_the_invoice" targetRef="SubProcess_Data_validation_rules" />
<bpmn:sequenceFlow id="Flow_1ck27i7" sourceRef="SubProcess_Data_validation_rules" targetRef="Gateway_validation_successful_question_mark" />
<bpmn:sequenceFlow id="Flow_1v8dszb" sourceRef="Event_09q0ym0" targetRef="Activity_1t8wi0r" />
<bpmn:sequenceFlow id="Flow_0hev3yn" sourceRef="Gateway_05ov5p5" targetRef="Activity_175j3o7" />
<bpmn:sequenceFlow id="Flow_02o270g" sourceRef="Activity_175j3o7" targetRef="Gateway_1717c0p" />
<bpmn:sequenceFlow id="Flow_0o94g4u" sourceRef="Activity_0p88elm" targetRef="Gateway_1717c0p" />
<bpmn:sequenceFlow id="Flow_1vxagrf" sourceRef="Event_1r3yh2kx" targetRef="Activity_1u89kok" />
<bpmn:sequenceFlow id="Flow_0bipj9q" sourceRef="Activity_1u89kok" targetRef="Activity_1colhao" />
<bpmn:sequenceFlow id="Flow_04ccp12" sourceRef="Event_0m3ri6v" targetRef="Activity_1kgaqpf" />
<bpmn:sequenceFlow id="Flow_0kngdw4" sourceRef="Event_0x83ruk" targetRef="Activity_1ucvkk4" />
<bpmn:sequenceFlow id="Flow_0lfqk0y" sourceRef="Activity_1ucvkk4" targetRef="Activity_06b32ar" />
<bpmn:sequenceFlow id="Flow_1ds4s8o" sourceRef="Activity_1kgaqpf" targetRef="Activity_0cdgqi0" />
<bpmn:sequenceFlow id="Flow_00kky3k" name="No" sourceRef="Gateway_1ytq6m7" targetRef="Gateway_1l4tz4i">
<bpmn:conditionExpression>not(isInvoiceApproved)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="Flow_0h96w9j" name="Yes" sourceRef="Gateway_1ytq6m7" targetRef="Activity_0fq1nb4" />
<bpmn:sequenceFlow id="Flow_0a9w301" sourceRef="Gateway_1717c0p" targetRef="Delete_File" />
<bpmn:sequenceFlow id="Flow_15pzvrr" sourceRef="Activity_0faln91" targetRef="Gateway_1l4tz4i" />
<bpmn:sequenceFlow id="Flow_04fl87d" sourceRef="Activity_0gkpa9s" targetRef="Event_15y55nw" />
<bpmn:sequenceFlow id="Flow_1jfb24q" sourceRef="Waku_Message_Pending_Payment" targetRef="Event_1usbnt0" />
<bpmn:sequenceFlow id="Flow_1qf14hx" sourceRef="Gateway_06i3we9" targetRef="Event_0rwxlca" />
<bpmn:sequenceFlow id="Flow_1w4cqkv" sourceRef="Activity_1t8wi0r" targetRef="Gateway_06i3we9" />
<bpmn:sequenceFlow id="Flow_17vkjgc" sourceRef="Gateway_0wk5se9" targetRef="Submit_the_invoice" />
<bpmn:sequenceFlow id="Flow_1pefcgv" sourceRef="Activity_0twki30" targetRef="Gateway_0wk5se9" />
<bpmn:sequenceFlow id="Flow_1s2as7o" sourceRef="Gateway_05ov5p5" targetRef="Activity_104xpp8" />
<bpmn:sequenceFlow id="Flow_0hyvwku" sourceRef="Activity_104xpp8" targetRef="Activity_0p88elm" />
<bpmn:sequenceFlow id="Flow_1fvtcqt" sourceRef="Event_0lhkxwc" targetRef="Waku_Message_Pending_Payment" />
<bpmn:sequenceFlow id="Flow_14glsqd" sourceRef="Event_176ch98" targetRef="Gateway_05ov5p5" />
<bpmn:userTask id="Submit_the_invoice" name="Submit Invoice" scriptFormat="python" script="SdgsdGsdhgwsDEHhww">
<bpmn:extensionElements>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="Submit-the-invoice_JSONSchema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="Submit-the-invoice_UISchema.json" />
</spiffworkflow:properties>
<spiffworkflow:postScript />
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_17vkjgc</bpmn:incoming>
<bpmn:outgoing>Flow_02moyg7</bpmn:outgoing>
</bpmn:userTask>
<bpmn:exclusiveGateway id="Gateway_validation_successful_question_mark" name="Successful?" default="Flow_1x4rtop">
<bpmn:incoming>Flow_1ck27i7</bpmn:incoming>
<bpmn:outgoing>Flow_1x4rtop</bpmn:outgoing>
<bpmn:outgoing>Flow_05ffq52</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:subProcess id="SubProcess_Data_validation_rules" name="Validate Data">
<bpmn:incoming>Flow_02moyg7</bpmn:incoming>
<bpmn:outgoing>Flow_1ck27i7</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_1topzui">
<bpmn:targetRef>DataObjectReference_0bymrvr</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:startEvent id="Event_1qkuk5g">
<bpmn:outgoing>Flow_1avkxpe</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:scriptTask id="Activity_Check_Due_Date" name="Check Due Date" scriptFormat="python">
<bpmn:incoming>Flow_18i6dlo</bpmn:incoming>
<bpmn:outgoing>Flow_1d7sgm2</bpmn:outgoing>
<bpmn:script>invoice_date_obj = datetime.strptime(invoice.dueDate, '%Y-%m-%d')
local_date_time_obj = datetime.strptime(local_date_str, '%Y-%m-%d')
if invoice_date_obj &gt; local_date_time_obj:
svc_is_due_date_after = True
else:
svc_is_due_date_after = False
# Add date of invoice
invoice["invoiceDate"] = local_date_str
ld = str(local_date_time_obj)
ido = str(invoice_date_obj)
del local_date_time_obj
del invoice_date_obj
del datetime</bpmn:script>
</bpmn:scriptTask>
<bpmn:endEvent id="Event_015l7j8">
<bpmn:incoming>Flow_04odmtl</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1avkxpe" sourceRef="Event_1qkuk5g" targetRef="Activity_1sixbqq" />
<bpmn:scriptTask id="Activity_check_contributor_name" name="Check Contributor Name" scriptFormat="python">
<bpmn:extensionElements>
<spiffworkflow:unitTests>
<spiffworkflow:unitTest id="ScriptUnitTest_1kke2c8">
<spiffworkflow:inputJson>{"invoice.contributorName": "Harmeet"}</spiffworkflow:inputJson>
<spiffworkflow:expectedOutputJson>{
"isNameNum": false,
"invoice.contributorName": "Harmeet"
}</spiffworkflow:expectedOutputJson>
</spiffworkflow:unitTest>
</spiffworkflow:unitTests>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0daehm5</bpmn:incoming>
<bpmn:outgoing>Flow_0mvmd06</bpmn:outgoing>
<bpmn:script>svc_is_num_in_name = False
for c in invoice.contributorName:
if c.isdigit():
svc_is_num_in_name = True
break
del c</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_check_invoice_amount" name="Check Invoice Amount" scriptFormat="python">
<bpmn:incoming>Flow_0mvmd06</bpmn:incoming>
<bpmn:outgoing>Flow_0wp2mcf</bpmn:outgoing>
<bpmn:script># Check if there are more than two decimal places
invoiceAmount_str = str(invoice.invoiceAmount)
d = decimal.Decimal(invoiceAmount_str)
d_cnt = d.as_tuple().exponent
# Get number of decimal places
svc_decimal_cnt = abs(d_cnt)
#Delete unneeded variables
del d
del d_cnt
del decimal</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0tzjowk" sourceRef="Activity_check_validation_rules" targetRef="Activity_1j8k6mb" />
<bpmn:businessRuleTask id="Activity_check_validation_rules" name="Check Validation Rules">
<bpmn:extensionElements>
<spiffworkflow:calledDecisionId>Submit_Involce_Validation</spiffworkflow:calledDecisionId>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1d7sgm2</bpmn:incoming>
<bpmn:outgoing>Flow_0tzjowk</bpmn:outgoing>
</bpmn:businessRuleTask>
<bpmn:callActivity id="Activity_call_local_date_and_time" name="Call Local Date &#38; Time" calledElement="Shared_Local_Date_Time">
<bpmn:incoming>Flow_0wp2mcf</bpmn:incoming>
<bpmn:outgoing>Flow_18i6dlo</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_18i6dlo" sourceRef="Activity_call_local_date_and_time" targetRef="Activity_Check_Due_Date" />
<bpmn:sequenceFlow id="Flow_1d7sgm2" sourceRef="Activity_Check_Due_Date" targetRef="Activity_check_validation_rules" />
<bpmn:sequenceFlow id="Flow_0mvmd06" sourceRef="Activity_check_contributor_name" targetRef="Activity_check_invoice_amount" />
<bpmn:sequenceFlow id="Flow_0wp2mcf" sourceRef="Activity_check_invoice_amount" targetRef="Activity_call_local_date_and_time" />
<bpmn:scriptTask id="Activity_1j8k6mb" name="Set Invoice Status">
<bpmn:incoming>Flow_0tzjowk</bpmn:incoming>
<bpmn:outgoing>Flow_04odmtl</bpmn:outgoing>
<bpmn:script># Set Invoice Status
if svc_is_invoice_submit_pass:
invoice["invoiceStatus"] = "Awaiting approval"
else:
invoice["invoiceStatus"] = "Invoice validation failed"</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_04odmtl" sourceRef="Activity_1j8k6mb" targetRef="Event_015l7j8" />
<bpmn:sequenceFlow id="Flow_0daehm5" sourceRef="Activity_1sixbqq" targetRef="Activity_check_contributor_name" />
<bpmn:scriptTask id="Activity_1sixbqq" name="Check Submitter Comment">
<bpmn:incoming>Flow_1avkxpe</bpmn:incoming>
<bpmn:outgoing>Flow_0daehm5</bpmn:outgoing>
<bpmn:script># Check if commenet field was initialized
if 'commentSubmitter' not in invoice:
invoice['commentSubmitter'] = ''
# Determine length of Submitter's comments
len_submitter_comments = len(invoice["commentSubmitter"].strip())</bpmn:script>
</bpmn:scriptTask>
</bpmn:subProcess>
<bpmn:intermediateThrowEvent id="Event_invoice_validation_failed" name="Invoice validation failed">
<bpmn:documentation>Process milestone should update the process metadata field “milestone reached”</bpmn:documentation>
<bpmn:incoming>Flow_05ffq52</bpmn:incoming>
<bpmn:outgoing>Flow_13ng1f4</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:dataObjectReference id="DataObjectReference_0bymrvr" name="enumerations_list" dataObjectRef="enumerations_list" />
<bpmn:dataObject id="enumerations_list" />
<bpmn:exclusiveGateway id="Gateway_0wk5se9">
<bpmn:incoming>Flow_1pefcgv</bpmn:incoming>
<bpmn:incoming>Flow_061sv6t</bpmn:incoming>
<bpmn:outgoing>Flow_17vkjgc</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:manualTask id="Activity_show_errors" name="Show Error(s)">
<bpmn:extensionElements>
<spiffworkflow:instructionsForEndUser>{{ submitInvoiceValidationMessage }}
**Please fix when resubmitting.** </spiffworkflow:instructionsForEndUser>
</bpmn:extensionElements>
<bpmn:incoming>Flow_13ng1f4</bpmn:incoming>
<bpmn:outgoing>Flow_18cic3h</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:callActivity id="Activity_1colhao" name="Call Shared: Build Enum List from AWS" calledElement="Shared_Build_Enum_List_from_AWS">
<bpmn:extensionElements>
<spiffworkflow:preScript>whichSubject = "Currency"
addNew = False</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0bipj9q</bpmn:incoming>
<bpmn:outgoing>Flow_061sv6t</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:callActivity id="Activity_1u89kok" name="Call Shared: Start Process" calledElement="Shared_Start_Process">
<bpmn:extensionElements>
<spiffworkflow:preScript>find_user = current_user["username"]
isCurrentUser = True</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1vxagrf</bpmn:incoming>
<bpmn:outgoing>Flow_0bipj9q</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_0buh48w">
<bpmn:targetRef>DataObjectReference_05liqvr</bpmn:targetRef>
</bpmn:dataOutputAssociation>
</bpmn:callActivity>
<bpmn:startEvent id="Event_1r3yh2kx">
<bpmn:outgoing>Flow_1vxagrf</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_09r1s5r" sourceRef="Activity_06b32ar" targetRef="Gateway_06i3we9" />
<bpmn:sequenceFlow id="Flow_0z51hpb" sourceRef="Activity_07oyzdx" targetRef="Gateway_0dqj39f" />
<bpmn:sequenceFlow id="Flow_1xvt99y" sourceRef="Gateway_0dqj39f" targetRef="Event_1vi3um1" />
<bpmn:sequenceFlow id="Flow_06mfxze" sourceRef="Event_169on0z" targetRef="Gateway_0dqj39f" />
<bpmn:sequenceFlow id="Flow_0cj1m0h" sourceRef="Delete_File" targetRef="Activity_0gkpa9s" />
<bpmn:intermediateThrowEvent id="Event_15y55nw" name="Invoice is submitted">
<bpmn:documentation>Process milestone should update the process metadata field “milestone reached”</bpmn:documentation>
<bpmn:incoming>Flow_04fl87d</bpmn:incoming>
<bpmn:outgoing>Flow_1ex5hfx</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:exclusiveGateway id="Gateway_1lbghql" name="Match?" default="Flow_1gohkts">
<bpmn:incoming>Flow_1c5u447</bpmn:incoming>
<bpmn:outgoing>Flow_1gohkts</bpmn:outgoing>
<bpmn:outgoing>Flow_16bw9hx</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:intermediateThrowEvent id="Event_0x83ruk" name="Invoice Approval is required">
<bpmn:incoming>Flow_16bw9hx</bpmn:incoming>
<bpmn:outgoing>Flow_0kngdw4</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:intermediateThrowEvent id="Event_0m3ri6v" name="Invoice is verified and approved">
<bpmn:incoming>Flow_1gohkts</bpmn:incoming>
<bpmn:outgoing>Flow_04ccp12</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:dataObjectReference id="DataObjectReference_1ykzuco" name="wr_InvoiceSubmitted" dataObjectRef="wr_InvoiceSubmitted" />
<bpmn:dataObject id="wr_InvoiceSubmitted" />
<bpmn:exclusiveGateway id="Gateway_1l4tz4i" name="Approved?" default="Flow_18xvx8w">
<bpmn:incoming>Flow_00kky3k</bpmn:incoming>
<bpmn:incoming>Flow_15pzvrr</bpmn:incoming>
<bpmn:outgoing>Flow_18xvx8w</bpmn:outgoing>
<bpmn:outgoing>Flow_0bfs2xe</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:userTask id="Activity_0cdgqi0" name="Approve Invoice - Finance">
<bpmn:extensionElements>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="invoice-approval_JSONSchema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="invoice-approval_UISchema.json" />
</spiffworkflow:properties>
<spiffworkflow:postScript>invoice.commentsFinance = approvalComment
approvalComment = ""
# Set Invoice Status
if isInvoiceApproved:
invoice["invoiceStatus"] = "Approved by Finance Team"
invoice["isFinanceApprove"] = True
else:
invoice["invoiceStatus"] = "Rejected by Finance Team"
invoice["isFinanceApprove"] = False</spiffworkflow:postScript>
<spiffworkflow:instructionsForEndUser>**Invoice Id:** {{ invoice.invoiceId }}
___
| **Field** | **Input** | **Field** | **Input** | **Source** | **Amount** |
| ---: | :--- | ---: | :--- | ---: | :--- |
|_Submitted by:_ | {{ invoice.contributorName }} | _Submitted on:_ | {{ invoice.invoiceDate }} | _Requested:_ | {{ invoice.invoiceAmount_str }} |
|_Submitter Id:_ | {{ invoice.contributorId }} | _Due Date:_ | {{ invoice.dueDate}} | _Bamboo Monthly Salary:_ | {{ monthly_salary_str }} |
___
{% if len_submitter_comments &gt; 0 %}
*Submitter comments:*
{{ invoice["commentSubmitter"] }}
___
{% endif %}</spiffworkflow:instructionsForEndUser>
<spiffworkflow:preScript>approvalComment = ""</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1ds4s8o</bpmn:incoming>
<bpmn:outgoing>Flow_070r5mq</bpmn:outgoing>
</bpmn:userTask>
<bpmn:scriptTask id="Activity_1t8wi0r" name="Waku Message: No Project Lead Response" scriptFormat="python">
<bpmn:incoming>Flow_1v8dszb</bpmn:incoming>
<bpmn:outgoing>Flow_1w4cqkv</bpmn:outgoing>
<bpmn:script># Set Timer Check
isApprovalTimer = True</bpmn:script>
</bpmn:scriptTask>
<bpmn:exclusiveGateway id="Gateway_06i3we9">
<bpmn:incoming>Flow_1w4cqkv</bpmn:incoming>
<bpmn:incoming>Flow_09r1s5r</bpmn:incoming>
<bpmn:outgoing>Flow_1qf14hx</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:dataObjectReference id="DataObjectReference_1wclgyx" name="wr_invoiceRejected" dataObjectRef="wr_invoiceRejected" />
<bpmn:dataObject id="wr_invoiceRejected" />
<bpmn:dataObjectReference id="DataObjectReference_0x2dn5o" name="wr_notifyFinance" dataObjectRef="wr_notifyFinance" />
<bpmn:dataObject id="wr_notifyFinance" />
<bpmn:endEvent id="Event_1b58a3z" name="Invoice is rejected by Approver">
<bpmn:incoming>Flow_0c0c9mw</bpmn:incoming>
</bpmn:endEvent>
<bpmn:scriptTask id="Activity_0faln91" name="Set Message Info" scriptFormat="python">
<bpmn:incoming>Flow_1xo0lvm</bpmn:incoming>
<bpmn:outgoing>Flow_15pzvrr</bpmn:outgoing>
<bpmn:script># Store Team Lead comments elsewhere and clear form comments
if isApprovalTimer:
invoice["commentsProjectLead"] = "No action taken within allotted time"
approvalComment = ""
invoice["isProjectLeadApprove"] = False
isInvoiceApproved = False
# Set Invoice Status
invoice["invoiceStatus"] = "Rejected"
else:
invoice["commentsProjectLead"] = approvalComment
approvalComment = ""
invoice["isProjectLeadApprove"] = isInvoiceApproved
# Set Invoice Status
invoice["invoiceStatus"] = "Approved"</bpmn:script>
</bpmn:scriptTask>
<bpmn:manualTask id="Activity_07oyzdx" name="Show What&#39;s Next">
<bpmn:extensionElements>
<spiffworkflow:instructionsForEndUser>___
| **Field** | **Input** |
| ---: | :--- |
|_Submitted by:_ | {{ invoice.contributorName }} |
|_Submitter Id:_ | {{ invoice.contributorId }} |
|_Invoice Id:_ | {{ invoice.invoiceId }} |
|_Amount:_ | {{ invoice.invoiceAmount_str }} |
|_Submitted on:_ | {{ invoice.invoiceDate }} |
|_Due Date:_ | {{ invoice.dueDate}} |
___
{% if len_submitter_comments &gt; 0 %}
*Submitter comments:*
{{ invoice["commentSubmitter"] }}
___
{% endif %}
Thank you for your invoice submission.
Updates on the progress of your submission will be sent to you on the Status app.
Please click Submit below to return to the Home page.
__________________________________________________________________________
</spiffworkflow:instructionsForEndUser>
</bpmn:extensionElements>
<bpmn:incoming>Flow_06amgv2</bpmn:incoming>
<bpmn:outgoing>Flow_0z51hpb</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:parallelGateway id="Gateway_05ov5p5">
<bpmn:incoming>Flow_14glsqd</bpmn:incoming>
<bpmn:outgoing>Flow_0hev3yn</bpmn:outgoing>
<bpmn:outgoing>Flow_1s2as7o</bpmn:outgoing>
</bpmn:parallelGateway>
<bpmn:serviceTask id="Activity_0p88elm" name="2d. Upload Invoice PDF document" scriptFormat="python" script="invoice_name = invoice.contributorName + &#34;_&#34; + invoice.invoiceId">
<bpmn:extensionElements>
<spiffworkflow:preScript />
<spiffworkflow:postScript />
<spiffworkflow:serviceTaskOperator id="aws/UploadFileData" resultVariable="resp_awsUploadFileData">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="bucket" type="str" value="&#39;sartography-status-pdfs&#39;" />
<spiffworkflow:parameter id="file_data" type="str" value="filesAccept" />
<spiffworkflow:parameter id="object_name" type="str" value="invoice_file_name" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0hyvwku</bpmn:incoming>
<bpmn:outgoing>Flow_0o94g4u</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:parallelGateway id="Gateway_1717c0p">
<bpmn:incoming>Flow_02o270g</bpmn:incoming>
<bpmn:incoming>Flow_0o94g4u</bpmn:incoming>
<bpmn:outgoing>Flow_0a9w301</bpmn:outgoing>
</bpmn:parallelGateway>
<bpmn:scriptTask id="Activity_104xpp8" name="Set Invoice PDF Name" scriptFormat="python">
<bpmn:incoming>Flow_1s2as7o</bpmn:incoming>
<bpmn:outgoing>Flow_0hyvwku</bpmn:outgoing>
<bpmn:script>invoice_file_name = invoice.contributorName + "_" + str(invoice.invoiceId) + ".pdf"</bpmn:script>
</bpmn:scriptTask>
<bpmn:serviceTask id="Activity_175j3o7" name="2c. Save Invoice Data">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="aws/AddDynamoItem" resultVariable="resp_awsAddDynamoItem">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="item_data" type="str" value="{ &#34;ContributorName&#34;: invoice.contributorName, &#34;ContributorId&#34;: invoice.contributorId, &#34;InvoiceId&#34;: invoice.invoiceId, &#34;InvoiceAmount&#34;: invoice.invoiceAmount, &#34;InvoiceCurrency&#34;: invoice.invoiceCurrency, &#34;DueDate&#34;: invoice.dueDate }" />
<spiffworkflow:parameter id="table_name" type="str" value="&#39;Invoice&#39;" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0hev3yn</bpmn:incoming>
<bpmn:outgoing>Flow_02o270g</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:intermediateThrowEvent id="Event_176ch98" name="Invoice awaiting approval">
<bpmn:incoming>Flow_0hrln7l</bpmn:incoming>
<bpmn:outgoing>Flow_14glsqd</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:scriptTask id="Delete_File" name="Delete File">
<bpmn:incoming>Flow_0a9w301</bpmn:incoming>
<bpmn:outgoing>Flow_0cj1m0h</bpmn:outgoing>
<bpmn:script>del(filesAccept)</bpmn:script>
</bpmn:scriptTask>
<bpmn:exclusiveGateway id="Gateway_0dqj39f">
<bpmn:incoming>Flow_0z51hpb</bpmn:incoming>
<bpmn:incoming>Flow_06mfxze</bpmn:incoming>
<bpmn:outgoing>Flow_1xvt99y</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:subProcess id="Activity_0rae8g6" name="Waku Message: Invoice Rejected">
<bpmn:extensionElements>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0bfs2xe</bpmn:incoming>
<bpmn:outgoing>Flow_0c0c9mw</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_0b96bb7">
<bpmn:targetRef>DataObjectReference_1wclgyx</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:startEvent id="Event_0ialhor">
<bpmn:outgoing>Flow_14x1v12</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:callActivity id="Activity_0eh4so1" name="Call Waku Messages: Message" calledElement="Waku_Messages_Message">
<bpmn:extensionElements>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0k8m0l1</bpmn:incoming>
<bpmn:outgoing>Flow_1bnxkd6</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:endEvent id="Event_0ihhn4w">
<bpmn:incoming>Flow_01i59kw</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="waku_invoice_rejected" name="3. Notify CC via Waku &#34;invoice rejected&#34;">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="waku/SendMessage" resultVariable="wr_invoiceRejected">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="message" type="str" value="waku_message" />
<spiffworkflow:parameter id="message_type" type="str" value="&#34;wakuext_sendOneToOneMessage&#34;" />
<spiffworkflow:parameter id="recipient" type="str" value="current_user_extras[&#34;status_key&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1bnxkd6</bpmn:incoming>
<bpmn:outgoing>Flow_01i59kw</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_14x1v12" sourceRef="Event_0ialhor" targetRef="Activity_1g94qqg" />
<bpmn:sequenceFlow id="Flow_01i59kw" sourceRef="waku_invoice_rejected" targetRef="Event_0ihhn4w" />
<bpmn:sequenceFlow id="Flow_1bnxkd6" sourceRef="Activity_0eh4so1" targetRef="waku_invoice_rejected" />
<bpmn:sequenceFlow id="Flow_0k8m0l1" sourceRef="Activity_1g94qqg" targetRef="Activity_0eh4so1" />
<bpmn:scriptTask id="Activity_1g94qqg" name="Set Message Variables">
<bpmn:incoming>Flow_14x1v12</bpmn:incoming>
<bpmn:outgoing>Flow_0k8m0l1</bpmn:outgoing>
<bpmn:script># Set which message and check if there are Project Lead and/or Finance comments
if isApprovalTimer:
task_id = "waku_no_team_lead_response"
else:
if isMatch:
len_finance_comments = len(invoice["commentsFinance"].strip())
len_project_lead_comments = 0
task_id = "waku_invoice_rejected_ismatch"
else:
len_project_lead_comments = len(invoice["commentsProjectLead"].strip())
if invoice["isProjectLeadApprove"]:
len_finance_comments = len(invoice["commentsFinance"].strip())
task_id = "waku_invoice_rejected_not_ismatch_pl_approve"
else:
task_id = "waku_invoice_rejected_not_ismatch_not_pl_approve"
len_finance_comments = 0
# Set Message should not be set
isSetMessage = True
# Set Time Zone
time_zone = current_user_extras["time_zone"]
# Set Time Format
time_format = current_user_extras["time_format"]
# Set Date Format
date_format = current_user_extras["date_format"]</bpmn:script>
</bpmn:scriptTask>
</bpmn:subProcess>
<bpmn:subProcess id="Activity_1ucvkk4" name="Waku Message: Notify Project Lead">
<bpmn:incoming>Flow_0kngdw4</bpmn:incoming>
<bpmn:outgoing>Flow_0lfqk0y</bpmn:outgoing>
<bpmn:dataObjectReference id="DataObjectReference_0frvqwx" />
<bpmn:startEvent id="Event_00px1yx">
<bpmn:outgoing>Flow_0dvboik</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:endEvent id="Event_1nkaxn4">
<bpmn:incoming>Flow_0y37dgj</bpmn:incoming>
</bpmn:endEvent>
<bpmn:callActivity id="Activity_00b66gy" name="Call Shared: User Info" calledElement="Shared_User_Info">
<bpmn:extensionElements>
<spiffworkflow:preScript># Set who for find
find_user = userKeycloak
isCurrentUser = False</spiffworkflow:preScript>
<spiffworkflow:postScript># Set Project Lead Info
project_lead_info = {}
project_lead_info["full_name"] = userFullName
project_lead_info["first_name"] = userFirstName
project_lead_info["email"] = userEmail
project_lead_info["time_zone"] = userTimeZone
project_lead_info["time_format"] = userTimeFormat
project_lead_info["date_format"] = userDateFormat
project_lead_info["status_key"] = userStatusKey
# Move to pre-script of Waku Message
# Set Time Zone
time_zone = project_lead_info["time_zone"]
# Set Time Format
time_format = project_lead_info["time_format"]
# Set Date Format
time_format = project_lead_info["date_format"]
# del(userFullName)
# del(userFirstName)
# del(userEmail)
# del(userTimeZone)
# del(userTimeFormat)
# del(userDateFormat)
# del(userStatusKey)</spiffworkflow:postScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0bv17h4</bpmn:incoming>
<bpmn:outgoing>Flow_0gplgyz</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:serviceTask id="Activity_1ve0iqu" name="Waku Message: Notify Proejct Lead">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="waku/SendMessage" resultVariable="respNotifyTeamLead">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="message" type="str" value="waku_message" />
<spiffworkflow:parameter id="message_type" type="str" value="&#34;wakuext_sendOneToOneMessage&#34;" />
<spiffworkflow:parameter id="recipient" type="str" value="project_lead_info[&#34;status_key&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0re50gq</bpmn:incoming>
<bpmn:outgoing>Flow_0y37dgj</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:callActivity id="Call_Waku_Messages_Message-Notify_Proejct_Lead" name="Call Waku Messages: Message" calledElement="Waku_Messages_Message">
<bpmn:extensionElements>
<spiffworkflow:preScript># Set Waku message variables
task_id = "waku_notify_project_lead"
isSetMessage = True</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0gplgyz</bpmn:incoming>
<bpmn:outgoing>Flow_0re50gq</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_0re50gq" sourceRef="Call_Waku_Messages_Message-Notify_Proejct_Lead" targetRef="Activity_1ve0iqu" />
<bpmn:sequenceFlow id="Flow_0y37dgj" sourceRef="Activity_1ve0iqu" targetRef="Event_1nkaxn4" />
<bpmn:scriptTask id="Activity_1982sk7" name="Get Project Lead From Bamboo" scriptFormat="python">
<bpmn:incoming>Flow_0dvboik</bpmn:incoming>
<bpmn:outgoing>Flow_01ki4jt</bpmn:outgoing>
<bpmn:script>userBambooId_str = current_user_extras["bamboo_supervisor_api_id"]</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0dvboik" sourceRef="Event_00px1yx" targetRef="Activity_1982sk7" />
<bpmn:callActivity id="Activity_1r3o0bm" name="Get PL Keycloak Username" calledElement="Bamboo_Conversion">
<bpmn:incoming>Flow_01ki4jt</bpmn:incoming>
<bpmn:outgoing>Flow_0bv17h4</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_01ki4jt" sourceRef="Activity_1982sk7" targetRef="Activity_1r3o0bm" />
<bpmn:sequenceFlow id="Flow_0bv17h4" sourceRef="Activity_1r3o0bm" targetRef="Activity_00b66gy" />
<bpmn:sequenceFlow id="Flow_0gplgyz" sourceRef="Activity_00b66gy" targetRef="Call_Waku_Messages_Message-Notify_Proejct_Lead" />
</bpmn:subProcess>
<bpmn:subProcess id="Activity_1kgaqpf" name="Waku Message: Notify Finance">
<bpmn:incoming>Flow_18xvx8w</bpmn:incoming>
<bpmn:incoming>Flow_04ccp12</bpmn:incoming>
<bpmn:outgoing>Flow_1ds4s8o</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_02537rk">
<bpmn:targetRef>DataObjectReference_0x2dn5o</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:startEvent id="Event_0k7eiau">
<bpmn:outgoing>Flow_11zkgke</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:callActivity id="Activity_1wqf9dm" name="Call Waku Messages: Message" calledElement="Waku_Messages_Message">
<bpmn:extensionElements>
<spiffworkflow:preScript># Set Task Id
task_id = "waku_notify_finance"
# Set Message should not be set
isSetMessage = True
isInvoiceApproved = ""</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0u8sn4c</bpmn:incoming>
<bpmn:outgoing>Flow_0n3djvs</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:endEvent id="Event_0czwuqb">
<bpmn:incoming>Flow_0lr2fpj</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="Activity_0ez288q" name="Send Waku Message: Notify Finance">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="waku/SendMessage" resultVariable="wr_notifyFinance">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="message" type="str" value="waku_message" />
<spiffworkflow:parameter id="message_type" type="str" value="&#34;wakuext_sendOneToOneMessage&#34;" />
<spiffworkflow:parameter id="recipient" type="str" value="finance_info[&#34;status_key&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0n3djvs</bpmn:incoming>
<bpmn:outgoing>Flow_0lr2fpj</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:scriptTask id="Activity_01g159b" name="Get Finance Team" scriptFormat="python">
<bpmn:incoming>Flow_11zkgke</bpmn:incoming>
<bpmn:outgoing>Flow_1ale8a2</bpmn:outgoing>
<bpmn:script># Get Finance Group Members
finance_members_start = get_group_members("Finance Team")
finance_members = finance_members_start
# Removed all but Sasha for demo
for member in finance_members:
if member != "alex":
finance_members.remove(member)
# Set who for find
find_user = 'alex'
isCurrentUser = False
# Set Project Lead Timer Check to False to determine which message to send later
isApprovalTimer = False</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0n3djvs" sourceRef="Activity_1wqf9dm" targetRef="Activity_0ez288q" />
<bpmn:sequenceFlow id="Flow_0lr2fpj" sourceRef="Activity_0ez288q" targetRef="Event_0czwuqb" />
<bpmn:sequenceFlow id="Flow_11zkgke" sourceRef="Event_0k7eiau" targetRef="Activity_01g159b" />
<bpmn:sequenceFlow id="Flow_1ale8a2" sourceRef="Activity_01g159b" targetRef="Activity_1i7fkx2" />
<bpmn:callActivity id="Activity_1i7fkx2" name="Call Shared: User Info" calledElement="Shared_User_Info">
<bpmn:extensionElements>
<spiffworkflow:preScript />
<spiffworkflow:postScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1ale8a2</bpmn:incoming>
<bpmn:outgoing>Flow_1gfeknb</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_1gfeknb" sourceRef="Activity_1i7fkx2" targetRef="Activity_1ayopxr" />
<bpmn:sequenceFlow id="Flow_0u8sn4c" sourceRef="Activity_1ayopxr" targetRef="Activity_1wqf9dm" />
<bpmn:scriptTask id="Activity_1ayopxr" name="Set Finance User Info" scriptFormat="python">
<bpmn:incoming>Flow_1gfeknb</bpmn:incoming>
<bpmn:outgoing>Flow_0u8sn4c</bpmn:outgoing>
<bpmn:script># Set Project Lead Info
finance_info = {}
finance_info["full_name"] = userFullName
finance_info["first_name"] = userFirstName
finance_info["email"] = userEmail
finance_info["time_zone"] = userTimeZone
finance_info["time_format"] = userTimeFormat
finance_info["date_format"] = userDateFormat
finance_info["status_key"] = userStatusKey
# Move to pre-script of Waku Message
# Set Time Zone
time_zone = finance_info["time_zone"]
# Set Time Format
time_format = finance_info["time_format"]
# Set Date Format
time_format = finance_info["date_format"]
del(userFullName)
del(userFirstName)
del(userEmail)
del(userTimeZone)
del(userTimeFormat)
del(userDateFormat)
del(userStatusKey)</bpmn:script>
</bpmn:scriptTask>
</bpmn:subProcess>
<bpmn:subProcess id="Activity_0gkpa9s" name="Waku Message: Notify CC Invoice Submitted">
<bpmn:extensionElements>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0cj1m0h</bpmn:incoming>
<bpmn:outgoing>Flow_04fl87d</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_04ohdyt">
<bpmn:targetRef>DataObjectReference_1ykzuco</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:startEvent id="Event_0a4hscg">
<bpmn:outgoing>Flow_1yktpsd</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:endEvent id="Event_0xohu5m">
<bpmn:incoming>Flow_17xbb2s</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="Activity_1fsffcq" name="Waku Message: Notify CC Invoice Submitted">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="waku/SendMessage" resultVariable="wr_InvoiceSubmitted">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="message" type="str" value="waku_message" />
<spiffworkflow:parameter id="message_type" type="str" value="&#34;wakuext_sendOneToOneMessage&#34;" />
<spiffworkflow:parameter id="recipient" type="str" value="current_user_extras[&#34;status_key&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0j4xxzp</bpmn:incoming>
<bpmn:outgoing>Flow_17xbb2s</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_17xbb2s" sourceRef="Activity_1fsffcq" targetRef="Event_0xohu5m" />
<bpmn:callActivity id="Call_Waku_Messages_Message" name="Call Waku Messages: Message" calledElement="Waku_Messages_Message">
<bpmn:extensionElements>
<spiffworkflow:preScript># Set Task List
task_id = "waku_invoice_submitted"
# Set Message should be generated
isSetMessage = True
# Set Time Zone
time_zone = current_user_extras["time_zone"]
# Set Time Format
time_format = current_user_extras["time_format"]
# Set Date Format
time_format = current_user_extras["date_format"]</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1yktpsd</bpmn:incoming>
<bpmn:outgoing>Flow_0j4xxzp</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_0j4xxzp" sourceRef="Call_Waku_Messages_Message" targetRef="Activity_1fsffcq" />
<bpmn:sequenceFlow id="Flow_1yktpsd" sourceRef="Event_0a4hscg" targetRef="Call_Waku_Messages_Message" />
</bpmn:subProcess>
<bpmn:subProcess id="Activity_0gkejaj" name="4. Compare Invoice data vs Enterprise systems data">
<bpmn:incoming>Flow_1ex5hfx</bpmn:incoming>
<bpmn:outgoing>Flow_1c5u447</bpmn:outgoing>
<bpmn:startEvent id="Event_0w5o6hr">
<bpmn:outgoing>Flow_1sc1v4y</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:businessRuleTask id="Activity_1yhwhps" name="Compare Bamboo salary and invoice amount">
<bpmn:extensionElements>
<spiffworkflow:calledDecisionId>Invoice_Approval_Check</spiffworkflow:calledDecisionId>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1m8uxeg</bpmn:incoming>
<bpmn:outgoing>Flow_04do8x7</bpmn:outgoing>
</bpmn:businessRuleTask>
<bpmn:scriptTask id="Activity_02go8ec" name="Get Annual Salary" scriptFormat="python">
<bpmn:incoming>Flow_02g4qn2</bpmn:incoming>
<bpmn:outgoing>Flow_0nxzc38</bpmn:outgoing>
<bpmn:script>annual_salary_str = resp_BambooPayRate["amount"]
annual_salary = float(annual_salary_str)
monthly_salary = annual_salary/12</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_0b87ocm" name="Get Invoice Amount" scriptFormat="python">
<bpmn:incoming>Flow_0xtzqkg</bpmn:incoming>
<bpmn:outgoing>Flow_1m8uxeg</bpmn:outgoing>
<bpmn:script>invoice_amount = invoice.invoiceAmount</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1sc1v4y" sourceRef="Event_0w5o6hr" targetRef="Activity_0mcykih" />
<bpmn:sequenceFlow id="Flow_1m8uxeg" sourceRef="Activity_0b87ocm" targetRef="Activity_1yhwhps" />
<bpmn:endEvent id="Event_0cmri19">
<bpmn:incoming>Flow_04do8x7</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_04do8x7" sourceRef="Activity_1yhwhps" targetRef="Event_0cmri19" />
<bpmn:serviceTask id="Activity_1k25w3x" name="Query Invoice Details">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="aws/QueryDynamoTable" resultVariable="resp_QuertInvoiceDetails">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="partition_key" type="str" value="invoice.contributorId" />
<spiffworkflow:parameter id="sort_key" type="str" value="invoice.invoiceId" />
<spiffworkflow:parameter id="table_name" type="str" value="&#39;Invoice&#39;" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_18i75ep</bpmn:incoming>
<bpmn:outgoing>Flow_0xtzqkg</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_0nxzc38" sourceRef="Activity_02go8ec" targetRef="Activity_0i15t4y" />
<bpmn:sequenceFlow id="Flow_0xtzqkg" sourceRef="Activity_1k25w3x" targetRef="Activity_0b87ocm" />
<bpmn:sequenceFlow id="Flow_02g4qn2" sourceRef="Activity_0mcykih" targetRef="Activity_02go8ec" />
<bpmn:serviceTask id="Activity_0mcykih" name="Get Annual Salary from Bamboo">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="bamboohr/GetPayRate" resultVariable="resp_BambooPayRate">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="employee_id" type="str" value="current_user_extras[&#34;bamboo_api_id&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1sc1v4y</bpmn:incoming>
<bpmn:outgoing>Flow_02g4qn2</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_18i75ep" sourceRef="Activity_1g04z00" targetRef="Activity_1k25w3x" />
<bpmn:sequenceFlow id="Flow_10c1gm6" sourceRef="Activity_0i15t4y" targetRef="Activity_1g04z00" />
<bpmn:scriptTask id="Activity_0i15t4y" name="Temp Pre-Scrip">
<bpmn:incoming>Flow_0nxzc38</bpmn:incoming>
<bpmn:outgoing>Flow_10c1gm6</bpmn:outgoing>
<bpmn:script>curCode = invoice.invoiceCurrency
curAmount = monthly_salary
isCurTest = False</bpmn:script>
</bpmn:scriptTask>
<bpmn:callActivity id="Activity_1g04z00" name="Call Shared: Currency Format" calledElement="Shared_Currency_Format">
<bpmn:extensionElements>
<spiffworkflow:postScript>monthly_salary_str = curAmount_str</spiffworkflow:postScript>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_10c1gm6</bpmn:incoming>
<bpmn:outgoing>Flow_18i75ep</bpmn:outgoing>
</bpmn:callActivity>
</bpmn:subProcess>
<bpmn:boundaryEvent id="Event_169on0z" attachedToRef="Activity_07oyzdx">
<bpmn:outgoing>Flow_06mfxze</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1x8m85i">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=1000)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:boundaryEvent>
<bpmn:sequenceFlow id="Flow_06amgv2" sourceRef="Activity_10p5t0r" targetRef="Activity_07oyzdx" />
<bpmn:callActivity id="Activity_10p5t0r" name="Call Shared: Currency Format" calledElement="Shared_Currency_Format">
<bpmn:extensionElements>
<spiffworkflow:preScript>curCode = invoice.invoiceCurrency
curAmount = invoice.invoiceAmount
isCurTest = False</spiffworkflow:preScript>
<spiffworkflow:postScript>invoice.invoiceAmount_str = curAmount_str</spiffworkflow:postScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1x4rtop</bpmn:incoming>
<bpmn:outgoing>Flow_06amgv2</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:scriptTask id="Activity_0twki30" name="Clear Field(s) That Failed Validation">
<bpmn:incoming>Flow_18cic3h</bpmn:incoming>
<bpmn:outgoing>Flow_1pefcgv</bpmn:outgoing>
<bpmn:script># CLear Contributor Name if contains number
if svc_is_num_in_name:
invoice["contributorName"] = None
# Clear Invoice Anount if more than 2 decimals
if svc_decimal_cnt &gt; 2:
invoice["invoiceAmount"] = None
# Clear Invocie Due Date if before Today's Date
if not(svc_is_due_date_after):
invoice["dueDate"] = None</bpmn:script>
</bpmn:scriptTask>
<bpmn:dataObjectReference id="DataObjectReference_05liqvr" name="resp_BambooUserInfo" dataObjectRef="resp_BambooUserInfo" />
<bpmn:dataObject id="resp_BambooUserInfo" />
<bpmn:subProcess id="Activity_1864qj2" name="MVP Demo Preload">
<bpmn:startEvent id="Event_1qh3xrh">
<bpmn:outgoing>Flow_0pwvb62</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_0pwvb62" sourceRef="Event_1qh3xrh" targetRef="Activity_0xrsduh" />
<bpmn:userTask id="Activity_0xrsduh" name="Select Configuration">
<bpmn:extensionElements>
<spiffworkflow:properties>
<spiffworkflow:property name="formUiSchemaFilename" value="demo-preload_UISchema.json" />
<spiffworkflow:property name="formJsonSchemaFilename" value="demo-preload_JSONSchema.json" />
</spiffworkflow:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0pwvb62</bpmn:incoming>
<bpmn:outgoing>Flow_0z8ory2</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0z8ory2" sourceRef="Activity_0xrsduh" targetRef="Activity_0rww1ya" />
<bpmn:scriptTask id="Activity_0rww1ya" name="Set Form Data">
<bpmn:incoming>Flow_0z8ory2</bpmn:incoming>
<bpmn:outgoing>Flow_1hebd4s</bpmn:outgoing>
<bpmn:script>invoice = {}
# no numbers in contributor name validation
if " Number in contributor name" in ValidationChoices:
invoice["contributorName"] = "Harmee5 Singh"
else:
invoice["contributorName"] = "Harmeet Singh"
# Invoice amount number of decimals validation
if " Too many decimals in invoice amount" in ValidationChoices:
if scenarioChoices == "Correct invoice amount":
invoice["invoiceAmount"] = 10000.001
else:
invoice["invoiceAmount"] = 10001.001
else:
if scenarioChoices == "Correct invoice amount":
invoice["invoiceAmount"] = 10000.00
else:
invoice["invoiceAmount"] = 10001.00
# Due date validation
if " Due date before today's date" in ValidationChoices:
invoice["dueDate"] = "2021-12-12"
else:
invoice["dueDate"] = "2022-12-12"
# Set remainder of form fields
invoice["contributorId"] = 12
invoice["invoiceId"] = 1234
invoice["invoiceCurrency"] = "AUD"</bpmn:script>
</bpmn:scriptTask>
<bpmn:endEvent id="Event_0kmx0m7">
<bpmn:incoming>Flow_1hebd4s</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1hebd4s" sourceRef="Activity_0rww1ya" targetRef="Event_0kmx0m7" />
</bpmn:subProcess>
<bpmn:sequenceFlow id="Flow_061sv6t" sourceRef="Activity_1colhao" targetRef="Gateway_0wk5se9" />
<bpmn:sequenceFlow id="Flow_070r5mq" sourceRef="Activity_0cdgqi0" targetRef="Event_1simh9k" />
<bpmn:exclusiveGateway id="Gateway_1ytq6m7" name="Approved?" default="Flow_0h96w9j">
<bpmn:incoming>Flow_0eqkrc3</bpmn:incoming>
<bpmn:outgoing>Flow_00kky3k</bpmn:outgoing>
<bpmn:outgoing>Flow_0h96w9j</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:endEvent id="Event_1usbnt0">
<bpmn:incoming>Flow_1jfb24q</bpmn:incoming>
</bpmn:endEvent>
<bpmn:dataObjectReference id="DataObjectReference_0br9o6c" name="wr_invoicePayPend" dataObjectRef="wr_invoicePayPend" />
<bpmn:dataObject id="wr_invoicePayPend" />
<bpmn:intermediateThrowEvent id="Event_0lhkxwc" name="Approved and Awaiting Payment">
<bpmn:incoming>Flow_1cwebky</bpmn:incoming>
<bpmn:outgoing>Flow_1fvtcqt</bpmn:outgoing>
</bpmn:intermediateThrowEvent>
<bpmn:subProcess id="Waku_Message_Pending_Payment" name="Waku Message: Pending Payment">
<bpmn:extensionElements>
<spiffworkflow:preScript># Set Invoice Status to Approved and Pending Payment
invoice["invoiceStatus"] = "Approved and Pending Payment"</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1fvtcqt</bpmn:incoming>
<bpmn:outgoing>Flow_1jfb24q</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_0lf2wuo">
<bpmn:targetRef>DataObjectReference_0br9o6c</bpmn:targetRef>
</bpmn:dataOutputAssociation>
<bpmn:startEvent id="Event_13cibxi">
<bpmn:outgoing>Flow_1j5eznh</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:callActivity id="Get_Waku_Messages_Message" name="Get Waku Messages: Message" calledElement="Waku_Messages_Message">
<bpmn:extensionElements>
<spiffworkflow:preScript># Check for Finance comments
len_finance_comments = len(invoice["commentsFinance"].strip())
# Set Task Id and Project Lead comments length
if isMatch:
task_id = "waku_payment_pending_ismatch"
len_project_lead_comments = 0
else:
task_id = "waku_payment_pending_not_ismatch"
len_project_lead_comments = len(invoice["commentsProjectLead"].strip())
# Set Message in Call Activity
isSetMessage = True
# Set Time Zone
timezone = current_user_extras["time_zone"]</spiffworkflow:preScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1j5eznh</bpmn:incoming>
<bpmn:outgoing>Flow_1w7kqay</bpmn:outgoing>
</bpmn:callActivity>
<bpmn:sequenceFlow id="Flow_1w7kqay" sourceRef="Get_Waku_Messages_Message" targetRef="waku_payment_pending" />
<bpmn:endEvent id="Event_0fbz176">
<bpmn:incoming>Flow_1buk0a2</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="waku_payment_pending" name="Waku Message: Notify CC Payment Pending">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="waku/SendMessage" resultVariable="wr_invoicePayPend">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="message" type="str" value="waku_message" />
<spiffworkflow:parameter id="message_type" type="str" value="&#34;wakuext_sendOneToOneMessage&#34;" />
<spiffworkflow:parameter id="recipient" type="str" value="current_user_extras[&#34;status_key&#34;]" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_1w7kqay</bpmn:incoming>
<bpmn:outgoing>Flow_1buk0a2</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_1buk0a2" sourceRef="waku_payment_pending" targetRef="Event_0fbz176" />
<bpmn:sequenceFlow id="Flow_1j5eznh" sourceRef="Event_13cibxi" targetRef="Get_Waku_Messages_Message" />
</bpmn:subProcess>
<bpmn:dataObjectReference id="DataObjectReference_1g4gzsx" name="resp_xeroCreateInvoice" dataObjectRef="resp_xeroCreateInvoice" />
<bpmn:dataObject id="resp_xeroCreateInvoice" />
<bpmn:userTask id="Activity_06b32ar" name="Approve Invoice - Project Lead">
<bpmn:extensionElements>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="invoice-approval_JSONSchema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="invoice-approval_UISchema.json" />
</spiffworkflow:properties>
<spiffworkflow:postScript />
<spiffworkflow:preScript># Set Timer Check
isApprovalTimer = False
# Set Comment Default
approvalComment = ""</spiffworkflow:preScript>
<spiffworkflow:instructionsForEndUser>**Invoice Id:** {{ invoice.invoiceId }}
___
| **Field** | **Input** | **Field** | **Input** | **Source** | **Amount** |
| ---: | :--- | ---: | :--- | ---: | :--- |
|_Submitted by:_ | {{ invoice.contributorName }} | _Submitted on:_ | {{ invoice.invoiceDate }} | _Requested:_ | {{ invoice.invoiceAmount_str }} |
|_Submitter Id:_ | {{ invoice.contributorId }} | _Due Date:_ | {{ invoice.dueDate}} | _Bamboo Monthly Salary:_ | {{ monthly_salary_str }} |
___
</spiffworkflow:instructionsForEndUser>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0lfqk0y</bpmn:incoming>
<bpmn:outgoing>Flow_09r1s5r</bpmn:outgoing>
</bpmn:userTask>
<bpmn:boundaryEvent id="Event_09q0ym0" name="3 days" attachedToRef="Activity_06b32ar">
<bpmn:outgoing>Flow_1v8dszb</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0cpj4z0">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(minutes=3)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:boundaryEvent>
<bpmn:serviceTask id="Activity_0fq1nb4" name="5. Create Invoice in Xero">
<bpmn:extensionElements>
<spiffworkflow:serviceTaskOperator id="xero/CreateInvoice" resultVariable="resp_xeroCreateInvoice">
<spiffworkflow:parameters>
<spiffworkflow:parameter id="access_token" type="any" value="&#34;secret:xero/OAuth&#34;" />
<spiffworkflow:parameter id="amount" type="str" value="str(invoice_amount)" />
<spiffworkflow:parameter id="contact_email" type="str" value="current_user_extras[&#34;email&#34;]" />
<spiffworkflow:parameter id="contact_name" type="str" value="current_user_extras[&#34;full_name&#34;]" />
<spiffworkflow:parameter id="description" type="str" value="&#34;Test for now&#34;" />
</spiffworkflow:parameters>
</spiffworkflow:serviceTaskOperator>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_0h96w9j</bpmn:incoming>
<bpmn:outgoing>Flow_1cwebky</bpmn:outgoing>
<bpmn:dataOutputAssociation id="DataOutputAssociation_033uumo">
<bpmn:targetRef>DataObjectReference_1g4gzsx</bpmn:targetRef>
</bpmn:dataOutputAssociation>
</bpmn:serviceTask>
<bpmn:sequenceFlow id="Flow_1cwebky" sourceRef="Activity_0fq1nb4" targetRef="Event_0lhkxwc" />
<bpmn:intermediateCatchEvent id="Event_1vi3um1" name="Temp Fix">
<bpmn:incoming>Flow_1xvt99y</bpmn:incoming>
<bpmn:outgoing>Flow_0hrln7l</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1wiimzf">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=1)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_0hrln7l" sourceRef="Event_1vi3um1" targetRef="Event_176ch98" />
<bpmn:intermediateCatchEvent id="Event_0rwxlca" name="Temp Fix">
<bpmn:incoming>Flow_1qf14hx</bpmn:incoming>
<bpmn:outgoing>Flow_1xo0lvm</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_1jblyi5">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=1)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_1xo0lvm" sourceRef="Event_0rwxlca" targetRef="Activity_0faln91" />
<bpmn:intermediateCatchEvent id="Event_1simh9k">
<bpmn:incoming>Flow_070r5mq</bpmn:incoming>
<bpmn:outgoing>Flow_0eqkrc3</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0ggkf0e">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(seconds=1)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:intermediateCatchEvent>
<bpmn:sequenceFlow id="Flow_0eqkrc3" sourceRef="Event_1simh9k" targetRef="Gateway_1ytq6m7" />
</bpmn:process>
<bpmn:process id="Process_cc_invoice_approval_process_v2_c" isExecutable="false" />
<bpmn:process id="Process_cc_invoice_approval_process_v2_d" isExecutable="false" />
<bpmn:process id="Process_cc_invoice_approval_process_v2_e" isExecutable="false" />
<bpmn:correlationProperty id="CorrelationProperty_Submit_Invoice" name="Correlation Property: Submit Invoice">
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_Submit_Invoice">
<bpmn:formalExpression>topica_one</bpmn:formalExpression>
</bpmn:correlationPropertyRetrievalExpression>
</bpmn:correlationProperty>
<bpmn:message id="Message_Submit_Invoice" name="Message: Submit Invoice">
<bpmn:extensionElements>
<spiffworkflow:messageVariable>topica_one</spiffworkflow:messageVariable>
<spiffworkflow:messagePayload>{
"topica_one": "Invoice successfully submitted"
}</spiffworkflow:messagePayload>
</bpmn:extensionElements>
</bpmn:message>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_130jph2">
<bpmndi:BPMNShape id="Participant_1fsb6gv_di" bpmnElement="Participant_1fsb6gv" isHorizontal="true">
<dc:Bounds x="280" y="-70" width="4950" height="220" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_11ab2hx_di" bpmnElement="Participant_11ab2hx" isHorizontal="true">
<dc:Bounds x="280" y="210" width="4950" height="930" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1so23vf_di" bpmnElement="Lane_1so23vf" isHorizontal="true">
<dc:Bounds x="310" y="1022" width="4920" height="118" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1b7abal_di" bpmnElement="Lane_1b7abal" isHorizontal="true">
<dc:Bounds x="310" y="810" width="4920" height="212" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1a0qu8e_di" bpmnElement="Lane_1a0qu8e" isHorizontal="true">
<dc:Bounds x="310" y="210" width="4920" height="600" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1h7igan_di" bpmnElement="Submit_the_invoice">
<dc:Bounds x="1165" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0wt7ine_di" bpmnElement="Gateway_validation_successful_question_mark" isMarkerVisible="true">
<dc:Bounds x="1525" y="507" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1520" y="567" width="60" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0z13hw3_di" bpmnElement="SubProcess_Data_validation_rules">
<dc:Bounds x="1350" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0svbvjn_di" bpmnElement="Event_invoice_validation_failed">
<dc:Bounds x="1532" y="422" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1442" y="421" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0bymrvr_di" bpmnElement="DataObjectReference_0bymrvr">
<dc:Bounds x="1432" y="655" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1407" y="695" width="87" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0wk5se9_di" bpmnElement="Gateway_0wk5se9" isMarkerVisible="true">
<dc:Bounds x="1045" y="507" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0qtkhpi_di" bpmnElement="Activity_show_errors">
<dc:Bounds x="1350" y="330" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_13dc2qg_di" bpmnElement="Activity_1colhao">
<dc:Bounds x="690" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_193pz3d_di" bpmnElement="Activity_1u89kok">
<dc:Bounds x="510" y="490" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1r3yh2k_di" bpmnElement="Event_1r3yh2kx">
<dc:Bounds x="402" y="512" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="410" y="555" width="22" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_15y55nw_di" bpmnElement="Event_15y55nw">
<dc:Bounds x="3192" y="512" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3186" y="555" width="48" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1lbghql_di" bpmnElement="Gateway_1lbghql" isMarkerVisible="true">
<dc:Bounds x="3434" y="505" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3490" y="521" width="37" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0x83ruk_di" bpmnElement="Event_0x83ruk">
<dc:Bounds x="3491" y="404" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3469" y="368" width="81" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0m3ri6v_di" bpmnElement="Event_0m3ri6v">
<dc:Bounds x="3491" y="592" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3482" y="635" width="57" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1ykzuco_di" bpmnElement="DataObjectReference_1ykzuco">
<dc:Bounds x="3182" y="345" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3156" y="398" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1l4tz4i_di" bpmnElement="Gateway_1l4tz4i" isMarkerVisible="true">
<dc:Bounds x="4115" y="397" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4063" y="393" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0xwniza_di" bpmnElement="Activity_0cdgqi0">
<dc:Bounds x="4090" y="1040" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pu369y_di" bpmnElement="Activity_1t8wi0r">
<dc:Bounds x="3800" y="908" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_06i3we9_di" bpmnElement="Gateway_06i3we9" isMarkerVisible="true">
<dc:Bounds x="3975" y="845" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1wclgyx_di" bpmnElement="DataObjectReference_1wclgyx">
<dc:Bounds x="3972" y="235" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3948" y="281" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0x2dn5o_di" bpmnElement="DataObjectReference_0x2dn5o">
<dc:Bounds x="4252" y="535" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4228" y="581" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1b58a3z_di" bpmnElement="Event_1b58a3z">
<dc:Bounds x="4282" y="282" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4276" y="325" width="54" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1vzea12_di" bpmnElement="Activity_0faln91">
<dc:Bounds x="3950" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0eo1xsv_di" bpmnElement="Activity_07oyzdx">
<dc:Bounds x="1840" y="492" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_10gbs8m_di" bpmnElement="Gateway_05ov5p5">
<dc:Bounds x="2355" y="507" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0zssftc_di" bpmnElement="Activity_0p88elm">
<dc:Bounds x="2630" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_05ztwup_di" bpmnElement="Gateway_1717c0p">
<dc:Bounds x="2754" y="505" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0bgyf4i_di" bpmnElement="Activity_104xpp8">
<dc:Bounds x="2440" y="570" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hpp8tn_di" bpmnElement="Activity_175j3o7">
<dc:Bounds x="2540" y="382" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_176ch98_di" bpmnElement="Event_176ch98">
<dc:Bounds x="2232" y="514" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2220" y="557" width="79" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0nqyv3k_di" bpmnElement="Delete_File">
<dc:Bounds x="2860" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0dqj39f_di" bpmnElement="Gateway_0dqj39f" isMarkerVisible="true">
<dc:Bounds x="2005" y="507" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0n0ue58_di" bpmnElement="Activity_0rae8g6">
<dc:Bounds x="4090" y="260" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0j807g0_di" bpmnElement="Activity_1ucvkk4">
<dc:Bounds x="3630" y="382" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tb6ao6_di" bpmnElement="Activity_1kgaqpf">
<dc:Bounds x="4090" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xkyv08_di" bpmnElement="Activity_0gkpa9s">
<dc:Bounds x="3040" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1rn2mgi_di" bpmnElement="Activity_0gkejaj">
<dc:Bounds x="3279" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xg4kby_di" bpmnElement="Activity_10p5t0r">
<dc:Bounds x="1660" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_14mudmu_di" bpmnElement="Activity_0twki30">
<dc:Bounds x="1190" y="330" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_05liqvr_di" bpmnElement="DataObjectReference_05liqvr">
<dc:Bounds x="612" y="365" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="586" y="418" width="89" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0l6st3d_di" bpmnElement="Activity_1864qj2">
<dc:Bounds x="870" y="620" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1ytq6m7_di" bpmnElement="Gateway_1ytq6m7" isMarkerVisible="true">
<dc:Bounds x="4335" y="1055" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4333" y="1112" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1usbnt0_di" bpmnElement="Event_1usbnt0">
<dc:Bounds x="5122" y="592" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0br9o6c_di" bpmnElement="DataObjectReference_0br9o6c">
<dc:Bounds x="4912" y="715" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4888" y="761" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0lhkxwc_di" bpmnElement="Event_0lhkxwc">
<dc:Bounds x="4812" y="592" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4786" y="635" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tlgf7q_di" bpmnElement="Waku_Message_Pending_Payment">
<dc:Bounds x="4960" y="570" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1g4gzsx_di" bpmnElement="DataObjectReference_1g4gzsx">
<dc:Bounds x="4772" y="705" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4747" y="751" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_05nao2p_di" bpmnElement="Activity_06b32ar">
<dc:Bounds x="3631" y="830" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ejn04g_di" bpmnElement="Activity_0fq1nb4">
<dc:Bounds x="4620" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0tb3bpb_di" bpmnElement="Event_1vi3um1">
<dc:Bounds x="2122" y="514" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2119" y="557" width="45" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_09tmh4n_di" bpmnElement="Event_0rwxlca">
<dc:Bounds x="3982" y="682" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3921" y="693" width="45" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_00w2hg5_di" bpmnElement="Event_1simh9k">
<dc:Bounds x="4242" y="1062" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_08bsj2m_di" bpmnElement="Event_09q0ym0">
<dc:Bounds x="3693" y="892" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3664" y="923" width="33" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1c8bu8s_di" bpmnElement="Event_169on0z">
<dc:Bounds x="1892" y="554" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1x4rtop_di" bpmnElement="Flow_1x4rtop">
<di:waypoint x="1575" y="532" />
<di:waypoint x="1660" y="532" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1575" y="508" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_05ffq52_di" bpmnElement="Flow_05ffq52">
<di:waypoint x="1550" y="507" />
<di:waypoint x="1550" y="458" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1558" y="485" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1c5u447_di" bpmnElement="Flow_1c5u447">
<di:waypoint x="3379" y="530" />
<di:waypoint x="3434" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gohkts_di" bpmnElement="Flow_1gohkts">
<di:waypoint x="3459" y="555" />
<di:waypoint x="3459" y="610" />
<di:waypoint x="3491" y="610" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3466" y="579" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18xvx8w_di" bpmnElement="Flow_18xvx8w">
<di:waypoint x="4140" y="447" />
<di:waypoint x="4140" y="570" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4147" y="506" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ex5hfx_di" bpmnElement="Flow_1ex5hfx">
<di:waypoint x="3228" y="530" />
<di:waypoint x="3279" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16bw9hx_di" bpmnElement="Flow_16bw9hx">
<di:waypoint x="3459" y="505" />
<di:waypoint x="3459" y="422" />
<di:waypoint x="3491" y="422" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3467" y="463" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bfs2xe_di" bpmnElement="Flow_0bfs2xe">
<di:waypoint x="4140" y="397" />
<di:waypoint x="4140" y="340" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4152" y="373" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0c0c9mw_di" bpmnElement="Flow_0c0c9mw">
<di:waypoint x="4190" y="300" />
<di:waypoint x="4282" y="300" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13ng1f4_di" bpmnElement="Flow_13ng1f4">
<di:waypoint x="1550" y="422" />
<di:waypoint x="1550" y="370" />
<di:waypoint x="1450" y="370" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18cic3h_di" bpmnElement="Flow_18cic3h">
<di:waypoint x="1350" y="370" />
<di:waypoint x="1290" y="370" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_02moyg7_di" bpmnElement="Flow_02moyg7">
<di:waypoint x="1265" y="532" />
<di:waypoint x="1350" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ck27i7_di" bpmnElement="Flow_1ck27i7">
<di:waypoint x="1450" y="532" />
<di:waypoint x="1525" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v8dszb_di" bpmnElement="Flow_1v8dszb">
<di:waypoint x="3711" y="928" />
<di:waypoint x="3711" y="948" />
<di:waypoint x="3800" y="948" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hev3yn_di" bpmnElement="Flow_0hev3yn">
<di:waypoint x="2380" y="507" />
<di:waypoint x="2380" y="422" />
<di:waypoint x="2540" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_02o270g_di" bpmnElement="Flow_02o270g">
<di:waypoint x="2640" y="422" />
<di:waypoint x="2779" y="422" />
<di:waypoint x="2779" y="505" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0o94g4u_di" bpmnElement="Flow_0o94g4u">
<di:waypoint x="2730" y="610" />
<di:waypoint x="2779" y="610" />
<di:waypoint x="2779" y="555" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1vxagrf_di" bpmnElement="Flow_1vxagrf">
<di:waypoint x="438" y="530" />
<di:waypoint x="510" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bipj9q_di" bpmnElement="Flow_0bipj9q">
<di:waypoint x="610" y="530" />
<di:waypoint x="690" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04ccp12_di" bpmnElement="Flow_04ccp12">
<di:waypoint x="3527" y="610" />
<di:waypoint x="4090" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kngdw4_di" bpmnElement="Flow_0kngdw4">
<di:waypoint x="3527" y="422" />
<di:waypoint x="3630" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0lfqk0y_di" bpmnElement="Flow_0lfqk0y">
<di:waypoint x="3680" y="462" />
<di:waypoint x="3680" y="646" />
<di:waypoint x="3681" y="646" />
<di:waypoint x="3681" y="830" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ds4s8o_di" bpmnElement="Flow_1ds4s8o">
<di:waypoint x="4140" y="650" />
<di:waypoint x="4140" y="1040" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00kky3k_di" bpmnElement="Flow_00kky3k">
<di:waypoint x="4360" y="1055" />
<di:waypoint x="4360" y="422" />
<di:waypoint x="4165" y="422" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4368" y="923" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0h96w9j_di" bpmnElement="Flow_0h96w9j">
<di:waypoint x="4385" y="1080" />
<di:waypoint x="4500" y="1080" />
<di:waypoint x="4500" y="610" />
<di:waypoint x="4620" y="610" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4428" y="1063" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0a9w301_di" bpmnElement="Flow_0a9w301">
<di:waypoint x="2804" y="530" />
<di:waypoint x="2860" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15pzvrr_di" bpmnElement="Flow_15pzvrr">
<di:waypoint x="4000" y="492" />
<di:waypoint x="4000" y="422" />
<di:waypoint x="4115" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04fl87d_di" bpmnElement="Flow_04fl87d">
<di:waypoint x="3140" y="530" />
<di:waypoint x="3192" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1jfb24q_di" bpmnElement="Flow_1jfb24q">
<di:waypoint x="5060" y="610" />
<di:waypoint x="5122" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qf14hx_di" bpmnElement="Flow_1qf14hx">
<di:waypoint x="4000" y="845" />
<di:waypoint x="4000" y="718" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w4cqkv_di" bpmnElement="Flow_1w4cqkv">
<di:waypoint x="3900" y="948" />
<di:waypoint x="4000" y="948" />
<di:waypoint x="4000" y="895" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17vkjgc_di" bpmnElement="Flow_17vkjgc">
<di:waypoint x="1095" y="532" />
<di:waypoint x="1165" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pefcgv_di" bpmnElement="Flow_1pefcgv">
<di:waypoint x="1190" y="370" />
<di:waypoint x="1070" y="370" />
<di:waypoint x="1070" y="507" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s2as7o_di" bpmnElement="Flow_1s2as7o">
<di:waypoint x="2380" y="557" />
<di:waypoint x="2380" y="610" />
<di:waypoint x="2440" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hyvwku_di" bpmnElement="Flow_0hyvwku">
<di:waypoint x="2540" y="610" />
<di:waypoint x="2630" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1fvtcqt_di" bpmnElement="Flow_1fvtcqt">
<di:waypoint x="4848" y="610" />
<di:waypoint x="4960" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14glsqd_di" bpmnElement="Flow_14glsqd">
<di:waypoint x="2268" y="532" />
<di:waypoint x="2355" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_09r1s5r_di" bpmnElement="Flow_09r1s5r">
<di:waypoint x="3731" y="870" />
<di:waypoint x="3975" y="870" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0z51hpb_di" bpmnElement="Flow_0z51hpb">
<di:waypoint x="1940" y="532" />
<di:waypoint x="2005" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xvt99y_di" bpmnElement="Flow_1xvt99y">
<di:waypoint x="2055" y="532" />
<di:waypoint x="2122" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06mfxze_di" bpmnElement="Flow_06mfxze">
<di:waypoint x="1910" y="590" />
<di:waypoint x="1910" y="610" />
<di:waypoint x="2030" y="610" />
<di:waypoint x="2030" y="557" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cj1m0h_di" bpmnElement="Flow_0cj1m0h">
<di:waypoint x="2960" y="530" />
<di:waypoint x="3040" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06amgv2_di" bpmnElement="Flow_06amgv2">
<di:waypoint x="1760" y="532" />
<di:waypoint x="1840" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_061sv6t_di" bpmnElement="Flow_061sv6t">
<di:waypoint x="790" y="532" />
<di:waypoint x="1045" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_070r5mq_di" bpmnElement="Flow_070r5mq">
<di:waypoint x="4190" y="1080" />
<di:waypoint x="4242" y="1080" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1cwebky_di" bpmnElement="Flow_1cwebky">
<di:waypoint x="4720" y="610" />
<di:waypoint x="4812" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hrln7l_di" bpmnElement="Flow_0hrln7l">
<di:waypoint x="2158" y="532" />
<di:waypoint x="2232" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xo0lvm_di" bpmnElement="Flow_1xo0lvm">
<di:waypoint x="4000" y="682" />
<di:waypoint x="4000" y="572" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0eqkrc3_di" bpmnElement="Flow_0eqkrc3">
<di:waypoint x="4278" y="1080" />
<di:waypoint x="4335" y="1080" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Participant_0a8arrz_di" bpmnElement="Participant_0a8arrz" isHorizontal="true">
<dc:Bounds x="2540" y="1290" width="830" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_1qabwrg_di" bpmnElement="Participant_1qabwrg" isHorizontal="true">
<dc:Bounds x="2640" y="1190" width="450" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_0b27sri_di" bpmnElement="Participant_0b27sri" isHorizontal="true">
<dc:Bounds x="4519" y="1170" width="302" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_1uaw1w7_di" bpmnElement="TextAnnotation_1uaw1w7">
<dc:Bounds x="640" y="-170" width="760" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="DataOutputAssociation_1topzui_di" bpmnElement="DataOutputAssociation_1topzui">
<di:waypoint x="1413" y="572" />
<di:waypoint x="1441" y="655" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_0buh48w_di" bpmnElement="DataOutputAssociation_0buh48w">
<di:waypoint x="580" y="490" />
<di:waypoint x="615" y="415" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_0b96bb7_di" bpmnElement="DataOutputAssociation_0b96bb7">
<di:waypoint x="4090" y="285" />
<di:waypoint x="4008" y="261" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_02537rk_di" bpmnElement="DataOutputAssociation_02537rk">
<di:waypoint x="4190" y="589" />
<di:waypoint x="4252" y="563" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_04ohdyt_di" bpmnElement="DataOutputAssociation_04ohdyt">
<di:waypoint x="3118" y="490" />
<di:waypoint x="3188" y="395" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_0lf2wuo_di" bpmnElement="DataOutputAssociation_0lf2wuo">
<di:waypoint x="4985" y="650" />
<di:waypoint x="4944" y="715" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_033uumo_di" bpmnElement="DataOutputAssociation_033uumo">
<di:waypoint x="4712" y="649" />
<di:waypoint x="4772" y="706" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Association_1eygti7_di" bpmnElement="Association_1eygti7">
<di:waypoint x="1086" y="-70" />
<di:waypoint x="1153" y="-140" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ppupld_di" bpmnElement="Flow_0ppupld">
<di:waypoint x="2590" y="462" />
<di:waypoint x="2590" y="1290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0yfnc92_di" bpmnElement="Flow_0yfnc92">
<di:waypoint x="2680" y="650" />
<di:waypoint x="2680" y="1190" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0jciftq_di" bpmnElement="Flow_0jciftq">
<di:waypoint x="3090" y="490" />
<di:waypoint x="3090" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0p0bc5u_di" bpmnElement="Flow_0p0bc5u">
<di:waypoint x="4670" y="650" />
<di:waypoint x="4670" y="1170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1getkzr_di" bpmnElement="Flow_1getkzr">
<di:waypoint x="4140" y="260" />
<di:waypoint x="4140" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dgkwzr_di" bpmnElement="Flow_1dgkwzr">
<di:waypoint x="5010" y="570" />
<di:waypoint x="5010" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14gw1v6_di" bpmnElement="Flow_14gw1v6">
<di:waypoint x="3329" y="1290" />
<di:waypoint x="3329" y="570" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram>
<bpmndi:BPMNPlane bpmnElement="Activity_0gkejaj">
<bpmndi:BPMNShape id="Event_0w5o6hr_di" bpmnElement="Event_0w5o6hr">
<dc:Bounds x="-48" y="372" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_08gpeul_di" bpmnElement="Activity_1yhwhps">
<dc:Bounds x="1020" y="350" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0fzlb0w_di" bpmnElement="Activity_02go8ec">
<dc:Bounds x="210" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1f5dpwy_di" bpmnElement="Activity_0b87ocm">
<dc:Bounds x="860" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0cmri19_di" bpmnElement="Event_0cmri19">
<dc:Bounds x="1182" y="372" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0x1ak9n_di" bpmnElement="Activity_1k25w3x">
<dc:Bounds x="700" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0emlo6d_di" bpmnElement="Activity_0mcykih">
<dc:Bounds x="50" y="350" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1jqvjnr_di" bpmnElement="Activity_0i15t4y">
<dc:Bounds x="370" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_183a6os_di" bpmnElement="Activity_1g04z00">
<dc:Bounds x="540" y="350" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1sc1v4y_di" bpmnElement="Flow_1sc1v4y">
<di:waypoint x="-12" y="390" />
<di:waypoint x="50" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1m8uxeg_di" bpmnElement="Flow_1m8uxeg">
<di:waypoint x="960" y="390" />
<di:waypoint x="1020" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04do8x7_di" bpmnElement="Flow_04do8x7">
<di:waypoint x="1120" y="390" />
<di:waypoint x="1182" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0nxzc38_di" bpmnElement="Flow_0nxzc38">
<di:waypoint x="310" y="390" />
<di:waypoint x="370" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0xtzqkg_di" bpmnElement="Flow_0xtzqkg">
<di:waypoint x="800" y="390" />
<di:waypoint x="860" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_02g4qn2_di" bpmnElement="Flow_02g4qn2">
<di:waypoint x="150" y="390" />
<di:waypoint x="210" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18i75ep_di" bpmnElement="Flow_18i75ep">
<di:waypoint x="640" y="390" />
<di:waypoint x="700" y="390" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_10c1gm6_di" bpmnElement="Flow_10c1gm6">
<di:waypoint x="470" y="390" />
<di:waypoint x="540" y="390" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram>
<bpmndi:BPMNPlane bpmnElement="Activity_1ucvkk4">
<bpmndi:BPMNShape id="Event_00px1yx_di" bpmnElement="Event_00px1yx">
<dc:Bounds x="-278" y="402" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1nkaxn4_di" bpmnElement="Event_1nkaxn4">
<dc:Bounds x="692" y="402" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1gex892_di" bpmnElement="Activity_00b66gy">
<dc:Bounds x="170" y="380" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0s32al0_di" bpmnElement="Activity_1ve0iqu">
<dc:Bounds x="520" y="380" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0mxxp3b_di" bpmnElement="Call_Waku_Messages_Message-Notify_Proejct_Lead">
<dc:Bounds x="350" y="380" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0iy0fil_di" bpmnElement="Activity_1982sk7">
<dc:Bounds x="-170" y="380" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1lm44ee_di" bpmnElement="Activity_1r3o0bm">
<dc:Bounds x="0" y="380" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0re50gq_di" bpmnElement="Flow_0re50gq">
<di:waypoint x="450" y="420" />
<di:waypoint x="520" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0y37dgj_di" bpmnElement="Flow_0y37dgj">
<di:waypoint x="620" y="420" />
<di:waypoint x="692" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0dvboik_di" bpmnElement="Flow_0dvboik">
<di:waypoint x="-242" y="420" />
<di:waypoint x="-170" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_01ki4jt_di" bpmnElement="Flow_01ki4jt">
<di:waypoint x="-70" y="420" />
<di:waypoint x="0" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bv17h4_di" bpmnElement="Flow_0bv17h4">
<di:waypoint x="100" y="420" />
<di:waypoint x="170" y="420" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0gplgyz_di" bpmnElement="Flow_0gplgyz">
<di:waypoint x="270" y="420" />
<di:waypoint x="350" y="420" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_0e5tdrz">
<bpmndi:BPMNPlane id="BPMNPlane_04v9fws" bpmnElement="SubProcess_Data_validation_rules">
<bpmndi:BPMNShape id="Event_1qkuk5g_di" bpmnElement="Event_1qkuk5g">
<dc:Bounds x="42" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_05nw8eq_di" bpmnElement="Activity_Check_Due_Date">
<dc:Bounds x="840" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_015l7j8_di" bpmnElement="Event_015l7j8">
<dc:Bounds x="1362" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ynnab7_di" bpmnElement="Activity_check_contributor_name">
<dc:Bounds x="340" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_07pdvk2_di" bpmnElement="Activity_check_invoice_amount">
<dc:Bounds x="510" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1l7rl3o_di" bpmnElement="Activity_check_validation_rules">
<dc:Bounds x="1020" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0fc4t79_di" bpmnElement="Activity_call_local_date_and_time">
<dc:Bounds x="670" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0u1e062_di" bpmnElement="Activity_1j8k6mb">
<dc:Bounds x="1200" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0r298mg_di" bpmnElement="Activity_1sixbqq">
<dc:Bounds x="150" y="170" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1avkxpe_di" bpmnElement="Flow_1avkxpe">
<di:waypoint x="78" y="210" />
<di:waypoint x="150" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0tzjowk_di" bpmnElement="Flow_0tzjowk">
<di:waypoint x="1120" y="210" />
<di:waypoint x="1200" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18i6dlo_di" bpmnElement="Flow_18i6dlo">
<di:waypoint x="770" y="210" />
<di:waypoint x="840" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1d7sgm2_di" bpmnElement="Flow_1d7sgm2">
<di:waypoint x="940" y="210" />
<di:waypoint x="1020" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0mvmd06_di" bpmnElement="Flow_0mvmd06">
<di:waypoint x="440" y="210" />
<di:waypoint x="510" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0wp2mcf_di" bpmnElement="Flow_0wp2mcf">
<di:waypoint x="610" y="210" />
<di:waypoint x="670" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04odmtl_di" bpmnElement="Flow_04odmtl">
<di:waypoint x="1300" y="210" />
<di:waypoint x="1362" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0daehm5_di" bpmnElement="Flow_0daehm5">
<di:waypoint x="250" y="210" />
<di:waypoint x="340" y="210" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_1wh5lkq">
<bpmndi:BPMNPlane id="BPMNPlane_1b2zhk5" bpmnElement="Activity_0gkpa9s">
<bpmndi:BPMNShape id="Event_0a4hscg_di" bpmnElement="Event_0a4hscg">
<dc:Bounds x="402" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0xohu5m_di" bpmnElement="Event_0xohu5m">
<dc:Bounds x="832" y="192" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0pcr7bl" bpmnElement="Activity_1fsffcq">
<dc:Bounds x="680" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_17rdv3g_di" bpmnElement="Call_Waku_Messages_Message">
<dc:Bounds x="510" y="170" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_17xbb2s_di" bpmnElement="Flow_17xbb2s">
<di:waypoint x="780" y="210" />
<di:waypoint x="832" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0j4xxzp_di" bpmnElement="Flow_0j4xxzp">
<di:waypoint x="610" y="210" />
<di:waypoint x="680" y="210" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1yktpsd_di" bpmnElement="Flow_1yktpsd">
<di:waypoint x="438" y="210" />
<di:waypoint x="510" y="210" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_03yq39k">
<bpmndi:BPMNPlane id="BPMNPlane_19vekoo" bpmnElement="Waku_Message_Pending_Payment">
<bpmndi:BPMNShape id="Event_13cibxi_di" bpmnElement="Event_13cibxi">
<dc:Bounds x="242" y="162" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0848qfu_di" bpmnElement="Get_Waku_Messages_Message">
<dc:Bounds x="340" y="140" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0fbz176_di" bpmnElement="Event_0fbz176">
<dc:Bounds x="702" y="162" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0h6o7ep" bpmnElement="waku_payment_pending">
<dc:Bounds x="530" y="140" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1w7kqay_di" bpmnElement="Flow_1w7kqay">
<di:waypoint x="440" y="180" />
<di:waypoint x="530" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1buk0a2_di" bpmnElement="Flow_1buk0a2">
<di:waypoint x="630" y="180" />
<di:waypoint x="702" y="180" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1j5eznh_di" bpmnElement="Flow_1j5eznh">
<di:waypoint x="278" y="180" />
<di:waypoint x="340" y="180" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_0pf7nxs">
<bpmndi:BPMNPlane id="BPMNPlane_0obk4d1" bpmnElement="Activity_0rae8g6">
<bpmndi:BPMNShape id="BPMNShape_0md80al" bpmnElement="Event_0ialhor">
<dc:Bounds x="-28" y="202" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0u0hy9z" bpmnElement="Activity_0eh4so1">
<dc:Bounds x="250" y="180" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_06ie9hh" bpmnElement="Event_0ihhn4w">
<dc:Bounds x="602" y="202" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1lk7fz8" bpmnElement="waku_invoice_rejected">
<dc:Bounds x="430" y="180" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0sjw2dv_di" bpmnElement="Activity_1g94qqg">
<dc:Bounds x="70" y="180" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_04mzj46" bpmnElement="Flow_14x1v12">
<di:waypoint x="8" y="220" />
<di:waypoint x="70" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_16ht4ok" bpmnElement="Flow_01i59kw">
<di:waypoint x="530" y="220" />
<di:waypoint x="602" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1bnxkd6_di" bpmnElement="Flow_1bnxkd6">
<di:waypoint x="350" y="220" />
<di:waypoint x="430" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0k8m0l1_di" bpmnElement="Flow_0k8m0l1">
<di:waypoint x="170" y="220" />
<di:waypoint x="250" y="220" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_1vlf9fh">
<bpmndi:BPMNPlane id="BPMNPlane_0pej8du" bpmnElement="Activity_1kgaqpf">
<bpmndi:BPMNShape id="BPMNShape_1r0xe85" bpmnElement="Event_0k7eiau">
<dc:Bounds x="122" y="222" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0brjin6" bpmnElement="Activity_1wqf9dm">
<dc:Bounds x="730" y="200" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1kkvray" bpmnElement="Event_0czwuqb">
<dc:Bounds x="1062" y="222" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_0x5xk93" bpmnElement="Activity_0ez288q">
<dc:Bounds x="900" y="200" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_13jsep6" bpmnElement="Activity_01g159b">
<dc:Bounds x="210" y="200" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_1hvadbq" bpmnElement="Activity_1i7fkx2">
<dc:Bounds x="380" y="200" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0p49tz0_di" bpmnElement="Activity_1ayopxr">
<dc:Bounds x="550" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_1d397qp" bpmnElement="Flow_0n3djvs">
<di:waypoint x="830" y="240" />
<di:waypoint x="900" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_0u6zjo7" bpmnElement="Flow_0lr2fpj">
<di:waypoint x="1000" y="240" />
<di:waypoint x="1062" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_11zkgke_di" bpmnElement="Flow_11zkgke">
<di:waypoint x="158" y="240" />
<di:waypoint x="210" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ale8a2_di" bpmnElement="Flow_1ale8a2">
<di:waypoint x="310" y="240" />
<di:waypoint x="380" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gfeknb_di" bpmnElement="Flow_1gfeknb">
<di:waypoint x="480" y="240" />
<di:waypoint x="550" y="240" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0u8sn4c_di" bpmnElement="Flow_0u8sn4c">
<di:waypoint x="650" y="240" />
<di:waypoint x="730" y="240" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
<bpmndi:BPMNDiagram id="BPMNDiagram_191w697">
<bpmndi:BPMNPlane id="BPMNPlane_1urlpwk" bpmnElement="Activity_1864qj2">
<bpmndi:BPMNShape id="Event_1qh3xrh_di" bpmnElement="Event_1qh3xrh">
<dc:Bounds x="242" y="182" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1of3arm_di" bpmnElement="Activity_0xrsduh">
<dc:Bounds x="330" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pc13jq_di" bpmnElement="Activity_0rww1ya">
<dc:Bounds x="490" y="160" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0kmx0m7_di" bpmnElement="Event_0kmx0m7">
<dc:Bounds x="652" y="182" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_0pwvb62_di" bpmnElement="Flow_0pwvb62">
<di:waypoint x="278" y="200" />
<di:waypoint x="330" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0z8ory2_di" bpmnElement="Flow_0z8ory2">
<di:waypoint x="430" y="200" />
<di:waypoint x="490" y="200" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1hebd4s_di" bpmnElement="Flow_1hebd4s">
<di:waypoint x="590" y="200" />
<di:waypoint x="652" y="200" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>