neuer workflow mahnlauf
This commit is contained in:
parent
dae4560a69
commit
1870d0856a
7 changed files with 1152 additions and 278 deletions
|
|
@ -49,6 +49,7 @@ public class DatevCargosoftImportAdapter implements SignalAdapter {
|
|||
|
||||
public static final String ENCODING = "ISO-8859-1";
|
||||
public static final String CHILD_ITEM_PROPERTY = "_ChildItems";
|
||||
public static final String REGEX_IMPORTTEXTPATTERN = "^R[1-8] .*$";
|
||||
|
||||
@Inject
|
||||
WorkflowService workflowService;
|
||||
|
|
@ -102,6 +103,8 @@ public class DatevCargosoftImportAdapter implements SignalAdapter {
|
|||
int positions = 0;
|
||||
int invoices = 0;
|
||||
int dupplicates = 0;
|
||||
int rueckstellungen=0;
|
||||
int eingangsrechnungen=0;
|
||||
|
||||
String dataLine;
|
||||
// Start Datum Wirtschaftsjahr berechnen (JJJJMMTT)
|
||||
|
|
@ -168,10 +171,22 @@ public class DatevCargosoftImportAdapter implements SignalAdapter {
|
|||
|
||||
// Skip Eingangsrechnungen
|
||||
if (!gegenKonto.startsWith("1")) {
|
||||
eingangsrechnungen++;
|
||||
// skip
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip Rückstellung
|
||||
// text darf nicht mit R1 bis R8 beginnen
|
||||
// ^R[1-8] .
|
||||
if (text.matches(REGEX_IMPORTTEXTPATTERN)) {
|
||||
rueckstellungen++;
|
||||
// skip
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
|
||||
positions++;
|
||||
logger.info("...read dbtr: " + gegenKonto + " beleg-nr: " + belegNummer);
|
||||
|
||||
|
|
@ -236,6 +251,14 @@ public class DatevCargosoftImportAdapter implements SignalAdapter {
|
|||
log(logBuffer, line + " Zeilen eingelesen ");
|
||||
log(logBuffer, positions + " Rechnungspositionen eingelesen ");
|
||||
log(logBuffer, invoices + " Rechnungen importiert ");
|
||||
|
||||
if (rueckstellungen>0) {
|
||||
log(logBuffer, rueckstellungen + " Rückstellungen wurden übersprungen.");
|
||||
}
|
||||
if (eingangsrechnungen>0) {
|
||||
log(logBuffer, eingangsrechnungen + " Eingangsrechnungen wurden übersprungen.");
|
||||
}
|
||||
|
||||
if (dupplicates > 0) {
|
||||
log(logBuffer, dupplicates + " Rechnungen wurden übersprungen da diese bereits importiert wurden!");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,61 @@
|
|||
package com.alexanderlogistics.mahnlauf;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.imixs.workflow.ItemCollection;
|
||||
import org.imixs.workflow.SignalAdapter;
|
||||
import org.imixs.workflow.engine.ModelService;
|
||||
import org.imixs.workflow.engine.WorkflowService;
|
||||
import org.imixs.workflow.exceptions.AdapterException;
|
||||
import org.imixs.workflow.exceptions.PluginException;
|
||||
|
||||
/**
|
||||
* The MahnlaufExecuteAdapter triggers the event 300 for all linked invoices
|
||||
* <p>
|
||||
*
|
||||
* @version 1.0
|
||||
* @author rsoika
|
||||
*/
|
||||
public class MahnlaufExecuteAdapter implements SignalAdapter {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private static Logger logger = Logger.getLogger(MahnlaufExecuteAdapter.class.getName());
|
||||
|
||||
@EJB
|
||||
ModelService modelService;
|
||||
|
||||
@EJB
|
||||
WorkflowService workflowService = null;
|
||||
|
||||
@Inject
|
||||
MahnlaufService mahnlaufService;
|
||||
|
||||
/**
|
||||
* This method finds all invices ($workitemref) and tirgges event 300
|
||||
*
|
||||
* @throws PluginException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public ItemCollection execute(ItemCollection mahnLaufWorkitem, ItemCollection event)
|
||||
throws AdapterException, PluginException {
|
||||
|
||||
// get all Invoices of this Mahnlauf
|
||||
List<String> refList = mahnLaufWorkitem.getItemValue("$workitemref");
|
||||
|
||||
for (String uniqueId : refList) {
|
||||
ItemCollection invoice = workflowService.getWorkItem(uniqueId);
|
||||
if (invoice != null && (invoice.getTaskID()>=MahnlaufService.TASK_MAHNLAUF_START && invoice.getTaskID()<=MahnlaufService.TASK_MAHNLAUF_END)) {
|
||||
mahnlaufService.processInvoice(invoice.event(MahnlaufService.EVENT_MAHNLAUF_EXECUTE));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return mahnLaufWorkitem;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
package com.alexanderlogistics.mahnlauf;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import javax.ejb.EJB;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.imixs.workflow.ItemCollection;
|
||||
import org.imixs.workflow.Model;
|
||||
import org.imixs.workflow.SignalAdapter;
|
||||
import org.imixs.workflow.WorkflowKernel;
|
||||
import org.imixs.workflow.engine.ModelService;
|
||||
import org.imixs.workflow.engine.WorkflowService;
|
||||
import org.imixs.workflow.exceptions.AdapterException;
|
||||
import org.imixs.workflow.exceptions.ModelException;
|
||||
import org.imixs.workflow.exceptions.PluginException;
|
||||
import org.imixs.workflow.exceptions.QueryException;
|
||||
import org.imixs.workflow.sepa.services.SepaWorkflowService;
|
||||
|
||||
/**
|
||||
* The MahnlaufRefAddAdapter links an invoice with a Mahnlauf for the
|
||||
* dbtr.number item . If there is currently no open Mahnlauf for this key, the
|
||||
* adapter automatically creates a new process instance. If a manhlauf for this
|
||||
* dbt.number is found, the invoice is just added.
|
||||
* <p>
|
||||
* If the invoice has already been linked to a Mahnlauf nothing happens.
|
||||
* <p>
|
||||
*
|
||||
* @version 1.0
|
||||
* @author rsoika
|
||||
*/
|
||||
public class MahnlaufRefAddAdapter implements SignalAdapter {
|
||||
|
||||
private static Logger logger = Logger.getLogger(MahnlaufRefAddAdapter.class.getName());
|
||||
|
||||
@EJB
|
||||
ModelService modelService;
|
||||
|
||||
@EJB
|
||||
WorkflowService workflowService = null;
|
||||
|
||||
@Inject
|
||||
SepaWorkflowService sepaWorkflowService;
|
||||
|
||||
/**
|
||||
* This method finds or create the Mahnlauf and adds a reference ($workitemref)
|
||||
* to the current invoice.
|
||||
*
|
||||
* @throws PluginException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public ItemCollection execute(ItemCollection invoice, ItemCollection event)
|
||||
throws AdapterException, PluginException {
|
||||
|
||||
String dbtrNumber = invoice.getItemValueString(MahnlaufService.ITEM_DBTR_NUMBER);
|
||||
ItemCollection mahnLaufWorkitem;
|
||||
try {
|
||||
mahnLaufWorkitem = findMahnlauf(dbtrNumber);
|
||||
|
||||
if (mahnLaufWorkitem == null) {
|
||||
// create one...
|
||||
mahnLaufWorkitem = createNewMahnlauf(dbtrNumber, invoice, event);
|
||||
}
|
||||
|
||||
// add Invoice to Mahnlauf
|
||||
List<String> refList = mahnLaufWorkitem.getItemValue("$workitemref");
|
||||
if (!refList.contains(invoice.getUniqueID())) {
|
||||
mahnLaufWorkitem.appendItemValueUnique("$workitemref", invoice.getUniqueID());
|
||||
}
|
||||
|
||||
// set event 100 and process
|
||||
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
||||
int eventID = mahnlaufConfig.getItemValueInteger("event");
|
||||
|
||||
mahnLaufWorkitem.event(eventID);
|
||||
workflowService.processWorkItem(mahnLaufWorkitem);
|
||||
|
||||
} catch (QueryException | ModelException e) {
|
||||
throw new PluginException(MahnlaufRefAddAdapter.class.getName(),
|
||||
MahnlaufService.ERROR_CONFIG, "Unable to create Mahnlauf", e);
|
||||
}
|
||||
|
||||
// set mahnlauf ref
|
||||
invoice.setItemValue("dunning.ref", mahnLaufWorkitem.getUniqueID());
|
||||
return invoice;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method finds an open mahnlauf for a debtr.numbre (name)
|
||||
*
|
||||
* @param key
|
||||
* @return
|
||||
* @throws QueryException
|
||||
*/
|
||||
public ItemCollection findMahnlauf(String key) throws QueryException {
|
||||
String query = "(type:workitem) AND ($modelversion:mahnlauf*) AND (name:\"" + key + "\")";
|
||||
List<ItemCollection> resultList = workflowService.getDocumentService().find(query, 1, 0, "$modified", true);
|
||||
|
||||
if (resultList.size() > 0) {
|
||||
return resultList.get(0);
|
||||
}
|
||||
// no mahnaluffound
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method to create a new Mahnlauf workitem
|
||||
*
|
||||
* @param key
|
||||
* @param invoice
|
||||
* @return
|
||||
* @throws ModelException
|
||||
* @throws PluginException
|
||||
*/
|
||||
public ItemCollection createNewMahnlauf(String key, ItemCollection invoice, ItemCollection event)
|
||||
throws ModelException, PluginException {
|
||||
String modelVersion = null;
|
||||
int taskID = -1;
|
||||
int eventID=-1;
|
||||
// test if the event provides a sepa export configuration
|
||||
ItemCollection mahnlaufConfig = workflowService.evalWorkflowResult(event, "mahnlauf", invoice, true);
|
||||
if (mahnlaufConfig != null && mahnlaufConfig.hasItem("modelversion") && mahnlaufConfig.hasItem("task")) {
|
||||
logger.fine("read model information from event");
|
||||
modelVersion = mahnlaufConfig.getItemValueString("modelVersion");
|
||||
taskID = mahnlaufConfig.getItemValueInteger("task");
|
||||
eventID = mahnlaufConfig.getItemValueInteger("event");
|
||||
}
|
||||
|
||||
// build the sepa export workitem....
|
||||
ItemCollection mahnlaufWorkitem = new ItemCollection().model(modelVersion).task(taskID);
|
||||
mahnlaufWorkitem.replaceItemValue("name", key);
|
||||
mahnlaufWorkitem.replaceItemValue(WorkflowKernel.CREATED, new Date());
|
||||
mahnlaufWorkitem.replaceItemValue(WorkflowKernel.MODIFIED, new Date());
|
||||
// set unqiueid
|
||||
mahnlaufWorkitem.setItemValue(WorkflowKernel.UNIQUEID, WorkflowKernel.generateUniqueID());
|
||||
|
||||
// copy dbtr_iban
|
||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NAME, invoice.getItemValue(MahnlaufService.ITEM_DBTR_NAME));
|
||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_EMAIL, invoice.getItemValue(MahnlaufService.ITEM_DBTR_EMAIL));
|
||||
mahnlaufWorkitem.setItemValue(MahnlaufService.ITEM_DBTR_NUMBER, invoice.getItemValue(MahnlaufService.ITEM_DBTR_NUMBER));
|
||||
|
||||
mahnlaufWorkitem.setItemValue("invoice.language", invoice.getItemValue("invoice.language"));
|
||||
|
||||
|
||||
|
||||
// set workflow group name from the Task Element to identify document in xslt
|
||||
Model model = modelService.getModel(modelVersion);
|
||||
ItemCollection task = model.getTask(taskID);
|
||||
String modelTaskGroupName = task.getItemValueString("txtworkflowgroup"); // DO NOT CHANGE!
|
||||
mahnlaufWorkitem.setItemValue(WorkflowKernel.WORKFLOWGROUP, modelTaskGroupName);
|
||||
|
||||
logger.info("...created new mahnlauf " + key + "...");
|
||||
|
||||
return mahnlaufWorkitem;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
/*******************************************************************************
|
||||
* Imixs Workflow
|
||||
* Copyright (C) 2001, 2011 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:
|
||||
* http://www.imixs.org
|
||||
* http://java.net/projects/imixs-workflow
|
||||
*
|
||||
* Contributors:
|
||||
* Imixs Software Solutions GmbH - initial API and implementation
|
||||
* Ralph Soika - Software Developer
|
||||
*******************************************************************************/
|
||||
|
||||
package com.alexanderlogistics.mahnlauf;
|
||||
|
||||
import javax.annotation.security.DeclareRoles;
|
||||
import javax.annotation.security.RolesAllowed;
|
||||
import javax.annotation.security.RunAs;
|
||||
import javax.ejb.Singleton;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.imixs.workflow.ItemCollection;
|
||||
import org.imixs.workflow.engine.WorkflowService;
|
||||
import org.imixs.workflow.exceptions.AccessDeniedException;
|
||||
import org.imixs.workflow.exceptions.ModelException;
|
||||
import org.imixs.workflow.exceptions.PluginException;
|
||||
import org.imixs.workflow.exceptions.ProcessingErrorException;
|
||||
|
||||
/**
|
||||
* Der MahnlaufService wird vom MahnlaufExecuteAdapter um
|
||||
* Ausgangsrechnungen zu akutalisieren.
|
||||
*
|
||||
* @author rsoika
|
||||
*
|
||||
*/
|
||||
|
||||
@DeclareRoles({ "org.imixs.ACCESSLEVEL.NOACCESS", "org.imixs.ACCESSLEVEL.READERACCESS",
|
||||
"org.imixs.ACCESSLEVEL.AUTHORACCESS", "org.imixs.ACCESSLEVEL.EDITORACCESS",
|
||||
"org.imixs.ACCESSLEVEL.MANAGERACCESS" })
|
||||
@RolesAllowed({ "org.imixs.ACCESSLEVEL.NOACCESS", "org.imixs.ACCESSLEVEL.READERACCESS",
|
||||
"org.imixs.ACCESSLEVEL.AUTHORACCESS", "org.imixs.ACCESSLEVEL.EDITORACCESS",
|
||||
"org.imixs.ACCESSLEVEL.MANAGERACCESS" })
|
||||
@Singleton
|
||||
@RunAs("org.imixs.ACCESSLEVEL.MANAGERACCESS")
|
||||
public class MahnlaufService {
|
||||
|
||||
|
||||
public static final int TASK_MAHNLAUF_START = 5100;
|
||||
public static final int TASK_MAHNLAUF_END = 5299;
|
||||
public static final int EVENT_MAHNLAUF_EXECUTE = 300;
|
||||
|
||||
public static final String ITEM_DBTR_NUMBER = "dbtr.number";
|
||||
public static final String ITEM_DBTR_NAME = "dbtr.name";
|
||||
public static final String ITEM_DBTR_EMAIL = "dbtr.mail";
|
||||
public static final String ERROR_CONFIG = "CONFIG_ERROR";
|
||||
public static final String ERROR_WORKFLOW = "ERROR_WORKFLOW";
|
||||
|
||||
|
||||
@Inject
|
||||
WorkflowService workflowService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* * Diese Method processed eine Invoice mit Manager Rechnten
|
||||
*
|
||||
* @throws PluginException
|
||||
* @throws ModelException
|
||||
* @throws ProcessingErrorException
|
||||
* @throws AccessDeniedException
|
||||
*/
|
||||
public ItemCollection processInvoice(ItemCollection invoice) throws PluginException {
|
||||
try {
|
||||
return workflowService.processWorkItem(invoice);
|
||||
} catch (AccessDeniedException | ProcessingErrorException | PluginException | ModelException e) {
|
||||
throw new PluginException(PluginException.class.getName(), ERROR_WORKFLOW,
|
||||
"Die Rechnung konnte nicht verarbeitet werden - " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -2,6 +2,8 @@ package com.alexanderlogistics;
|
|||
|
||||
import org.junit.Test;
|
||||
|
||||
import com.alexanderlogistics.datev.DatevCargosoftImportAdapter;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
/**
|
||||
|
|
@ -12,18 +14,27 @@ import junit.framework.Assert;
|
|||
*/
|
||||
public class TestPostionsnummernRegex {
|
||||
|
||||
/**
|
||||
* Test positionnummern 'XX-YYY-####-###'
|
||||
*/
|
||||
@Test
|
||||
public void testPutFileToFTP() {
|
||||
/**
|
||||
* Test positionnummern 'XX-YYY-####-###'
|
||||
*/
|
||||
@Test
|
||||
public void testPutFileToFTP() {
|
||||
|
||||
Assert.assertTrue("AA-BBC-1234-991".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
Assert.assertFalse("aa-BBC-1234-991".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
Assert.assertFalse("CC-BBC-1234-991 ".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
|
||||
Assert.assertTrue("IM-ZEL-2101-005".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
|
||||
}
|
||||
Assert.assertTrue("AA-BBC-1234-991".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
Assert.assertFalse("aa-BBC-1234-991".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
Assert.assertFalse("CC-BBC-1234-991 ".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
|
||||
Assert.assertTrue("IM-ZEL-2101-005".matches(InvoicePlugin.REGEX_POSNUMER));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testCargoImportText() {
|
||||
|
||||
Assert.assertTrue("R3 EX-PRO-2208-054".matches(DatevCargosoftImportAdapter.REGEX_IMPORTTEXTPATTERN));
|
||||
Assert.assertTrue("R3 VP".matches(DatevCargosoftImportAdapter.REGEX_IMPORTTEXTPATTERN));
|
||||
Assert.assertFalse("R LA-HOL-2208-013".matches(DatevCargosoftImportAdapter.REGEX_IMPORTTEXTPATTERN));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@
|
|||
</bpmn2:extensionElements>
|
||||
<bpmn2:signal id="Signal_1" name="com.alexanderlogistics.ZahlungsavisExportAdapter"/>
|
||||
<bpmn2:signal id="Signal_2" name="com.alexanderlogistics.ZahlungseingangSaldoAdapter"/>
|
||||
<bpmn2:message id="Message_2" name="HTML-Header">
|
||||
<bpmn2:signal id="Signal_3" name="com.alexanderlogistics.mahnlauf.MahnlaufExecuteAdapter"/>
|
||||
<bpmn2:message id="Message_2" name="Html-Header">
|
||||
<bpmn2:documentation id="Documentation_22"><![CDATA[<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
|
|
@ -67,7 +68,7 @@ th { font-weight: bold;}
|
|||
</head>
|
||||
<body>]]></bpmn2:documentation>
|
||||
</bpmn2:message>
|
||||
<bpmn2:message id="Message_4" name="HTML-Footer-EN">
|
||||
<bpmn2:message id="Message_4" name="Html-Footer-EN">
|
||||
<bpmn2:documentation id="Documentation_23"><![CDATA[<p>In case you have already made the payment, please disregard this notice. If you require any information regarding your account, please do not hesitate to contact us.</p>
|
||||
<p>Thank you for your cooperation.</p>
|
||||
<p> </p>
|
||||
|
|
@ -87,14 +88,16 @@ th { font-weight: bold;}
|
|||
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_3</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>EndEvent_3</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_6</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>ExclusiveGateway_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_4</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_5</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_7</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>ExclusiveGateway_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_4</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>ExclusiveGateway_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_6</bpmn2:flowNodeRef>
|
||||
</bpmn2:lane>
|
||||
</bpmn2:laneSet>
|
||||
<bpmn2:startEvent id="StartEvent_1" name="Start">
|
||||
|
|
@ -135,6 +138,7 @@ th { font-weight: bold;}
|
|||
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="Task_2" targetRef="EndEvent_3"/>
|
||||
<bpmn2:endEvent id="EndEvent_3" name="End">
|
||||
<bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
|
||||
<bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>
|
||||
</bpmn2:endEvent>
|
||||
<bpmn2:task id="Task_1" imixs:processid="1000" name="Erfassung">
|
||||
<bpmn2:extensionElements>
|
||||
|
|
@ -171,7 +175,9 @@ th { font-weight: bold;}
|
|||
<bpmn2:documentation id="Documentation_3"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_14</bpmn2:incoming>
|
||||
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
|
||||
<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
|
||||
<bpmn2:outgoing>SequenceFlow_3</bpmn2:outgoing>
|
||||
</bpmn2:task>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_6" imixs:activityid="10" name="Speichern">
|
||||
<bpmn2:extensionElements>
|
||||
|
|
@ -305,7 +311,13 @@ th { font-weight: bold;}
|
|||
<imixs-form>
|
||||
<imixs-form-section columns="2">
|
||||
<item name="dbtr.number" type="text" required="true" label="Debitor:" />
|
||||
<item name="name" type="textarea" label="Bemerkung:" />
|
||||
<item name="dbtr.mail" type="text" required="true" label="E-Mail:" />
|
||||
|
||||
</imixs-form-section>
|
||||
|
||||
<imixs-form-section columns="1">
|
||||
|
||||
<item name="description" type="textarea" label="Bemerkung:" />
|
||||
</imixs-form-section>
|
||||
|
||||
<imixs-form-section label="Offene Posten" path="alexander/section_opliste_mahnlauf" readonly="false" />
|
||||
|
|
@ -313,7 +325,7 @@ th { font-weight: bold;}
|
|||
</imixs-form>]]></bpmn2:documentation>
|
||||
<bpmn2:dataState id="DataState_1"/>
|
||||
</bpmn2:dataObject>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1" imixs:activityid="20" name="Senden">
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1" imixs:activityid="20" name="Mahnen">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="keylogtimeformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
|
|
@ -357,7 +369,8 @@ th { font-weight: bold;}
|
|||
<imixs:value><![CDATA[]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
|
||||
<imixs:value><![CDATA[<item name="action">home</item>
|
||||
<item name="process">Mahnwesen</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Speichern]]></imixs:value>
|
||||
|
|
@ -366,19 +379,26 @@ th { font-weight: bold;}
|
|||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Zahlungseingang abgeschlossen und Rechnungen abgeglichen.]]></imixs:value>
|
||||
<imixs:value><![CDATA[Mahnung erstellt und versendet]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_1"><![CDATA[Zahlungseingang abschließen und Rechnungen abgleichen]]></bpmn2:documentation>
|
||||
<bpmn2:documentation id="Documentation_1"><![CDATA[Mahnstufe hochsetzen und E-Mail an Debitor versenden]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_7</bpmn2:outgoing>
|
||||
<bpmn2:outputSet id="OutputSet_2" name="Output Set 2"/>
|
||||
<bpmn2:dataOutput id="DataOutput_1" name="Signal_2_Output"/>
|
||||
<bpmn2:dataOutputAssociation id="DataOutputAssociation_1">
|
||||
<bpmn2:sourceRef>DataOutput_1</bpmn2:sourceRef>
|
||||
</bpmn2:dataOutputAssociation>
|
||||
<bpmn2:outputSet id="OutputSet_2" name="Output Set 2">
|
||||
<bpmn2:dataOutputRefs>DataOutput_1</bpmn2:dataOutputRefs>
|
||||
</bpmn2:outputSet>
|
||||
<bpmn2:signalEventDefinition id="SignalEventDefinition_2" signalRef="Signal_3"/>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_2" sourceRef="Task_1" targetRef="IntermediateCatchEvent_1"/>
|
||||
<bpmn2:exclusiveGateway id="ExclusiveGateway_1" gatewayDirection="Diverging">
|
||||
<bpmn2:exclusiveGateway id="ExclusiveGateway_1" gatewayDirection="Diverging" default="SequenceFlow_9">
|
||||
<bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_8</bpmn2:outgoing>
|
||||
<bpmn2:outgoing>SequenceFlow_9</bpmn2:outgoing>
|
||||
|
|
@ -490,6 +510,178 @@ th { font-weight: bold;}
|
|||
<bpmn2:sequenceFlow id="SequenceFlow_11" sourceRef="IntermediateCatchEvent_2" targetRef="ExclusiveGateway_2"/>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_12" sourceRef="IntermediateCatchEvent_4" targetRef="ExclusiveGateway_2"/>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_15" sourceRef="ExclusiveGateway_2" targetRef="Task_2"/>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_5" imixs:activityid="100" name="[add ref]">
|
||||
<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: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[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keylogdateformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||
<imixs:item name="numnextid" type="xs:int">
|
||||
<imixs:value><![CDATA[5000]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||
<imixs:value><![CDATA[]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="process">Mahnwesen</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Speichern]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Rechnung hinzugefügt]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_5"><![CDATA[Zwischenspeichern]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing>
|
||||
<bpmn2:signalEventDefinition id="SignalEventDefinition_1"/>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="IntermediateCatchEvent_5" targetRef="Task_1"/>
|
||||
<bpmn2:task id="Task_3" imixs:processid="1800" name="Storniert">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||
<imixs:value><![CDATA[<itemvalue format="dd. MM.yyyy">$lasteventdate</itemvalue> - <itemvalue>payment.total</itemvalue> <itemvalue>payment.currency</itemvalue> (<itemvalue>dbtr.number</itemvalue> - <itemvalue>dbtr.name</itemvalue>)]]></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="keyaddreadfields" type="xs:string"/>
|
||||
<imixs:item name="txtimageurl" type="xs:string">
|
||||
<imixs:value><![CDATA[typcn-mail||||typcn-tick,imixs-success]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txteditorid" type="xs:string">
|
||||
<imixs:value><![CDATA[form_basic_read]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txttype" type="xs:string">
|
||||
<imixs:value><![CDATA[workitemarchive]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtworkflowabstract" type="CDATA">
|
||||
<imixs:value><![CDATA[]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="namaddreadaccess" type="xs:string">
|
||||
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_9"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_5</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_13</bpmn2:outgoing>
|
||||
</bpmn2:task>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_7" imixs:activityid="40" name="Stornieren">
|
||||
<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:item name="numnextactivityid" type="xs:int">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyfollowup" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keypublicresult" type="xs:string">
|
||||
<imixs:value><![CDATA[1]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keylogdateformat" type="xs:string">
|
||||
<imixs:value><![CDATA[2]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipfields" type="xs:string"/>
|
||||
<imixs:item name="numnextid" type="xs:int">
|
||||
<imixs:value><![CDATA[5000]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtnextprocesstree" type="xs:string">
|
||||
<imixs:value><![CDATA[]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="action">home</item>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtname" type="xs:string">
|
||||
<imixs:value><![CDATA[Speichern]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyownershipmode" type="xs:string">
|
||||
<imixs:value><![CDATA[0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="rtfresultlog" type="xs:string">
|
||||
<imixs:value><![CDATA[Zahlungseingang abgeschlossen und Rechnungen abgeglichen.]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtbusinessrule" type="CDATA">
|
||||
<imixs:value><![CDATA[var result={};
|
||||
var refField="txtcomment";
|
||||
result.isValid=true;
|
||||
|
||||
if ( ( workitem.get(refField) == null || ''==workitem.get(refField)[0]) ) {
|
||||
result.isValid=false;
|
||||
result.errorMessage='Bitte geben Sie einen Kommentar ein.';
|
||||
}]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_13"><![CDATA[Zahlungseingang abschließen und Rechnungen abgleichen]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>
|
||||
<bpmn2:outgoing>SequenceFlow_5</bpmn2:outgoing>
|
||||
<bpmn2:outputSet id="OutputSet_1" name="Output Set 2"/>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_3" sourceRef="Task_1" targetRef="IntermediateCatchEvent_7"/>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_5" sourceRef="IntermediateCatchEvent_7" targetRef="Task_3"/>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_13" sourceRef="Task_3" targetRef="EndEvent_3"/>
|
||||
<bpmn2:association id="Association_2" sourceRef="DataObject_1" targetRef="Task_1"/>
|
||||
</bpmn2:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
|
||||
|
|
@ -525,15 +717,15 @@ th { font-weight: bold;}
|
|||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_Task_2" bpmnElement="Task_2">
|
||||
<dc:Bounds height="50.0" width="110.0" x="680.0" y="294.0"/>
|
||||
<dc:Bounds height="50.0" width="110.0" x="762.0" y="294.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_5" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="14.0" width="55.0" x="707.0" y="312.0"/>
|
||||
<dc:Bounds height="14.0" width="55.0" x="789.0" y="312.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_6" bpmnElement="IntermediateCatchEvent_6">
|
||||
<dc:Bounds height="36.0" width="36.0" x="717.0" y="392.0"/>
|
||||
<dc:Bounds height="36.0" width="36.0" x="808.0" y="216.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_10" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="14.0" width="56.0" x="707.0" y="428.0"/>
|
||||
<dc:Bounds height="14.0" width="56.0" x="798.0" y="252.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_3" bpmnElement="IntermediateCatchEvent_3">
|
||||
|
|
@ -551,39 +743,39 @@ th { font-weight: bold;}
|
|||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_1" bpmnElement="IntermediateCatchEvent_1">
|
||||
<dc:Bounds height="36.0" width="36.0" x="430.0" y="301.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_2" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="14.0" width="43.0" x="427.0" y="337.0"/>
|
||||
<dc:Bounds height="14.0" width="45.0" x="426.0" y="337.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="480.0" y="294.0"/>
|
||||
<dc:Bounds height="50.0" width="50.0" x="562.0" y="294.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_18" labelStyle="BPMNLabelStyle_1"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_2" bpmnElement="IntermediateCatchEvent_2">
|
||||
<dc:Bounds height="36.0" width="36.0" x="550.0" y="237.0"/>
|
||||
<dc:Bounds height="36.0" width="36.0" x="632.0" y="237.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_19" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="14.0" width="49.0" x="544.0" y="273.0"/>
|
||||
<dc:Bounds height="14.0" width="49.0" x="626.0" y="273.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_4" bpmnElement="IntermediateCatchEvent_4">
|
||||
<dc:Bounds height="36.0" width="36.0" x="550.0" y="350.0"/>
|
||||
<dc:Bounds height="36.0" width="36.0" x="632.0" y="350.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_20" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="14.0" width="49.0" x="544.0" y="386.0"/>
|
||||
<dc:Bounds height="14.0" width="49.0" x="626.0" y="386.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="605.0" y="294.0"/>
|
||||
<dc:Bounds height="50.0" width="50.0" x="687.0" y="294.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_30" labelStyle="BPMNLabelStyle_1"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_Message_1" bpmnElement="Message_2">
|
||||
<dc:Bounds height="20.0" width="30.0" x="119.0" y="59.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_35">
|
||||
<dc:Bounds height="14.0" width="78.0" x="95.0" y="79.0"/>
|
||||
<dc:Bounds height="14.0" width="70.0" x="99.0" y="79.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_Message_2" bpmnElement="Message_4">
|
||||
<dc:Bounds height="20.0" width="30.0" x="230.0" y="59.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_39">
|
||||
<dc:Bounds height="28.0" width="80.0" x="205.0" y="79.0"/>
|
||||
<dc:Bounds height="28.0" width="69.0" x="211.0" y="79.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_Message_4" bpmnElement="Message_7">
|
||||
|
|
@ -592,16 +784,35 @@ th { font-weight: bold;}
|
|||
<dc:Bounds height="28.0" width="69.0" x="325.0" y="79.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_5" bpmnElement="IntermediateCatchEvent_5">
|
||||
<dc:Bounds height="36.0" width="36.0" x="240.0" y="392.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_3">
|
||||
<dc:Bounds height="14.0" width="44.0" x="236.0" y="428.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_Task_3" bpmnElement="Task_3">
|
||||
<dc:Bounds height="50.0" width="110.0" x="935.0" y="413.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_7">
|
||||
<dc:Bounds height="14.0" width="46.0" x="967.0" y="431.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="BPMNShape_IntermediateCatchEvent_7" bpmnElement="IntermediateCatchEvent_7">
|
||||
<dc:Bounds height="36.0" width="36.0" x="619.0" y="440.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_8">
|
||||
<dc:Bounds height="14.0" width="57.0" x="609.0" y="476.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_10" bpmnElement="SequenceFlow_10" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_EndEvent_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="790.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="855.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="872.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="896.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="920.0" y="319.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_26"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="BPMNShape_IntermediateCatchEvent_6" targetElement="BPMNShape_Task_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="735.0" y="392.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="735.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="735.0" y="344.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="826.0" y="252.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="826.0" y="273.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="817.0" y="273.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="817.0" y="294.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_14"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_14" bpmnElement="SequenceFlow_14" sourceElement="BPMNShape_IntermediateCatchEvent_3" targetElement="BPMNShape_Task_1">
|
||||
|
|
@ -630,40 +841,64 @@ th { font-weight: bold;}
|
|||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="BPMNShape_IntermediateCatchEvent_1" targetElement="BPMNShape_ExclusiveGateway_1">
|
||||
<di:waypoint xsi:type="dc:Point" x="466.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="473.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="480.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="514.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="562.0" y="319.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_23"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_IntermediateCatchEvent_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="505.0" y="294.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="505.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="550.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="587.0" y="294.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="587.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="632.0" y="255.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_25"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_IntermediateCatchEvent_4">
|
||||
<di:waypoint xsi:type="dc:Point" x="505.0" y="344.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="505.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="550.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="587.0" y="344.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="587.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="632.0" y="368.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_28"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_11" sourceElement="BPMNShape_IntermediateCatchEvent_2" targetElement="BPMNShape_ExclusiveGateway_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="586.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="630.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="630.0" y="294.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="668.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="712.0" y="255.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="712.0" y="294.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_32"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="BPMNShape_IntermediateCatchEvent_4" targetElement="BPMNShape_ExclusiveGateway_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="586.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="630.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="630.0" y="344.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="668.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="712.0" y="368.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="712.0" y="344.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_33"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="BPMNShape_ExclusiveGateway_2" targetElement="BPMNShape_Task_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="655.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="667.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="680.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="737.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="749.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="762.0" y="319.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_34"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="BPMNShape_IntermediateCatchEvent_5" targetElement="BPMNShape_Task_1">
|
||||
<di:waypoint xsi:type="dc:Point" x="258.0" y="392.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="258.0" y="327.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="290.0" y="327.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_6"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_IntermediateCatchEvent_7">
|
||||
<di:waypoint xsi:type="dc:Point" x="363.0" y="344.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="363.0" y="458.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="619.0" y="458.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_9"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_5" bpmnElement="SequenceFlow_5" sourceElement="BPMNShape_IntermediateCatchEvent_7" targetElement="BPMNShape_Task_3">
|
||||
<di:waypoint xsi:type="dc:Point" x="637.0" y="440.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="637.0" y="438.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="935.0" y="438.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_12"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="BPMNShape_Task_3" targetElement="BPMNShape_EndEvent_2">
|
||||
<di:waypoint xsi:type="dc:Point" x="990.0" y="413.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="990.0" y="319.0"/>
|
||||
<di:waypoint xsi:type="dc:Point" x="956.0" y="319.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_15"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||
<dc:Font name="arial" size="9.0"/>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue