ml modell aktualisiert

This commit is contained in:
Ralph Soika 2021-02-17 14:45:43 +01:00
parent b116c162e7
commit 95d3de7fc5
28 changed files with 40580 additions and 39 deletions

View file

@ -14,7 +14,7 @@ Wir haben bei Hetzenr eine Storage Box um via FTP Daten mit den Office Scannern
Userid: u248962 Userid: u248962
Password: 5CGGchRArIhwZjqc Password: 5CGGchRArIhwZjqc
Wir haben dann zwei Subaccounts für die Office Scanner und Cargosoft Wir haben dann zwei Subaccounts für die Office Scanner und Cargosoft
### Office Scanner ### Office Scanner
@ -30,7 +30,7 @@ Die Zugangsdaten lauten:
### Cargosoft Schnittstelle ### Cargosoft Schnittstelle
Für cargosoft verwenden wir einen Subaccoutn der auf das Verzeichns: F<EFBFBD>r cargosoft verwenden wir einen Subaccoutn der auf das Verzeichns:
/office-alexander-logistics/cargosoft /office-alexander-logistics/cargosoft
@ -44,7 +44,7 @@ Schnittstellen Details siehe unten
## E-Mail Schnittstelle ## E-Mail Schnittstelle
Es gibt ein Email Konto das wir für den Import von Rechnungen nutzen Es gibt ein Email Konto das wir f<EFBFBD>r den Import von Rechnungen nutzen
** Testaccount ** ** Testaccount **
@ -65,11 +65,11 @@ Es gibt ein Email Konto das wir f
# Cargosoft # Cargosoft
Die Cargosoft Schnittstelle besteht aus einem eigenen Export modell "cargosoft-export-1.0.0". In diesem wird der CargoosftExportAdapter getriggert, der die Daten einer Rechnung an den FTP Server übermittelt. Die Cargosoft Schnittstelle besteht aus einem eigenen Export modell "cargosoft-export-1.0.0". In diesem wird der CargoosftExportAdapter getriggert, der die Daten einer Rechnung an den FTP Server übermittelt.
Cargosoft prüft alle 10 Sekunden ob sich Dateien mit der Dateiendung ".xml" auf dem FTP befinden und holt diese ab. Cargosoft prüft alle 10 Sekunden ob sich Dateien mit der Dateiendung ".xml" auf dem FTP befinden und holt diese ab.
Die Konfiguration der FTP Schnittstelle erfolgt über den Konfigurationsdialog im Office-Workflow mit den folgenden Werten: Die Konfiguration der FTP Schnittstelle erfolgt über den Konfigurationsdialog im Office-Workflow mit den folgenden Werten:
cargosoft.export.ftp.host=u248962.your-storagebox.de cargosoft.export.ftp.host=u248962.your-storagebox.de
cargosoft.export.ftp.path=/ cargosoft.export.ftp.path=/

View file

@ -1,6 +1,9 @@
version: '3.1' version: '3.1'
services: services:
###############################################
# Postgres DB
###############################################
db: db:
image: postgres:9.6.1 image: postgres:9.6.1
environment: environment:
@ -9,6 +12,9 @@ services:
volumes: volumes:
- dbdata:/var/lib/postgresql/data - dbdata:/var/lib/postgresql/data
###############################################
# Office
###############################################
app: app:
image: imixs/office-alexander-logistics image: imixs/office-alexander-logistics
depends_on: depends_on:
@ -45,10 +51,9 @@ services:
- ./docker/deployments:/opt/jboss/wildfly/standalone/deployments/ - ./docker/deployments:/opt/jboss/wildfly/standalone/deployments/
###############################################
# Tika OCR Service
###############################################
# Tika OCR Service
tika: tika:
#image: imixs/tika #image: imixs/tika
image: apache/tika:1.24.1-full image: apache/tika:1.24.1-full
@ -57,48 +62,50 @@ services:
ports: ports:
- "9998:9998" - "9998:9998"
# Gotenberg Service (HTML2PDF converter)
gotenberg:
image: thecodingmachine/gotenberg:6
ports:
- "3000:3000"
# Imixs-ML-spaCy Service ###############################################
# Imixs-ML-spaCy Service
###############################################
imixs-ml-spacy: imixs-ml-spacy:
image: imixs/imixs-ml-spacy:1.0.1 image: imixs/imixs-ml-spacy
environment: environment:
PYTHONUNBUFFERED: 1 PYTHONUNBUFFERED: 1
TZ: "Europe/Berlin" TZ: "Europe/Berlin"
MODEL_LANGUAGE: "de" MODEL_LANGUAGE: "de"
MODEL_PATH: "models/invoice-de-0.0.3/" MODEL_PATH: "models/"
#MODEL_PATH: "models/invoice-de-0.0.3-FULL/"
ports: ports:
- "8000:8000" - "8000:8000"
#volumes: volumes:
# - ../src/models/:/usr/src/app/models/ - ./models/:/usr/src/app/models/
###############################################
# Imixs-ML Training service
###############################################
imixs-ml-training:
image: imixs/imixs-ml-training
environment:
TZ: "Europe/Berlin"
OCR_SERVICE_ENDPOINT: "http://tika:9998/tika"
#OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
OCR_PDF_MODE: "TEXT_AND_OCR"
# Payara-Micor ENV
MP_OPENAPI_SERVERS: "http://localhost:8081"
ports:
- "8081:8080"
- "9009:9009"
# Imixs-ML Training sevice ###############################################
# imixs-ml-training: # Imixs-Admin
# image: imixs/imixs-ml-training:latest ###############################################
# environment:
# TZ: "Europe/Berlin"
# TIKA_SERVICE_ENDPOINT: "http://tika:9998/tika"
# #OCR_PDF_MODE: "OCR_ONLY | TEXT_ONLY | TEXT_AND_OCR (default)"
# OCR_PDF_MODE: "TEXT_AND_OCR"
# # Payara-Micor ENV
# MP_OPENAPI_SERVERS: "http://localhost:8081"
# ports:
# - "8081:8080"
# - "9009:9009"
imixsadmin: imixsadmin:
image: imixs/imixs-admin image: imixs/imixs-admin
ports: ports:
- "8888:8080" - "8888:8080"
###############################################
# Mailgateway
###############################################
mailgateway: mailgateway:
image: imixs/exim4 image: imixs/exim4
environment: environment:
@ -106,6 +113,16 @@ services:
EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:webmaster4Imixsmail" EXIM_PASSWORD: "www149.your-server.de:webmaster@imixs.com:webmaster4Imixsmail"
EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.16.0.0/12:192.168.0.0/16" EXIM_ALLOWED_SENDERS: "10.0.0.0/8:172.16.0.0/12:192.168.0.0/16"
###############################################
# Gotenberg Service (HTML2PDF converter)
###############################################
# gotenberg:
# image: thecodingmachine/gotenberg:6
# ports:
# - "3000:3000"
volumes: volumes:
dbdata: dbdata:

