dwc neue sepa export funktion

This commit is contained in:
Ralph Soika 2024-07-30 15:47:16 +02:00
parent 3d4bbb03e0
commit 899a6a3889
22 changed files with 1648 additions and 43 deletions

Binary file not shown.

View file

@ -30,6 +30,7 @@ import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.sepa.services.SepaWorkflowService;
import com.alexanderlogistics.KreditorDebitorService;
import com.alexanderlogistics.OPListExportAdapterByWeek;
import jakarta.ejb.EJB;
@ -79,6 +80,9 @@ public class SEPAExportAdapterNBD implements SignalAdapter {
@Inject
SnapshotService snapshotService;
@Inject
KreditorDebitorService kreditorDebitorService;
/**
* This method collects a data set with all invoices and computes a NBA Excel
* File. The templated is loaded from a text block
@ -199,13 +203,27 @@ public class SEPAExportAdapterNBD implements SignalAdapter {
XSSFRow row = sheet.createRow(rowPos);
row.copyRowFrom(referenceRow, new CellCopyPolicy());
// insert values
row.getCell(0).setCellValue(invoice.getItemValueString("numsequencenumber"));
row.getCell(1).setCellValue(invoice.getItemValueDate("invoice.date"));
row.getCell(2).setCellValue(invoice.getItemValueString("invoice.number"));
row.getCell(3).setCellValue(invoice.getItemValueDate("invoice.duedate"));
row.getCell(4).setCellValue(invoice.getItemValueDouble("invoice.total"));
row.getCell(0).setCellValue(workitem.getItemValueString("dbtr.iban"));
row.getCell(1).setCellValue(invoice.getItemValueString("sequencenumber"));
row.getCell(2).setCellValue(invoice.getItemValueString("invoice.ttc"));
row.getCell(3).setCellValue(invoice.getItemValueString("cdtr.name"));
row.getCell(4).setCellValue(buildAddressString(invoice));
row.getCell(5).setCellValue(getVendorField(invoice, "_vendor_country"));
row.getCell(6).setCellValue("A");
row.getCell(7).setCellValue(invoice.getItemValueString("cdtr.iban"));
row.getCell(8).setCellValue(invoice.getItemValueString("invoice.spc"));
row.getCell(9).setCellValue(invoice.getItemValueString("cdtr.bic"));
row.getCell(10).setCellValue(invoice.getItemValueString("invoice.lcc"));
row.getCell(11).setCellValue(getVendorField(invoice, "_vendor_country"));
row.getCell(12).setCellValue(invoice.getItemValueString("invoice.rpc"));
row.getCell(13).setCellValue("");
row.getCell(14).setCellValue(invoice.getItemValueString("invoice.currency"));
row.getCell(15).setCellValue("" + invoice.getItemValueDouble("invoice.total"));
row.getCell(16).setCellValue("Invoice No. " + invoice.getItemValueString("invoice.number"));
row.getCell(17).setCellValue("");
row.getCell(18).setCellValue("");
row.getCell(19).setCellValue("");
rowPos++;
}
// delete reference row A2
@ -259,4 +277,51 @@ public class SEPAExportAdapterNBD implements SignalAdapter {
return null;
}
/**
* This helper method lookups the creditor in the CArgosoft dataset and builds a
* address line needed for the export.
*
* @param workitem
* @return
*/
private String buildAddressString(ItemCollection workitem) {
String result = "";
ItemCollection cdtrItemCol = null;
String cdtrNumber = workitem.getItemValueString("cdtr.number");
try {
cdtrItemCol = kreditorDebitorService.findCreditor(cdtrNumber);
} catch (PluginException e) {
logger.warning("Unable to resolve address for " + cdtrNumber + " : " + e.getMessage());
}
if (cdtrItemCol != null) {
result = result + cdtrItemCol.getItemValueString("_vendor_zip_code") + " ";
result = result + cdtrItemCol.getItemValueString("_vendor_city") + " ";
result = result + cdtrItemCol.getItemValueString("_vendor_str") + " ";
}
// length max 255
result = result.trim();
return result.length() > 255 ? result.substring(0, 255) : result;
}
private String getVendorField(ItemCollection workitem, String fieldname) {
String result = "";
ItemCollection cdtrItemCol = null;
String cdtrNumber = workitem.getItemValueString("cdtr.number");
try {
cdtrItemCol = kreditorDebitorService.findCreditor(cdtrNumber);
} catch (PluginException e) {
logger.warning("Unable to resolve address for " + cdtrNumber + " : " + e.getMessage());
}
if (cdtrItemCol != null) {
return cdtrItemCol.getItemValueString(fieldname);
}
return "";
}
}

