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

1995 lines
102 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>Activity_1colhao</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_1u89kok</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1r3yh2kx</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>Gateway_0dqj39f</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_10p5t0r</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0twki30</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_07oyzdx</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>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>Event_1usbnt0</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0lhkxwc</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Activity_0fq1nb4</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_1vi3um1</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Event_0rwxlca</bpmn:flowNodeRef>
<bpmn:flowNodeRef>SubProcess_Data_validation_rules</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>Waku_Message_Pending_Payment</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>Activity_0cdgqi0</bpmn:flowNodeRef>
<bpmn:flowNodeRef>Gateway_1ytq6m7</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_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: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_13yusbb">
<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" name="Yes" sourceRef="Gateway_0dqj39f" targetRef="Event_1vi3um1" />
<bpmn:sequenceFlow id="Flow_0cj1m0h" sourceRef="Delete_File" targetRef="Activity_0gkpa9s" />
<bpmn:sequenceFlow id="Flow_06amgv2" sourceRef="Activity_10p5t0r" targetRef="Activity_07oyzdx" />
<bpmn:dataObjectReference id="DataObjectReference_05liqvr" name="resp_BambooUserInfo" dataObjectRef="resp_BambooUserInfo" />
<bpmn:dataObject id="resp_BambooUserInfo" />
<bpmn:sequenceFlow id="Flow_061sv6t" sourceRef="Activity_1colhao" targetRef="Gateway_0wk5se9" />
<bpmn:sequenceFlow id="Flow_070r5mq" sourceRef="Activity_0cdgqi0" targetRef="Event_1simh9k" />
<bpmn:sequenceFlow id="Flow_1cwebky" sourceRef="Activity_0fq1nb4" targetRef="Event_0lhkxwc" />
<bpmn:sequenceFlow id="Flow_0hrln7l" sourceRef="Event_1vi3um1" targetRef="Event_176ch98" />
<bpmn:sequenceFlow id="Flow_1xo0lvm" sourceRef="Event_0rwxlca" targetRef="Activity_0faln91" />
<bpmn:sequenceFlow id="Flow_0eqkrc3" sourceRef="Event_1simh9k" targetRef="Gateway_1ytq6m7" />
<bpmn:sequenceFlow id="Flow_0hws1pe" sourceRef="Waku_Message_Pending_Payment" targetRef="Event_1usbnt0" />
<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># Check if commenet field was initialized
if 'commentSubmitter' not in invoice:
invoice['commentSubmitter'] = ''
# Determine length of Submitter's comments
len_submitter_comment = len(invoice["commentSubmitter"].strip())</spiffworkflow:postScript>
<spiffworkflow:preScript># Initialize Comment Lengths to 0
len_submitter_comment = 0
len_project_lead_comment = 0
len_finance_comment = 0
# Preview form fields
invoice = {}
invoice["contributorName"] = current_user_extras["full_name"]
invoice["contributorId"] = current_user_extras["bamboo_api_id"]</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_check_contributor_name" />
<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_1avkxpe</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>is_num_in_name = svc_is_num_in_name
is_decimal_cnt = (svc_decimal_cnt &gt;= 2)
is_due_date_before - not(svc_is_due_date_after)
val_list = [is_num_in_name, is_decimal_cnt, is_due_date_before]
val_list_cnt = val_list.count(True)
if val_list_cnt &gt; 1:
if val_list_cnt == 2:
val_list_cnt_str = "Two"
if val_list_cnt == 3:
val_list_cnt_str = "Three"
# 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: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:incoming>Flow_0adpna9</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>
<spiffworkflow:preScript />
</bpmn:extensionElements>
<bpmn:incoming>Flow_13ng1f4</bpmn:incoming>
<bpmn:outgoing>Flow_18cic3h</bpmn:outgoing>
</bpmn:manualTask>
<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:exclusiveGateway id="Gateway_0dqj39f" name="Submit?" default="Flow_1xvt99y">
<bpmn:incoming>Flow_0z51hpb</bpmn:incoming>
<bpmn:outgoing>Flow_1xvt99y</bpmn:outgoing>
<bpmn:outgoing>Flow_0adpna9</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:userTask 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_comment &gt; 0 %}
*{{ current_user_extras["full_name"] }} 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>
<spiffworkflow:preScript># Set Proceed to True
isProceed = True</spiffworkflow:preScript>
<spiffworkflow:properties>
<spiffworkflow:property name="formJsonSchemaFilename" value="what-next_JSONSchema.json" />
<spiffworkflow:property name="formUiSchemaFilename" value="what-next_UISchema.json" />
</spiffworkflow:properties>
</bpmn:extensionElements>
<bpmn:incoming>Flow_06amgv2</bpmn:incoming>
<bpmn:outgoing>Flow_0z51hpb</bpmn:outgoing>
</bpmn:userTask>
<bpmn:sequenceFlow id="Flow_0adpna9" name="No" sourceRef="Gateway_0dqj39f" targetRef="Gateway_0wk5se9">
<bpmn:conditionExpression>not(isProceed)</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<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># Check Finance Comment
invoice['commentFinance'] = approvalComment
# Reset Approval Comment
approvalComment = ""
# Check for Finance comments
len_finance_comment = len(invoice["commentFinance"].strip())
# 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_comment &gt; 0 %}
*{{ current_user_extras["full_name"] }} comments:*.
{{ invoice["commentSubmitter"] }}
___
{% endif %}
{% if len_project_lead_comment &gt; 0 %}
*{{ project_lead_info["full_name"] }} comments:*
{{ invoice["commentProjectLead"] }}
___
{% 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["commentProjectLead"] = "No action taken within allotted time"
approvalComment = ""
invoice["isProjectLeadApprove"] = False
isInvoiceApproved = False
# Set Invoice Status
invoice["invoiceStatus"] = "Rejected"
else:
invoice["commentProjectLead"] = approvalComment
approvalComment = ""
invoice["isProjectLeadApprove"] = isInvoiceApproved
# Set Invoice Status
invoice["invoiceStatus"] = "Approved"</bpmn:script>
</bpmn:scriptTask>
<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_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_0hws1pe</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: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># check if Project Lead Comments
len_project_lead_comment = len(approvalComment.strip())</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 }} |
___
{% if len_submitter_comment &gt; 0 %}
*{{ current_user_extras["full_name"] }} comments:*.
{{ invoice["commentSubmitter"] }}
___
{% endif %}</spiffworkflow:instructionsForEndUser>
</bpmn:extensionElements>
<bpmn:incoming>Flow_0lfqk0y</bpmn:incoming>
<bpmn:outgoing>Flow_09r1s5r</bpmn:outgoing>
</bpmn:userTask>
<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: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: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: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: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_comment = len(invoice["commentFinance"].strip())
len_project_lead_comment = 0
task_id = "waku_invoice_rejected_ismatch"
else:
if invoice["isProjectLeadApprove"]:
task_id = "waku_invoice_rejected_not_ismatch_pl_approve"
else:
task_id = "waku_invoice_rejected_not_ismatch_not_pl_approve"
len_finance_comment = 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: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_0hws1pe</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># 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:boundaryEvent id="Event_09q0ym0" name="5 days" attachedToRef="Activity_06b32ar">
<bpmn:outgoing>Flow_1v8dszb</bpmn:outgoing>
<bpmn:timerEventDefinition id="TimerEventDefinition_0cpj4z0">
<bpmn:timeDuration xsi:type="bpmn:tFormalExpression">timedelta(minutes=5)</bpmn:timeDuration>
</bpmn:timerEventDefinition>
</bpmn:boundaryEvent>
</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="4790" height="220" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_11ab2hx_di" bpmnElement="Participant_11ab2hx" isHorizontal="true">
<dc:Bounds x="280" y="210" width="4790" height="930" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1so23vf_di" bpmnElement="Lane_1so23vf" isHorizontal="true">
<dc:Bounds x="310" y="1022" width="4760" height="118" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1b7abal_di" bpmnElement="Lane_1b7abal" isHorizontal="true">
<dc:Bounds x="310" y="810" width="4760" height="212" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Lane_1a0qu8e_di" bpmnElement="Lane_1a0qu8e" isHorizontal="true">
<dc:Bounds x="310" y="210" width="4760" height="600" />
<bpmndi:BPMNLabel />
</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="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_1h7igan_di" bpmnElement="Submit_the_invoice">
<dc:Bounds x="975" 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="1335" y="507" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1330" y="567" width="60" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0z13hw3_di" bpmnElement="SubProcess_Data_validation_rules">
<dc:Bounds x="1160" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0svbvjn_di" bpmnElement="Event_invoice_validation_failed">
<dc:Bounds x="1342" y="422" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1252" y="421" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0bymrvr_di" bpmnElement="DataObjectReference_0bymrvr">
<dc:Bounds x="1242" y="655" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1217" y="695" width="87" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0wk5se9_di" bpmnElement="Gateway_0wk5se9" isMarkerVisible="true">
<dc:Bounds x="855" y="507" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0qtkhpi_di" bpmnElement="Activity_show_errors">
<dc:Bounds x="1160" y="330" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xg4kby_di" bpmnElement="Activity_10p5t0r">
<dc:Bounds x="1470" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_14mudmu_di" bpmnElement="Activity_0twki30">
<dc:Bounds x="1000" y="330" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_0dqj39f_di" bpmnElement="Gateway_0dqj39f" isMarkerVisible="true">
<dc:Bounds x="1815" y="507" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1859" y="553" width="41" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_15k19wf_di" bpmnElement="Activity_07oyzdx">
<dc:Bounds x="1650" y="492" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_15y55nw_di" bpmnElement="Event_15y55nw">
<dc:Bounds x="3032" y="512" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3026" y="555" width="48" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1lbghql_di" bpmnElement="Gateway_1lbghql" isMarkerVisible="true">
<dc:Bounds x="3274" y="505" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3330" y="521" width="37" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0x83ruk_di" bpmnElement="Event_0x83ruk">
<dc:Bounds x="3331" y="404" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3309" y="368" width="81" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0m3ri6v_di" bpmnElement="Event_0m3ri6v">
<dc:Bounds x="3331" y="592" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3322" y="635" width="57" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1ykzuco_di" bpmnElement="DataObjectReference_1ykzuco">
<dc:Bounds x="3022" y="345" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2996" y="398" width="87" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1l4tz4i_di" bpmnElement="Gateway_1l4tz4i" isMarkerVisible="true">
<dc:Bounds x="3955" y="397" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3903" y="393" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0xwniza_di" bpmnElement="Activity_0cdgqi0">
<dc:Bounds x="3930" y="1040" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1pu369y_di" bpmnElement="Activity_1t8wi0r">
<dc:Bounds x="3640" y="908" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_06i3we9_di" bpmnElement="Gateway_06i3we9" isMarkerVisible="true">
<dc:Bounds x="3815" y="845" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1wclgyx_di" bpmnElement="DataObjectReference_1wclgyx">
<dc:Bounds x="3812" y="235" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3788" y="281" width="84" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0x2dn5o_di" bpmnElement="DataObjectReference_0x2dn5o">
<dc:Bounds x="4092" y="535" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4068" y="581" width="84" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1b58a3z_di" bpmnElement="Event_1b58a3z">
<dc:Bounds x="4122" y="282" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4116" y="325" width="54" height="40" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1vzea12_di" bpmnElement="Activity_0faln91">
<dc:Bounds x="3790" y="492" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_10gbs8m_di" bpmnElement="Gateway_05ov5p5">
<dc:Bounds x="2195" y="507" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0zssftc_di" bpmnElement="Activity_0p88elm">
<dc:Bounds x="2470" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_05ztwup_di" bpmnElement="Gateway_1717c0p">
<dc:Bounds x="2594" y="505" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0bgyf4i_di" bpmnElement="Activity_104xpp8">
<dc:Bounds x="2280" y="570" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1hpp8tn_di" bpmnElement="Activity_175j3o7">
<dc:Bounds x="2380" y="382" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_176ch98_di" bpmnElement="Event_176ch98">
<dc:Bounds x="2072" y="514" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="2060" y="557" width="79" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0nqyv3k_di" bpmnElement="Delete_File">
<dc:Bounds x="2700" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Gateway_1ytq6m7_di" bpmnElement="Gateway_1ytq6m7" isMarkerVisible="true">
<dc:Bounds x="4175" y="1055" width="50" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4173" y="1112" width="54" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_1usbnt0_di" bpmnElement="Event_1usbnt0">
<dc:Bounds x="4962" y="592" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_0br9o6c_di" bpmnElement="DataObjectReference_0br9o6c">
<dc:Bounds x="4752" y="715" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4728" y="761" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0lhkxwc_di" bpmnElement="Event_0lhkxwc">
<dc:Bounds x="4652" y="592" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4626" y="635" width="88" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_1g4gzsx_di" bpmnElement="DataObjectReference_1g4gzsx">
<dc:Bounds x="4612" y="705" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4587" y="751" width="85" height="27" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_05nao2p_di" bpmnElement="Activity_06b32ar">
<dc:Bounds x="3471" y="830" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0ejn04g_di" bpmnElement="Activity_0fq1nb4">
<dc:Bounds x="4460" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0tb3bpb_di" bpmnElement="Event_1vi3um1">
<dc:Bounds x="1962" y="514" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1959" y="557" width="45" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_09tmh4n_di" bpmnElement="Event_0rwxlca">
<dc:Bounds x="3822" y="682" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3761" y="693" width="45" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_00w2hg5_di" bpmnElement="Event_1simh9k">
<dc:Bounds x="4082" y="1062" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0n0ue58_di" bpmnElement="Activity_0rae8g6">
<dc:Bounds x="3930" y="260" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0j807g0_di" bpmnElement="Activity_1ucvkk4">
<dc:Bounds x="3470" y="382" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tb6ao6_di" bpmnElement="Activity_1kgaqpf">
<dc:Bounds x="3930" y="570" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1xkyv08_di" bpmnElement="Activity_0gkpa9s">
<dc:Bounds x="2880" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1rn2mgi_di" bpmnElement="Activity_0gkejaj">
<dc:Bounds x="3119" y="490" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1tlgf7q_di" bpmnElement="Waku_Message_Pending_Payment">
<dc:Bounds x="4780" y="570" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_08bsj2m_di" bpmnElement="Event_09q0ym0">
<dc:Bounds x="3533" y="892" width="36" height="36" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3504" y="923" width="33" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="Flow_1x4rtop_di" bpmnElement="Flow_1x4rtop">
<di:waypoint x="1385" y="532" />
<di:waypoint x="1470" y="532" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1385" y="508" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_05ffq52_di" bpmnElement="Flow_05ffq52">
<di:waypoint x="1360" y="507" />
<di:waypoint x="1360" y="458" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1368" y="485" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1c5u447_di" bpmnElement="Flow_1c5u447">
<di:waypoint x="3219" y="530" />
<di:waypoint x="3274" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gohkts_di" bpmnElement="Flow_1gohkts">
<di:waypoint x="3299" y="555" />
<di:waypoint x="3299" y="610" />
<di:waypoint x="3331" y="610" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3306" y="579" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18xvx8w_di" bpmnElement="Flow_18xvx8w">
<di:waypoint x="3980" y="447" />
<di:waypoint x="3980" y="570" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3987" y="506" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ex5hfx_di" bpmnElement="Flow_1ex5hfx">
<di:waypoint x="3068" y="530" />
<di:waypoint x="3119" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_16bw9hx_di" bpmnElement="Flow_16bw9hx">
<di:waypoint x="3299" y="505" />
<di:waypoint x="3299" y="422" />
<di:waypoint x="3331" y="422" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3307" y="463" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0bfs2xe_di" bpmnElement="Flow_0bfs2xe">
<di:waypoint x="3980" y="397" />
<di:waypoint x="3980" y="340" />
<bpmndi:BPMNLabel>
<dc:Bounds x="3992" y="373" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0c0c9mw_di" bpmnElement="Flow_0c0c9mw">
<di:waypoint x="4030" y="300" />
<di:waypoint x="4122" y="300" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_13ng1f4_di" bpmnElement="Flow_13ng1f4">
<di:waypoint x="1360" y="422" />
<di:waypoint x="1360" y="370" />
<di:waypoint x="1260" y="370" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_18cic3h_di" bpmnElement="Flow_18cic3h">
<di:waypoint x="1160" y="370" />
<di:waypoint x="1100" y="370" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_02moyg7_di" bpmnElement="Flow_02moyg7">
<di:waypoint x="1075" y="532" />
<di:waypoint x="1160" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ck27i7_di" bpmnElement="Flow_1ck27i7">
<di:waypoint x="1260" y="532" />
<di:waypoint x="1335" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1v8dszb_di" bpmnElement="Flow_1v8dszb">
<di:waypoint x="3551" y="928" />
<di:waypoint x="3551" y="948" />
<di:waypoint x="3640" y="948" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hev3yn_di" bpmnElement="Flow_0hev3yn">
<di:waypoint x="2220" y="507" />
<di:waypoint x="2220" y="422" />
<di:waypoint x="2380" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_02o270g_di" bpmnElement="Flow_02o270g">
<di:waypoint x="2480" y="422" />
<di:waypoint x="2619" y="422" />
<di:waypoint x="2619" y="505" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0o94g4u_di" bpmnElement="Flow_0o94g4u">
<di:waypoint x="2570" y="610" />
<di:waypoint x="2619" y="610" />
<di:waypoint x="2619" 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="3367" y="610" />
<di:waypoint x="3930" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0kngdw4_di" bpmnElement="Flow_0kngdw4">
<di:waypoint x="3367" y="422" />
<di:waypoint x="3470" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0lfqk0y_di" bpmnElement="Flow_0lfqk0y">
<di:waypoint x="3520" y="462" />
<di:waypoint x="3520" y="646" />
<di:waypoint x="3521" y="646" />
<di:waypoint x="3521" y="830" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1ds4s8o_di" bpmnElement="Flow_1ds4s8o">
<di:waypoint x="3980" y="650" />
<di:waypoint x="3980" y="1040" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_00kky3k_di" bpmnElement="Flow_00kky3k">
<di:waypoint x="4200" y="1055" />
<di:waypoint x="4200" y="422" />
<di:waypoint x="4005" y="422" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4208" y="923" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0h96w9j_di" bpmnElement="Flow_0h96w9j">
<di:waypoint x="4225" y="1080" />
<di:waypoint x="4340" y="1080" />
<di:waypoint x="4340" y="610" />
<di:waypoint x="4460" y="610" />
<bpmndi:BPMNLabel>
<dc:Bounds x="4268" y="1063" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0a9w301_di" bpmnElement="Flow_0a9w301">
<di:waypoint x="2644" y="530" />
<di:waypoint x="2700" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_15pzvrr_di" bpmnElement="Flow_15pzvrr">
<di:waypoint x="3840" y="492" />
<di:waypoint x="3840" y="422" />
<di:waypoint x="3955" y="422" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_04fl87d_di" bpmnElement="Flow_04fl87d">
<di:waypoint x="2980" y="530" />
<di:waypoint x="3032" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1qf14hx_di" bpmnElement="Flow_1qf14hx">
<di:waypoint x="3840" y="845" />
<di:waypoint x="3840" y="718" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1w4cqkv_di" bpmnElement="Flow_1w4cqkv">
<di:waypoint x="3740" y="948" />
<di:waypoint x="3840" y="948" />
<di:waypoint x="3840" y="895" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_17vkjgc_di" bpmnElement="Flow_17vkjgc">
<di:waypoint x="905" y="532" />
<di:waypoint x="975" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1pefcgv_di" bpmnElement="Flow_1pefcgv">
<di:waypoint x="1000" y="370" />
<di:waypoint x="880" y="370" />
<di:waypoint x="880" y="507" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1s2as7o_di" bpmnElement="Flow_1s2as7o">
<di:waypoint x="2220" y="557" />
<di:waypoint x="2220" y="610" />
<di:waypoint x="2280" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hyvwku_di" bpmnElement="Flow_0hyvwku">
<di:waypoint x="2380" y="610" />
<di:waypoint x="2470" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1fvtcqt_di" bpmnElement="Flow_1fvtcqt">
<di:waypoint x="4688" y="610" />
<di:waypoint x="4780" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14glsqd_di" bpmnElement="Flow_14glsqd">
<di:waypoint x="2108" y="532" />
<di:waypoint x="2195" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_09r1s5r_di" bpmnElement="Flow_09r1s5r">
<di:waypoint x="3571" y="870" />
<di:waypoint x="3815" y="870" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0z51hpb_di" bpmnElement="Flow_0z51hpb">
<di:waypoint x="1750" y="532" />
<di:waypoint x="1815" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xvt99y_di" bpmnElement="Flow_1xvt99y">
<di:waypoint x="1865" y="532" />
<di:waypoint x="1962" y="532" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1905" y="514" width="18" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0cj1m0h_di" bpmnElement="Flow_0cj1m0h">
<di:waypoint x="2800" y="530" />
<di:waypoint x="2880" y="530" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06amgv2_di" bpmnElement="Flow_06amgv2">
<di:waypoint x="1570" y="532" />
<di:waypoint x="1650" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_061sv6t_di" bpmnElement="Flow_061sv6t">
<di:waypoint x="790" y="532" />
<di:waypoint x="855" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_070r5mq_di" bpmnElement="Flow_070r5mq">
<di:waypoint x="4030" y="1080" />
<di:waypoint x="4082" y="1080" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1cwebky_di" bpmnElement="Flow_1cwebky">
<di:waypoint x="4560" y="610" />
<di:waypoint x="4652" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hrln7l_di" bpmnElement="Flow_0hrln7l">
<di:waypoint x="1998" y="532" />
<di:waypoint x="2072" y="532" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1xo0lvm_di" bpmnElement="Flow_1xo0lvm">
<di:waypoint x="3840" y="682" />
<di:waypoint x="3840" y="572" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0eqkrc3_di" bpmnElement="Flow_0eqkrc3">
<di:waypoint x="4118" y="1080" />
<di:waypoint x="4175" y="1080" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0hws1pe_di" bpmnElement="Flow_0hws1pe">
<di:waypoint x="4880" y="610" />
<di:waypoint x="4962" y="610" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0adpna9_di" bpmnElement="Flow_0adpna9">
<di:waypoint x="1840" y="507" />
<di:waypoint x="1840" y="280" />
<di:waypoint x="880" y="280" />
<di:waypoint x="880" y="507" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1353" y="262" width="15" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Participant_0a8arrz_di" bpmnElement="Participant_0a8arrz" isHorizontal="true">
<dc:Bounds x="2380" y="1290" width="830" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_1qabwrg_di" bpmnElement="Participant_1qabwrg" isHorizontal="true">
<dc:Bounds x="2480" y="1190" width="450" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Participant_0b27sri_di" bpmnElement="Participant_0b27sri" isHorizontal="true">
<dc:Bounds x="4359" y="1170" width="302" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="TextAnnotation_1uaw1w7_di" bpmnElement="TextAnnotation_1uaw1w7">
<dc:Bounds x="640" y="-170" width="570" height="30" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="DataOutputAssociation_13yusbb_di" bpmnElement="DataOutputAssociation_13yusbb">
<di:waypoint x="581" y="490" />
<di:waypoint x="619" y="415" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_1topzui_di" bpmnElement="DataOutputAssociation_1topzui">
<di:waypoint x="1223" y="572" />
<di:waypoint x="1251" y="655" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_033uumo_di" bpmnElement="DataOutputAssociation_033uumo">
<di:waypoint x="4552" y="649" />
<di:waypoint x="4612" y="706" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_0b96bb7_di" bpmnElement="DataOutputAssociation_0b96bb7">
<di:waypoint x="3930" y="285" />
<di:waypoint x="3848" y="261" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_02537rk_di" bpmnElement="DataOutputAssociation_02537rk">
<di:waypoint x="4030" y="589" />
<di:waypoint x="4092" y="563" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_04ohdyt_di" bpmnElement="DataOutputAssociation_04ohdyt">
<di:waypoint x="2958" y="490" />
<di:waypoint x="3028" y="395" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DataOutputAssociation_0lf2wuo_di" bpmnElement="DataOutputAssociation_0lf2wuo">
<di:waypoint x="4811" y="650" />
<di:waypoint x="4781" y="715" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Association_1eygti7_di" bpmnElement="Association_1eygti7">
<di:waypoint x="979" y="-70" />
<di:waypoint x="977" y="-140" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ppupld_di" bpmnElement="Flow_0ppupld">
<di:waypoint x="2430" y="462" />
<di:waypoint x="2430" y="1290" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0yfnc92_di" bpmnElement="Flow_0yfnc92">
<di:waypoint x="2520" y="650" />
<di:waypoint x="2520" y="1190" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0jciftq_di" bpmnElement="Flow_0jciftq">
<di:waypoint x="2930" y="490" />
<di:waypoint x="2930" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0p0bc5u_di" bpmnElement="Flow_0p0bc5u">
<di:waypoint x="4510" y="650" />
<di:waypoint x="4510" y="1170" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1getkzr_di" bpmnElement="Flow_1getkzr">
<di:waypoint x="3980" y="260" />
<di:waypoint x="3980" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1dgkwzr_di" bpmnElement="Flow_1dgkwzr">
<di:waypoint x="4830" y="570" />
<di:waypoint x="4830" y="150" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_14gw1v6_di" bpmnElement="Flow_14gw1v6">
<di:waypoint x="3169" y="1290" />
<di:waypoint x="3169" 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="202" 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:BPMNEdge id="Flow_1avkxpe_di" bpmnElement="Flow_1avkxpe">
<di:waypoint x="238" y="210" />
<di:waypoint x="340" 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: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>
</bpmn:definitions>