15
models/README.md Executable file
View file

@ -0,0 +1,15 @@
# ML Models
Hier befinden sich ML Modelle
## invoice-de-0.1.1
Modell trainiert anhand der alexander-logistics Produtiv daten
Trainings Service aufrufen mit:
http://localhost:8081/api/openapi-ui/index.html
Dan die training-config-prod.xml Datei verwenden.

View file

@ -0,0 +1,125 @@
[paths]
train = null
dev = null
vectors = null
init_tok2vec = null
[system]
seed = 0
gpu_allocator = null
[nlp]
lang = "de"
pipeline = ["ner"]
disabled = []
before_creation = null
after_creation = null
after_pipeline_creation = null
batch_size = 1000
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}
[components]
[components.ner]
factory = "ner"
moves = null
update_with_oracle_cut_size = 100
[components.ner.model]
@architectures = "spacy.TransitionBasedParser.v2"
state_type = "ner"
extra_state_tokens = false
hidden_width = 64
maxout_pieces = 2
use_upper = true
nO = null
[components.ner.model.tok2vec]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 96
depth = 4
embed_size = 2000
window_size = 1
maxout_pieces = 3
subword_features = true
[corpora]
[corpora.dev]
@readers = "spacy.Corpus.v1"
path = ${paths.dev}
gold_preproc = false
max_length = 0
limit = 0
augmenter = null
[corpora.train]
@readers = "spacy.Corpus.v1"
path = ${paths.train}
gold_preproc = false
max_length = 0
limit = 0
augmenter = null
[training]
seed = ${system.seed}
gpu_allocator = ${system.gpu_allocator}
dropout = 0.1
accumulate_gradient = 1
patience = 1600
max_epochs = 0
max_steps = 20000
eval_frequency = 200
frozen_components = []
dev_corpus = "corpora.dev"
train_corpus = "corpora.train"
before_to_disk = null
[training.batcher]
@batchers = "spacy.batch_by_words.v1"
discard_oversize = false
tolerance = 0.2
get_length = null
[training.batcher.size]
@schedules = "compounding.v1"
start = 100
stop = 1000
compound = 1.001
t = 0.0
[training.logger]
@loggers = "spacy.ConsoleLogger.v1"
progress_bar = false
[training.optimizer]
@optimizers = "Adam.v1"
beta1 = 0.9
beta2 = 0.999
L2_is_weight_decay = true
L2 = 0.01
grad_clip = 1.0
use_averages = false
eps = 0.00000001
learn_rate = 0.001
[training.score_weights]
ents_per_type = null
ents_f = 1.0
ents_p = 0.0
ents_r = 0.0
[pretraining]
[initialize]
vectors = ${paths.vectors}
init_tok2vec = ${paths.init_tok2vec}
vocab_data = null
lookups = null
before_init = null
after_init = null
[initialize.components]
[initialize.tokenizer]

View file

@ -0,0 +1,37 @@
{
"lang":"de",
"name":"pipeline",
"version":"0.0.0",
"spacy_version":">=3.0.1,<3.1.0",
"description":"",
"author":"",
"email":"",
"url":"",
"license":"",
"spacy_git_version":"91a3cab1c",
"vectors":{
"width":0,
"vectors":0,
"keys":0,
"name":null
},
"labels":{
"ner":[
"cdtr.bic",
"cdtr.iban",
"cdtr.name",
"invoice.date",
"invoice.number",
"invoice.total"
]
},
"pipeline":[
"ner"
],
"components":[
"ner"
],
"disabled":[
]
}

