neues BP interface

This commit is contained in:
Ralph Soika 2025-04-26 13:28:35 +02:00
parent bdf3c8ba01
commit 7ba7967a92
9 changed files with 810 additions and 1069 deletions

View file

@ -3,6 +3,7 @@
### 1.3.4 (Development)
- Finalizierung Business Partner Interface
|- Neue Plugin Logik (Aktualisierung der BP Nummer und Aktivierung von BP Objekten falls diese archiviert waren)
- Zoho Schnittstelle
**Migration**

View file

@ -11,6 +11,15 @@ In Imixs ist es dann aber möglich zusätzliche Attribute zu einem Businesspartn
Die Businessparnter werden für jedes System separat importiert und verwaltet.
Folgende zentrale Stati werden über das BusinessPartner Modell festgelegt:
- TASK_ACTIVE = 1100
- TASK_VERIFICATION = 1300
- TASK_INACTIVE = 1700
- TASK_LOCKED = 1800
Die Invoice Plugins aktualisierne automatisch die BusinessPartner Attribute `partner.id` und `partner.name`. Zusätzlich unterbinden die Plugins eine Verarbeitung falls das Business Objekt im Satus LOCKED oder VERIFICATION ist!
## BusinessPartner Suche
Es gibt einen Controller und ein widget um nach Business Partnern zu suchen.
@ -23,8 +32,6 @@ Z.b. kann das als Custom Part in eine Form eingebunden werden:
<item name="bpid" type="custom" path="alexander/businesspartner_search" required="true" label="Businesspartner:" />
```
Das widget legt dann automatisch die Items `bpid` und `bpidname` an.
Alternativ kann im Backend über die EJB BusinessPartnerService nach bpid gesucht werden:
```java
@ -33,6 +40,10 @@ Alternativ kann im Backend über die EJB BusinessPartnerService nach bpid gesuch
ItemCollection bp= businessPartnerService.getBusinessPartnerByID("BP0001");
```
## Invoice Plugins
Die Invoice Plugins aktualisieren automatisch partner.id und partner.name falls diese Items noch nicht exiistieren
# Daten Migration
Der `BusinessPartnerImportService` hängt sich über ein CDI Observer Pattern an den standard CSVImport Service

View file

@ -39,7 +39,12 @@ import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.ItemCollectionComparator;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.WorkflowService;
import org.imixs.workflow.engine.index.SchemaService;
import org.imixs.workflow.exceptions.AccessDeniedException;
import org.imixs.workflow.exceptions.ModelException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.security.DeclareRoles;
@ -72,6 +77,16 @@ public class BusinessPartnerService {
public static final String WORKFLOW_SERVICE_USER = "workflow.service.user";
public static final String WORKFLOW_SERVICE_PASSWORD = "workflow.service.password";
public static final String ERROR_BUSINESSPARTNER_MISSING = "ERROR_BUSINESSPARTNER_MISSING";
public static final String ERROR_BUSINESSPARTNER_LOCKED = "ERROR_BUSINESSPARTNER_LOCKED";
public static final String ERROR_BUSINESSPARTNER_VERIFICATION = "ERROR_BUSINESSPARTNER_VERIFICATION";
public static final int TASK_ACTIVE = 1100;
public static final int TASK_VERIFICATION = 1300;
public static final int TASK_INACTIVE = 1700;
public static final int TASK_LOCKED = 1800;
public static final int EVENT_ACTIVATE = 210;
private static Logger logger = Logger.getLogger(BusinessPartnerService.class.getName());
@Inject
@ -89,6 +104,9 @@ public class BusinessPartnerService {
@Inject
DocumentService documentService;
@Inject
WorkflowService workflowService;
@Inject
SchemaService schemaService;
@ -100,6 +118,49 @@ public class BusinessPartnerService {
}
/**
* Diese Methode aktualisiert das business Partner object. Sie wird von den
* Invoice Plugins genutzt.
* Die Methode wirft eine PluginException falls das BusinessPartner Objekt
* gesperrt oder in verification ist!
*
* @param partnerID
* @param workitem
* @throws PluginException
*/
public void updateBusinessPartner(String partnerID, ItemCollection workitem) throws PluginException {
workitem.setItemValue("partner.id", partnerID);
ItemCollection businessPartner = getBusinessPartnerByID(partnerID);
if (businessPartner != null) {
workitem.setItemValue("partner.name", businessPartner.getItemValueString("partner.name"));
if (businessPartner.getTaskID() == TASK_VERIFICATION) {
throw new PluginException(InvoicePlugin.class.getName(),
ERROR_BUSINESSPARTNER_VERIFICATION,
"Businesspartner is in verification. Invoice can't be processed!");
}
if (businessPartner.getTaskID() == TASK_LOCKED) {
throw new PluginException(InvoicePlugin.class.getName(),
ERROR_BUSINESSPARTNER_LOCKED,
"Businesspartner is locked. Invoice can't be processed!");
}
// update business partner object...
try {
if (businessPartner.getTaskID() == TASK_INACTIVE) {
// Workitem erneut aktivieren
businessPartner.event(EVENT_ACTIVATE);
workflowService.processWorkItem(businessPartner);
} else {
// workItem einfach nur speichern!
documentService.save(businessPartner);
}
} catch (PluginException | ProcessingErrorException | AccessDeniedException | ModelException e) {
logger.warning("Failed to update BusinessPartner object '" + partnerID + "'!");
}
} else {
logger.warning("BusinessPartner '" + partnerID + "' not found!");
}
}
/**
* Diese Methode sucht einen Business Partner anhand seiner BPID
*

View file

@ -20,6 +20,9 @@ public class InvoiceOutgoingPlugin extends AbstractPlugin {
@Inject
KreditorDebitorService kreditorService;
@Inject
BusinessPartnerService businessPartnerService;
/**
*
* @throws PluginException - if data is missing
@ -45,6 +48,11 @@ public class InvoiceOutgoingPlugin extends AbstractPlugin {
}
workitem.setItemValue("_img", img);
// Update BUsiness Partner Data
String partnerID = InvoiceUtil.buildBPID(workitem.getItemValueString("dbtr.number"));
businessPartnerService.updateBusinessPartner(partnerID, workitem);
return workitem;
}

View file

@ -37,6 +37,8 @@ import jakarta.inject.Inject;
* 2.2.22 - Das Plugin erzeugt auch das Feld _img welches die Images von
* Sofortüberweisung, Mahnung und Ablehnung anzeigt.
*
* 26.4.25 - Das Plugin setzt nun auch bpid.name und bpid
* zusätzlich processed es das BP Workitem
*
* @author rsoika
* @version 1.0
@ -70,6 +72,9 @@ public class InvoicePlugin extends AbstractPlugin {
@EJB
KreditorDebitorService kreditorService;
@Inject
BusinessPartnerService businessPartnerService;
@Inject
ResourceBundleHandler resourceBundleHandler;
@ -203,6 +208,10 @@ public class InvoicePlugin extends AbstractPlugin {
}
// Update BUsiness Partner Data
String partnerID = InvoiceUtil.buildBPID(workitem.getItemValueString("cdtr.number"));
businessPartnerService.updateBusinessPartner(partnerID, workitem);
return workitem;
}

View file

@ -27,29 +27,11 @@
package com.alexanderlogistics.api;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;
import java.util.logging.Logger;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.imixs.marty.team.TeamService;
import org.imixs.workflow.FileData;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.WorkflowService;
@ -59,23 +41,17 @@ import org.imixs.workflow.exceptions.ModelException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
import org.imixs.workflow.exceptions.QueryException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import com.alexanderlogistics.BusinessPartnerService;
import com.alexanderlogistics.InvoiceUtil;
import com.alexanderlogistics.mahnlauf.MahnlaufService;
import com.alexanderlogistics.xml.CargosoftXMLInvoiceImportService;
import jakarta.ejb.Stateless;
import jakarta.ejb.TransactionAttribute;
import jakarta.ejb.TransactionAttributeType;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;
@ -89,7 +65,7 @@ import jakarta.ws.rs.core.MediaType;
* @author rsoika
* @version 1.1
*/
@Stateless
@ApplicationScoped
@Produces({ MediaType.TEXT_HTML, MediaType.APPLICATION_XHTML_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,
MediaType.TEXT_XML })
@Path("/cargosoft")
@ -99,11 +75,7 @@ public class CargosoftMigrationRestService implements Serializable {
String log = "";
int errors = 0;
int count = 0;
public static String _QUERY = "($modelversion:rechnungsausgang-de-1.0)\n" +
"AND $created:[20240604 TO 20240701]";
// public static String _QUERY = "($modelversion:rechnungsausgang-dwc-1.0)\n" +
// //
// "AND $created:[20240604 TO 20240619]";
boolean isRunning = false;
@Inject
DocumentService documentService;
@ -129,535 +101,17 @@ public class CargosoftMigrationRestService implements Serializable {
super();
}
/**
* Dieser Endpunkt akutalisiert alle ausgehenden noch offenen Rechnungen in
* Bezug auf die Abteilungszugehörigkeit.
*
*
* @return
* @throws QueryException
* @throws AccessDeniedException
* @throws ProcessingErrorException
* @throws PluginException
* @throws ModelException
*/
@GET
@Path("/invoices/fix/spaces")
@Produces({ MediaType.TEXT_PLAIN })
public String updateInvoiceSpacesAssignment()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
count = 0;
String query = "($modelversion:rechnungsausgang-de-1.0) AND (type:workitem)";
// "AND $taskid:[20240604 TO 20240701]";
logger.info("query=" + query);
log = "Update Space Assignment in Outgoing Invoices\n\n" + query;
List<ItemCollection> result = documentService.find(query, 9999, 0);
log = log + " " + new Date() + "\n\n";
log = log + "\n\nFound " + result.size() + " open invoices.";
// load spaces Pos Expressions
Map<String, List<String>> spacePosMappings = mahnlaufService.loadSpacePosMappings();
for (ItemCollection invoice : result) {
String oldSpaceRef = invoice.getItemValueString("space.ref");
mahnlaufService.mapInvoiceTextToSpace(invoice, spacePosMappings);
String newSpaceRef = invoice.getItemValueString("space.ref");
if (newSpaceRef.isEmpty()) {
// wir dürfen die space.ref nicht löschen!
continue;
}
// change?
if (!oldSpaceRef.equals(newSpaceRef)) {
count++;
logger.info("...fix invoice: " + invoice.getUniqueID());
// lookup space
ItemCollection space = documentService.load(newSpaceRef);
invoice.setItemValue("space.name", space.getItemValueString("name"));
invoice.setItemValue("migration.space.ref", oldSpaceRef);
documentService.save(invoice);
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* Dieser Endpunkt akutalisiert alle ausgehenden noch offenen Rechnungen in
* Bezug auf die Abteilungszugehörigkeit.
*
*
* @return
* @throws QueryException
* @throws AccessDeniedException
* @throws ProcessingErrorException
* @throws PluginException
* @throws ModelException
*/
@GET
@Path("/invoices/fix/index/{page}")
@Produces({ MediaType.TEXT_PLAIN })
public String updateInvoiceIndex(@PathParam("page") int page)
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
count = 0;
String query = "($modelversion:rechnungsausgang-de-1.0) AND (type:workitem)";
logger.info("query=" + query);
log = "Update index Invoices\n\n" + query;
List<ItemCollection> result = documentService.find(query, 100, page);
log = log + " " + new Date() + "\n\n";
log = log + " size= 500 page=" + page + "\n\n";
log = log + "\n\nFound " + result.size() + " open invoices.";
logger.info("Found " + result.size() + " open invoices.");
for (ItemCollection invoice : result) {
documentService.save(invoice);
count++;
logger.info("... update index " + invoice.getUniqueID());
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* Dieser Endpunkt akutalisiert alle ausgehenden noch offenen Rechnungen in
* Bezug auf die Abteilungszugehörigkeit.
*
*
* @return
* @throws QueryException
* @throws AccessDeniedException
* @throws ProcessingErrorException
* @throws PluginException
* @throws ModelException
*/
@GET
@Path("/steuerbescheide/fix/spaces")
@Produces({ MediaType.TEXT_PLAIN })
public String updateSteuerbescheideSpacesAssignment()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
count = 0;
String query = "($modelversion:steuerbescheid-de-1.0) AND (type:workitem)";
// "AND $taskid:[20240604 TO 20240701]";
logger.info("query=" + query);
log = "Update Space Assignment in Steuerbescheide\n\n" + query;
List<ItemCollection> result = documentService.find(query, 9999, 0);
log = log + " " + new Date() + "\n\n";
log = log + "\n\nFound " + result.size() + " open steuerbescheide.";
// load spaces Pos Expressions
Map<String, List<String>> spacePosMappings = mahnlaufService.loadSpacePosMappings();
for (ItemCollection invoice : result) {
String oldSpaceRef = invoice.getItemValueString("space.ref");
mahnlaufService.mapInvoiceTextToSpace(invoice, spacePosMappings);
String newSpaceRef = invoice.getItemValueString("space.ref");
if (newSpaceRef.isEmpty()) {
// wir dürfen die space.ref nicht löschen!
continue;
}
// change?
if (!oldSpaceRef.equals(newSpaceRef)) {
count++;
logger.info("...fix invoice: " + invoice.getUniqueID());
// lookup space
ItemCollection space = documentService.load(newSpaceRef);
invoice.setItemValue("space.name", space.getItemValueString("name"));
invoice.setItemValue("migration.space.ref", oldSpaceRef);
documentService.save(invoice);
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* This method loads taxonomy data for a workflow group within a given process
* and builds a ChartJS data structure in JSON format
*
* @param workflowgroup
* @param task
* @return
* @throws QueryException
*/
@GET
@Path("/test")
@Produces({ MediaType.TEXT_PLAIN })
public String testeFehlerhafteCargosoftDaten() throws QueryException {
int falsch = 0;
logger.info("query=" + _QUERY);
log = "Query\n" + _QUERY;
List<ItemCollection> result = documentService.find(_QUERY, 9999, 0);
log = log + "\n\nCount=" + result.size();
if (result.size() > 9999) {
log = log + "\n\nACHTUNG ES GIBT MEHR ALS 10000 RECHNUNGEN !";
}
for (ItemCollection workitem : result) {
String type = workitem.getItemValueString("invoice.type");
if ("G".equals(type) || "SR".equals(type)) {
double total = workitem.getItemValueDouble("invoice.saldo");
if (total >= 0) {
logger.info("---Falsch: " + workitem.getUniqueID());
falsch++;
workitem.setItemValue("invoice.saldo", -total);
// documentService.save(workitem);
}
}
}
log = log + "\n\n";
log = log + "" + result.size() + " rechnungen geprüft";
log = log + "" + falsch + " davon falsch";
log = log + "\n\n";
return log;
}
/**
* This method fixes the wrong amount of a imported xml invoice.
*
* @param workflowgroup
* @param task
* @return
* @throws QueryException
* @throws ModelException
* @throws PluginException
* @throws ProcessingErrorException
* @throws AccessDeniedException
*/
public String fixMissingDueDate()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
logger.info("query=" + _QUERY);
log = "Query\n\n" + _QUERY;
List<ItemCollection> result = documentService.find(_QUERY, 9999, 0);
log = log + "\n\nSelection Count=" + result.size();
log = log + "\n\nFixes\n\n";
for (ItemCollection workitem : result) {
if (!workitem.hasItem("invoice.reminder")) {
Date dueDate = workitem.getItemValueDate("invoice.duedate");
workitem.setItemValue("invoice.reminder", dueDate);
count++;
// save only
documentService.save(workitem);
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
@GET
@Path("/fix")
@Produces({ MediaType.TEXT_PLAIN })
public String fixMissingRate()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
logger.info("query=" + _QUERY);
log = "Query\n\n" + _QUERY;
List<ItemCollection> result = documentService.find(_QUERY, 9999, 0);
log = log + "\n\nSelection Count=" + result.size();
log = log + "\n\nFixes\n\n";
for (ItemCollection workitem : result) {
if (!workitem.hasItem("invoice.rate")) {
// Fetch frist datev.kurs von _childitems
List<ItemCollection> childs = InvoiceUtil.explodeChildList(workitem);
if (childs != null && childs.size() > 0) {
ItemCollection child = childs.get(0);
double rate = child.getItemValueDouble("datev.kurs");
logger.info("..fix missing rate = " + rate);
workitem.setItemValue("invoice.rate", rate);
// save only
documentService.save(workitem);
}
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* Dieser agent prüft die Rechnungen der letzten 2 Wochen auf einen Billingtext
* der mit "24DE" beginnt und übernimmt dann diesen Text als neue ATC number
*
* @return
* @throws QueryException
* @throws AccessDeniedException
* @throws ProcessingErrorException
* @throws PluginException
* @throws ModelException
*/
@GET
@Path("/fix-atc")
@Produces({ MediaType.TEXT_PLAIN })
public String fixATCNumber()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
String query = "($modelversion:rechnungsausgang-de-1.0) " +
"AND $created:[20241001 TO 20241201]";
logger.info("query=" + query);
log = "Query\n\n" + query;
List<ItemCollection> result = documentService.find(query, 9999, 0);
log = log + "\n\nSelection Count=" + result.size();
log = log + "\n\nFixes:\n\n";
for (ItemCollection workitem : result) {
logger.info("verify: " + workitem.getUniqueID());
if (!workitem.hasItem("invoice.atc.number")) {
// Fetch _childitems and check billingText
List<ItemCollection> childs = InvoiceUtil.explodeChildList(workitem);
for (ItemCollection child : childs) {
List<String> billingTexts = child.getItemValueList("billingtext", String.class);
boolean contains24DE = false;
String atcNumber = "";
for (String str : billingTexts) {
if (str.startsWith("24DE")) {
contains24DE = true;
atcNumber = str;
logger.info(" found in " + workitem.getUniqueID());
break;
}
}
if (contains24DE) {
count++;
workitem.setItemValue("invoice.atc.number", atcNumber);
// save only
logger.info(" update: " + workitem.getUniqueID());
log = log + "\n - " + workitem.getUniqueID();
documentService.save(workitem);
break;
}
}
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* Dieser agent prüft die Rechnungen der letzten 2 Wochen auf einen Billingtext
* der mit "24DE" beginnt und übernimmt dann diesen Text als neue ATC number
*
* @return
* @throws QueryException
* @throws AccessDeniedException
* @throws ProcessingErrorException
* @throws PluginException
* @throws ModelException
*/
@GET
@Path("/fix-atc2")
@Produces({ MediaType.TEXT_PLAIN })
public String fixATCNumber2()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
String query = "($modelversion:rechnungsausgang-de-1.0) " +
"AND $created:[20241001 TO 20241201]";
logger.info("query=" + query);
log = "Query\n\n" + query;
List<ItemCollection> result = documentService.find(query, 9999, 0);
log = log + "\n\nSelection Count=" + result.size();
log = log + "\n\nFixes:\n\n";
for (ItemCollection workitem : result) {
logger.info("verify: " + workitem.getUniqueID());
if (workitem.hasItem("invoice.atc.number")) {
// Fetch _childitems and check billingText
List<ItemCollection> childs = InvoiceUtil.explodeChildList(workitem);
for (ItemCollection child : childs) {
List<String> billingTexts = child.getItemValueList("billingtext", String.class);
boolean contains24DE = false;
String atcNumber = "";
for (String str : billingTexts) {
if (str.startsWith("24DE")) {
contains24DE = true;
atcNumber = str;
logger.info(" found in " + workitem.getUniqueID());
child.setItemValue("atc.number", atcNumber);
break;
}
}
if (contains24DE) {
count++;
InvoiceUtil.implodeChildList(workitem, childs);
// save only
logger.info(" update: " + workitem.getUniqueID());
log = log + "\n - " + workitem.getUniqueID();
documentService.save(workitem);
break;
}
}
}
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
public String fixFehlerhafteCargosoftDatenMitSnapshot()
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
logger.info("query=" + _QUERY);
log = "Query\n\n" + _QUERY;
List<ItemCollection> result = documentService.find(_QUERY, 9999, 0);
log = log + "\n\nSelection Count=" + result.size();
log = log + "\n\nFixes\n\n";
for (ItemCollection workitem : result) {
ItemCollection snapshot = null;
// load snapshot
String snapshotID = workitem.getItemValueString("$snapshotid");
if (!snapshotID.isEmpty()) {
snapshot = documentService.load(snapshotID);
}
if (snapshot == null) {
logger.warning("Unable to load snapshot for document " + workitem.getUniqueID());
log = log + "Unable to load snapshot for document " + workitem.getUniqueID() + " \n";
errors++;
continue;
}
// Get raw data....
// find the XML Attachment
String xmlFileName = null;
List<String> fileNames = snapshot.getFileNames();
for (String fileName : fileNames) {
if (fileName.endsWith(".xml")) {
xmlFileName = fileName;
break;
}
}
if (xmlFileName == null) {
logger.warning("Unable to load XML from document " + workitem.getUniqueID());
log = log + "Unable to load XML from document " + workitem.getUniqueID() + " \n";
errors++;
continue;
}
FileData xmlFileData = snapshot.getFileData(xmlFileName);
Document xmlDoc = createXMLTree(xmlFileData.getContent());
migrateDocument(workitem, xmlDoc);
}
log = log + "\n\n=== Completed! " + count + " fixes! ===\n\n";
return log;
}
/**
* Diese Methode korrigiert den Saldo um die Netto summe....
*
* @param workitem
* @param xmlDoc
* @throws ModelException
* @throws PluginException
* @throws ProcessingErrorException
* @throws AccessDeniedException
*/
private void migrateDocument(ItemCollection workitem, Document doc)
throws AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
// Haben wir schon das neue Feld 'invoice.total.net' mit dem Netto Betrag?
if (workitem.hasItem("invoice.total.tax")) {
// no migration needed
return;
}
// Net und Tax ermitteln
readXMLValue(doc, "/Invoices/Invoice/InvoiceHeader/InvoiceAmount/NetAmount/Amount/Value",
workitem, "invoice.total.net", Double.class);
readXMLValue(doc, "/Invoices/Invoice/InvoiceHeader/InvoiceAmount/VATInformation/VATAmount/Amount/Value",
workitem, "invoice.total.tax", Double.class);
// Der Total entspricht nun dem Net Amount.
// Wenn wir eine Tax haben, dann müssen wir den Total sowie den Saldo um
// diese Tax erhöhen.
// Damit ist dann die Migration abgeschlossen.
double tax = workitem.getItemValueDouble("invoice.total.tax");
if (tax > 0) {
log = log + "...Migriere " + workitem.getItemValueString("invoice.number") + " Korrektur Betrag " +
tax + "\n";
double total = workitem.getItemValueDouble("invoice.total");
double saldo = workitem.getItemValueDouble("invoice.saldo");
// Gutschrift?
if (total < 0) {
total = total - tax;
saldo = saldo - tax;
} else {
// Rechnung
total = total + tax;
saldo = saldo + tax;
}
workitem.setItemValue("invoice.total", InvoiceUtil.round(total));
workitem.setItemValue("invoice.saldo", InvoiceUtil.round(saldo));
workitem.setItemValue("cargosoft.fix.xmlerror", tax);
log = log + "....... total neu=" + total + " saldo neu=" + saldo + "\n";
if (5900 == workitem.getTaskID()) {
workitem.setEventID(942);
workflowService.processWorkItem(workitem);
} else {
// save only
documentService.save(workitem);
}
count++;
} else {
log = log + "...Keine Migration notwendig " + workitem.getItemValueString("invoice.number") +
" tax=" + tax + "\n";
}
}
/**
* Dieser agent prüft ob es für Cargosoft Krediotren/Debitoren Daten schon ein
* passendes Businesspartner Workitem gibt.
* Wenn nicht speichert der Service einmal das cargosft entity was dann zur
* automatischen Neuanlage des businesspartner workflows führt.
*
*
* curl -H "Cookie:
* JSESSIONID=ShAegfNiXmqLFLSFwcUZ7hrLLQDKZGKiu4oj_xeX.imixs-office-workflow-8586d7d58d-h6k4q"
* https://alexander-logistics-dwc.office-workflow.de/api/cargosoft/bp-sync?maxcount=1000
*
* @return
* @throws QueryException
* @throws AccessDeniedException
@ -674,14 +128,21 @@ public class CargosoftMigrationRestService implements Serializable {
if (maxcount <= 0) {
maxcount = 100;
}
String query = "(type:cargosoftkreditor) AND ($modified:[20100130000000 TO 20250324200000])";
String query = "(type:cargosoftkreditor)";
int syncs = 0;
long l = System.currentTimeMillis();
int batchSize = 100;
int totalObjects = 0;
log("├── sync business partner objects....", messageBuffer);
if (isRunning) {
log("├── sync process already running!", messageBuffer);
return messageBuffer.toString();
}
isRunning = true;
int totalCount = documentService.count(query);
log("│   ├── found " + totalCount + " entities ",
log("│   ├── found " + totalCount + " cargosoft entries",
messageBuffer);
// Berechne Anzahl der benötigten Pages
@ -698,7 +159,6 @@ public class CargosoftMigrationRestService implements Serializable {
syncs++;
// Explicit flush the lucene search event log
updateService.updateIndex();
}
if (syncs >= maxcount)
break;
@ -724,6 +184,7 @@ public class CargosoftMigrationRestService implements Serializable {
log("├── Successfully " + syncs + " business partner objects synced in " +
duration + "ms (" + String.format("%.1f", objectsPerSecond) + " objects/sec)", messageBuffer);
isRunning = false;
return messageBuffer.toString();
}
@ -749,6 +210,10 @@ public class CargosoftMigrationRestService implements Serializable {
* Dieser agent löscht einfach alle Businesspartner objekte. Wird eigentlich
* nicht mehr benötigt.
*
* curl -H "Cookie:
* JSESSIONID=ShAegfNiXmqLFLSFwcUZ7hrLLQDKZGKiu4oj_xeX.imixs-office-workflow-8586d7d58d-h6k4q"
* https://alexander-logistics-dwc.office-workflow.de/api/cargosoft/bp-delete?maxcount=10000
*
* @return
* @throws QueryException
* @throws AccessDeniedException
@ -763,37 +228,50 @@ public class CargosoftMigrationRestService implements Serializable {
throws QueryException, AccessDeniedException, ProcessingErrorException, PluginException, ModelException {
StringBuffer messageBuffer = new StringBuffer();
String query = "(type:workitem) AND ($modelversion: businesspartner*) AND ($modified:[20210130000000 TO 20250324200000])";
String query = "(type:workitem*) AND ($modelversion: businesspartner*)";
int deletions = 0;
long l = System.currentTimeMillis();
int batchSize = 100;
int totalObjects = 0;
log("├── delete old business partner objects....", messageBuffer);
if (isRunning) {
log("├── sync process already running!", messageBuffer);
return messageBuffer.toString();
}
isRunning = true;
log("│   ├── maxcount= " + maxcount, messageBuffer);
int totalCount = documentService.count(query);
log("│   ├── found " + totalCount + " entities ",
messageBuffer);
log("│   ├── found " + totalCount + " entities ", messageBuffer);
// Berechne Anzahl der benötigten Pages
int totalPages = (int) Math.ceil((double) totalCount / batchSize);
// Verarbeite Page für Page
for (int pageIndex = 0; pageIndex < totalPages; pageIndex++) {
List<ItemCollection> cargosoftDataList = documentService.find(query, batchSize, pageIndex);
int iterations = 0;
while (deletions < maxcount) {
List<ItemCollection> cargosoftDataList = documentService.find(query, batchSize, 0);
if (cargosoftDataList.size() == 0) {
break;
}
for (ItemCollection cargosoftItemCol : cargosoftDataList) {
totalObjects++;
if (deleteBusinessPartner(cargosoftItemCol, messageBuffer)) {
deletions++;
}
if (deletions >= maxcount)
break;
}
// Explicit flush the lucene search event log
updateService.updateIndex();
// Fortschritt loggen
log("│ ├── Processed page " + (pageIndex + 1) + " of " + totalPages +
iterations++;
log("│ ├── Processed page " + (iterations) + " of " + totalPages +
" (" + deletions + " total deletions)", messageBuffer);
// Optional: Kurze Pause nach jedem 5. Batch
try {
Thread.sleep(100);
@ -811,6 +289,7 @@ public class CargosoftMigrationRestService implements Serializable {
log("├── Successfully " + deletions + " business partner objects deleted in " +
duration + "ms (" + String.format("%.1f", objectsPerSecond) + " objects/sec)", messageBuffer);
isRunning = false;
return messageBuffer.toString();
}
@ -827,87 +306,6 @@ public class CargosoftMigrationRestService implements Serializable {
return true;
}
/**
* Erzeugt einen XML Baum aus dem XML Raw Daten
*
* @param snapshot
* @return
*/
private Document createXMLTree(byte[] rawData) {
Document doc = null;
InputStream inputStream = new ByteArrayInputStream(rawData);
InputSource inputSource = new InputSource(inputStream);
DocumentBuilder documentBuilder;
try {
documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
doc = documentBuilder.parse(inputSource);
} catch (ParserConfigurationException | SAXException | IOException e) {
log = log + "Unable to load XML tree: " + e.getMessage() + " \n";
return null;
}
return doc;
}
/**
* Reads a tag value from the xml tree and set the value into the given
* workitem.
*
* /Invoices/Invoice/InvoiceHeader/Client/Code
*
* Beispiel Datum:
* <InvoiceDate>2024-05-13T00:00:00+02:00</InvoiceDate>
*
* @param doc - xml doc
* @param expression - xpath expression
* @param workitem
* @param itemName
* @param itemType
*/
private <T> void readXMLValue(Document doc, String expression, ItemCollection workitem, String itemName,
Class<T> itemType) {
// create XPath...
XPathFactory xpathFactory = XPathFactory.newInstance();
XPath xpath = xpathFactory.newXPath();
XPathExpression xPathExpression;
try {
xPathExpression = xpath.compile(expression);
// extract node value
Node valueNode = (Node) xPathExpression.evaluate(doc, XPathConstants.NODE);
if (valueNode != null) {
String value = valueNode.getTextContent();
if (itemType == Date.class) {
// 2024-05-13T00:00:00+02:00
SimpleDateFormat formatter = new SimpleDateFormat(CargosoftXMLInvoiceImportService.DATE_FORMAT);
formatter.setTimeZone(TimeZone.getTimeZone("CET"));
try {
workitem.setItemValue(itemName, formatter.parse(value));
} catch (ParseException e) {
logger.warning("Invalid Date Format");
}
return;
}
if (itemType == Double.class && value != null && !value.isEmpty()) {
workitem.setItemValue(itemName, Double.parseDouble(value));
return;
}
if (itemType == Integer.class && value != null && !value.isEmpty()) {
workitem.setItemValue(itemName, Integer.parseInt(value));
return;
}
// Default String format
workitem.setItemValue(itemName, value);
}
} catch (XPathExpressionException e) {
logger.warning("Unable to read data field '" + expression + "' : " + e.getMessage());
}
}
private void log(String message, StringBuffer messageLog) {
logger.info(message);
messageLog.append(message + "\n");

View file

@ -179,14 +179,14 @@ public class BusinessPartnerImportService {
}
}
int eventID = 200; // default
int eventID = 200; // default update
// event errechnen
if (!businesspartner.hasItem(WorkflowKernel.LASTEVENT)) {
// create new!
if (ibanDublette) {
eventID = 300; // Exception
} else {
eventID = 100; // update/create
eventID = 100; // new import
}
}
businesspartner.setEventID(eventID);

View file

@ -60,13 +60,19 @@
<bpmn2:flowNodeRef>event_i7yQVw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_uK0c6g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_6250fg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_VM0fEQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_s0J53g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>task_NohgrQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_AMs05g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_feLZFQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_GTXFMw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_u8OBFg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_whpM0w</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_Idvwtg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_8yN0uw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_Kjobpw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_pYaI6A</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_00CWpg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>textAnnotation_pSbYVQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_AOFZ0A</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:task id="task_ToMZaQ" imixs:processid="1000" name="Neuanlage">
@ -138,11 +144,9 @@
<bpmn2:documentation id="documentation_M7b42w"/>
<bpmn2:incoming>sequenceFlow_avahXg</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_9atLFA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_T5L9aQ</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_b4BcVA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_ShuXXA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_03b60w</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_0Icsbw</bpmn2:incoming>
</bpmn2:task>
<bpmn2:task id="task_B8Pi7A" imixs:processid="1800" name="Gesperrt">
<bpmn2:extensionElements>
@ -195,7 +199,7 @@
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft importiert]]></imixs:value>
<imixs:value><![CDATA[Business Partner aus Cargosoft importiert.]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value>
@ -219,8 +223,7 @@
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_2XhDKQ"/>
<bpmn2:outgoing>sequenceFlow_1mXO8A</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_b0Bj3Q</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_neSsFQ</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_X4XnjQ</bpmn2:incoming>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_1mXO8A" sourceRef="event_Tr0aug" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_JL48mA"/>
@ -297,22 +300,19 @@
<bpmn2:documentation id="documentation_oVnaJw"/>
</bpmn2:association>
<bpmn2:textAnnotation id="textAnnotation_LyGTCw" textFormat="">
<bpmn2:text id="text_M05BXg"><![CDATA[Neuanalge erfolgt über den Cargosoft CSV Import im BusinessPartnerImportService]]></bpmn2:text>
<bpmn2:text id="text_M05BXg"><![CDATA[Neuanalge erfolgt über den Cargosoft CSV Import im BusinessPartnerImportService. Der Datensatz wird automatisch zunächst archiviert. Durch das Invocie Plugin wird dieser dann später auf aktiv gesetzt.]]></bpmn2:text>
<bpmn2:documentation id="documentation_wdTBKA"/>
</bpmn2:textAnnotation>
<bpmn2:association id="association_83sZPw" sourceRef="participant_oxb3dg" targetRef="textAnnotation_LyGTCw">
<bpmn2:documentation id="documentation_FKcIcg"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="200" name="[update]">
<bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft aktualisiert]]></imixs:value>
<imixs:value><![CDATA[Datenaktualisierung Cargosoft]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_wy3OSA"/>
@ -321,13 +321,13 @@
<bpmn2:sequenceFlow id="sequenceFlow_9atLFA" sourceRef="event_TuyuwQ" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_LHM8vg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_h0Kk5g" imixs:activityid="201" name="[update]">
<bpmn2:intermediateCatchEvent id="event_h0Kk5g" imixs:activityid="201" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Datenaktualisierung Cargosoft]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_AnqGdA"/>
@ -400,17 +400,29 @@
<bpmn2:outgoing>sequenceFlow_BHsRkQ</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_5pT4Tw</bpmn2:incoming>
</bpmn2:intermediateCatchEvent>
<bpmn2:intermediateCatchEvent id="event_baWU4w" imixs:activityid="20" name="Korrigiert">
<bpmn2:intermediateCatchEvent id="event_baWU4w" imixs:activityid="300" name="Korrigiert">
<bpmn2:extensionElements>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Daten korrigiert]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></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="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="numactivitydelay" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledbaseobject" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="keyactivitydelayunit" type="xs:string">
<imixs:value><![CDATA[3]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Daten aktualisiert]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_q730KA"/>
<bpmn2:incoming>sequenceFlow_pvIENQ</bpmn2:incoming>
@ -422,13 +434,13 @@
<bpmn2:sequenceFlow id="sequenceFlow_b4BcVA" sourceRef="event_baWU4w" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_5wWdHA"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_ofjVfg" imixs:activityid="200" name="[update]">
<bpmn2:intermediateCatchEvent id="event_ofjVfg" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft aktualisiert]]></imixs:value>
<imixs:value><![CDATA[Datenaktualisierung Cargosoft]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_A42bcQ"/>
@ -452,12 +464,9 @@
<bpmn2:sequenceFlow id="sequenceFlow_ofWWuw" sourceRef="event_i7yQVw" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_fXWIBw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_b0Bj3Q" sourceRef="task_delO7Q" targetRef="event_Tr0aug">
<bpmn2:sequenceFlow id="sequenceFlow_b0Bj3Q" sourceRef="task_delO7Q" targetRef="gateway_whpM0w">
<bpmn2:documentation id="documentation_pVJeTQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_T5L9aQ" sourceRef="task_Q80A1Q" targetRef="event_VM0fEQ">
<bpmn2:documentation id="documentation_0GJKgQ"/>
</bpmn2:sequenceFlow>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_uK0c6g" name="">
<bpmn2:documentation id="documentation_V9jDYA"/>
<bpmn2:incoming>sequenceFlow_S9LVXg</bpmn2:incoming>
@ -473,7 +482,7 @@
<bpmn2:association id="association_WgLbbg" sourceRef="dataObject_UQIXAQ" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_YhKaqg"/>
</bpmn2:association>
<bpmn2:sequenceFlow id="sequenceFlow_8O1EtQ" sourceRef="event_aSdkwg" targetRef="task_Q80A1Q">
<bpmn2:sequenceFlow id="sequenceFlow_8O1EtQ" sourceRef="event_aSdkwg" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_VTvROw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_6250fg" imixs:activityid="10" name="Speichern">
@ -483,27 +492,6 @@
<bpmn2:sequenceFlow id="sequenceFlow_kS2fMA" sourceRef="event_6250fg" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_t0kr1g"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_VM0fEQ" imixs:activityid="900" name="[Stats]">
<bpmn2:extensionElements>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_ZmJD9A"/>
<bpmn2:incoming>sequenceFlow_T5L9aQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_MPlPww</bpmn2:outgoing>
<bpmn2:timerEventDefinition id="timerEventDefinition_faqzJg"/>
<bpmn2:incoming>sequenceFlow_rNZ3tw</bpmn2:incoming>
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway default="sequenceFlow_aH0vCQ" gatewayDirection="Diverging" id="gateway_s0J53g" name="">
<bpmn2:documentation id="documentation_2Qn8Ng"/>
<bpmn2:incoming>sequenceFlow_MPlPww</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_aH0vCQ</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_ShuXXA</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:task id="task_NohgrQ" imixs:processid="1700" name="Inaktiv">
<bpmn2:extensionElements>
<imixs:item name="txtimageurl" type="xs:string">
@ -546,22 +534,14 @@
<bpmn2:documentation id="documentation_RI2Ing"/>
<bpmn2:incoming>sequenceFlow_9atLFA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_aH0vCQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_neSsFQ</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_zd6RWA</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_rNZ3tw</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_Zl0LZA</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_BbA3Gg</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_3SU0Xw</bpmn2:incoming>
</bpmn2:task>
<bpmn2:sequenceFlow id="sequenceFlow_MPlPww" sourceRef="event_VM0fEQ" targetRef="gateway_s0J53g">
<bpmn2:documentation id="documentation_saZUSw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_aH0vCQ" sourceRef="gateway_s0J53g" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_0fUXrw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_ShuXXA" sourceRef="gateway_s0J53g" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_mhSkeg"/>
<bpmn2:conditionExpression id="formalExpression_oEZj1g" xsi:type="bpmn2:tFormalExpression"><![CDATA[true;]]></bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_neSsFQ" sourceRef="task_NohgrQ" targetRef="event_Tr0aug">
<bpmn2:sequenceFlow id="sequenceFlow_neSsFQ" sourceRef="task_NohgrQ" targetRef="gateway_whpM0w">
<bpmn2:documentation id="documentation_X3IiUg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_AMs05g" name="[IBAN-ERROR]">
@ -583,9 +563,9 @@
<bpmn2:intermediateThrowEvent id="event_GTXFMw" name="[IBAN-ERROR]">
<bpmn2:documentation id="documentation_a8NiKA"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_YUfA0A"/>
<bpmn2:incoming>sequenceFlow_03b60w</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_OwZZBw</bpmn2:incoming>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="sequenceFlow_03b60w" sourceRef="task_Q80A1Q" targetRef="event_GTXFMw">
<bpmn2:sequenceFlow id="sequenceFlow_03b60w" sourceRef="task_Q80A1Q" targetRef="gateway_Kjobpw">
<bpmn2:documentation id="documentation_i02Wsw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateThrowEvent id="event_u8OBFg" name="[IBAN-ERROR]">
@ -596,26 +576,133 @@
<bpmn2:sequenceFlow id="sequenceFlow_zd6RWA" sourceRef="task_NohgrQ" targetRef="event_u8OBFg">
<bpmn2:documentation id="documentation_ez15rg"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_rNZ3tw" sourceRef="task_NohgrQ" targetRef="event_VM0fEQ">
<bpmn2:documentation id="documentation_AHyEzA"/>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_whpM0w" name="">
<bpmn2:documentation id="documentation_ubm86A"/>
<bpmn2:incoming>sequenceFlow_b0Bj3Q</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_neSsFQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_X4XnjQ</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="sequenceFlow_X4XnjQ" sourceRef="gateway_whpM0w" targetRef="event_Tr0aug">
<bpmn2:documentation id="documentation_l0k7iA"/>
</bpmn2:sequenceFlow>
<bpmn2:association id="association_cKTnmw" sourceRef="task_NohgrQ" targetRef="dataObject_UQIXAQ">
<bpmn2:documentation id="documentation_HaCZIw"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_Idvwtg" imixs:activityid="210" name="[activate]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_noyesg"/>
<bpmn2:incoming>sequenceFlow_Zl0LZA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_0Icsbw</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_Zl0LZA" sourceRef="task_NohgrQ" targetRef="event_Idvwtg">
<bpmn2:documentation id="documentation_dR8uHA"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_0Icsbw" sourceRef="event_Idvwtg" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_WOM9ag"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_8yN0uw" imixs:activityid="30" name="[deactivate]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></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="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="numactivitydelay" type="xs:string">
<imixs:value><![CDATA[180]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledbaseobject" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyactivitydelayunit" type="xs:string">
<imixs:value><![CDATA[3]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Inaktiv seit mehr als 6 Monaten]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_iwSbNQ"/>
<bpmn2:incoming>sequenceFlow_RkjrPQ</bpmn2:incoming>
<bpmn2:timerEventDefinition id="timerEventDefinition_grLrRg"/>
<bpmn2:outgoing>sequenceFlow_b0d63g</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Kjobpw" name="">
<bpmn2:documentation id="documentation_KjR2mA"/>
<bpmn2:incoming>sequenceFlow_03b60w</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_OwZZBw</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_RkjrPQ</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="sequenceFlow_OwZZBw" sourceRef="gateway_Kjobpw" targetRef="event_GTXFMw">
<bpmn2:documentation id="documentation_xL0exw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_RkjrPQ" sourceRef="gateway_Kjobpw" targetRef="event_8yN0uw">
<bpmn2:documentation id="documentation_SATBnQ"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateThrowEvent id="event_pYaI6A" name="[INACTIVE]">
<bpmn2:documentation id="documentation_0DbUnw"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_V0X1Tw"/>
<bpmn2:incoming>sequenceFlow_b0d63g</bpmn2:incoming>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="sequenceFlow_b0d63g" sourceRef="event_8yN0uw" targetRef="event_pYaI6A">
<bpmn2:documentation id="documentation_AcAIdQ"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_00CWpg" name="[INACTIVE]">
<bpmn2:documentation id="documentation_vC8Fhg"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_ITA4Cw"/>
<bpmn2:outgoing>sequenceFlow_BbA3Gg</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_BbA3Gg" sourceRef="event_00CWpg" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_E4Z0pA"/>
</bpmn2:sequenceFlow>
<bpmn2:textAnnotation id="textAnnotation_pSbYVQ" textFormat="">
<bpmn2:text id="text_puBolw"><![CDATA[Nach 6 Monaten ohne aktige Rechnungen wird das Objekt auf inaktiv gesetzt]]></bpmn2:text>
<bpmn2:documentation id="documentation_M7cHiA"/>
</bpmn2:textAnnotation>
<bpmn2:association id="association_trd3SA" sourceRef="textAnnotation_pSbYVQ" targetRef="event_8yN0uw">
<bpmn2:documentation id="documentation_uds0GA"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_AOFZ0A" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Datenaktualisierung Cargosoft]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_qNSCRQ"/>
<bpmn2:outgoing>sequenceFlow_3SU0Xw</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_3SU0Xw" sourceRef="event_AOFZ0A" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_MXpDMg"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram">
<bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1">
<bpmndi:BPMNShape bpmnElement="event_WmkBvw" id="BPMNShape_heefeQ">
<dc:Bounds height="36.0" width="36.0" x="57.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="97.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_6qfN6w">
<dc:Bounds height="20.0" width="100.0" x="25.0" y="316.0"/>
<dc:Bounds height="20.0" width="100.0" x="65.0" y="226.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1clvlg" id="BPMNShape_85k4rg">
<dc:Bounds height="36.0" width="36.0" x="1657.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="1547.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_F7t2Ng">
<dc:Bounds height="20.0" width="100.0" x="1625.0" y="259.0"/>
<dc:Bounds height="20.0" width="100.0" x="1515.0" y="169.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_ToMZaQ" id="BPMNShape_CUpR6w">
<dc:Bounds height="50.0" width="110.0" x="170.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="200.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="participant_oxb3dg" id="BPMNShape_mqlDUA">
<dc:Bounds height="820.0" width="1820.0" x="-30.0" y="40.0"/>
@ -624,259 +711,320 @@
<dc:Bounds height="820.0" width="1790.0" x="0.0" y="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_25otUg" id="BPMNEdge_NHnc3g" sourceElement="BPMNShape_heefeQ" targetElement="BPMNShape_CUpR6w">
<di:waypoint x="93.0" y="295.0"/>
<di:waypoint x="170.0" y="295.0"/>
<di:waypoint x="133.0" y="205.0"/>
<di:waypoint x="200.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_Q80A1Q" id="BPMNShape_7JA0nw">
<dc:Bounds height="50.0" width="110.0" x="660.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="610.0" y="430.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_B8Pi7A" id="BPMNShape_ghujeA">
<dc:Bounds height="50.0" width="110.0" x="1360.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="1360.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_aSdkwg" id="BPMNShape_uesqgg">
<dc:Bounds height="36.0" width="36.0" x="457.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="477.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_AxKRKQ">
<dc:Bounds height="20.0" width="100.0" x="425.0" y="316.0"/>
<dc:Bounds height="20.0" width="100.0" x="445.0" y="226.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_S9LVXg" id="BPMNEdge_xoCSiA" sourceElement="BPMNShape_CUpR6w" targetElement="BPMNShape_6IZk7Q">
<di:waypoint x="280.0" y="295.0"/>
<di:waypoint x="340.0" y="295.0"/>
<di:waypoint x="310.0" y="205.0"/>
<di:waypoint x="380.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_Tr0aug" id="BPMNShape_NEaJjA">
<dc:Bounds height="36.0" width="36.0" x="1227.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="1267.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_GkrCTA">
<dc:Bounds height="20.0" width="100.0" x="1193.0" y="258.0"/>
<dc:Bounds height="20.0" width="100.0" x="1233.0" y="168.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_1mXO8A" id="BPMNEdge_7CorJA" sourceElement="BPMNShape_NEaJjA" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1263.0" y="295.0"/>
<di:waypoint x="1360.0" y="295.0"/>
<di:waypoint x="1303.0" y="205.0"/>
<di:waypoint x="1360.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rwdWxw" id="BPMNEdge_t88dUw" sourceElement="BPMNShape_ghujeA" targetElement="BPMNShape_85k4rg">
<di:waypoint x="1470.0" y="295.0"/>
<di:waypoint x="1657.0" y="295.0"/>
<di:waypoint x="1470.0" y="205.0"/>
<di:waypoint x="1547.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="dataObject_UQIXAQ" id="BPMNShape_Mnop9Q">
<dc:Bounds height="50.0" width="35.0" x="560.0" y="380.0"/>
<dc:Bounds height="50.0" width="35.0" x="470.0" y="430.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_h0UuFw">
<dc:Bounds height="20.0" width="100.0" x="527.5" y="435.0"/>
<dc:Bounds height="20.0" width="100.0" x="437.5" y="485.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_vwH0cA" id="BPMNShape_OXGg8Q">
<dc:Bounds height="36.0" width="36.0" x="747.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="597.0" y="347.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_KaHfJQ">
<dc:Bounds height="20.0" width="100.0" x="715.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="565.0" y="386.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_avahXg" id="BPMNEdge_odMtvQ" sourceElement="BPMNShape_OXGg8Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="747.0" y="196.0"/>
<di:waypoint x="725.0" y="196.0"/>
<di:waypoint x="725.0" y="270.0"/>
<di:waypoint x="625.0" y="380.0"/>
<di:waypoint x="625.0" y="402.0"/>
<di:waypoint x="649.0" y="402.0"/>
<di:waypoint x="649.0" y="430.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_uvV8uA" id="BPMNEdge_3Mtxfw" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_7JA0nw"/>
<bpmndi:BPMNEdge bpmnElement="association_mpLQEQ" id="BPMNEdge_qkEiPA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="588.0" y="380.0"/>
<di:waypoint x="588.0" y="357.0"/>
<di:waypoint x="680.0" y="357.0"/>
<di:waypoint x="680.0" y="320.0"/>
<di:waypoint x="505.0" y="455.0"/>
<di:waypoint x="610.0" y="455.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="textAnnotation_LyGTCw" id="BPMNShape_SbxnGw">
<dc:Bounds height="85.0" width="228.0" x="80.0" y="80.0"/>
<dc:Bounds height="94.0" width="334.0" x="60.0" y="60.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_83sZPw" id="BPMNEdge_p0XWxg" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_SbxnGw"/>
<bpmndi:BPMNShape bpmnElement="event_TuyuwQ" id="BPMNShape_fTy7mg">
<dc:Bounds height="36.0" width="36.0" x="617.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="707.0" y="347.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_033n1A">
<dc:Bounds height="20.0" width="100.0" x="585.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="675.0" y="386.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_9atLFA" id="BPMNEdge_BC4pwQ" sourceElement="BPMNShape_fTy7mg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="653.0" y="196.0"/>
<di:waypoint x="700.0" y="196.0"/>
<di:waypoint x="700.0" y="270.0"/>
<di:waypoint x="723.0" y="383.0"/>
<di:waypoint x="723.0" y="411.0"/>
<di:waypoint x="684.0" y="411.0"/>
<di:waypoint x="684.0" y="430.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_h0Kk5g" id="BPMNShape_T4k09g">
<dc:Bounds height="36.0" width="36.0" x="1327.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="1347.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_lX0KlA">
<dc:Bounds height="20.0" width="100.0" x="1295.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="1315.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_gC0I9w" id="BPMNEdge_0nCVvg" sourceElement="BPMNShape_T4k09g" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1363.0" y="193.0"/>
<di:waypoint x="1390.0" y="193.0"/>
<di:waypoint x="1390.0" y="270.0"/>
<di:waypoint x="1369.0" y="113.0"/>
<di:waypoint x="1369.0" y="147.0"/>
<di:waypoint x="1403.0" y="147.0"/>
<di:waypoint x="1403.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_delO7Q" id="BPMNShape_rEOMWA">
<dc:Bounds height="50.0" width="110.0" x="660.0" y="510.0"/>
<dc:Bounds height="50.0" width="110.0" x="610.0" y="650.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1OVorA" id="BPMNShape_mG4csA">
<dc:Bounds height="36.0" width="36.0" x="557.0" y="517.0"/>
<dc:Bounds height="36.0" width="36.0" x="507.0" y="657.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_djIb8w">
<dc:Bounds height="20.0" width="100.0" x="528.0" y="559.0"/>
<dc:Bounds height="20.0" width="100.0" x="478.0" y="699.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_baWU4w" id="BPMNShape_755HGg">
<dc:Bounds height="36.0" width="36.0" x="697.0" y="407.0"/>
<dc:Bounds height="36.0" width="36.0" x="647.0" y="557.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_oN6XKQ">
<dc:Bounds height="20.0" width="100.0" x="665.0" y="446.0"/>
<dc:Bounds height="20.0" width="100.0" x="615.0" y="596.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_pvIENQ" id="BPMNEdge_wXz5yA" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_755HGg">
<di:waypoint x="715.0" y="510.0"/>
<di:waypoint x="715.0" y="443.0"/>
<di:waypoint x="665.0" y="650.0"/>
<di:waypoint x="665.0" y="623.0"/>
<di:waypoint x="665.0" y="593.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b4BcVA" id="BPMNEdge_1gQ5Nw" sourceElement="BPMNShape_755HGg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="715.0" y="407.0"/>
<di:waypoint x="715.0" y="320.0"/>
<di:waypoint x="665.0" y="557.0"/>
<di:waypoint x="665.0" y="480.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_ofjVfg" id="BPMNShape_hDVKtg">
<dc:Bounds height="36.0" width="36.0" x="617.0" y="607.0"/>
<dc:Bounds height="36.0" width="36.0" x="587.0" y="747.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_HpXNFQ">
<dc:Bounds height="20.0" width="100.0" x="585.0" y="646.0"/>
<dc:Bounds height="20.0" width="100.0" x="555.0" y="786.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BWOtzA" id="BPMNEdge_KW5PhQ" sourceElement="BPMNShape_hDVKtg" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="651.0" y="616.0"/>
<di:waypoint x="685.0" y="616.0"/>
<di:waypoint x="685.0" y="560.0"/>
<di:waypoint x="605.0" y="747.0"/>
<di:waypoint x="605.0" y="736.0"/>
<di:waypoint x="648.0" y="736.0"/>
<di:waypoint x="648.0" y="700.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_i7yQVw" id="BPMNShape_KxnRjA">
<dc:Bounds height="36.0" width="36.0" x="747.0" y="607.0"/>
<dc:Bounds height="36.0" width="36.0" x="697.0" y="747.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_sJqwmA">
<dc:Bounds height="20.0" width="100.0" x="715.0" y="646.0"/>
<dc:Bounds height="20.0" width="100.0" x="665.0" y="786.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ofWWuw" id="BPMNEdge_zlNOzQ" sourceElement="BPMNShape_KxnRjA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="749.0" y="616.0"/>
<di:waypoint x="735.0" y="616.0"/>
<di:waypoint x="735.0" y="560.0"/>
<di:waypoint x="716.0" y="747.0"/>
<di:waypoint x="716.0" y="724.0"/>
<di:waypoint x="688.0" y="724.0"/>
<di:waypoint x="688.0" y="700.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0Bj3Q" id="BPMNEdge_CDn41A" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="770.0" y="540.0"/>
<di:waypoint x="1246.0" y="540.0"/>
<di:waypoint x="1246.0" y="313.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_T5L9aQ" id="BPMNEdge_dAQH1Q" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_FKXJtw">
<di:waypoint x="770.0" y="295.0"/>
<di:waypoint x="837.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0Bj3Q" id="BPMNEdge_CDn41A" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_WGdUyw">
<di:waypoint x="720.0" y="676.0"/>
<di:waypoint x="1165.0" y="676.0"/>
<di:waypoint x="1165.0" y="230.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="gateway_uK0c6g" id="BPMNShape_6IZk7Q">
<dc:Bounds height="50.0" width="50.0" x="340.0" y="270.0"/>
<dc:Bounds height="50.0" width="50.0" x="380.0" y="180.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_JvBA0w">
<dc:Bounds height="20.0" width="100.0" x="315.0" y="323.0"/>
<dc:Bounds height="20.0" width="100.0" x="355.0" y="233.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_jAU3VA" id="BPMNEdge_2qLI2g" sourceElement="BPMNShape_6IZk7Q" targetElement="BPMNShape_uesqgg">
<di:waypoint x="390.0" y="295.0"/>
<di:waypoint x="457.0" y="295.0"/>
<di:waypoint x="430.0" y="205.0"/>
<di:waypoint x="477.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BHsRkQ" id="BPMNEdge_1LX47g" sourceElement="BPMNShape_mG4csA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="593.0" y="535.0"/>
<di:waypoint x="660.0" y="535.0"/>
<di:waypoint x="543.0" y="675.0"/>
<di:waypoint x="610.0" y="675.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_WgLbbg" id="BPMNEdge_Btz9CA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="575.0" y="430.0"/>
<di:waypoint x="575.0" y="471.0"/>
<di:waypoint x="675.0" y="471.0"/>
<di:waypoint x="675.0" y="510.0"/>
<di:waypoint x="490.0" y="480.0"/>
<di:waypoint x="490.0" y="502.0"/>
<di:waypoint x="624.0" y="502.0"/>
<di:waypoint x="624.0" y="650.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8O1EtQ" id="BPMNEdge_JxSLfA" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="493.0" y="295.0"/>
<di:waypoint x="660.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8O1EtQ" id="BPMNEdge_JxSLfA" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_VljsIw">
<di:waypoint x="513.0" y="205.0"/>
<di:waypoint x="610.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_6250fg" id="BPMNShape_v5Xzvg">
<dc:Bounds height="36.0" width="36.0" x="1457.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="1437.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_IBnUDA">
<dc:Bounds height="20.0" width="100.0" x="1425.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="1405.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_kS2fMA" id="BPMNEdge_i80XvQ" sourceElement="BPMNShape_v5Xzvg" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1458.0" y="190.0"/>
<di:waypoint x="1435.0" y="190.0"/>
<di:waypoint x="1435.0" y="270.0"/>
<di:waypoint x="1461.0" y="112.0"/>
<di:waypoint x="1461.0" y="142.0"/>
<di:waypoint x="1429.0" y="142.0"/>
<di:waypoint x="1429.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_VM0fEQ" id="BPMNShape_FKXJtw">
<dc:Bounds height="36.0" width="36.0" x="837.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_CAiT2Q">
<dc:Bounds height="20.0" width="100.0" x="805.0" y="316.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="gateway_s0J53g" id="BPMNShape_gklxXQ">
<dc:Bounds height="50.0" width="50.0" x="930.0" y="270.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_I4jC0g">
<dc:Bounds height="20.0" width="100.0" x="905.0" y="323.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_NohgrQ" id="BPMNShape_VljsIw">
<dc:Bounds height="50.0" width="110.0" x="1060.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="610.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_MPlPww" id="BPMNEdge_rt2H3g" sourceElement="BPMNShape_FKXJtw" targetElement="BPMNShape_gklxXQ">
<di:waypoint x="873.0" y="295.0"/>
<di:waypoint x="930.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_aH0vCQ" id="BPMNEdge_YMnxQQ" sourceElement="BPMNShape_gklxXQ" targetElement="BPMNShape_VljsIw">
<di:waypoint x="980.0" y="295.0"/>
<di:waypoint x="1060.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ShuXXA" id="BPMNEdge_DY4O8Q" sourceElement="BPMNShape_gklxXQ" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="956.0" y="319.0"/>
<di:waypoint x="956.0" y="364.0"/>
<di:waypoint x="746.0" y="364.0"/>
<di:waypoint x="746.0" y="320.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_neSsFQ" id="BPMNEdge_b7C0wQ" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="1170.0" y="295.0"/>
<di:waypoint x="1227.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_neSsFQ" id="BPMNEdge_b7C0wQ" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_WGdUyw">
<di:waypoint x="720.0" y="205.0"/>
<di:waypoint x="1140.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_AMs05g" id="BPMNShape_rS0hsw">
<dc:Bounds height="36.0" width="36.0" x="477.0" y="517.0"/>
<dc:Bounds height="36.0" width="36.0" x="427.0" y="657.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_XcN2Og">
<dc:Bounds height="20.0" width="100.0" x="445.0" y="556.0"/>
<dc:Bounds height="20.0" width="100.0" x="395.0" y="696.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_feLZFQ" id="BPMNShape_uklBfA">
<dc:Bounds height="36.0" width="36.0" x="347.0" y="367.0"/>
<dc:Bounds height="36.0" width="36.0" x="477.0" y="257.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_OengAQ">
<dc:Bounds height="20.0" width="100.0" x="315.0" y="406.0"/>
<dc:Bounds height="20.0" width="100.0" x="445.0" y="296.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_5pT4Tw" id="BPMNEdge_LZMXxg" sourceElement="BPMNShape_rS0hsw" targetElement="BPMNShape_mG4csA">
<di:waypoint x="513.0" y="535.0"/>
<di:waypoint x="557.0" y="535.0"/>
<di:waypoint x="463.0" y="675.0"/>
<di:waypoint x="507.0" y="675.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8BTEtw" id="BPMNEdge_Os7FVw" sourceElement="BPMNShape_6IZk7Q" targetElement="BPMNShape_uklBfA">
<di:waypoint x="365.0" y="320.0"/>
<di:waypoint x="365.0" y="367.0"/>
<di:waypoint x="407.0" y="228.0"/>
<di:waypoint x="407.0" y="278.0"/>
<di:waypoint x="477.0" y="278.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_GTXFMw" id="BPMNShape_5I6iNA">
<dc:Bounds height="36.0" width="36.0" x="847.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="927.0" y="437.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_80daBg">
<dc:Bounds height="20.0" width="100.0" x="815.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="895.0" y="476.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_03b60w" id="BPMNEdge_ehQBOQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_5I6iNA">
<di:waypoint x="770.0" y="294.0"/>
<di:waypoint x="809.0" y="294.0"/>
<di:waypoint x="809.0" y="195.0"/>
<di:waypoint x="847.0" y="195.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_03b60w" id="BPMNEdge_ehQBOQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_hnP3gA">
<di:waypoint x="720.0" y="455.0"/>
<di:waypoint x="810.0" y="455.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_u8OBFg" id="BPMNShape_Kp730Q">
<dc:Bounds height="36.0" width="36.0" x="1137.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="647.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_iUQ02A">
<dc:Bounds height="20.0" width="100.0" x="1105.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="615.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_zd6RWA" id="BPMNEdge_6qKC4A" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_Kp730Q">
<di:waypoint x="1114.0" y="270.0"/>
<di:waypoint x="1114.0" y="195.0"/>
<di:waypoint x="1137.0" y="195.0"/>
<di:waypoint x="665.0" y="180.0"/>
<di:waypoint x="665.0" y="113.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rNZ3tw" id="BPMNEdge_zrajzA" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_FKXJtw">
<di:waypoint x="1080.0" y="270.0"/>
<di:waypoint x="1080.0" y="237.0"/>
<di:waypoint x="855.0" y="237.0"/>
<di:waypoint x="855.0" y="277.0"/>
<bpmndi:BPMNShape bpmnElement="gateway_whpM0w" id="BPMNShape_WGdUyw">
<dc:Bounds height="50.0" width="50.0" x="1140.0" y="180.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_YLPzUg">
<dc:Bounds height="20.0" width="100.0" x="1115.0" y="233.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_X4XnjQ" id="BPMNEdge_2fsFVg" sourceElement="BPMNShape_WGdUyw" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="1190.0" y="205.0"/>
<di:waypoint x="1267.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_cKTnmw" id="BPMNEdge_2c3WeA" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_Mnop9Q">
<di:waypoint x="624.0" y="230.0"/>
<di:waypoint x="624.0" y="276.0"/>
<di:waypoint x="553.0" y="276.0"/>
<di:waypoint x="553.0" y="402.0"/>
<di:waypoint x="488.0" y="402.0"/>
<di:waypoint x="488.0" y="430.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_Idvwtg" id="BPMNShape_etfpaQ">
<dc:Bounds height="36.0" width="36.0" x="647.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_skfjnA">
<dc:Bounds height="20.0" width="100.0" x="615.0" y="316.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_Zl0LZA" id="BPMNEdge_BkhLhA" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_etfpaQ">
<di:waypoint x="665.0" y="230.0"/>
<di:waypoint x="665.0" y="277.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_0Icsbw" id="BPMNEdge_u7S1SA" sourceElement="BPMNShape_etfpaQ" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="665.0" y="313.0"/>
<di:waypoint x="665.0" y="430.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_8yN0uw" id="BPMNShape_icKvEw">
<dc:Bounds height="36.0" width="36.0" x="927.0" y="517.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_ZA4jPA">
<dc:Bounds height="20.0" width="100.0" x="895.0" y="556.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="gateway_Kjobpw" id="BPMNShape_hnP3gA">
<dc:Bounds height="50.0" width="50.0" x="810.0" y="430.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_rt95PQ">
<dc:Bounds height="20.0" width="100.0" x="785.0" y="483.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_OwZZBw" id="BPMNEdge_BWUV4w" sourceElement="BPMNShape_hnP3gA" targetElement="BPMNShape_5I6iNA">
<di:waypoint x="860.0" y="455.0"/>
<di:waypoint x="927.0" y="455.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_RkjrPQ" id="BPMNEdge_2WD5oA" sourceElement="BPMNShape_hnP3gA" targetElement="BPMNShape_icKvEw">
<di:waypoint x="834.0" y="479.0"/>
<di:waypoint x="834.0" y="537.0"/>
<di:waypoint x="927.0" y="537.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_pYaI6A" id="BPMNShape_NOxzMg">
<dc:Bounds height="36.0" width="36.0" x="1007.0" y="517.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_5l6Wvw">
<dc:Bounds height="20.0" width="100.0" x="975.0" y="556.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0d63g" id="BPMNEdge_0A7gaw" sourceElement="BPMNShape_icKvEw" targetElement="BPMNShape_NOxzMg">
<di:waypoint x="963.0" y="535.0"/>
<di:waypoint x="1007.0" y="535.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_00CWpg" id="BPMNShape_bNBYhg">
<dc:Bounds height="36.0" width="36.0" x="537.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_VngNsg">
<dc:Bounds height="20.0" width="100.0" x="505.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BbA3Gg" id="BPMNEdge_kfsgUg" sourceElement="BPMNShape_bNBYhg" targetElement="BPMNShape_VljsIw">
<di:waypoint x="573.0" y="95.0"/>
<di:waypoint x="629.0" y="95.0"/>
<di:waypoint x="629.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="textAnnotation_pSbYVQ" id="BPMNShape_206Gug">
<dc:Bounds height="50.0" width="233.0" x="830.0" y="600.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_trd3SA" id="BPMNEdge_59H6Cg" sourceElement="BPMNShape_206Gug" targetElement="BPMNShape_icKvEw">
<di:waypoint x="947.0" y="600.0"/>
<di:waypoint x="947.0" y="577.0"/>
<di:waypoint x="945.0" y="577.0"/>
<di:waypoint x="945.0" y="553.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_AOFZ0A" id="BPMNShape_h0zVXQ">
<dc:Bounds height="36.0" width="36.0" x="767.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_IQJrYw">
<dc:Bounds height="20.0" width="100.0" x="735.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_3SU0Xw" id="BPMNEdge_Yq4k0g" sourceElement="BPMNShape_h0zVXQ" targetElement="BPMNShape_VljsIw">
<di:waypoint x="767.0" y="95.0"/>
<di:waypoint x="710.0" y="95.0"/>
<di:waypoint x="710.0" y="180.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>

View file

@ -60,13 +60,18 @@
<bpmn2:flowNodeRef>event_i7yQVw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_uK0c6g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_6250fg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_VM0fEQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_s0J53g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>task_NohgrQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_AMs05g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_feLZFQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_GTXFMw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_u8OBFg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_ERhYvA</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_RsEmoA</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_Sg02EQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_0vmPSg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_ZYEq8w</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>textAnnotation_fFO8tQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_kT136g</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:task id="task_ToMZaQ" imixs:processid="1000" name="Neuanlage">
@ -138,10 +143,7 @@
<bpmn2:documentation id="documentation_M7b42w"/>
<bpmn2:incoming>sequenceFlow_avahXg</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_9atLFA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_T5L9aQ</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_b4BcVA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_ShuXXA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_03b60w</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:task id="task_B8Pi7A" imixs:processid="1800" name="Locked">
@ -184,10 +186,10 @@
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_0B9wKQ"/>
<bpmn2:incoming>sequenceFlow_1mXO8A</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_rwdWxw</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_gC0I9w</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_kS2fMA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_Hrl9Qg</bpmn2:incoming>
</bpmn2:task>
<bpmn2:intermediateCatchEvent id="event_aSdkwg" imixs:activityid="100" name="[import]">
<bpmn2:extensionElements>
@ -195,7 +197,7 @@
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft importiert]]></imixs:value>
<imixs:value><![CDATA[Business Partner imported from Cargosoft.]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value>
@ -218,13 +220,9 @@
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_2XhDKQ"/>
<bpmn2:outgoing>sequenceFlow_1mXO8A</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_b0Bj3Q</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_neSsFQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_Hrl9Qg</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_1mXO8A" sourceRef="event_Tr0aug" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_JL48mA"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_rwdWxw" sourceRef="task_B8Pi7A" targetRef="event_1clvlg">
<bpmn2:documentation id="documentation_8xdVSA"/>
</bpmn2:sequenceFlow>
@ -297,22 +295,22 @@
<bpmn2:documentation id="documentation_oVnaJw"/>
</bpmn2:association>
<bpmn2:textAnnotation id="textAnnotation_LyGTCw" textFormat="">
<bpmn2:text id="text_M05BXg"><![CDATA[Neuanalge erfolgt über den Cargosoft CSV Import im BusinessPartnerImportService]]></bpmn2:text>
<bpmn2:text id="text_M05BXg"><![CDATA[Neuanalge erfolgt über den Cargosoft CSV Import im BusinessPartnerImportService. Der Datensatz wird automatisch zunächst archiviert. Durch das Invocie Plugin wird dieser dann später auf aktiv gesetzt.]]></bpmn2:text>
<bpmn2:documentation id="documentation_wdTBKA"/>
</bpmn2:textAnnotation>
<bpmn2:association id="association_83sZPw" sourceRef="participant_oxb3dg" targetRef="textAnnotation_LyGTCw">
<bpmn2:documentation id="documentation_FKcIcg"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="200" name="[update]">
<bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
<imixs:value><![CDATA[Update from Cargosoft ]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft aktualisiert]]></imixs:value>
<imixs:value><![CDATA[Data update Cargosoft.]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_wy3OSA"/>
@ -321,13 +319,16 @@
<bpmn2:sequenceFlow id="sequenceFlow_9atLFA" sourceRef="event_TuyuwQ" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_LHM8vg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_h0Kk5g" imixs:activityid="201" name="[update]">
<bpmn2:intermediateCatchEvent id="event_h0Kk5g" imixs:activityid="201" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
<imixs:value><![CDATA[Update from Cargosoft ]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Data update Cargosoft.]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_AnqGdA"/>
@ -422,13 +423,13 @@
<bpmn2:sequenceFlow id="sequenceFlow_b4BcVA" sourceRef="event_baWU4w" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_5wWdHA"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_ofjVfg" imixs:activityid="200" name="[update]">
<bpmn2:intermediateCatchEvent id="event_ofjVfg" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft aktualisiert]]></imixs:value>
<imixs:value><![CDATA[Data update Cargosoft.]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_A42bcQ"/>
@ -452,12 +453,9 @@
<bpmn2:sequenceFlow id="sequenceFlow_ofWWuw" sourceRef="event_i7yQVw" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_fXWIBw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_b0Bj3Q" sourceRef="task_delO7Q" targetRef="event_Tr0aug">
<bpmn2:sequenceFlow id="sequenceFlow_b0Bj3Q" sourceRef="task_delO7Q" targetRef="gateway_ERhYvA">
<bpmn2:documentation id="documentation_pVJeTQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_T5L9aQ" sourceRef="task_Q80A1Q" targetRef="event_VM0fEQ">
<bpmn2:documentation id="documentation_0GJKgQ"/>
</bpmn2:sequenceFlow>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_uK0c6g" name="">
<bpmn2:documentation id="documentation_V9jDYA"/>
<bpmn2:incoming>sequenceFlow_S9LVXg</bpmn2:incoming>
@ -470,10 +468,7 @@
<bpmn2:sequenceFlow id="sequenceFlow_BHsRkQ" sourceRef="event_1OVorA" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_SvoFWw"/>
</bpmn2:sequenceFlow>
<bpmn2:association id="association_WgLbbg" sourceRef="dataObject_UQIXAQ" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_YhKaqg"/>
</bpmn2:association>
<bpmn2:sequenceFlow id="sequenceFlow_8O1EtQ" sourceRef="event_aSdkwg" targetRef="task_Q80A1Q">
<bpmn2:sequenceFlow id="sequenceFlow_8O1EtQ" sourceRef="event_aSdkwg" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_VTvROw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_6250fg" imixs:activityid="10" name="Save">
@ -483,27 +478,6 @@
<bpmn2:sequenceFlow id="sequenceFlow_kS2fMA" sourceRef="event_6250fg" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_t0kr1g"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_VM0fEQ" imixs:activityid="900" name="[Stats]">
<bpmn2:extensionElements>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_ZmJD9A"/>
<bpmn2:incoming>sequenceFlow_T5L9aQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_MPlPww</bpmn2:outgoing>
<bpmn2:timerEventDefinition id="timerEventDefinition_faqzJg"/>
<bpmn2:incoming>sequenceFlow_rNZ3tw</bpmn2:incoming>
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway default="sequenceFlow_aH0vCQ" gatewayDirection="Diverging" id="gateway_s0J53g" name="">
<bpmn2:documentation id="documentation_2Qn8Ng"/>
<bpmn2:incoming>sequenceFlow_MPlPww</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_aH0vCQ</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_ShuXXA</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:task id="task_NohgrQ" imixs:processid="1700" name="Inactiv">
<bpmn2:extensionElements>
<imixs:item name="txtimageurl" type="xs:string">
@ -546,22 +520,13 @@
<bpmn2:documentation id="documentation_RI2Ing"/>
<bpmn2:incoming>sequenceFlow_9atLFA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_aH0vCQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_neSsFQ</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_zd6RWA</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_rNZ3tw</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_8O1EtQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_u2Ftag</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_cqiAow</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_5iTFQQ</bpmn2:incoming>
</bpmn2:task>
<bpmn2:sequenceFlow id="sequenceFlow_MPlPww" sourceRef="event_VM0fEQ" targetRef="gateway_s0J53g">
<bpmn2:documentation id="documentation_saZUSw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_aH0vCQ" sourceRef="gateway_s0J53g" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_0fUXrw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_ShuXXA" sourceRef="gateway_s0J53g" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_mhSkeg"/>
<bpmn2:conditionExpression id="formalExpression_oEZj1g" xsi:type="bpmn2:tFormalExpression"><![CDATA[true;]]></bpmn2:conditionExpression>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_neSsFQ" sourceRef="task_NohgrQ" targetRef="event_Tr0aug">
<bpmn2:sequenceFlow id="sequenceFlow_neSsFQ" sourceRef="gateway_ERhYvA" targetRef="event_Tr0aug">
<bpmn2:documentation id="documentation_X3IiUg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_AMs05g" name="[IBAN-ERROR]">
@ -583,9 +548,9 @@
<bpmn2:intermediateThrowEvent id="event_GTXFMw" name="[IBAN-ERROR]">
<bpmn2:documentation id="documentation_a8NiKA"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_YUfA0A"/>
<bpmn2:incoming>sequenceFlow_03b60w</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_oc3zTQ</bpmn2:incoming>
</bpmn2:intermediateThrowEvent>
<bpmn2:sequenceFlow id="sequenceFlow_03b60w" sourceRef="task_Q80A1Q" targetRef="event_GTXFMw">
<bpmn2:sequenceFlow id="sequenceFlow_03b60w" sourceRef="task_Q80A1Q" targetRef="gateway_Sg02EQ">
<bpmn2:documentation id="documentation_i02Wsw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateThrowEvent id="event_u8OBFg" name="[IBAN-ERROR]">
@ -596,26 +561,123 @@
<bpmn2:sequenceFlow id="sequenceFlow_zd6RWA" sourceRef="task_NohgrQ" targetRef="event_u8OBFg">
<bpmn2:documentation id="documentation_ez15rg"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_rNZ3tw" sourceRef="task_NohgrQ" targetRef="event_VM0fEQ">
<bpmn2:documentation id="documentation_AHyEzA"/>
<bpmn2:association id="association_naJOPw" sourceRef="dataObject_UQIXAQ" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_bujr8Q"/>
</bpmn2:association>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_ERhYvA" name="">
<bpmn2:documentation id="documentation_DIdOyg"/>
<bpmn2:incoming>sequenceFlow_b0Bj3Q</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_neSsFQ</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_u2Ftag</bpmn2:incoming>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="sequenceFlow_u2Ftag" sourceRef="task_NohgrQ" targetRef="gateway_ERhYvA">
<bpmn2:documentation id="documentation_ZcxdBA"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_Hrl9Qg" sourceRef="event_Tr0aug" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_BgnCkA"/>
</bpmn2:sequenceFlow>
<bpmn2:association id="association_lDrpWg" sourceRef="dataObject_UQIXAQ" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_qkBWOA"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_RsEmoA" imixs:activityid="300" name="[deactivate]">
<bpmn2:extensionElements>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Inaktiv since more than 6 Months]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></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="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="numactivitydelay" type="xs:string">
<imixs:value><![CDATA[180]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledbaseobject" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyactivitydelayunit" type="xs:string">
<imixs:value><![CDATA[3]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_TUYGUQ"/>
<bpmn2:incoming>sequenceFlow_izMKCw</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_i0zvhQ</bpmn2:outgoing>
<bpmn2:timerEventDefinition id="timerEventDefinition_i4sceg"/>
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="gateway_Sg02EQ" name="">
<bpmn2:documentation id="documentation_nBXshQ"/>
<bpmn2:incoming>sequenceFlow_03b60w</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_oc3zTQ</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_izMKCw</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="sequenceFlow_oc3zTQ" sourceRef="gateway_Sg02EQ" targetRef="event_GTXFMw">
<bpmn2:documentation id="documentation_0hI1Qw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_izMKCw" sourceRef="gateway_Sg02EQ" targetRef="event_RsEmoA">
<bpmn2:documentation id="documentation_hAe2wA"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateThrowEvent id="event_0vmPSg" name="[INACTIVE]">
<bpmn2:documentation id="documentation_343b0A"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_j7W4Qw"/>
<bpmn2:incoming>sequenceFlow_i0zvhQ</bpmn2:incoming>
</bpmn2:intermediateThrowEvent>
<bpmn2:intermediateCatchEvent id="event_ZYEq8w" name="[INACTIVE]">
<bpmn2:documentation id="documentation_Y7tRiQ"/>
<bpmn2:linkEventDefinition id="linkEventDefinition_nvVLIA"/>
<bpmn2:outgoing>sequenceFlow_cqiAow</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_cqiAow" sourceRef="event_ZYEq8w" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_o0f03w"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_i0zvhQ" sourceRef="event_RsEmoA" targetRef="event_0vmPSg">
<bpmn2:documentation id="documentation_gNGY5A"/>
</bpmn2:sequenceFlow>
<bpmn2:textAnnotation id="textAnnotation_fFO8tQ" textFormat="">
<bpmn2:text id="text_lOhKxw"><![CDATA[Nach 6 Monaten ohne aktige Rechnungen wird das Objekt auf inaktiv gesetzt]]></bpmn2:text>
<bpmn2:documentation id="documentation_pu4sbA"/>
</bpmn2:textAnnotation>
<bpmn2:association id="association_DVeZRQ" sourceRef="event_RsEmoA" targetRef="textAnnotation_fFO8tQ">
<bpmn2:documentation id="documentation_F1PtLg"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_kT136g" imixs:activityid="200" name="[cargosoft]">
<bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Update from Cargosoft ]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Data update Cargosoft.]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_fqWsmw"/>
<bpmn2:outgoing>sequenceFlow_5iTFQQ</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_5iTFQQ" sourceRef="event_kT136g" targetRef="task_NohgrQ">
<bpmn2:documentation id="documentation_Ojmlhg"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram">
<bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1">
<bpmndi:BPMNShape bpmnElement="event_WmkBvw" id="BPMNShape_heefeQ">
<dc:Bounds height="36.0" width="36.0" x="57.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="67.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_6qfN6w">
<dc:Bounds height="20.0" width="100.0" x="25.0" y="316.0"/>
<dc:Bounds height="20.0" width="100.0" x="35.0" y="226.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1clvlg" id="BPMNShape_85k4rg">
<dc:Bounds height="36.0" width="36.0" x="1657.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="1517.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_F7t2Ng">
<dc:Bounds height="20.0" width="100.0" x="1625.0" y="259.0"/>
<dc:Bounds height="20.0" width="100.0" x="1485.0" y="169.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_ToMZaQ" id="BPMNShape_CUpR6w">
<dc:Bounds height="50.0" width="110.0" x="170.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="190.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="participant_oxb3dg" id="BPMNShape_mqlDUA">
<dc:Bounds height="820.0" width="1820.0" x="-30.0" y="40.0"/>
@ -624,259 +686,302 @@
<dc:Bounds height="820.0" width="1790.0" x="0.0" y="40.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_25otUg" id="BPMNEdge_NHnc3g" sourceElement="BPMNShape_heefeQ" targetElement="BPMNShape_CUpR6w">
<di:waypoint x="93.0" y="295.0"/>
<di:waypoint x="170.0" y="295.0"/>
<di:waypoint x="103.0" y="205.0"/>
<di:waypoint x="190.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_Q80A1Q" id="BPMNShape_7JA0nw">
<dc:Bounds height="50.0" width="110.0" x="660.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="580.0" y="440.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_B8Pi7A" id="BPMNShape_ghujeA">
<dc:Bounds height="50.0" width="110.0" x="1360.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="1350.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_aSdkwg" id="BPMNShape_uesqgg">
<dc:Bounds height="36.0" width="36.0" x="437.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="447.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_AxKRKQ">
<dc:Bounds height="20.0" width="100.0" x="405.0" y="316.0"/>
<dc:Bounds height="20.0" width="100.0" x="415.0" y="226.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_S9LVXg" id="BPMNEdge_xoCSiA" sourceElement="BPMNShape_CUpR6w" targetElement="BPMNShape_6IZk7Q">
<di:waypoint x="280.0" y="295.0"/>
<di:waypoint x="340.0" y="295.0"/>
<di:waypoint x="300.0" y="205.0"/>
<di:waypoint x="350.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_Tr0aug" id="BPMNShape_NEaJjA">
<dc:Bounds height="36.0" width="36.0" x="1237.0" y="277.0"/>
<dc:Bounds height="36.0" width="36.0" x="1267.0" y="187.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_GkrCTA">
<dc:Bounds height="20.0" width="100.0" x="1203.0" y="255.0"/>
<dc:Bounds height="20.0" width="100.0" x="1233.0" y="165.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_1mXO8A" id="BPMNEdge_7CorJA" sourceElement="BPMNShape_NEaJjA" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1273.0" y="295.0"/>
<di:waypoint x="1360.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rwdWxw" id="BPMNEdge_t88dUw" sourceElement="BPMNShape_ghujeA" targetElement="BPMNShape_85k4rg">
<di:waypoint x="1470.0" y="295.0"/>
<di:waypoint x="1657.0" y="295.0"/>
<di:waypoint x="1460.0" y="205.0"/>
<di:waypoint x="1517.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="dataObject_UQIXAQ" id="BPMNShape_Mnop9Q">
<dc:Bounds height="50.0" width="35.0" x="560.0" y="380.0"/>
<dc:Bounds height="50.0" width="35.0" x="470.0" y="480.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_h0UuFw">
<dc:Bounds height="20.0" width="100.0" x="527.5" y="435.0"/>
<dc:Bounds height="20.0" width="100.0" x="446.5" y="530.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_vwH0cA" id="BPMNShape_OXGg8Q">
<dc:Bounds height="36.0" width="36.0" x="747.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="617.0" y="357.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_KaHfJQ">
<dc:Bounds height="20.0" width="100.0" x="715.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="585.0" y="396.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_avahXg" id="BPMNEdge_odMtvQ" sourceElement="BPMNShape_OXGg8Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="747.0" y="196.0"/>
<di:waypoint x="725.0" y="196.0"/>
<di:waypoint x="725.0" y="270.0"/>
<di:waypoint x="635.0" y="393.0"/>
<di:waypoint x="635.0" y="440.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_uvV8uA" id="BPMNEdge_3Mtxfw" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_7JA0nw"/>
<bpmndi:BPMNEdge bpmnElement="association_mpLQEQ" id="BPMNEdge_qkEiPA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="588.0" y="380.0"/>
<di:waypoint x="588.0" y="357.0"/>
<di:waypoint x="680.0" y="357.0"/>
<di:waypoint x="680.0" y="320.0"/>
<di:waypoint x="489.0" y="480.0"/>
<di:waypoint x="489.0" y="469.0"/>
<di:waypoint x="580.0" y="469.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="textAnnotation_LyGTCw" id="BPMNShape_SbxnGw">
<dc:Bounds height="85.0" width="228.0" x="80.0" y="80.0"/>
<dc:Bounds height="89.0" width="370.0" x="70.0" y="70.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_83sZPw" id="BPMNEdge_p0XWxg" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_SbxnGw"/>
<bpmndi:BPMNShape bpmnElement="event_TuyuwQ" id="BPMNShape_fTy7mg">
<dc:Bounds height="36.0" width="36.0" x="617.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="517.0" y="357.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_033n1A">
<dc:Bounds height="20.0" width="100.0" x="585.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="485.0" y="396.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_9atLFA" id="BPMNEdge_BC4pwQ" sourceElement="BPMNShape_fTy7mg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="653.0" y="196.0"/>
<di:waypoint x="700.0" y="196.0"/>
<di:waypoint x="700.0" y="270.0"/>
<di:waypoint x="553.0" y="375.0"/>
<di:waypoint x="595.0" y="375.0"/>
<di:waypoint x="595.0" y="440.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_h0Kk5g" id="BPMNShape_T4k09g">
<dc:Bounds height="36.0" width="36.0" x="1327.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="1307.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_lX0KlA">
<dc:Bounds height="20.0" width="100.0" x="1295.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="1275.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_gC0I9w" id="BPMNEdge_0nCVvg" sourceElement="BPMNShape_T4k09g" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1360.0" y="185.0"/>
<di:waypoint x="1390.0" y="185.0"/>
<di:waypoint x="1390.0" y="270.0"/>
<di:waypoint x="1342.0" y="88.0"/>
<di:waypoint x="1379.0" y="88.0"/>
<di:waypoint x="1379.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_delO7Q" id="BPMNShape_rEOMWA">
<dc:Bounds height="50.0" width="110.0" x="660.0" y="510.0"/>
<dc:Bounds height="50.0" width="110.0" x="580.0" y="660.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1OVorA" id="BPMNShape_mG4csA">
<dc:Bounds height="36.0" width="36.0" x="557.0" y="517.0"/>
<dc:Bounds height="36.0" width="36.0" x="477.0" y="667.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_djIb8w">
<dc:Bounds height="20.0" width="100.0" x="528.0" y="559.0"/>
<dc:Bounds height="20.0" width="100.0" x="456.0" y="704.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_baWU4w" id="BPMNShape_755HGg">
<dc:Bounds height="36.0" width="36.0" x="697.0" y="407.0"/>
<dc:Bounds height="36.0" width="36.0" x="617.0" y="537.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_oN6XKQ">
<dc:Bounds height="20.0" width="100.0" x="665.0" y="446.0"/>
<dc:Bounds height="20.0" width="100.0" x="585.0" y="576.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_pvIENQ" id="BPMNEdge_wXz5yA" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_755HGg">
<di:waypoint x="715.0" y="510.0"/>
<di:waypoint x="715.0" y="443.0"/>
<di:waypoint x="635.0" y="660.0"/>
<di:waypoint x="635.0" y="573.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b4BcVA" id="BPMNEdge_1gQ5Nw" sourceElement="BPMNShape_755HGg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="715.0" y="407.0"/>
<di:waypoint x="715.0" y="320.0"/>
<di:waypoint x="635.0" y="537.0"/>
<di:waypoint x="635.0" y="490.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_ofjVfg" id="BPMNShape_hDVKtg">
<dc:Bounds height="36.0" width="36.0" x="617.0" y="607.0"/>
<dc:Bounds height="36.0" width="36.0" x="577.0" y="747.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_HpXNFQ">
<dc:Bounds height="20.0" width="100.0" x="585.0" y="646.0"/>
<dc:Bounds height="20.0" width="100.0" x="545.0" y="786.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BWOtzA" id="BPMNEdge_KW5PhQ" sourceElement="BPMNShape_hDVKtg" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="651.0" y="616.0"/>
<di:waypoint x="685.0" y="616.0"/>
<di:waypoint x="685.0" y="560.0"/>
<di:waypoint x="601.0" y="748.0"/>
<di:waypoint x="601.0" y="728.0"/>
<di:waypoint x="635.0" y="728.0"/>
<di:waypoint x="635.0" y="710.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_i7yQVw" id="BPMNShape_KxnRjA">
<dc:Bounds height="36.0" width="36.0" x="747.0" y="607.0"/>
<dc:Bounds height="36.0" width="36.0" x="647.0" y="747.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_sJqwmA">
<dc:Bounds height="20.0" width="100.0" x="715.0" y="646.0"/>
<dc:Bounds height="20.0" width="100.0" x="615.0" y="786.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ofWWuw" id="BPMNEdge_zlNOzQ" sourceElement="BPMNShape_KxnRjA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="749.0" y="616.0"/>
<di:waypoint x="735.0" y="616.0"/>
<di:waypoint x="735.0" y="560.0"/>
<di:waypoint x="669.0" y="747.0"/>
<di:waypoint x="669.0" y="724.0"/>
<di:waypoint x="635.0" y="724.0"/>
<di:waypoint x="635.0" y="710.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0Bj3Q" id="BPMNEdge_CDn41A" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="770.0" y="540.0"/>
<di:waypoint x="1254.0" y="540.0"/>
<di:waypoint x="1254.0" y="313.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_T5L9aQ" id="BPMNEdge_dAQH1Q" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_FKXJtw">
<di:waypoint x="770.0" y="295.0"/>
<di:waypoint x="837.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0Bj3Q" id="BPMNEdge_CDn41A" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_pgz20Q">
<di:waypoint x="690.0" y="688.0"/>
<di:waypoint x="1166.0" y="688.0"/>
<di:waypoint x="1166.0" y="229.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="gateway_uK0c6g" id="BPMNShape_6IZk7Q">
<dc:Bounds height="50.0" width="50.0" x="340.0" y="270.0"/>
<dc:Bounds height="50.0" width="50.0" x="350.0" y="180.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_JvBA0w">
<dc:Bounds height="20.0" width="100.0" x="315.0" y="323.0"/>
<dc:Bounds height="20.0" width="100.0" x="325.0" y="233.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_jAU3VA" id="BPMNEdge_2qLI2g" sourceElement="BPMNShape_6IZk7Q" targetElement="BPMNShape_uesqgg">
<di:waypoint x="390.0" y="295.0"/>
<di:waypoint x="437.0" y="295.0"/>
<di:waypoint x="400.0" y="205.0"/>
<di:waypoint x="447.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BHsRkQ" id="BPMNEdge_1LX47g" sourceElement="BPMNShape_mG4csA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="593.0" y="535.0"/>
<di:waypoint x="660.0" y="535.0"/>
<di:waypoint x="513.0" y="685.0"/>
<di:waypoint x="580.0" y="685.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_WgLbbg" id="BPMNEdge_Btz9CA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="575.0" y="430.0"/>
<di:waypoint x="575.0" y="471.0"/>
<di:waypoint x="675.0" y="471.0"/>
<di:waypoint x="675.0" y="510.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8O1EtQ" id="BPMNEdge_JxSLfA" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="473.0" y="295.0"/>
<di:waypoint x="660.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8O1EtQ" id="BPMNEdge_JxSLfA" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_VljsIw">
<di:waypoint x="483.0" y="205.0"/>
<di:waypoint x="580.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_6250fg" id="BPMNShape_v5Xzvg">
<dc:Bounds height="36.0" width="36.0" x="1457.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="1447.0" y="77.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_IBnUDA">
<dc:Bounds height="20.0" width="100.0" x="1425.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="1415.0" y="116.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_kS2fMA" id="BPMNEdge_i80XvQ" sourceElement="BPMNShape_v5Xzvg" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1458.0" y="190.0"/>
<di:waypoint x="1435.0" y="190.0"/>
<di:waypoint x="1435.0" y="270.0"/>
<di:waypoint x="1448.0" y="88.0"/>
<di:waypoint x="1424.0" y="88.0"/>
<di:waypoint x="1424.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_VM0fEQ" id="BPMNShape_FKXJtw">
<dc:Bounds height="36.0" width="36.0" x="837.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_CAiT2Q">
<dc:Bounds height="20.0" width="100.0" x="805.0" y="316.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="gateway_s0J53g" id="BPMNShape_gklxXQ">
<dc:Bounds height="50.0" width="50.0" x="930.0" y="270.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_I4jC0g">
<dc:Bounds height="20.0" width="100.0" x="905.0" y="323.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_NohgrQ" id="BPMNShape_VljsIw">
<dc:Bounds height="50.0" width="110.0" x="1060.0" y="270.0"/>
<dc:Bounds height="50.0" width="110.0" x="580.0" y="180.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_MPlPww" id="BPMNEdge_rt2H3g" sourceElement="BPMNShape_FKXJtw" targetElement="BPMNShape_gklxXQ">
<di:waypoint x="873.0" y="295.0"/>
<di:waypoint x="930.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_aH0vCQ" id="BPMNEdge_YMnxQQ" sourceElement="BPMNShape_gklxXQ" targetElement="BPMNShape_VljsIw">
<di:waypoint x="980.0" y="295.0"/>
<di:waypoint x="1060.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ShuXXA" id="BPMNEdge_DY4O8Q" sourceElement="BPMNShape_gklxXQ" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="956.0" y="319.0"/>
<di:waypoint x="956.0" y="364.0"/>
<di:waypoint x="746.0" y="364.0"/>
<di:waypoint x="746.0" y="320.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_neSsFQ" id="BPMNEdge_b7C0wQ" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="1170.0" y="295.0"/>
<di:waypoint x="1237.0" y="295.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_neSsFQ" id="BPMNEdge_b7C0wQ" sourceElement="BPMNShape_pgz20Q" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="1190.0" y="205.0"/>
<di:waypoint x="1267.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_AMs05g" id="BPMNShape_rS0hsw">
<dc:Bounds height="36.0" width="36.0" x="477.0" y="517.0"/>
<dc:Bounds height="36.0" width="36.0" x="357.0" y="667.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_XcN2Og">
<dc:Bounds height="20.0" width="100.0" x="445.0" y="556.0"/>
<dc:Bounds height="20.0" width="100.0" x="325.0" y="706.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_feLZFQ" id="BPMNShape_uklBfA">
<dc:Bounds height="36.0" width="36.0" x="347.0" y="367.0"/>
<dc:Bounds height="36.0" width="36.0" x="447.0" y="267.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_OengAQ">
<dc:Bounds height="20.0" width="100.0" x="315.0" y="406.0"/>
<dc:Bounds height="20.0" width="100.0" x="415.0" y="306.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_5pT4Tw" id="BPMNEdge_LZMXxg" sourceElement="BPMNShape_rS0hsw" targetElement="BPMNShape_mG4csA">
<di:waypoint x="513.0" y="535.0"/>
<di:waypoint x="557.0" y="535.0"/>
<di:waypoint x="393.0" y="685.0"/>
<di:waypoint x="477.0" y="685.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_8BTEtw" id="BPMNEdge_Os7FVw" sourceElement="BPMNShape_6IZk7Q" targetElement="BPMNShape_uklBfA">
<di:waypoint x="365.0" y="320.0"/>
<di:waypoint x="365.0" y="367.0"/>
<di:waypoint x="375.0" y="230.0"/>
<di:waypoint x="375.0" y="287.0"/>
<di:waypoint x="447.0" y="287.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_GTXFMw" id="BPMNShape_5I6iNA">
<dc:Bounds height="36.0" width="36.0" x="847.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="887.0" y="447.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_80daBg">
<dc:Bounds height="20.0" width="100.0" x="815.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="855.0" y="486.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_03b60w" id="BPMNEdge_ehQBOQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_5I6iNA">
<di:waypoint x="770.0" y="294.0"/>
<di:waypoint x="809.0" y="294.0"/>
<di:waypoint x="809.0" y="195.0"/>
<di:waypoint x="847.0" y="195.0"/>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_03b60w" id="BPMNEdge_ehQBOQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_eV4QYA">
<di:waypoint x="690.0" y="465.0"/>
<di:waypoint x="770.0" y="465.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_u8OBFg" id="BPMNShape_Kp730Q">
<dc:Bounds height="36.0" width="36.0" x="1147.0" y="177.0"/>
<dc:Bounds height="36.0" width="36.0" x="617.0" y="97.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_iUQ02A">
<dc:Bounds height="20.0" width="100.0" x="1115.0" y="216.0"/>
<dc:Bounds height="20.0" width="100.0" x="585.0" y="136.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_zd6RWA" id="BPMNEdge_6qKC4A" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_Kp730Q">
<di:waypoint x="1114.0" y="270.0"/>
<di:waypoint x="1114.0" y="195.0"/>
<di:waypoint x="1147.0" y="195.0"/>
<di:waypoint x="635.0" y="180.0"/>
<di:waypoint x="635.0" y="133.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rNZ3tw" id="BPMNEdge_zrajzA" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_FKXJtw">
<di:waypoint x="1080.0" y="270.0"/>
<di:waypoint x="1080.0" y="237.0"/>
<di:waypoint x="855.0" y="237.0"/>
<di:waypoint x="855.0" y="277.0"/>
<bpmndi:BPMNEdge bpmnElement="association_naJOPw" id="BPMNEdge_f40gog" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="492.0" y="530.0"/>
<di:waypoint x="492.0" y="574.0"/>
<di:waypoint x="609.0" y="574.0"/>
<di:waypoint x="609.0" y="645.0"/>
<di:waypoint x="635.0" y="645.0"/>
<di:waypoint x="635.0" y="660.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="gateway_ERhYvA" id="BPMNShape_pgz20Q">
<dc:Bounds height="50.0" width="50.0" x="1140.0" y="180.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_ozTaUg">
<dc:Bounds height="20.0" width="100.0" x="1115.0" y="233.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_u2Ftag" id="BPMNEdge_K00Qrw" sourceElement="BPMNShape_VljsIw" targetElement="BPMNShape_pgz20Q">
<di:waypoint x="690.0" y="205.0"/>
<di:waypoint x="1140.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_Hrl9Qg" id="BPMNEdge_Zsl1NA" sourceElement="BPMNShape_NEaJjA" targetElement="BPMNShape_ghujeA">
<di:waypoint x="1303.0" y="205.0"/>
<di:waypoint x="1350.0" y="205.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_lDrpWg" id="BPMNEdge_ZOt0GA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_VljsIw">
<di:waypoint x="470.0" y="505.0"/>
<di:waypoint x="447.0" y="505.0"/>
<di:waypoint x="447.0" y="333.0"/>
<di:waypoint x="635.0" y="333.0"/>
<di:waypoint x="635.0" y="230.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_RsEmoA" id="BPMNShape_lZzA0g">
<dc:Bounds height="36.0" width="36.0" x="887.0" y="517.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_ThKeHQ">
<dc:Bounds height="20.0" width="100.0" x="855.0" y="556.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="gateway_Sg02EQ" id="BPMNShape_eV4QYA">
<dc:Bounds height="50.0" width="50.0" x="770.0" y="440.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_powKOA">
<dc:Bounds height="20.0" width="100.0" x="745.0" y="493.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_oc3zTQ" id="BPMNEdge_2zS3EQ" sourceElement="BPMNShape_eV4QYA" targetElement="BPMNShape_5I6iNA">
<di:waypoint x="820.0" y="465.0"/>
<di:waypoint x="887.0" y="465.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_izMKCw" id="BPMNEdge_n4CqbQ" sourceElement="BPMNShape_eV4QYA" targetElement="BPMNShape_lZzA0g">
<di:waypoint x="795.0" y="490.0"/>
<di:waypoint x="795.0" y="535.0"/>
<di:waypoint x="887.0" y="535.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_0vmPSg" id="BPMNShape_FNYjvQ">
<dc:Bounds height="36.0" width="36.0" x="977.0" y="517.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_0d7aBQ">
<dc:Bounds height="20.0" width="100.0" x="945.0" y="556.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_ZYEq8w" id="BPMNShape_T9AlLA">
<dc:Bounds height="36.0" width="36.0" x="517.0" y="97.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_5brQaA">
<dc:Bounds height="20.0" width="100.0" x="485.0" y="136.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_cqiAow" id="BPMNEdge_qcSOaQ" sourceElement="BPMNShape_T9AlLA" targetElement="BPMNShape_VljsIw">
<di:waypoint x="553.0" y="115.0"/>
<di:waypoint x="596.0" y="115.0"/>
<di:waypoint x="596.0" y="180.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_i0zvhQ" id="BPMNEdge_nGVEuQ" sourceElement="BPMNShape_lZzA0g" targetElement="BPMNShape_FNYjvQ">
<di:waypoint x="923.0" y="535.0"/>
<di:waypoint x="977.0" y="535.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="textAnnotation_fFO8tQ" id="BPMNShape_SFqnbw">
<dc:Bounds height="53.0" width="219.0" x="800.0" y="620.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_DVeZRQ" id="BPMNEdge_C8Mu0w" sourceElement="BPMNShape_lZzA0g" targetElement="BPMNShape_SFqnbw">
<di:waypoint x="905.0" y="553.0"/>
<di:waypoint x="905.0" y="587.0"/>
<di:waypoint x="910.0" y="587.0"/>
<di:waypoint x="910.0" y="620.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_kT136g" id="BPMNShape_JolBOA">
<dc:Bounds height="36.0" width="36.0" x="767.0" y="97.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_Aun9oA">
<dc:Bounds height="20.0" width="100.0" x="735.0" y="136.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_5iTFQQ" id="BPMNEdge_skiy4w" sourceElement="BPMNShape_JolBOA" targetElement="BPMNShape_VljsIw">
<di:waypoint x="767.0" y="115.0"/>
<di:waypoint x="683.0" y="115.0"/>
<di:waypoint x="683.0" y="180.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>