View file

@ -6,7 +6,7 @@
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>bf073e72asdf512c4d60af7740872036</MsgId>
<CreDtTm>2024-07-26T12:04:59</CreDtTm>
<CreDtTm>2024-07-30T15:43:40</CreDtTm>
<NbOfTxs>3</NbOfTxs>
<CtrlSum>655.90</CtrlSum>
<InitgPty>
@ -23,7 +23,7 @@
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<ReqdExctnDt>2024-07-26</ReqdExctnDt>
<ReqdExctnDt>2024-07-30</ReqdExctnDt>
<Dbtr>
<Nm>Targo Bank</Nm>
</Dbtr>

View file

@ -6,7 +6,7 @@
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>bf073e72asdf512c4d60af7740872036</MsgId>
<CreDtTm>2024-07-26T12:04:59</CreDtTm>
<CreDtTm>2024-07-30T15:43:40</CreDtTm>
<NbOfTxs>3</NbOfTxs>
<CtrlSum>655.90</CtrlSum>
<InitgPty>
@ -23,7 +23,7 @@
<Cd>SEPA</Cd>
</SvcLvl>
</PmtTpInf>
<ReqdExctnDt>2024-07-26</ReqdExctnDt>
<ReqdExctnDt>2024-07-30</ReqdExctnDt>
<Dbtr>
<Nm>Targo Bank</Nm>
</Dbtr>

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -50,14 +50,14 @@
<bpmn2:signal id="Signal_6" name="org.imixs.workflow.sepa.adapter.SEPARefAddAdapter"/>
<bpmn2:signal id="Signal_7" name="org.imixs.workflow.sepa.adapter.SEPARefRemoveAdapter"/>
<bpmn2:collaboration id="Collaboration_1">
<bpmn2:participant id="Participant_1" name="Invoice Receipt" processRef="Process_1">
<bpmn2:participant id="Participant_1" name="Invoice receipt" processRef="Process_1">
<bpmn2:documentation id="documentation_3sHy9A"/>
</bpmn2:participant>
<bpmn2:participant id="participant_9PUChg" name="Default Process" processRef="process_2"/>
</bpmn2:collaboration>
<bpmn2:process definitionalCollaborationRef="Collaboration_1" id="Process_1" isExecutable="false" name="Invoice Receipt">
<bpmn2:process definitionalCollaborationRef="Collaboration_1" id="Process_1" isExecutable="false" name="Invoice receipt">
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
<bpmn2:lane id="Lane_1" name="Ersteller">
<bpmn2:lane id="Lane_1" name="Creator">
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>ExclusiveGateway_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
@ -691,11 +691,12 @@ var b= workitem.get("order.total")[0];
<item name="invoice.currency" type="custom" required="true" path="alexander/currency_in" label="Currency:" />
</imixs-form-section>
<imixs-form-section columns="2">
<item name="cdtr.iban" type="text" label="IBAN:" />
<item name="cdtr.bic" type="text" label="BIC:" />
</imixs-form-section>
</imixs-form-section>
<imixs-form-section columns="1" label="Document Summary" readonly="true" >
<item name="invoice.summary" type="custom" path="markdown" />
</imixs-form-section>
</imixs-form>]]></bpmn2:documentation>
<bpmn2:dataState id="DataState_1"/>
</bpmn2:dataObject>
@ -1257,7 +1258,7 @@ Bei Fragen wenden Sie sich bitte an info@imixs.com
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_4" imixs:activityid="310" name="SEPA">
<bpmn2:extensionElements>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<sepa-export name="modelversion">sepa-export-manual-pl-3.0</sepa-export>
<imixs:value><![CDATA[<sepa-export name="modelversion">sepa-export-manual-dwc-3.0</sepa-export>
<sepa-export name="task">1000</sepa-export>
<sepa-export name="key"><itemvalue>payment.type</itemvalue></sepa-export>
<sepa-export name="maxcount">70</sepa-export>
@ -4159,23 +4160,29 @@ result.isValid=true;
<item name="invoice.number" type="text" label="Invoice number:" />
<item name="invoice.date" type="custom" path="alexander/datumseingabe" label="Invoice date:" />
<item name="invoice.duedate" type="custom" path="alexander/datumseingabe_tage" required="true" label="Due date:" />
<item name="invoice.servicedate" type="custom" path="alexander/datumseingabe" required="false" label="Service date:" />
<item name="invoice.total" type="currency" required="true" label="Invoice amount:" />
<item name="invoice.currency" type="custom" required="true" path="alexander/currency_in" label="Currency:" />
</imixs-form-section>
<imixs-form-section columns="2">
<imixs-form-section columns="4">
<item name="invoice.ttc" type="text" label="Transaction Type Code:" />
<item name="invoice.spc" type="text" label="Sender Purpose Code:" />
<item name="invoice.lcc" type="text" label="Local Clearing Code:" />
<item name="invoice.rpc" type="text" label="Receiver Purpose code:" />
</imixs-form-section>
<imixs-form-section columns="2">
<item name="cdtr.iban" type="text" label="IBAN:" />
<item name="cdtr.bic" type="text" label="BIC:" />
</imixs-form-section>
</imixs-form-section>
<imixs-form-section columns="2">
<item name="invoice.period" type="text" required="false" label="Posting period (yyyymm):" />
<item name="" type="custom" path="alexander/zahlungsart" label="Payment type:"/>
<item name="" type="custom" path="alexander/spaceref" label="Section:" />
<item name="" type="custom" path="alexander/sachbearbeiter" label="Person in charge:" />
<item name="" type="custom" path="alexander/sachbearbeiter" label="Person in charge:"
hide="#{!teamController.isManagerOf(workflowController.workitem.item['process.ref'])}" /> />
</imixs-form-section>
</imixs-form>]]></bpmn2:documentation>
</bpmn2:dataObject>
@ -4832,7 +4839,7 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
<bpmn2:documentation id="documentation_UUWC0Q"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmn2:process id="process_2" name="Invoice Receipt" processType="Public">
<bpmn2:process id="process_2" name="Invoice receipt" processType="Public">
<bpmn2:documentation id="documentation_yUm3kA"/>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
@ -4907,9 +4914,9 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
<dc:Bounds height="50.0" width="110.0" x="310.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="DataObject_2" id="BPMNShape_DataObject_1">
<dc:Bounds height="50.0" width="35.0" x="276.0" y="61.0"/>
<dc:Bounds height="50.0" width="35.0" x="280.0" y="60.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_85">
<dc:Bounds height="20.0" width="100.0" x="244.0" y="111.0"/>
<dc:Bounds height="20.0" width="100.0" x="248.0" y="110.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_13" id="BPMNShape_IntermediateCatchEvent_13">
@ -5300,9 +5307,9 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="DataObject_5" id="BPMNShape_DataObject_4">
<dc:Bounds height="50.0" width="35.0" x="781.0" y="370.0"/>
<dc:Bounds height="50.0" width="35.0" x="780.0" y="370.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_242">
<dc:Bounds height="20.0" width="100.0" x="749.0" y="420.0"/>
<dc:Bounds height="20.0" width="100.0" x="748.0" y="420.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_55" id="BPMNShape_IntermediateCatchEvent_60">
@ -5426,10 +5433,10 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="Association_2" id="BPMNEdge_Association_2" sourceElement="BPMNShape_DataObject_1" targetElement="BPMNShape_Task_5">
<bpmndi:BPMNLabel id="BPMNLabel_86"/>
<di:waypoint x="293.5" y="111.0"/>
<di:waypoint x="293.5" y="145.0"/>
<di:waypoint x="332.0" y="145.0"/>
<di:waypoint x="332.0" y="180.0"/>
<di:waypoint x="297.5" y="110.0"/>
<di:waypoint x="297.5" y="145.0"/>
<di:waypoint x="365.0" y="145.0"/>
<di:waypoint x="365.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_29" id="BPMNEdge_SequenceFlow_30" sourceElement="BPMNShape_EventBasedGateway_4" targetElement="BPMNShape_IntermediateCatchEvent_17">
<bpmndi:BPMNLabel id="BPMNLabel_90"/>
@ -5916,7 +5923,7 @@ Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</it
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="Association_8" id="BPMNEdge_Association_8" sourceElement="BPMNShape_DataObject_4" targetElement="BPMNShape_Task_16">
<bpmndi:BPMNLabel id="BPMNLabel_243"/>
<di:waypoint x="781.0" y="385.0"/>
<di:waypoint x="780.0" y="385.0"/>
<di:waypoint x="749.0" y="385.0"/>
<di:waypoint x="749.0" y="320.0"/>
</bpmndi:BPMNEdge>