12
models/invoice-de-0.1.0/ner/cfg Executable file
View file

@ -0,0 +1,12 @@
{
"moves":null,
"update_with_oracle_cut_size":100,
"multitasks":[
],
"min_action_freq":1,
"learn_tokens":false,
"beam_width":1,
"beam_density":0.0,
"beam_update_prob":0.0
}

BIN
models/invoice-de-0.1.0/ner/model Executable file

Binary file not shown.

View file

@ -0,0 +1 @@
<EFBFBD>¥movesÚÄ{"0":{},"1":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"2":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"3":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"4":{"":1,"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"5":{"":1}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
<EFBFBD>

View file

@ -0,0 +1 @@
<EFBFBD>

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,125 @@
[paths]
train = null
dev = null
vectors = null
init_tok2vec = null
[system]
seed = 0
gpu_allocator = null
[nlp]
lang = "de"
pipeline = ["ner"]
disabled = []
before_creation = null
after_creation = null
after_pipeline_creation = null
batch_size = 1000
tokenizer = {"@tokenizers":"spacy.Tokenizer.v1"}
[components]
[components.ner]
factory = "ner"
moves = null
update_with_oracle_cut_size = 100
[components.ner.model]
@architectures = "spacy.TransitionBasedParser.v2"
state_type = "ner"
extra_state_tokens = false
hidden_width = 64
maxout_pieces = 2
use_upper = true
nO = null
[components.ner.model.tok2vec]
@architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 96
depth = 4
embed_size = 2000
window_size = 1
maxout_pieces = 3
subword_features = true
[corpora]
[corpora.dev]
@readers = "spacy.Corpus.v1"
path = ${paths.dev}
gold_preproc = false
max_length = 0
limit = 0
augmenter = null
[corpora.train]
@readers = "spacy.Corpus.v1"
path = ${paths.train}
gold_preproc = false
max_length = 0
limit = 0
augmenter = null
[training]
seed = ${system.seed}
gpu_allocator = ${system.gpu_allocator}
dropout = 0.1
accumulate_gradient = 1
patience = 1600
max_epochs = 0
max_steps = 20000
eval_frequency = 200
frozen_components = []
dev_corpus = "corpora.dev"
train_corpus = "corpora.train"
before_to_disk = null
[training.batcher]
@batchers = "spacy.batch_by_words.v1"
discard_oversize = false
tolerance = 0.2
get_length = null
[training.batcher.size]
@schedules = "compounding.v1"
start = 100
stop = 1000
compound = 1.001
t = 0.0
[training.logger]
@loggers = "spacy.ConsoleLogger.v1"
progress_bar = false
[training.optimizer]
@optimizers = "Adam.v1"
beta1 = 0.9
beta2 = 0.999
L2_is_weight_decay = true
L2 = 0.01
grad_clip = 1.0
use_averages = false
eps = 0.00000001
learn_rate = 0.001
[training.score_weights]
ents_per_type = null
ents_f = 1.0
ents_p = 0.0
ents_r = 0.0
[pretraining]
[initialize]
vectors = ${paths.vectors}
init_tok2vec = ${paths.init_tok2vec}
vocab_data = null
lookups = null
before_init = null
after_init = null
[initialize.components]
[initialize.tokenizer]

View file

@ -0,0 +1,37 @@
{
"lang":"de",
"name":"pipeline",
"version":"0.0.0",
"spacy_version":">=3.0.1,<3.1.0",
"description":"",
"author":"",
"email":"",
"url":"",
"license":"",
"spacy_git_version":"91a3cab1c",
"vectors":{
"width":0,
"vectors":0,
"keys":0,
"name":null
},
"labels":{
"ner":[
"cdtr.bic",
"cdtr.iban",
"cdtr.name",
"invoice.date",
"invoice.number",
"invoice.total"
]
},
"pipeline":[
"ner"
],
"components":[
"ner"
],
"disabled":[
]
}

12
models/invoice-de-0.1.1/ner/cfg Executable file
View file

@ -0,0 +1,12 @@
{
"moves":null,
"update_with_oracle_cut_size":100,
"multitasks":[
],
"min_action_freq":1,
"learn_tokens":false,
"beam_width":1,
"beam_density":0.0,
"beam_update_prob":0.0
}

BIN
models/invoice-de-0.1.1/ner/model Executable file

Binary file not shown.

View file

@ -0,0 +1 @@
<EFBFBD>¥movesÚÄ{"0":{},"1":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"2":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"3":{"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"4":{"":1,"cdtr.iban":-1,"cdtr.bic":-2,"cdtr.name":-3,"invoice.total":-4,"invoice.number":-5,"invoice.date":-6},"5":{"":1}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
<EFBFBD>

View file

@ -0,0 +1 @@
<EFBFBD>

File diff suppressed because it is too large Load diff

Binary file not shown.

52
models/training-config-prod.xml Executable file
View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Workflow Instance -->
<item name="workflow.endpoint"><value xsi:type="xs:string">https://alexander-logistics.office-workflow.de/api/</value></item>
<item name="workflow.userid"><value xsi:type="xs:string">admin</value></item>
<item name="workflow.password"><value xsi:type="xs:string">imixs4.null</value></item>
<item name="workflow.query"><value xsi:type="xs:string">($workflowgroup:"Rechnungseingang") AND ($taskid:[5300 TO 5900])</value></item>
<item name="workflow.pagesize"><value xsi:type="xs:int">30</value></item>
<item name="workflow.pageindex"><value xsi:type="xs:int">0</value></item>
<item name="workflow.entities">
<value xsi:type="xs:string">cdtr.name</value>
<value xsi:type="xs:string">cdtr.iban</value>
<value xsi:type="xs:string">cdtr.bic</value>
<value xsi:type="xs:string">invoice.total</value>
<value xsi:type="xs:string">invoice.date</value>
<value xsi:type="xs:string">invoice.number</value>
</item>
<item name="workflow.locale">
<value xsi:type="xs:string">UK</value>
<value xsi:type="xs:string">DE</value>
</item>
<!-- Tika OCR Server -->
<item name="tika.ocrmode"><value xsi:type="xs:string">OCR_AND_TEXT_EXTRACTION</value></item>
<item name="tika.options">
<value xsi:type="xs:string">X-Tika-OCRLanguage=eng+deu</value>
<!--
<value xsi:type="xs:string">X-Tika-PDFocrStrategy=OCR_AND_TEXT_EXTRACTION</value>
<value xsi:type="xs:string">X-Tika-PDFOcrImageType=RGB</value>
<value xsi:type="xs:string">X-Tika-PDFOcrDPI=400</value>
-->
</item>
<!-- ML spaCy Server -->
<item name="ml.training.endpoint"><value xsi:type="xs:string">http://imixs-ml-spacy:8000/</value></item>
<item name="ml.analyse.model"><value xsi:type="xs:string">invoice-de-0.1.1</value></item>
<!-- ML quality level FULL|PARTIAL -->
<item name="ml.training.quality"><value xsi:type="xs:string">PARTIAL</value></item>
</document>

View file

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>office-alexander-logistics</artifactId> <artifactId>office-alexander-logistics</artifactId>
<groupId>com.alexander-logistics</groupId> <groupId>com.alexander-logistics</groupId>
<version>1.0.0</version> <version>1.1.0</version>
</parent> </parent>
<artifactId>office-alexander-logistics-app</artifactId> <artifactId>office-alexander-logistics-app</artifactId>
<packaging>war</packaging> <packaging>war</packaging>

View file

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.alexander-logistics</groupId> <groupId>com.alexander-logistics</groupId>
<artifactId>office-alexander-logistics</artifactId> <artifactId>office-alexander-logistics</artifactId>
<version>1.0.0</version> <version>1.1.0</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Imixs Office Workflow - Custom Build</name> <name>Imixs Office Workflow - Custom Build</name>
@ -31,7 +31,7 @@
<org.imixs.adapters.version>2.2.4-SNAPSHOT</org.imixs.adapters.version> <org.imixs.adapters.version>2.2.4-SNAPSHOT</org.imixs.adapters.version>
<org.imixs.archive.version>2.2.9</org.imixs.archive.version> <org.imixs.archive.version>2.2.9</org.imixs.archive.version>
<org.imixs.melman.version>1.0.20</org.imixs.melman.version> <org.imixs.melman.version>1.0.20</org.imixs.melman.version>
<org.imixs.ml.version>1.0.3</org.imixs.ml.version> <org.imixs.ml.version>1.1.0-SNAPSHOT</org.imixs.ml.version>
<microprofile.version>2.2</microprofile.version> <microprofile.version>2.2</microprofile.version>
<custom.webResources>src/main/webapp</custom.webResources> <custom.webResources>src/main/webapp</custom.webResources>

20
setup_dev.sh Executable file
View file

@ -0,0 +1,20 @@
#!/bin/bash
############################################################
# Setup Imixs-Documents Training Environment
#
############################################################
sudo chmod -R 777 docker/deployments/
echo "#############################################"
echo " building Imixs-ML Docker images..."
echo "#############################################"
mvn -f ~/git/imixs-ml/ clean install -Pdocker -DskipTests
echo "#############################################"
echo " starting dev enrvionment..."
echo "#############################################"
mvn clean install -Pdebug
cp ./*-app/target/*.war ./docker/deployments/
docker-compose -f docker-compose.yml up

View file

@ -0,0 +1,670 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- origin at X=0.0 Y=0.0 -->
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:imixs="http://www.imixs.org/bpmn2" xmlns:tl="http://www.w3.org/2001/XMLSchema" id="Definitions_1" exporter="org.eclipse.bpmn2.modeler.core" exporterVersion="1.5.2.SNAPSHOT-v20200602-1600-B1" targetNamespace="http://www.imixs.org/bpmn2">
<bpmn2:extensionElements>
<imixs:item name="txtfieldmapping" type="xs:string">
<imixs:value><![CDATA[Ersteller | namCreator]]></imixs:value>
<imixs:value><![CDATA[Aktueller Bearbeiter | namCurrentEditor]]></imixs:value>
<imixs:value><![CDATA[Eigentümer | namowner]]></imixs:value>
<imixs:value><![CDATA[Prozess-Verantwortliche| namprocessmanager]]></imixs:value>
<imixs:value><![CDATA[Prozess-Team | namprocessteam]]></imixs:value>
<imixs:value><![CDATA[Prozess-Assistenz | namprocessassist]]></imixs:value>
<imixs:value><![CDATA[Bereichs-Verantwortliche | namspacemanager]]></imixs:value>
<imixs:value><![CDATA[Bereichs-Team | namspaceteam]]></imixs:value>
<imixs:value><![CDATA[Bereichs-Assistenz | namspaceassist]]></imixs:value>
<imixs:value><![CDATA[Verantwortlich | namteam]]></imixs:value>
</imixs:item>
<imixs:item name="txttimefieldmapping" type="xs:string">
<imixs:value><![CDATA[Vertragsbeginn | contract.start]]></imixs:value>
<imixs:value><![CDATA[Vertragsende | contract.end]]></imixs:value>
</imixs:item>
<imixs:item name="txtplugins" type="xs:string">
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.ResultPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.RulePlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.ProfilePlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.CommentPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.SequenceNumberPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.TeamPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.DeputyPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.OwnerPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.HistoryPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.LogPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.ApplicationPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.workflow.engine.plugins.SplitAndJoinPlugin]]></imixs:value>
<imixs:value><![CDATA[org.imixs.marty.plugins.MailPlugin]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowmodelversion" type="xs:string">
<imixs:value><![CDATA[posteingang-de-1.0]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:signal id="Signal_1" name="org.imixs.archive.documents.OCRDocumentAdapter"/>
<bpmn2:signal id="Signal_2" name="org.imixs.ml.workflow.MLAdapter"/>
<bpmn2:signal id="Signal_3" name="com.alexanderlogistics.XMLPDFAdapter"/>
<bpmn2:collaboration id="Collaboration_1" name="Default Collaboration">
<bpmn2:participant id="Participant_1" name="Posteingang" processRef="Process_1"/>
<bpmn2:textAnnotation id="TextAnnotation_1">
<bpmn2:text>For the OCR Adapter the following minimal options should be set:
* X-Tika-PDFocrStrategy=OCR_AND_TEXT_EXTRACTION
* X-Tika-OCRLanguage=eng+deu
These options allow OCR and text extraction suporting English and German language.
Additional Tika Options can be set but are NOT needed in most cases:
* X-Tika-PDFOcrImageType=RGB (setting the RGB color mode)
* X-Tika-PDFOcrDPI=400 (setting DPI)
Setting the OcrDPI is only recommended if the DPI is know!
Possible ImageTypes are:
* ARGB Alpha, Red, Green, Blue
* BINARY Black or white.
* GRAY Shades of gray
* RGB Red, Green, Blue
</bpmn2:text>
</bpmn2:textAnnotation>
</bpmn2:collaboration>
<bpmn2:process id="Process_1" name="Posteingang" definitionalCollaborationRef="Collaboration_1" isExecutable="false">
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
<bpmn2:lane id="Lane_2" name="Empfang">
<bpmn2:flowNodeRef>BoundaryEvent_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>Task_4</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>ExclusiveGateway_2</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>ExclusiveGateway_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>EndEvent_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_2</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_3</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_4</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_5</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:task id="Task_1" imixs:processid="100" name="Erfassung">
<bpmn2:extensionElements>
<imixs:item name="txteditorid" type="xs:string">
<imixs:value><![CDATA[form_basic]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Rechnung erhalten]]></imixs:value>
</imixs:item>
<imixs:item name="txtimageurl" type="xs:string">
<imixs:value><![CDATA[typcn-contacts]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowsummary" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>true</imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string"/>
<imixs:item name="keyaddwritefields" type="xs:string"/>
<imixs:item name="txttype" type="xs:string">
<imixs:value><![CDATA[workitem]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_3"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:exclusiveGateway id="ExclusiveGateway_1" gatewayDirection="Diverging">
<bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_2" imixs:activityid="20" name="Rechnungseingang">
<bpmn2:extensionElements>
<imixs:item name="keylogtimeformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyarchive" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtmailsubject" type="xs:string">
<imixs:value><![CDATA[Eingangsrechnung erhalten: <itemvalue>_subject</itemvalue>]]></imixs:value>
</imixs:item>
<imixs:item name="keyaccessmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfmailbody" type="xs:string">
<imixs:value><![CDATA[Wir haben folgende Rechnung erhalten: bitte freigeben.
Betrag: <itemvalue>_amount</itemvalue> (Brutto € <itemvalue>_amount_brutto</itemvalue>)
<itemvalue>_description</itemvalue>]]></imixs:value>
</imixs:item>
<imixs:item name="keymailreceiverfields" type="xs:string"/>
<imixs:item name="keyversion" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string"/>
<imixs:item name="numnextactivityid" type="xs:int">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyfollowup" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="keylogdateformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string"/>
<imixs:item name="numnextid" type="xs:int">
<imixs:value><![CDATA[5005]]></imixs:value>
</imixs:item>
<imixs:item name="txtnextprocesstree" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="action">home</item>
<item name="process">Empfang</item>]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Freigabe einholen]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Vertrag abgeschlossen]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_6"><![CDATA[Digitalisierung einer neuen Eingangsrechnung]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="ExclusiveGateway_1" targetRef="IntermediateCatchEvent_2"/>
<bpmn2:sequenceFlow id="SequenceFlow_3" sourceRef="Task_1" targetRef="ExclusiveGateway_1"/>
<bpmn2:startEvent id="StartEvent_1" name="Start">
<bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
</bpmn2:startEvent>
<bpmn2:task id="Task_2" imixs:processid="101" name="Rechnung Analyse">
<bpmn2:extensionElements>
<imixs:item name="txteditorid" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Rechnung erhalten]]></imixs:value>
</imixs:item>
<imixs:item name="txtimageurl" type="xs:string">
<imixs:value><![CDATA[typcn-download]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowsummary" type="xs:string">
<imixs:value><![CDATA[in Verarbeitung...]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>true</imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string"/>
<imixs:item name="keyaddwritefields" type="xs:string"/>
<imixs:item name="txttype" type="xs:string">
<imixs:value><![CDATA[workitem]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_13"><![CDATA[<h3>Rechnungseingangskontrolle</h3>
<p>Der Workflow 'Rechnungseingang' beschreibt beispielhaft einen Ablauf zur Prüfung von Eingangsrechnungen.<p>
<ul>
<li>Nach Erhalt einer Rechnung (z.B. Post, E-Mail, Fax,...) wird diese in das Workflowsystem übertragen und der Prozess Rechnungseingang gestartet.</li>
<li>Die Rechnung wird wahlweise eingescannt und über den Abschnitt 'Dokumente' an den Vorgang hinzugefügt.</li>
<li>In diesem Beispiel wird die Rechnung einem zuvor ausgewählten Mitarbeiter zur Prüfung vorgelegt.</li>
<li>Nach positiver Prüfung werden die Rechnungsdaten (Zahlungsziel, Bankverbindung) vom Controlling im System erfasst und auf das Zahlungsziel gewartet.</li>
<li>Nach Erreichen des Zahlungsziels wird der Vorgang automatisch dem Controlling erneut zur abschließenden Bearbeitung vorgelegt.</li>
</ul>
<h3>Der Workflow</h3>
<p>Eingangsrechnungen können über eine E-Mailschnittstelle oder das Filesystem automatisch eingelesen werden. Eine Eingangsrechnung wird in diesem Beispiel vom zugewiesenen Mitarbeiter sowie den Prozessverantworltichen (Controlling) bearbeitet. </p>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="IntermediateCatchEvent_2" targetRef="Task_2"/>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_3" imixs:activityid="10" name="OCR">
<bpmn2:extensionElements>
<imixs:item name="keylogtimeformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyarchive" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtmailsubject" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyaccessmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfmailbody" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyversion" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[namCreator]]></imixs:value>
<imixs:value><![CDATA[namCurrentEditor]]></imixs:value>
<imixs:value><![CDATA[namprocessmanager]]></imixs:value>
<imixs:value><![CDATA[namprocessteam]]></imixs:value>
</imixs:item>
<imixs:item name="numnextactivityid" type="xs:int">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyfollowup" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="keylogdateformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string">
<imixs:value><![CDATA[namCurrentEditor]]></imixs:value>
<imixs:value><![CDATA[namCreator]]></imixs:value>
</imixs:item>
<imixs:item name="numnextid" type="xs:int">
<imixs:value><![CDATA[5000]]></imixs:value>
</imixs:item>
<imixs:item name="txtnextprocesstree" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<item name="comment" ignore="true"/>
<!-- Tika Options -->
<tika name="options">X-Tika-OCRLanguage=eng+deu</tika>
]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Speichern]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[OCR Processing]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_4"><![CDATA[Zwischenspeichern]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>
<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_6</bpmn2:outgoing>
<bpmn2:dataOutput id="DataOutput_1" name="Signal_1_Output"/>
<bpmn2:dataOutputAssociation id="DataOutputAssociation_1">
<bpmn2:sourceRef>DataOutput_1</bpmn2:sourceRef>
</bpmn2:dataOutputAssociation>
<bpmn2:outputSet id="OutputSet_1" name="Output Set 1">
<bpmn2:dataOutputRefs>DataOutput_1</bpmn2:dataOutputRefs>
</bpmn2:outputSet>
<bpmn2:signalEventDefinition id="SignalEventDefinition_1" signalRef="Signal_1"/>
</bpmn2:intermediateCatchEvent>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_4" imixs:activityid="20" name="Imixs-ML Invoice">
<bpmn2:extensionElements>
<imixs:item name="keylogtimeformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyarchive" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtmailsubject" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyaccessmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfmailbody" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyversion" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[namCreator]]></imixs:value>
<imixs:value><![CDATA[namCurrentEditor]]></imixs:value>
<imixs:value><![CDATA[namprocessmanager]]></imixs:value>
<imixs:value><![CDATA[namprocessteam]]></imixs:value>
</imixs:item>
<imixs:item name="numnextactivityid" type="xs:int">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyfollowup" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="keylogdateformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string">
<imixs:value><![CDATA[namCurrentEditor]]></imixs:value>
<imixs:value><![CDATA[namCreator]]></imixs:value>
</imixs:item>
<imixs:item name="numnextid" type="xs:int">
<imixs:value><![CDATA[5000]]></imixs:value>
</imixs:item>
<imixs:item name="txtnextprocesstree" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<ml-config name="model">invoice-de-0.1.0</ml-config>
<ml-config name="entity">
<name>invoice.total</name>
<type>currency</type>
</ml-config>
<ml-config name="entity">
<name>invoice.number</name>
<type>text</type>
</ml-config>
<ml-config name="entity">
<name>invoice.date</name>
<type>date</type>
</ml-config>
<ml-config name="entity">
<name>cdtr.name</name>
<type>text</type>
</ml-config>
<ml-config name="entity">
<name>cdtr.iban</name>
<type>text</type>
</ml-config>
<ml-config name="entity">
<name>cdtr.bic</name>
<type>text</type>
</ml-config>
]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Speichern]]></imixs:value>
</imixs:item>
<imixs:item name="keyownershipmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[ML Processing]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_7"><![CDATA[Zwischenspeichern]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
<bpmn2:dataOutput id="DataOutput_2" name="Signal_2_Output"/>
<bpmn2:dataOutputAssociation id="DataOutputAssociation_2">
<bpmn2:sourceRef>DataOutput_2</bpmn2:sourceRef>
</bpmn2:dataOutputAssociation>
<bpmn2:outputSet id="OutputSet_2" name="Output Set 1">
<bpmn2:dataOutputRefs>DataOutput_2</bpmn2:dataOutputRefs>
</bpmn2:outputSet>
<bpmn2:signalEventDefinition id="SignalEventDefinition_2" signalRef="Signal_2"/>
</bpmn2:intermediateCatchEvent>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_5" imixs:activityid="30" name="Start Rechnungseingang">
<bpmn2:extensionElements>
<imixs:item name="rtfresultlog" type="CDATA">
<imixs:value><![CDATA[Rechnungseingang gestartet]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="CDATA">
<imixs:value><![CDATA[<model>
<version>rechnungseingang-de-1.0</version>
<task>5000</task>
<event>990</event>
</model>]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
<bpmn2:linkEventDefinition id="LinkEventDefinition_1" name="Link Event Definition 9"/>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="SequenceFlow_6" sourceRef="IntermediateCatchEvent_3" targetRef="IntermediateCatchEvent_4"/>
<bpmn2:sequenceFlow id="SequenceFlow_7" sourceRef="IntermediateCatchEvent_4" targetRef="IntermediateCatchEvent_5"/>
<bpmn2:sequenceFlow id="SequenceFlow_9" sourceRef="Task_2" targetRef="IntermediateCatchEvent_3"/>
<bpmn2:task id="Task_4" imixs:processid="190" name="Abgeschlossen">
<bpmn2:extensionElements>
<imixs:item name="txteditorid" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowabstract" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="txtname" type="xs:string">
<imixs:value><![CDATA[Rechnung erhalten]]></imixs:value>
</imixs:item>
<imixs:item name="txtimageurl" type="xs:string">
<imixs:value><![CDATA[typcn-contacts|typcn-times,imixs-error,icon-sub-ne]]></imixs:value>
</imixs:item>
<imixs:item name="txtworkflowsummary" type="xs:string">
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>true</imixs:value>
</imixs:item>
<imixs:item name="keyownershipfields" type="xs:string"/>
<imixs:item name="keyaddwritefields" type="xs:string">
<imixs:value><![CDATA[namCreator]]></imixs:value>
<imixs:value><![CDATA[namprocessmanager]]></imixs:value>
<imixs:value><![CDATA[namprocessteam]]></imixs:value>
<imixs:value><![CDATA[namspacemanager]]></imixs:value>
<imixs:value><![CDATA[namspaceteam]]></imixs:value>
</imixs:item>
<imixs:item name="txttype" type="xs:string">
<imixs:value><![CDATA[import]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_17"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_12</bpmn2:outgoing>
</bpmn2:task>
<bpmn2:exclusiveGateway id="ExclusiveGateway_2" gatewayDirection="Converging">
<bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_11</bpmn2:outgoing>
</bpmn2:exclusiveGateway>
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="IntermediateCatchEvent_5" targetRef="ExclusiveGateway_2"/>
<bpmn2:sequenceFlow id="SequenceFlow_11" sourceRef="ExclusiveGateway_2" targetRef="Task_4"/>
<bpmn2:endEvent id="EndEvent_1" name="End">
<bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>
</bpmn2:endEvent>
<bpmn2:sequenceFlow id="SequenceFlow_12" sourceRef="Task_4" targetRef="EndEvent_1"/>
<bpmn2:sequenceFlow id="SequenceFlow_13" sourceRef="StartEvent_1" targetRef="Task_1"/>
<bpmn2:boundaryEvent id="BoundaryEvent_1" name="" attachedToRef="Task_2">
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
<bpmn2:timerEventDefinition id="TimerEventDefinition_1"/>
</bpmn2:boundaryEvent>
<bpmn2:sequenceFlow id="SequenceFlow_2" sourceRef="BoundaryEvent_1" targetRef="IntermediateCatchEvent_3"/>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Collaboration Diagram">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Collaboration_1">
<bpmndi:BPMNShape id="BPMNShape_1" bpmnElement="Participant_1" isHorizontal="true">
<dc:Bounds height="451.0" width="1281.0" x="100.0" y="100.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="69.0" width="14.0" x="106.0" y="291.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_Lane_2" bpmnElement="Lane_2" isHorizontal="true">
<dc:Bounds height="451.0" width="1251.0" x="130.0" y="100.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_7" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="49.0" width="14.0" x="136.0" y="301.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_Task_7">
<dc:Bounds height="50.0" width="110.0" x="0.0" y="0.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_4">
<dc:Bounds height="14.0" width="103.0" x="3.0" y="18.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_Task_1" bpmnElement="Task_1">
<dc:Bounds height="50.0" width="110.0" x="241.0" y="296.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_2" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="55.0" x="268.0" y="314.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_ExclusiveGateway_1" bpmnElement="ExclusiveGateway_1" isMarkerVisible="true">
<dc:Bounds height="50.0" width="50.0" x="401.0" y="296.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_3" labelStyle="BPMNLabelStyle_1"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_2" bpmnElement="IntermediateCatchEvent_2">
<dc:Bounds height="36.0" width="36.0" x="484.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_5" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="28.0" width="108.0" x="448.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="StartEvent_1">
<dc:Bounds height="36.0" width="36.0" x="170.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_9" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="25.0" x="175.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_Task_2" bpmnElement="Task_2">
<dc:Bounds height="50.0" width="112.0" x="570.0" y="296.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_10" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="103.0" x="574.0" y="314.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_3" bpmnElement="IntermediateCatchEvent_3">
<dc:Bounds height="36.0" width="36.0" x="715.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_14" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="27.0" x="719.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_4" bpmnElement="IntermediateCatchEvent_4">
<dc:Bounds height="36.0" width="36.0" x="785.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_15" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="28.0" width="57.0" x="775.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_5" bpmnElement="IntermediateCatchEvent_5">
<dc:Bounds height="36.0" width="36.0" x="884.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_16" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="42.0" width="108.0" x="848.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_Task_4" bpmnElement="Task_4">
<dc:Bounds height="50.0" width="110.0" x="1088.0" y="296.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_22" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="84.0" x="1101.0" y="314.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_ExclusiveGateway_2" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">
<dc:Bounds height="50.0" width="50.0" x="986.0" y="296.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_23" labelStyle="BPMNLabelStyle_1"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_EndEvent_1" bpmnElement="EndEvent_1">
<dc:Bounds height="36.0" width="36.0" x="1238.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_26" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="14.0" width="22.0" x="1245.0" y="339.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_TextAnnotation_1" bpmnElement="TextAnnotation_1">
<dc:Bounds height="321.0" width="541.0" x="440.0" y="600.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_53">
<dc:Bounds height="315.0" width="529.0" x="446.0" y="600.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="BPMNShape_BoundaryEvent_1" bpmnElement="BoundaryEvent_1">
<dc:Bounds height="36.0" width="36.0" x="602.0" y="278.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_11" labelStyle="BPMNLabelStyle_1"/>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_IntermediateCatchEvent_2">
<di:waypoint xsi:type="dc:Point" x="451.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="467.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="484.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_6"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_ExclusiveGateway_1">
<di:waypoint xsi:type="dc:Point" x="351.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="376.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="401.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_8"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_IntermediateCatchEvent_2" targetElement="BPMNShape_Task_2">
<di:waypoint xsi:type="dc:Point" x="520.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="545.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="570.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_12"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="BPMNShape_IntermediateCatchEvent_3" targetElement="BPMNShape_IntermediateCatchEvent_4">
<di:waypoint xsi:type="dc:Point" x="751.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="768.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="785.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_17"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="BPMNShape_IntermediateCatchEvent_4" targetElement="BPMNShape_IntermediateCatchEvent_5">
<di:waypoint xsi:type="dc:Point" x="821.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="852.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="884.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_18"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_IntermediateCatchEvent_3">
<di:waypoint xsi:type="dc:Point" x="682.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="698.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="715.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_21"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="BPMNShape_IntermediateCatchEvent_5" targetElement="BPMNShape_ExclusiveGateway_2">
<di:waypoint xsi:type="dc:Point" x="920.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="953.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="986.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_24"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_11" sourceElement="BPMNShape_ExclusiveGateway_2" targetElement="BPMNShape_Task_4">
<di:waypoint xsi:type="dc:Point" x="1036.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="1062.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="1088.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_25"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="BPMNShape_Task_4" targetElement="BPMNShape_EndEvent_1">
<di:waypoint xsi:type="dc:Point" x="1198.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="1218.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="1238.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_27"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="BPMNShape_StartEvent_1" targetElement="BPMNShape_Task_1">
<di:waypoint xsi:type="dc:Point" x="206.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="223.0" y="321.0"/>
<di:waypoint xsi:type="dc:Point" x="241.0" y="321.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_28"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="BPMNShape_BoundaryEvent_1" targetElement="BPMNShape_IntermediateCatchEvent_3">
<di:waypoint xsi:type="dc:Point" x="620.0" y="278.0"/>
<di:waypoint xsi:type="dc:Point" x="620.0" y="268.0"/>
<di:waypoint xsi:type="dc:Point" x="733.0" y="268.0"/>
<di:waypoint xsi:type="dc:Point" x="733.0" y="303.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_20"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
<dc:Font name="arial" size="9.0"/>
</bpmndi:BPMNLabelStyle>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>