BusinessPartner Suche über Rest API

This commit is contained in:
Ralph Soika 2025-02-13 18:23:07 +01:00
parent ccc4584f91
commit 90d624d585
11 changed files with 766 additions and 173 deletions

39
doc/BUSINESSPARTNER.md Normal file
View file

@ -0,0 +1,39 @@
# BusinessPartner
Wir haben einen Workflow für die Verwaltung von BusinessPartner.
Ein BusinessPartner wird über die bestehende Cargosoft Schnittstelle aus den Debitoren/Kreditoren automatisch importiert und synchronisiert.
In Imixs ist es dann aber möglich zusätzliche Attribute zu einem Businesspartner zu speichern. Beispielsweise:
- Zahlungsziel
- Bankverbindungen
- Emailadressen für Mahnwesen
Die Businessparnter werden zentral nur in dem Hauptsystem in Bremen importiert und verwaltet. Damit ein AGL System auf die BusinessPartner zugreifen kann wird eine Rest API Schnittstelle verwendet. Diese kann über Environmentvariablen aktiviert werden:
# Rest Service BusinessPartner API
WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
WORKFLOW_SERVICE_USER: "admin"
WORKFLOW_SERVICE_PASSWORD: "xxxxxxxx"
## BusinessPartner Suche
Es gibt einen Controller und ein widget um nach Business Partnern zu suchen.
<img src="images/businesspartner-widget.png" />
Z.b. kann das als Custom Part in eine Form eingebunden werden:
```xml
<item name="bpid" type="custom" path="alexander/businesspartner_search" required="true" label="Businesspartner:" />
```
Das widget legt dann automatisch die felder `bpid` und `bpidname` an.
Alternativ kann im Backend über die EJB BusinessPartnerService nach bpid gesucht werden:
```java
List<ItemCollection> resultList = businessPartnerService.search(phrase);
// oder
ItemCollection bp= businessPartnerService.getBusinessPartnerByID("BP0001");
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -36,6 +36,11 @@ services:
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)" #OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
OCR_PDF_MODE: "OCR_ONLY" OCR_PDF_MODE: "OCR_ONLY"
# Rest Service BusinessPartner API
WORKFLOW_SERVICE_ENDPOINT: "http://app:8080/api"
WORKFLOW_SERVICE_USER: "admin"
WORKFLOW_SERVICE_PASSWORD: "adminadmin"
LLM_SERVICE_ENDPOINT_USER: "admin" LLM_SERVICE_ENDPOINT_USER: "admin"
LLM_SERVICE_ENDPOINT_PASSWORD: "imixs4.null" LLM_SERVICE_ENDPOINT_PASSWORD: "imixs4.null"

View file

@ -28,9 +28,7 @@ import java.io.Serializable;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -102,7 +100,6 @@ public class BusinessPartnerController implements Serializable {
} }
logger.fine("search for=" + phrase); logger.fine("search for=" + phrase);
resultList = businessPartnerService.search(phrase); resultList = businessPartnerService.search(phrase);
logger.info("found " + resultList.size() + " businesspartners");
// Compile the regex pattern // Compile the regex pattern
logger.fine("regex=" + regexPattern); logger.fine("regex=" + regexPattern);
Pattern pattern = null; Pattern pattern = null;
@ -159,17 +156,17 @@ public class BusinessPartnerController implements Serializable {
// reset orderItems if workItem has changed // reset orderItems if workItem has changed
if (WorkflowEvent.WORKITEM_CHANGED == eventType || WorkflowEvent.WORKITEM_CREATED == eventType) { if (WorkflowEvent.WORKITEM_CHANGED == eventType || WorkflowEvent.WORKITEM_CREATED == eventType) {
// reset state // reset state
explodeIBANList(workitem); ibanList = BusinessPartnerService.explodeBanks(workitem);
} }
// before the workitem is saved we update the field txtOrderItems // before the workitem is saved we update the field txtOrderItems
if (WorkflowEvent.WORKITEM_BEFORE_PROCESS == eventType) { if (WorkflowEvent.WORKITEM_BEFORE_PROCESS == eventType) {
implodeIBANList(workitem); BusinessPartnerService.implodeBanks(workitem, ibanList);
} }
if (WorkflowEvent.WORKITEM_AFTER_PROCESS == eventType) { if (WorkflowEvent.WORKITEM_AFTER_PROCESS == eventType) {
// reset state // reset state
explodeIBANList(workitem); ibanList = BusinessPartnerService.explodeBanks(workitem);
} }
} }
@ -202,58 +199,6 @@ public class BusinessPartnerController implements Serializable {
} }
} }
protected void implodeIBANList(ItemCollection workitem) {
List<Map> mapOrderItems = new ArrayList();
if (this.ibanList != null) {
logger.fine("Convert child items into Map...");
Iterator<?> var3 = this.ibanList.iterator();
while (var3.hasNext()) {
ItemCollection orderItem = (ItemCollection) var3.next();
mapOrderItems.add(orderItem.getAllItems());
}
workitem.replaceItemValue("partner.iban.list", mapOrderItems);
}
}
protected void explodeIBANList(ItemCollection workitem) {
this.ibanList = new ArrayList();
List<Object> mapOrderItems = workitem.getItemValue("partner.iban.list");
Iterator<?> var4 = mapOrderItems.iterator();
while (var4.hasNext()) {
Object mapOderItem = var4.next();
if (mapOderItem instanceof Map) {
ItemCollection itemCol = new ItemCollection((Map) mapOderItem);
this.ibanList.add(itemCol);
}
}
}
/**
* Liefert die ChildItems mit den IBAN daten
*
* @param workitem
* @return
*/
public List<ItemCollection> getIBANList(ItemCollection workitem) {
List<ItemCollection> result = new ArrayList<>();
List<Object> mapOrderItems = workitem.getItemValue("partner.iban.list");
Iterator<?> var4 = mapOrderItems.iterator();
while (var4.hasNext()) {
Object mapOderItem = var4.next();
if (mapOderItem instanceof Map) {
ItemCollection itemCol = new ItemCollection((Map) mapOderItem);
result.add(itemCol);
}
}
return result;
}
/** /**
* Hilfsmethode die eine JSON Struktur mit allen relevanten Daten für einen * Hilfsmethode die eine JSON Struktur mit allen relevanten Daten für einen
* BusinessPartner erzeugt. * BusinessPartner erzeugt.
@ -269,7 +214,7 @@ public class BusinessPartnerController implements Serializable {
// get iban list // get iban list
// {iban=[Dxxxxxx1], name=[Bank 1], id=[bank1], bic=[CITIDEFF]} // {iban=[Dxxxxxx1], name=[Bank 1], id=[bank1], bic=[CITIDEFF]}
ibanList = getIBANList(businessPartner); ibanList = BusinessPartnerService.getBanks(businessPartner);
int i = 1; int i = 1;
for (ItemCollection iban : ibanList) { for (ItemCollection iban : ibanList) {
objectBuilder.add("iban" + 1, jsonVal(iban.getItemValueString("iban"))). // objectBuilder.add("iban" + 1, jsonVal(iban.getItemValueString("iban"))). //
@ -299,4 +244,5 @@ public class BusinessPartnerController implements Serializable {
val = val.replace("'", ""); val = val.replace("'", "");
return val; return val;
} }
} }

View file

@ -27,16 +27,24 @@
package com.alexanderlogistics; package com.alexanderlogistics;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import org.imixs.melman.DocumentClient;
import org.imixs.melman.FormAuthenticator;
import org.imixs.melman.RestAPIException;
import org.imixs.workflow.ItemCollection; import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.ItemCollectionComparator; import org.imixs.workflow.ItemCollectionComparator;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.index.SchemaService; import org.imixs.workflow.engine.index.SchemaService;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.security.DeclareRoles; import jakarta.annotation.security.DeclareRoles;
import jakarta.annotation.security.RolesAllowed; import jakarta.annotation.security.RolesAllowed;
import jakarta.annotation.security.RunAs; import jakarta.annotation.security.RunAs;
@ -62,15 +70,79 @@ import jakarta.inject.Inject;
public class BusinessPartnerService { public class BusinessPartnerService {
public static final int MAX_SEARCH_RESULT = 100; public static final int MAX_SEARCH_RESULT = 100;
public static final String ITEM_IBAN_LIST = "partner.bank.list";
public static final String WORKFLOW_SERVICE_ENDPOINT = "workflow.service.endpoint";
public static final String WORKFLOW_SERVICE_USER = "workflow.service.user";
public static final String WORKFLOW_SERVICE_PASSWORD = "workflow.service.password";
private static Logger logger = Logger.getLogger(BusinessPartnerService.class.getName()); private static Logger logger = Logger.getLogger(BusinessPartnerService.class.getName());
private FormAuthenticator formAuthenticator;
@Inject @Inject
DocumentService documentService; @ConfigProperty(name = WORKFLOW_SERVICE_ENDPOINT)
Optional<String> workflowServiceEndpoint;
@Inject
@ConfigProperty(name = WORKFLOW_SERVICE_USER)
Optional<String> workflowServiceUser;
@Inject
@ConfigProperty(name = WORKFLOW_SERVICE_PASSWORD)
Optional<String> workflowServicePassword;
// @Inject
// DocumentService documentService;
@Inject @Inject
SchemaService schemaService; SchemaService schemaService;
/**
* Initialize the rest clients
*/
@PostConstruct
public void init() {
// init clients
try {
initAuthenticator();
} catch (RestAPIException e) {
logger.severe("Failed to initalize Rest Clients: " + e.getMessage());
}
}
/**
* Diese Methode sucht einen Business Partner anhand seiner BPID
*
* @param bpid
* - business partner id phrase
* @return - matching business partner
*/
public ItemCollection getBusinessPartnerByID(String bpid) {
long l = System.currentTimeMillis();
if (bpid == null || bpid.isEmpty()) {
return null;
}
List<ItemCollection> result;
try {
String sQuery = "(type:\"workitem\") AND ($modelversion:businesspartner-*)";
sQuery += " AND (name:" + bpid.trim() + ")";
logger.finest("SearchQuery= " + sQuery);
// register client
DocumentClient documentClient = getDocumentClient();
documentClient.setPageSize(MAX_SEARCH_RESULT);
documentClient.setPageSize(1);
result = documentClient.searchDocuments(sQuery);
if (result.size() > 0) {
logger.info("🕐 get BusinessPartner by id in " + (System.currentTimeMillis() - l) + "ms");
return result.get(0);
}
} catch (RestAPIException | UnsupportedEncodingException e) {
logger.warning("Failed to get BusinessPartner: " + e.getMessage());
}
return null;
}
/** /**
* Diese Methode sucht Business Partner anhand einer Suchphrase * Diese Methode sucht Business Partner anhand einer Suchphrase
* *
@ -79,7 +151,7 @@ public class BusinessPartnerService {
* @return - list of matching business partners * @return - list of matching business partners
*/ */
public List<ItemCollection> search(String phrase) { public List<ItemCollection> search(String phrase) {
long l = System.currentTimeMillis();
List<ItemCollection> searchResult = new ArrayList<ItemCollection>(); List<ItemCollection> searchResult = new ArrayList<ItemCollection>();
if (phrase == null || phrase.isEmpty()) { if (phrase == null || phrase.isEmpty()) {
return searchResult; return searchResult;
@ -94,13 +166,113 @@ public class BusinessPartnerService {
logger.finest("SearchQuery= " + sQuery); logger.finest("SearchQuery= " + sQuery);
searchResult = documentService.find(sQuery, MAX_SEARCH_RESULT, 0); // register client
} catch (Exception e) { DocumentClient documentClient = getDocumentClient();
documentClient.setPageSize(MAX_SEARCH_RESULT);
searchResult = documentClient.searchDocuments(sQuery);
} catch (RestAPIException | UnsupportedEncodingException e) {
logger.warning(" lucene error - " + e.getMessage()); logger.warning(" lucene error - " + e.getMessage());
formAuthenticator = null;
} }
// sort by txtname.. // sort by txtname..
Collections.sort(searchResult, new ItemCollectionComparator("$workflowsummary", true)); Collections.sort(searchResult, new ItemCollectionComparator("$workflowsummary", true));
logger.info("🕐 BusinessPartner search: " + searchResult.size() + " entries in "
+ (System.currentTimeMillis() - l) + "ms");
return searchResult; return searchResult;
} }
private DocumentClient getDocumentClient() {
DocumentClient documentClient = null;
try {
if (formAuthenticator == null) {
initAuthenticator();
}
documentClient = new DocumentClient(workflowServiceEndpoint.get());
documentClient.registerClientRequestFilter(formAuthenticator);
} catch (RestAPIException e) {
logger.warning("Failed to init RestClient: " + e.getMessage());
formAuthenticator = null;
}
return documentClient;
}
/**
* Packt die Liste der Bank Details (ItemCollections) in ein Workitem
*
* @param workitem
*/
public static void implodeBanks(ItemCollection workitem, List<ItemCollection> ibanList) {
List<Map> mapOrderItems = new ArrayList();
if (ibanList != null) {
logger.fine("Convert child items into Map...");
Iterator<?> var3 = ibanList.iterator();
while (var3.hasNext()) {
ItemCollection orderItem = (ItemCollection) var3.next();
mapOrderItems.add(orderItem.getAllItems());
}
workitem.replaceItemValue(BusinessPartnerService.ITEM_IBAN_LIST, mapOrderItems);
}
}
/**
* Enpackt die iban Map Liste von eiem Worktiem in eine Liste von ItemCollection
*
* @param workitem
*/
public static List<ItemCollection> explodeBanks(ItemCollection workitem) {
List<ItemCollection> ibanList = new ArrayList();
List<Object> mapOrderItems = workitem.getItemValue(BusinessPartnerService.ITEM_IBAN_LIST);
Iterator<?> var4 = mapOrderItems.iterator();
while (var4.hasNext()) {
Object mapOderItem = var4.next();
if (mapOderItem instanceof Map) {
ItemCollection itemCol = new ItemCollection((Map) mapOderItem);
ibanList.add(itemCol);
}
}
return ibanList;
}
/**
* Liefert die ChildItems mit den IBAN daten
*
* @param workitem
* @return
*/
public static List<ItemCollection> getBanks(ItemCollection workitem) {
List<ItemCollection> result = new ArrayList<>();
List<Object> mapOrderItems = workitem.getItemValue(BusinessPartnerService.ITEM_IBAN_LIST);
Iterator<?> var4 = mapOrderItems.iterator();
while (var4.hasNext()) {
Object mapOderItem = var4.next();
if (mapOderItem instanceof Map) {
ItemCollection itemCol = new ItemCollection((Map) mapOderItem);
result.add(itemCol);
}
}
return result;
}
/**
* Helper method to initalize a Melman FormAuthenticator
*
* @throws RestAPIException
*/
public void initAuthenticator() throws RestAPIException {
logger.info("⚡ Init FormAuthenticator...");
// form authenticator
formAuthenticator = new FormAuthenticator(workflowServiceEndpoint.get(), workflowServiceUser.get(),
workflowServicePassword.get());
}
} }

View file

@ -0,0 +1,104 @@
/*
* Imixs-Workflow
*
* Copyright (C) 2001-2020 Imixs Software Solutions GmbH,
* http://www.imixs.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You can receive a copy of the GNU General Public
* License at http://www.gnu.org/licenses/gpl.html
*
* Project:
* https://www.imixs.org
* https://github.com/imixs/imixs-workflow
*
* Contributors:
* Imixs Software Solutions GmbH - Project Management
* Ralph Soika - Software Developer
*/
package com.alexanderlogistics.api;
import java.util.logging.Logger;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.jaxrs.DocumentRestService;
import com.alexanderlogistics.BusinessPartnerService;
import jakarta.ejb.Stateless;
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;
import jakarta.ws.rs.core.Response;
/**
* BusinessPartnerRestService api endpoint '/businesspartner' provides methods
* to read and post business partner data
*
* @version 1.0
* @author rsoika
*
*/
@Stateless
@Produces({ MediaType.TEXT_HTML, MediaType.APPLICATION_XHTML_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,
MediaType.TEXT_XML })
@Path("/businesspartner")
public class BusinessPartnerRestService {
@Inject
DocumentRestService documentRestService;
@Inject
BusinessPartnerService businessPartnerService;
private static Logger logger = Logger.getLogger(BusinessPartnerRestService.class.getName());
@GET
@Path("/ping")
public String ping() {
logger.info("GET ping");
return "ping: " + System.currentTimeMillis();
}
/**
* Test method
*
* @param workflowgroup
* @param task
* @return
* @throws QueryException
*/
@GET
@Path("/{bpid}")
@Produces({ MediaType.TEXT_HTML })
public Response getBusinessPartnerByID(@PathParam("bpid") String bpid,
@QueryParam("items") String items,
@QueryParam("format") String format)
throws QueryException {
ItemCollection workitem = businessPartnerService.getBusinessPartnerByID(bpid);
if (workitem == null) {
// document not found
return Response.status(Response.Status.NOT_FOUND).build();
}
return documentRestService.convertResult(workitem, items, format);
}
}

View file

@ -36,6 +36,7 @@ import java.util.logging.Logger;
import org.imixs.archive.core.SnapshotService; import org.imixs.archive.core.SnapshotService;
import org.imixs.workflow.ItemCollection; import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.WorkflowKernel;
import org.imixs.workflow.engine.DocumentEvent; import org.imixs.workflow.engine.DocumentEvent;
import org.imixs.workflow.engine.DocumentService; import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.ModelService; import org.imixs.workflow.engine.ModelService;
@ -46,6 +47,7 @@ import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException; import org.imixs.workflow.exceptions.ProcessingErrorException;
import org.imixs.workflow.exceptions.QueryException; import org.imixs.workflow.exceptions.QueryException;
import com.alexanderlogistics.BusinessPartnerService;
import com.alexanderlogistics.InvoiceUtil; import com.alexanderlogistics.InvoiceUtil;
import com.alexanderlogistics.KreditorDebitorService; import com.alexanderlogistics.KreditorDebitorService;
@ -158,7 +160,33 @@ public class BusinessPartnerImportService {
// hat sich das Objekt verändert? // hat sich das Objekt verändert?
if (!businesspartner.equals(oldBussinessPartnerItemColl)) { if (!businesspartner.equals(oldBussinessPartnerItemColl)) {
businesspartner.event(201); // update/create
// Prüfe IBAN auf plausibilität
List<ItemCollection> bankList = BusinessPartnerService.getBanks(businesspartner);
boolean ibanDublette = false;
List<String> dublettenIban = new ArrayList<>();
for (ItemCollection bank : bankList) {
String iban = bank.getItemValueString("iban");
// erkenne fehlerhaften kontonummern
if (dublettenIban.contains(iban)) {
// ACHTUNG - uneindeutige Bankverbindung
ibanDublette = true;
} else {
dublettenIban.add(iban);
}
}
int eventID = 200; // default
// event errechnen
if (!businesspartner.hasItem(WorkflowKernel.LASTEVENT)) {
// create new!
if (ibanDublette) {
eventID = 300; // Exception
} else {
eventID = 100; // update/create
}
}
businesspartner.setEventID(eventID);
try { try {
workflowService.processWorkItemByNewTransaction(businesspartner); workflowService.processWorkItemByNewTransaction(businesspartner);
} catch (AccessDeniedException | ProcessingErrorException | PluginException | ModelException e) { } catch (AccessDeniedException | ProcessingErrorException | PluginException | ModelException e) {
@ -234,7 +262,10 @@ public class BusinessPartnerImportService {
} }
// build partner.iban.list // build partner.iban.list - dublettenprüfung und Trim
List<String> dubletten = new ArrayList<>();
List<String> dublettenIban = new ArrayList<>();
if (ibanList.size() > 0) { if (ibanList.size() > 0) {
List<ItemCollection> bankList = new ArrayList<>(); List<ItemCollection> bankList = new ArrayList<>();
for (int i = 0; i < ibanList.size(); i++) { for (int i = 0; i < ibanList.size(); i++) {
@ -243,10 +274,20 @@ public class BusinessPartnerImportService {
if (bicList.size() > i) { if (bicList.size() > i) {
bic = bicList.get(i); bic = bicList.get(i);
} }
iban = superTrim(iban);
bic = superTrim(bic);
if (dubletten.contains(iban + "/" + bic)) {
// voll dublette
continue;
} else {
dubletten.add(iban + "/" + bic);
}
ItemCollection bank = new ItemCollection(); ItemCollection bank = new ItemCollection();
// {cdtr.iban=[A], name=[cdtr1], cdtr.name=[a], cdtr.bic=[a]} // {cdtr.iban=[A], name=[cdtr1], cdtr.name=[a], cdtr.bic=[a]}
bank.setItemValue("id", "bank" + i + 1); bank.setItemValue("id", "bank" + (i + 1));
bank.setItemValue("name", "Bank " + i + 1); bank.setItemValue("name", "Bank " + (i + 1));
bank.setItemValue("iban", iban); bank.setItemValue("iban", iban);
bank.setItemValue("bic", bic); bank.setItemValue("bic", bic);
@ -258,7 +299,7 @@ public class BusinessPartnerImportService {
ItemCollection orderItem = (ItemCollection) var3.next(); ItemCollection orderItem = (ItemCollection) var3.next();
mapOrderItems.add(orderItem.getAllItems()); mapOrderItems.add(orderItem.getAllItems());
} }
businessPartner.setItemValue("partner.iban.list", mapOrderItems); businessPartner.setItemValue(BusinessPartnerService.ITEM_IBAN_LIST, mapOrderItems);
} }
} catch (QueryException e) { } catch (QueryException e) {
@ -269,6 +310,15 @@ public class BusinessPartnerImportService {
return businessPartner; return businessPartner;
} }
/**
* entfernt alle leerzeichen
*/
public String superTrim(String data) {
String result = data.trim();
result = result.replace(" ", "");
return result;
}
/** /**
* Sucht nach einem Business partner * Sucht nach einem Business partner
* *

View file

@ -25,7 +25,7 @@
<!-- Dependency Versions --> <!-- Dependency Versions -->
<jakarta.version>10.0.0</jakarta.version> <jakarta.version>10.0.0</jakarta.version>
<org.imixs.office.version>5.0.4-SNAPSHOT</org.imixs.office.version> <org.imixs.office.version>5.0.4</org.imixs.office.version>
<org.imixs.workflow.version>6.0.9</org.imixs.workflow.version> <org.imixs.workflow.version>6.0.9</org.imixs.workflow.version>
<org.imixs.marty.version>5.0.0</org.imixs.marty.version> <org.imixs.marty.version>5.0.0</org.imixs.marty.version>
<org.imixs.archive.version>3.0.2</org.imixs.archive.version> <org.imixs.archive.version>3.0.2</org.imixs.archive.version>

View file

@ -4,6 +4,7 @@
<bpmn2:participant id="participant_d6UFsQ" name="Default Process" processRef="process_1"/> <bpmn2:participant id="participant_d6UFsQ" name="Default Process" processRef="process_1"/>
<bpmn2:participant id="participant_oxb3dg" name="Business Partner" processRef="process_Hw9Ryg"> <bpmn2:participant id="participant_oxb3dg" name="Business Partner" processRef="process_Hw9Ryg">
<bpmn2:documentation id="documentation_Jerngw"/> <bpmn2:documentation id="documentation_Jerngw"/>
<bpmn2:outgoing>association_83sZPw</bpmn2:outgoing>
</bpmn2:participant> </bpmn2:participant>
</bpmn2:collaboration> </bpmn2:collaboration>
<bpmn2:extensionElements> <bpmn2:extensionElements>
@ -25,9 +26,12 @@
<imixs:value><![CDATA[org.imixs.marty.plugins.SequenceNumberPlugin]]></imixs:value> <imixs:value><![CDATA[org.imixs.marty.plugins.SequenceNumberPlugin]]></imixs:value>
</imixs:item> </imixs:item>
<imixs:item name="txtfieldmapping" type="xs:string"> <imixs:item name="txtfieldmapping" type="xs:string">
<imixs:value><![CDATA[Creator|$creator]]></imixs:value> <imixs:value><![CDATA[Ersteller | $creator]]></imixs:value>
<imixs:value><![CDATA[Owner|$owner]]></imixs:value> <imixs:value><![CDATA[Aktueller Bearbeiter | $editor]]></imixs:value>
<imixs:value><![CDATA[Editor|$editor]]></imixs:value> <imixs:value><![CDATA[Eigentümer | $owner]]></imixs:value>
<imixs:value><![CDATA[Prozess-Verantwortliche| process.manager]]></imixs:value>
<imixs:value><![CDATA[Prozess-Team | process.team]]></imixs:value>
<imixs:value><![CDATA[Prozess-Assistenz | process.assist]]></imixs:value>
</imixs:item> </imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_1" name="Default Process" processType="Public"> <bpmn2:process definitionalCollaborationRef="collaboration_1" id="process_1" name="Default Process" processType="Public">
@ -49,10 +53,30 @@
<bpmn2:flowNodeRef>textAnnotation_LyGTCw</bpmn2:flowNodeRef> <bpmn2:flowNodeRef>textAnnotation_LyGTCw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_TuyuwQ</bpmn2:flowNodeRef> <bpmn2:flowNodeRef>event_TuyuwQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_h0Kk5g</bpmn2:flowNodeRef> <bpmn2:flowNodeRef>event_h0Kk5g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>task_delO7Q</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_1OVorA</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_baWU4w</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_ofjVfg</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_i7yQVw</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>gateway_uK0c6g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_6250fg</bpmn2:flowNodeRef>
</bpmn2:lane> </bpmn2:lane>
</bpmn2:laneSet> </bpmn2:laneSet>
<bpmn2:task id="task_ToMZaQ" imixs:processid="1000" name="Neuanlage"> <bpmn2:task id="task_ToMZaQ" imixs:processid="1000" name="Neuanlage">
<bpmn2:extensionElements/> <bpmn2:extensionElements>
<imixs:item name="keyupdateacl" type="xs:string">
<imixs:value><![CDATA[true]]></imixs:value>
</imixs:item>
<imixs:item name="namownershipnames" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddreadaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddwriteaccess" type="xs:string">
<imixs:value/>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_a83GTA"/> <bpmn2:documentation id="documentation_a83GTA"/>
<bpmn2:incoming>sequenceFlow_25otUg</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_25otUg</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_S9LVXg</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_S9LVXg</bpmn2:outgoing>
@ -63,7 +87,6 @@
</bpmn2:startEvent> </bpmn2:startEvent>
<bpmn2:endEvent id="event_1clvlg" name="Ende"> <bpmn2:endEvent id="event_1clvlg" name="Ende">
<bpmn2:documentation id="documentation_obvnAg"/> <bpmn2:documentation id="documentation_obvnAg"/>
<bpmn2:incoming>sequenceFlow_NNbMhg</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_rwdWxw</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_rwdWxw</bpmn2:incoming>
</bpmn2:endEvent> </bpmn2:endEvent>
<bpmn2:sequenceFlow id="sequenceFlow_25otUg" sourceRef="event_WmkBvw" targetRef="task_ToMZaQ"> <bpmn2:sequenceFlow id="sequenceFlow_25otUg" sourceRef="event_WmkBvw" targetRef="task_ToMZaQ">
@ -77,13 +100,40 @@
<imixs:item name="txtworkflowsummary" type="xs:string"> <imixs:item name="txtworkflowsummary" type="xs:string">
<imixs:value><![CDATA[<itemvalue>partner.name</itemvalue> (<itemvalue>partner.id</itemvalue>)]]></imixs:value> <imixs:value><![CDATA[<itemvalue>partner.name</itemvalue> (<itemvalue>partner.id</itemvalue>)]]></imixs:value>
</imixs:item> </imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[<strong>Adresse:</strong><br />
<itemvalue>partner.name</itemvalue><br />
<itemvalue>partner.address</itemvalue><br />
<itemvalue>partner.zip</itemvalue> <itemvalue>partner.city</itemvalue><br />
<br />
<strong>BPID:</strong> <itemvalue>partner.id</itemvalue><br />
<strong>Kreditoren-Nr.:</strong> <itemvalue>cdtr.number</itemvalue><br />
<strong>Debitoren-Nr.:</strong> <itemvalue>dbtr.number</itemvalue><br />
]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:string">
<imixs:value><![CDATA[true]]></imixs:value>
</imixs:item>
<imixs:item name="namownershipnames" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddreadaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddwriteaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[process.team]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:documentation id="documentation_M7b42w"/> <bpmn2:documentation id="documentation_M7b42w"/>
<bpmn2:incoming>sequenceFlow_knUYpQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_2uNvPw</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_NNbMhg</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_avahXg</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_avahXg</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_9atLFA</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:task> </bpmn2:task>
<bpmn2:task id="task_B8Pi7A" imixs:processid="1800" name="Gesperrt"> <bpmn2:task id="task_B8Pi7A" imixs:processid="1800" name="Gesperrt">
<bpmn2:extensionElements> <bpmn2:extensionElements>
@ -93,34 +143,59 @@
<imixs:item name="txtimageurl" type="xs:string"> <imixs:item name="txtimageurl" type="xs:string">
<imixs:value><![CDATA[typcn-user|typcn-times,imixs-error]]></imixs:value> <imixs:value><![CDATA[typcn-user|typcn-times,imixs-error]]></imixs:value>
</imixs:item> </imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[<strong>Adresse:</strong><br />
<itemvalue>partner.name</itemvalue><br />
<itemvalue>partner.address</itemvalue><br />
<itemvalue>partner.zip</itemvalue> <itemvalue>partner.city</itemvalue><br />
<br />
<strong>BPID:</strong> <itemvalue>partner.id</itemvalue><br />
<strong>Kreditoren-Nr.:</strong> <itemvalue>cdtr.number</itemvalue><br />
<strong>Debitoren-Nr.:</strong> <itemvalue>dbtr.number</itemvalue><br />
]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:string">
<imixs:value><![CDATA[true]]></imixs:value>
</imixs:item>
<imixs:item name="namownershipnames" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddreadaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddwriteaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[process.team]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:documentation id="documentation_0B9wKQ"/> <bpmn2:documentation id="documentation_0B9wKQ"/>
<bpmn2:incoming>sequenceFlow_1mXO8A</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_1mXO8A</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_rwdWxw</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_rwdWxw</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_gC0I9w</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_gC0I9w</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_kS2fMA</bpmn2:incoming>
</bpmn2:task> </bpmn2:task>
<bpmn2:intermediateCatchEvent id="event_aSdkwg" imixs:activityid="201" name="[import]"> <bpmn2:intermediateCatchEvent id="event_aSdkwg" imixs:activityid="100" name="[import]">
<bpmn2:extensionElements> <bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string"> <imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value> <imixs:value><![CDATA[0]]></imixs:value>
</imixs:item> </imixs:item>
<imixs:item name="rtfresultlog" type="xs:string"> <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>
<imixs:item name="txtactivityresult" type="xs:string"> <imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value> <imixs:value><![CDATA[<item name="process">Partnermanagement</item>]]></imixs:value>
</imixs:item> </imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:documentation id="documentation_5409Kg"/> <bpmn2:documentation id="documentation_5409Kg"/>
<bpmn2:incoming>sequenceFlow_S9LVXg</bpmn2:incoming> <bpmn2:incoming>sequenceFlow_jAU3VA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_knUYpQ</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_8O1EtQ</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent> </bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_S9LVXg" sourceRef="task_ToMZaQ" targetRef="event_aSdkwg"> <bpmn2:sequenceFlow id="sequenceFlow_S9LVXg" sourceRef="task_ToMZaQ" targetRef="gateway_uK0c6g">
<bpmn2:documentation id="documentation_Idvd0Q"/> <bpmn2:documentation id="documentation_Idvd0Q"/>
</bpmn2:sequenceFlow> </bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_knUYpQ" sourceRef="event_aSdkwg" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_DSg1Eg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_Tr0aug" imixs:activityid="30" name="Sperren"> <bpmn2:intermediateCatchEvent id="event_Tr0aug" imixs:activityid="30" name="Sperren">
<bpmn2:extensionElements> <bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string"> <imixs:item name="keypublicresult" type="xs:string">
@ -128,18 +203,13 @@
</imixs:item> </imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:documentation id="documentation_2XhDKQ"/> <bpmn2:documentation id="documentation_2XhDKQ"/>
<bpmn2:incoming>sequenceFlow_2uNvPw</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_1mXO8A</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_1mXO8A</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_b0Bj3Q</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_T5L9aQ</bpmn2:incoming>
</bpmn2:intermediateCatchEvent> </bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_2uNvPw" sourceRef="task_Q80A1Q" targetRef="event_Tr0aug">
<bpmn2:documentation id="documentation_G0afxQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_1mXO8A" sourceRef="event_Tr0aug" targetRef="task_B8Pi7A"> <bpmn2:sequenceFlow id="sequenceFlow_1mXO8A" sourceRef="event_Tr0aug" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_JL48mA"/> <bpmn2:documentation id="documentation_JL48mA"/>
</bpmn2:sequenceFlow> </bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_NNbMhg" sourceRef="task_Q80A1Q" targetRef="event_1clvlg">
<bpmn2:documentation id="documentation_I0Y0pQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_rwdWxw" sourceRef="task_B8Pi7A" targetRef="event_1clvlg"> <bpmn2:sequenceFlow id="sequenceFlow_rwdWxw" sourceRef="task_B8Pi7A" targetRef="event_1clvlg">
<bpmn2:documentation id="documentation_8xdVSA"/> <bpmn2:documentation id="documentation_8xdVSA"/>
</bpmn2:sequenceFlow> </bpmn2:sequenceFlow>
@ -174,13 +244,10 @@
<item name="dbtr.creditperiod" type="text" span="2" readonly="false" label="Zahlungsziel (Tage):" /> <item name="dbtr.creditperiod" type="text" span="2" readonly="false" label="Zahlungsziel (Tage):" />
</imixs-form-section> </imixs-form-section>
<imixs-form-section label="Banken" path="alexander/sub_businesspartner_ibanlist" /> <imixs-form-section label="Banken" path="alexander/section_businesspartner_banklist" />
</imixs-form>]]></bpmn2:documentation> </imixs-form>]]></bpmn2:documentation>
</bpmn2:dataObject> </bpmn2:dataObject>
<bpmn2:association id="association_pG70zw" sourceRef="task_ToMZaQ" targetRef="dataObject_UQIXAQ">
<bpmn2:documentation id="documentation_ukKpew"/>
</bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_vwH0cA" imixs:activityid="10" name="Speichern"> <bpmn2:intermediateCatchEvent id="event_vwH0cA" imixs:activityid="10" name="Speichern">
<bpmn2:documentation id="documentation_WOUVTQ"/> <bpmn2:documentation id="documentation_WOUVTQ"/>
<bpmn2:outgoing>sequenceFlow_avahXg</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_avahXg</bpmn2:outgoing>
@ -196,10 +263,10 @@
<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]]></bpmn2:text>
<bpmn2:documentation id="documentation_wdTBKA"/> <bpmn2:documentation id="documentation_wdTBKA"/>
</bpmn2:textAnnotation> </bpmn2:textAnnotation>
<bpmn2:association id="association_83sZPw" sourceRef="event_aSdkwg" targetRef="textAnnotation_LyGTCw"> <bpmn2:association id="association_83sZPw" sourceRef="participant_oxb3dg" targetRef="textAnnotation_LyGTCw">
<bpmn2:documentation id="documentation_FKcIcg"/> <bpmn2:documentation id="documentation_FKcIcg"/>
</bpmn2:association> </bpmn2:association>
<bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="201" name="[update]"> <bpmn2:intermediateCatchEvent id="event_TuyuwQ" imixs:activityid="200" name="[update]">
<bpmn2:extensionElements> <bpmn2:extensionElements>
<imixs:item name="keypublicresult" type="xs:string"> <imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value> <imixs:value><![CDATA[0]]></imixs:value>
@ -207,6 +274,9 @@
<imixs:item name="txtactivityresult" type="xs:string"> <imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value> <imixs:value><![CDATA[Business Partner aktualisiert aus Cargosoft ]]></imixs:value>
</imixs:item> </imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Business Partner aus Cargosoft aktualisiert]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements> </bpmn2:extensionElements>
<bpmn2:documentation id="documentation_wy3OSA"/> <bpmn2:documentation id="documentation_wy3OSA"/>
<bpmn2:outgoing>sequenceFlow_9atLFA</bpmn2:outgoing> <bpmn2:outgoing>sequenceFlow_9atLFA</bpmn2:outgoing>
@ -229,139 +299,346 @@
<bpmn2:sequenceFlow id="sequenceFlow_gC0I9w" sourceRef="event_h0Kk5g" targetRef="task_B8Pi7A"> <bpmn2:sequenceFlow id="sequenceFlow_gC0I9w" sourceRef="event_h0Kk5g" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_gfdNnQ"/> <bpmn2:documentation id="documentation_gfdNnQ"/>
</bpmn2:sequenceFlow> </bpmn2:sequenceFlow>
<bpmn2:task id="task_delO7Q" imixs:processid="1300" name="Plausibilitätsprüfung">
<bpmn2:extensionElements>
<imixs:item name="txtimageurl" type="xs:string">
<imixs:value><![CDATA[typcn-user|typcn-tick,imixs-success]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowsummary" type="xs:string">
<imixs:value><![CDATA[<itemvalue>partner.name</itemvalue> (<itemvalue>partner.id</itemvalue>)]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[<strong>Adresse:</strong><br />
<itemvalue>partner.name</itemvalue><br />
<itemvalue>partner.address</itemvalue><br />
<itemvalue>partner.zip</itemvalue> <itemvalue>partner.city</itemvalue><br />
<br />
<strong>BPID:</strong> <itemvalue>partner.id</itemvalue><br />
<strong>Kreditoren-Nr.:</strong> <itemvalue>cdtr.number</itemvalue><br />
<strong>Debitoren-Nr.:</strong> <itemvalue>dbtr.number</itemvalue><br />
]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:string">
<imixs:value><![CDATA[true]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string">
<imixs:value><![CDATA[process.team]]></imixs:value>
</imixs:item>
<imixs:item name="namownershipnames" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddreadaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="namaddwriteaccess" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[process.team]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_1TuLXg"/>
<bpmn2:outgoing>sequenceFlow_NNbMhg</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_avahXg</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_pvIENQ</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_BWOtzA</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_ofWWuw</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_b0Bj3Q</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_BHsRkQ</bpmn2:incoming>
</bpmn2:task>
<bpmn2:intermediateCatchEvent id="event_1OVorA" imixs:activityid="300" name="[iban/bic error]">
<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[IBAN/BIC Plausibilität prüfen]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_J8iRLQ"/>
<bpmn2:incoming>sequenceFlow_iwMsIg</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_BHsRkQ</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:intermediateCatchEvent id="event_baWU4w" imixs:activityid="10" name="Korrigiert">
<bpmn2:extensionElements>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Daten korrigiert]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_q730KA"/>
<bpmn2:incoming>sequenceFlow_pvIENQ</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_b4BcVA</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_pvIENQ" sourceRef="task_delO7Q" targetRef="event_baWU4w">
<bpmn2:documentation id="documentation_BYJ08A"/>
</bpmn2:sequenceFlow>
<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: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:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_A42bcQ"/>
<bpmn2:outgoing>sequenceFlow_BWOtzA</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_BWOtzA" sourceRef="event_ofjVfg" targetRef="task_delO7Q">
<bpmn2:documentation id="documentation_QW3slw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_i7yQVw" imixs:activityid="10" name="Speichern">
<bpmn2:documentation id="documentation_Il4Shw"/>
<bpmn2:outgoing>sequenceFlow_ofWWuw</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<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:documentation id="documentation_pVJeTQ"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_T5L9aQ" sourceRef="task_Q80A1Q" targetRef="event_Tr0aug">
<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>
<bpmn2:outgoing>sequenceFlow_jAU3VA</bpmn2:outgoing>
<bpmn2:outgoing>sequenceFlow_iwMsIg</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="sequenceFlow_jAU3VA" sourceRef="gateway_uK0c6g" targetRef="event_aSdkwg">
<bpmn2:documentation id="documentation_ZNk0Bw"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="sequenceFlow_iwMsIg" sourceRef="gateway_uK0c6g" targetRef="event_1OVorA">
<bpmn2:documentation id="documentation_KTOYPg"/>
</bpmn2:sequenceFlow>
<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:documentation id="documentation_VTvROw"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_6250fg" imixs:activityid="10" name="Speichern">
<bpmn2:documentation id="documentation_fcuXRg"/>
<bpmn2:outgoing>sequenceFlow_kS2fMA</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_kS2fMA" sourceRef="event_6250fg" targetRef="task_B8Pi7A">
<bpmn2:documentation id="documentation_t0kr1g"/>
</bpmn2:sequenceFlow>
</bpmn2:process> </bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram"> <bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram">
<bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1"> <bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1">
<bpmndi:BPMNShape bpmnElement="event_WmkBvw" id="BPMNShape_heefeQ"> <bpmndi:BPMNShape bpmnElement="event_WmkBvw" id="BPMNShape_heefeQ">
<dc:Bounds height="36.0" width="36.0" x="77.0" y="167.0"/> <dc:Bounds height="36.0" width="36.0" x="57.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_6qfN6w"> <bpmndi:BPMNLabel id="BPMNLabel_6qfN6w">
<dc:Bounds height="20.0" width="100.0" x="45.0" y="206.0"/> <dc:Bounds height="20.0" width="100.0" x="25.0" y="316.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1clvlg" id="BPMNShape_85k4rg"> <bpmndi:BPMNShape bpmnElement="event_1clvlg" id="BPMNShape_85k4rg">
<dc:Bounds height="36.0" width="36.0" x="787.0" y="167.0"/> <dc:Bounds height="36.0" width="36.0" x="1657.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_F7t2Ng"> <bpmndi:BPMNLabel id="BPMNLabel_F7t2Ng">
<dc:Bounds height="20.0" width="100.0" x="755.0" y="149.0"/> <dc:Bounds height="20.0" width="100.0" x="1625.0" y="259.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_ToMZaQ" id="BPMNShape_CUpR6w"> <bpmndi:BPMNShape bpmnElement="task_ToMZaQ" id="BPMNShape_CUpR6w">
<dc:Bounds height="50.0" width="110.0" x="200.0" y="160.0"/> <dc:Bounds height="50.0" width="110.0" x="170.0" y="270.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="participant_oxb3dg" id="BPMNShape_mqlDUA"> <bpmndi:BPMNShape bpmnElement="participant_oxb3dg" id="BPMNShape_mqlDUA">
<dc:Bounds height="550.0" width="1420.0" x="-30.0" y="40.0"/> <dc:Bounds height="820.0" width="1820.0" x="-30.0" y="40.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="lane_Zxa2TA" id="BPMNShape_Lane_1cDN5A"> <bpmndi:BPMNShape bpmnElement="lane_Zxa2TA" id="BPMNShape_Lane_1cDN5A">
<dc:Bounds height="550.0" width="1390.0" x="0.0" y="40.0"/> <dc:Bounds height="820.0" width="1790.0" x="0.0" y="40.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_25otUg" id="BPMNEdge_NHnc3g" sourceElement="BPMNShape_heefeQ" targetElement="BPMNShape_CUpR6w"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_25otUg" id="BPMNEdge_NHnc3g" sourceElement="BPMNShape_heefeQ" targetElement="BPMNShape_CUpR6w">
<di:waypoint x="113.0" y="185.0"/> <di:waypoint x="93.0" y="295.0"/>
<di:waypoint x="200.0" y="185.0"/> <di:waypoint x="170.0" y="295.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_Q80A1Q" id="BPMNShape_7JA0nw"> <bpmndi:BPMNShape bpmnElement="task_Q80A1Q" id="BPMNShape_7JA0nw">
<dc:Bounds height="50.0" width="110.0" x="490.0" y="160.0"/> <dc:Bounds height="50.0" width="110.0" x="830.0" y="270.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="task_B8Pi7A" id="BPMNShape_ghujeA"> <bpmndi:BPMNShape bpmnElement="task_B8Pi7A" id="BPMNShape_ghujeA">
<dc:Bounds height="50.0" width="110.0" x="490.0" y="320.0"/> <dc:Bounds height="50.0" width="110.0" x="1360.0" y="270.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_aSdkwg" id="BPMNShape_uesqgg"> <bpmndi:BPMNShape bpmnElement="event_aSdkwg" id="BPMNShape_uesqgg">
<dc:Bounds height="36.0" width="36.0" x="377.0" y="167.0"/> <dc:Bounds height="36.0" width="36.0" x="437.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_AxKRKQ"> <bpmndi:BPMNLabel id="BPMNLabel_AxKRKQ">
<dc:Bounds height="20.0" width="100.0" x="345.0" y="206.0"/> <dc:Bounds height="20.0" width="100.0" x="405.0" y="316.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_S9LVXg" id="BPMNEdge_xoCSiA" sourceElement="BPMNShape_CUpR6w" targetElement="BPMNShape_uesqgg"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_S9LVXg" id="BPMNEdge_xoCSiA" sourceElement="BPMNShape_CUpR6w" targetElement="BPMNShape_6IZk7Q">
<di:waypoint x="310.0" y="185.0"/> <di:waypoint x="280.0" y="295.0"/>
<di:waypoint x="377.0" y="185.0"/> <di:waypoint x="340.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_knUYpQ" id="BPMNEdge_0yPtdQ" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="413.0" y="185.0"/>
<di:waypoint x="490.0" y="185.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_Tr0aug" id="BPMNShape_NEaJjA"> <bpmndi:BPMNShape bpmnElement="event_Tr0aug" id="BPMNShape_NEaJjA">
<dc:Bounds height="36.0" width="36.0" x="527.0" y="237.0"/> <dc:Bounds height="36.0" width="36.0" x="1227.0" y="277.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_GkrCTA"> <bpmndi:BPMNLabel id="BPMNLabel_GkrCTA">
<dc:Bounds height="20.0" width="100.0" x="495.0" y="276.0"/> <dc:Bounds height="20.0" width="100.0" x="1195.0" y="316.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_2uNvPw" id="BPMNEdge_Q4F2dQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="545.0" y="210.0"/>
<di:waypoint x="545.0" y="237.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_1mXO8A" id="BPMNEdge_7CorJA" sourceElement="BPMNShape_NEaJjA" targetElement="BPMNShape_ghujeA"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_1mXO8A" id="BPMNEdge_7CorJA" sourceElement="BPMNShape_NEaJjA" targetElement="BPMNShape_ghujeA">
<di:waypoint x="545.0" y="273.0"/> <di:waypoint x="1263.0" y="295.0"/>
<di:waypoint x="545.0" y="320.0"/> <di:waypoint x="1360.0" y="295.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_NNbMhg" id="BPMNEdge_HdVWPQ" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_85k4rg">
<di:waypoint x="600.0" y="185.0"/>
<di:waypoint x="787.0" y="185.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_rwdWxw" id="BPMNEdge_t88dUw" sourceElement="BPMNShape_ghujeA" targetElement="BPMNShape_85k4rg"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_rwdWxw" id="BPMNEdge_t88dUw" sourceElement="BPMNShape_ghujeA" targetElement="BPMNShape_85k4rg">
<di:waypoint x="600.0" y="345.0"/> <di:waypoint x="1470.0" y="295.0"/>
<di:waypoint x="810.0" y="345.0"/> <di:waypoint x="1657.0" y="295.0"/>
<di:waypoint x="810.0" y="202.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="dataObject_UQIXAQ" id="BPMNShape_Mnop9Q"> <bpmndi:BPMNShape bpmnElement="dataObject_UQIXAQ" id="BPMNShape_Mnop9Q">
<dc:Bounds height="50.0" width="35.0" x="380.0" y="60.0"/> <dc:Bounds height="50.0" width="35.0" x="730.0" y="380.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_h0UuFw"> <bpmndi:BPMNLabel id="BPMNLabel_h0UuFw">
<dc:Bounds height="20.0" width="100.0" x="347.5" y="115.0"/> <dc:Bounds height="20.0" width="100.0" x="697.5" y="435.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_pG70zw" id="BPMNEdge_YKSHpA" sourceElement="BPMNShape_CUpR6w" targetElement="BPMNShape_Mnop9Q">
<di:waypoint x="260.0" y="160.0"/>
<di:waypoint x="260.0" y="80.0"/>
<di:waypoint x="380.0" y="80.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_vwH0cA" id="BPMNShape_OXGg8Q"> <bpmndi:BPMNShape bpmnElement="event_vwH0cA" id="BPMNShape_OXGg8Q">
<dc:Bounds height="36.0" width="36.0" x="657.0" y="67.0"/> <dc:Bounds height="36.0" width="36.0" x="927.0" y="177.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_KaHfJQ"> <bpmndi:BPMNLabel id="BPMNLabel_KaHfJQ">
<dc:Bounds height="20.0" width="100.0" x="625.0" y="106.0"/> <dc:Bounds height="20.0" width="100.0" x="895.0" y="216.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_avahXg" id="BPMNEdge_odMtvQ" sourceElement="BPMNShape_OXGg8Q" targetElement="BPMNShape_7JA0nw"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_avahXg" id="BPMNEdge_odMtvQ" sourceElement="BPMNShape_OXGg8Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="665.0" y="100.0"/> <di:waypoint x="927.0" y="195.0"/>
<di:waypoint x="575.0" y="100.0"/> <di:waypoint x="900.0" y="195.0"/>
<di:waypoint x="575.0" y="160.0"/> <di:waypoint x="900.0" y="270.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_uvV8uA" id="BPMNEdge_3Mtxfw" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="525.0" y="220.0"/>
<di:waypoint x="545.0" y="135.0"/>
</bpmndi:BPMNEdge> </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"> <bpmndi:BPMNEdge bpmnElement="association_mpLQEQ" id="BPMNEdge_qkEiPA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="415.0" y="80.0"/> <di:waypoint x="750.0" y="380.0"/>
<di:waypoint x="550.0" y="80.0"/> <di:waypoint x="750.0" y="355.0"/>
<di:waypoint x="550.0" y="160.0"/> <di:waypoint x="855.0" y="355.0"/>
<di:waypoint x="855.0" y="320.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="textAnnotation_LyGTCw" id="BPMNShape_SbxnGw"> <bpmndi:BPMNShape bpmnElement="textAnnotation_LyGTCw" id="BPMNShape_SbxnGw">
<dc:Bounds height="85.0" width="228.0" x="60.0" y="300.0"/> <dc:Bounds height="85.0" width="228.0" x="80.0" y="80.0"/>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="association_83sZPw" id="BPMNEdge_p0XWxg" sourceElement="BPMNShape_uesqgg" targetElement="BPMNShape_SbxnGw"> <bpmndi:BPMNEdge bpmnElement="association_83sZPw" id="BPMNEdge_p0XWxg" sourceElement="BPMNShape_mqlDUA" targetElement="BPMNShape_SbxnGw"/>
<di:waypoint x="395.0" y="203.0"/>
<di:waypoint x="395.0" y="345.0"/>
<di:waypoint x="288.0" y="345.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_TuyuwQ" id="BPMNShape_fTy7mg"> <bpmndi:BPMNShape bpmnElement="event_TuyuwQ" id="BPMNShape_fTy7mg">
<dc:Bounds height="36.0" width="36.0" x="447.0" y="237.0"/> <dc:Bounds height="36.0" width="36.0" x="797.0" y="177.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_033n1A"> <bpmndi:BPMNLabel id="BPMNLabel_033n1A">
<dc:Bounds height="20.0" width="100.0" x="415.0" y="276.0"/> <dc:Bounds height="20.0" width="100.0" x="765.0" y="216.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_9atLFA" id="BPMNEdge_BC4pwQ" sourceElement="BPMNShape_fTy7mg" targetElement="BPMNShape_7JA0nw"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_9atLFA" id="BPMNEdge_BC4pwQ" sourceElement="BPMNShape_fTy7mg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="465.0" y="237.0"/> <di:waypoint x="833.0" y="195.0"/>
<di:waypoint x="465.0" y="225.0"/> <di:waypoint x="875.0" y="195.0"/>
<di:waypoint x="520.0" y="225.0"/> <di:waypoint x="875.0" y="270.0"/>
<di:waypoint x="520.0" y="210.0"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_h0Kk5g" id="BPMNShape_T4k09g"> <bpmndi:BPMNShape bpmnElement="event_h0Kk5g" id="BPMNShape_T4k09g">
<dc:Bounds height="36.0" width="36.0" x="497.0" y="427.0"/> <dc:Bounds height="36.0" width="36.0" x="1327.0" y="177.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_lX0KlA"> <bpmndi:BPMNLabel id="BPMNLabel_lX0KlA">
<dc:Bounds height="20.0" width="100.0" x="465.0" y="466.0"/> <dc:Bounds height="20.0" width="100.0" x="1295.0" y="216.0"/>
</bpmndi:BPMNLabel> </bpmndi:BPMNLabel>
</bpmndi:BPMNShape> </bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_gC0I9w" id="BPMNEdge_0nCVvg" sourceElement="BPMNShape_T4k09g" targetElement="BPMNShape_ghujeA"> <bpmndi:BPMNEdge bpmnElement="sequenceFlow_gC0I9w" id="BPMNEdge_0nCVvg" sourceElement="BPMNShape_T4k09g" targetElement="BPMNShape_ghujeA">
<di:waypoint x="515.0" y="427.0"/> <di:waypoint x="1360.0" y="185.0"/>
<di:waypoint x="515.0" y="400.0"/> <di:waypoint x="1390.0" y="185.0"/>
<di:waypoint x="545.0" y="400.0"/> <di:waypoint x="1390.0" y="270.0"/>
<di:waypoint x="545.0" y="370.0"/> </bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="task_delO7Q" id="BPMNShape_rEOMWA">
<dc:Bounds height="50.0" width="110.0" x="830.0" y="510.0"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_1OVorA" id="BPMNShape_mG4csA">
<dc:Bounds height="36.0" width="36.0" x="437.0" y="517.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_djIb8w">
<dc:Bounds height="20.0" width="100.0" x="408.0" y="559.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_baWU4w" id="BPMNShape_755HGg">
<dc:Bounds height="36.0" width="36.0" x="867.0" y="407.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_oN6XKQ">
<dc:Bounds height="20.0" width="100.0" x="835.0" y="446.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_pvIENQ" id="BPMNEdge_wXz5yA" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_755HGg">
<di:waypoint x="885.0" y="510.0"/>
<di:waypoint x="885.0" y="443.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b4BcVA" id="BPMNEdge_1gQ5Nw" sourceElement="BPMNShape_755HGg" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="885.0" y="407.0"/>
<di:waypoint x="885.0" y="320.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_ofjVfg" id="BPMNShape_hDVKtg">
<dc:Bounds height="36.0" width="36.0" x="797.0" y="607.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_HpXNFQ">
<dc:Bounds height="20.0" width="100.0" x="765.0" y="646.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BWOtzA" id="BPMNEdge_KW5PhQ" sourceElement="BPMNShape_hDVKtg" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="830.0" y="615.0"/>
<di:waypoint x="860.0" y="615.0"/>
<di:waypoint x="860.0" y="560.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_i7yQVw" id="BPMNShape_KxnRjA">
<dc:Bounds height="36.0" width="36.0" x="927.0" y="607.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_sJqwmA">
<dc:Bounds height="20.0" width="100.0" x="895.0" y="646.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ofWWuw" id="BPMNEdge_zlNOzQ" sourceElement="BPMNShape_KxnRjA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="930.0" y="615.0"/>
<di:waypoint x="910.0" y="615.0"/>
<di:waypoint x="910.0" y="560.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_b0Bj3Q" id="BPMNEdge_CDn41A" sourceElement="BPMNShape_rEOMWA" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="940.0" y="540.0"/>
<di:waypoint x="1240.0" y="540.0"/>
<di:waypoint x="1240.0" y="312.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_T5L9aQ" id="BPMNEdge_dAQH1Q" sourceElement="BPMNShape_7JA0nw" targetElement="BPMNShape_NEaJjA">
<di:waypoint x="940.0" y="295.0"/>
<di:waypoint x="1227.0" y="295.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"/>
<bpmndi:BPMNLabel id="BPMNLabel_JvBA0w">
<dc:Bounds height="20.0" width="100.0" x="315.0" y="323.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"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_iwMsIg" id="BPMNEdge_0vmMXw" sourceElement="BPMNShape_6IZk7Q" targetElement="BPMNShape_mG4csA">
<di:waypoint x="365.0" y="320.0"/>
<di:waypoint x="365.0" y="535.0"/>
<di:waypoint x="437.0" y="535.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_BHsRkQ" id="BPMNEdge_1LX47g" sourceElement="BPMNShape_mG4csA" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="473.0" y="535.0"/>
<di:waypoint x="830.0" y="535.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="association_WgLbbg" id="BPMNEdge_Btz9CA" sourceElement="BPMNShape_Mnop9Q" targetElement="BPMNShape_rEOMWA">
<di:waypoint x="750.0" y="430.0"/>
<di:waypoint x="750.0" y="470.0"/>
<di:waypoint x="850.0" y="470.0"/>
<di:waypoint x="850.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="830.0" y="295.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"/>
<bpmndi:BPMNLabel id="BPMNLabel_IBnUDA">
<dc:Bounds height="20.0" width="100.0" x="1425.0" y="216.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"/>
</bpmndi:BPMNEdge> </bpmndi:BPMNEdge>
</bpmndi:BPMNPlane> </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram> </bpmndi:BPMNDiagram>

View file

@ -5547,8 +5547,8 @@ result.isValid=true;
<item name="invoice.total" type="currency" required="true" label="Rechnungsbetrag:" /> <item name="invoice.total" type="currency" required="true" label="Rechnungsbetrag:" />
<item name="invoice.currency" type="custom" required="true" path="alexander/currency_in" label="Währung:" /> <item name="invoice.currency" type="custom" required="true" path="alexander/currency_in" label="Währung:" />
</imixs-form-section> </imixs-form-section>
<imixs-form-section columns="2"> <imixs-form-section columns="3">
<item name="cdtr.bank" type="text" label="Bank:" />
<item name="cdtr.iban" type="text" label="IBAN:" /> <item name="cdtr.iban" type="text" label="IBAN:" />
<item name="cdtr.bic" type="text" label="BIC:" /> <item name="cdtr.bic" type="text" label="BIC:" />
</imixs-form-section> </imixs-form-section>