View file

@ -86,6 +86,7 @@
<bpmn2:flowNodeRef>textAnnotation_Ku1gIw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>TextAnnotation_2</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>textAnnotation_VzlLPQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_KyxeBg</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:task id="Task_2" imixs:processid="1900" name="Completed">
@ -118,6 +119,7 @@
<bpmn2:documentation id="Documentation_4"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_eTlV8A</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="Task_2" targetRef="EndEvent_3">
<bpmn2:documentation id="documentation_Op3ooQ"/>
@ -524,6 +526,7 @@ if (workitem.getItemValueString('txtcomment') == '') {
<bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
<bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_Taezjw</bpmn2:incoming>
</bpmn2:task>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_2" imixs:activityid="20" name="Execute">
<bpmn2:extensionElements>
@ -776,6 +779,85 @@ if (workitem.getItemValueString('txtcomment') == '') {
<bpmn2:association id="association_PAgWfg" sourceRef="textAnnotation_VzlLPQ" targetRef="IntermediateCatchEvent_2">
<bpmn2:documentation id="documentation_jfZ1jg"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_KyxeBg" imixs:activityid="30" name="repeat">
<bpmn2:extensionElements>
<imixs:item name="keylogtimeformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyarchive" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtmailsubject" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyaccessmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfmailbody" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyversion" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string"/>
<imixs:item name="numnextactivityid" type="xs:int">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyfollowup" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="keylogdateformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string"/>
<imixs:item name="numnextid" type="xs:int">
<imixs:value><![CDATA[5000]]></imixs:value>
</imixs:item>
<imixs:item name="txtnextprocesstree" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Speichern]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[SEPA run cancelled.]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>
</imixs:item>
<imixs:item name="txtbusinessrule" type="xs:string">
<imixs:value><![CDATA[var result={};
result.isValid=true;
if (workitem.getItemValueString('txtcomment') == '') {
result.isValid=false;
result.errorMessage='Bitte geben Sie einen Kommentar ein.';
}]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_RVz3pg"/>
<bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_eTlV8A</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_Taezjw</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_eTlV8A" sourceRef="Task_2" targetRef="event_KyxeBg">
<bpmn2:documentation id="documentation_uxgNJg"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_Taezjw" sourceRef="event_KyxeBg" targetRef="Task_1">
<bpmn2:documentation id="documentation_86H1KQ"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
<bpmndi:BPMNPlane bpmnElement="Collaboration_1" id="BPMNPlane_1">
@ -858,9 +940,9 @@ if (workitem.getItemValueString('txtcomment') == '') {
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_7" id="BPMNShape_IntermediateCatchEvent_7">
<dc:Bounds height="36.0" width="36.0" x="1112.0" y="434.0"/>
<dc:Bounds height="36.0" width="36.0" x="1111.0" y="434.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_39" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="20.0" width="100.0" x="1080.5" y="470.0"/>
<dc:Bounds height="20.0" width="100.0" x="1079.5" y="470.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Task_1" id="BPMNShape_Task_1">
@ -873,9 +955,9 @@ if (workitem.getItemValueString('txtcomment') == '') {
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_4" id="BPMNShape_IntermediateCatchEvent_4">
<dc:Bounds height="36.0" width="36.0" x="950.0" y="180.0"/>
<dc:Bounds height="36.0" width="36.0" x="951.0" y="180.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_16" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="20.0" width="100.0" x="918.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="919.0" y="216.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_5" id="BPMNShape_IntermediateCatchEvent_5">
@ -944,13 +1026,13 @@ if (workitem.getItemValueString('txtcomment') == '') {
<bpmndi:BPMNLabel id="BPMNLabel_40"/>
<di:waypoint x="738.0" y="399.0"/>
<di:waypoint x="738.0" y="453.0"/>
<di:waypoint x="1112.0277992443885" y="453.0"/>
<di:waypoint x="1111.0277992443885" y="453.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_19" id="BPMNEdge_SequenceFlow_19" sourceElement="BPMNShape_IntermediateCatchEvent_7" targetElement="BPMNShape_Task_6">
<bpmndi:BPMNLabel id="BPMNLabel_41"/>
<di:waypoint x="1148.0" y="452.0"/>
<di:waypoint x="1174.0" y="452.0"/>
<di:waypoint x="1174.0" y="453.0"/>
<di:waypoint x="1147.0" y="452.0"/>
<di:waypoint x="1173.5" y="452.0"/>
<di:waypoint x="1173.5" y="453.0"/>
<di:waypoint x="1200.0" y="453.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_1" id="BPMNEdge_SequenceFlow_1" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_IntermediateCatchEvent_2">
@ -976,12 +1058,13 @@ if (workitem.getItemValueString('txtcomment') == '') {
<di:waypoint x="968.0" y="309.0"/>
<di:waypoint x="968.0" y="372.0"/>
<di:waypoint x="1130.0" y="372.0"/>
<di:waypoint x="1130.0" y="434.0"/>
<di:waypoint x="1130.0" y="434.0277992443886"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_11" id="BPMNEdge_SequenceFlow_11" sourceElement="BPMNShape_IntermediateCatchEvent_4" targetElement="BPMNShape_Task_1">
<bpmndi:BPMNLabel id="BPMNLabel_17"/>
<di:waypoint x="968.0" y="216.0"/>
<di:waypoint x="968.0" y="237.0"/>
<di:waypoint x="969.0" y="216.0"/>
<di:waypoint x="969.0" y="237.5"/>
<di:waypoint x="968.0" y="237.5"/>
<di:waypoint x="968.0" y="259.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_9" id="BPMNEdge_SequenceFlow_9" sourceElement="BPMNShape_IntermediateCatchEvent_5" targetElement="BPMNShape_Task_1">
@ -1008,6 +1091,24 @@ if (workitem.getItemValueString('txtcomment') == '') {
<di:waypoint x="831.0" y="417.0"/>
<di:waypoint x="831.0" y="302.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_KyxeBg" id="BPMNShape_wM5d4w">
<dc:Bounds height="36.0" width="36.0" x="1230.0" y="347.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_fj30Iw">
<dc:Bounds height="20.0" width="100.0" x="1198.5" y="383.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_eTlV8A" id="BPMNEdge_8rKhLA" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_wM5d4w">
<di:waypoint x="1255.0" y="309.0"/>
<di:waypoint x="1255.0" y="328.0"/>
<di:waypoint x="1248.0" y="328.0"/>
<di:waypoint x="1248.0" y="347.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_Taezjw" id="BPMNEdge_wArQaw" sourceElement="BPMNShape_wM5d4w" targetElement="BPMNShape_Task_1">
<di:waypoint x="1230.0" y="365.0"/>
<di:waypoint x="1126.5" y="365.0"/>
<di:waypoint x="1126.5" y="284.0"/>
<di:waypoint x="1023.0" y="284.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
<dc:Font name="arial" size="9.0"/>