minor dunning layout fixes

This commit is contained in:
Ralph Soika 2025-04-28 19:14:48 +02:00
parent 9511d7fd95
commit 1ea9564e55
15 changed files with 2241 additions and 240 deletions

View file

@ -36,6 +36,10 @@ Betroffen sind:
- zahlungseingang-\*
- Analyse-debitor-\*
Mahnlauf
- dieser müsste so modelliert werden wie `rechnungsausgang-dwc-1.0.3` zu sehen ist!!!!!!
## 1.3.3
- Imixs-Archive 3.1.1. Compactor Service

View file

@ -208,7 +208,6 @@ public class BusinessPartnerController implements Serializable {
if (workitem.getModelVersion().startsWith("businesspartner-")) {
// reset orderItems if workItem has changed
if (WorkflowEvent.WORKITEM_CHANGED == eventType || WorkflowEvent.WORKITEM_CREATED == eventType) {
// reset state
ibanList = BusinessPartnerService.explodeBanks(workitem);
loadStats(workitem);
@ -276,15 +275,9 @@ public class BusinessPartnerController implements Serializable {
// Ausgangsrechnungen
String dbtrNumber = workitem.getItemValueString("dbtr.number");
if (!dbtrNumber.isEmpty()) {
if (dbtrNumber.startsWith("D")) {
dbtrNumber = dbtrNumber.substring(1);
}
String query = "(type:workitem) AND ($modelversion:rechnungsausgang-*) "
+ " AND (dbtr.number:" + dbtrNumber + ")";
invoicesOut = documentService.findStubs(query, 999, 0, "invoice.number", false);
invoicesOut = businessPartnerService.findOutgoingInvoices(dbtrNumber);
// Mahnungen
query = "(type:workitem) AND ($modelversion:mahnlauf-*) "
String query = "(type:workitem) AND ($modelversion:mahnlauf-*) "
+ " AND (dbtr.number:" + dbtrNumber + ")";
dunnings = documentService.findStubs(query, 999, 0, "invoice.number", false);
}

View file

@ -45,6 +45,7 @@ import org.imixs.workflow.exceptions.AccessDeniedException;
import org.imixs.workflow.exceptions.ModelException;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.ProcessingErrorException;
import org.imixs.workflow.exceptions.QueryException;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.security.DeclareRoles;
@ -192,6 +193,35 @@ public class BusinessPartnerService {
}
}
/**
* Returns the stubs of all outgoing invoices
*
* @param _dbtrNumber
* @return
*/
public List<ItemCollection> findOutgoingInvoices(String _dbtrNumber) {
// Aus der dbtrNummer muss das führendde D entfernt werden
String query = "(type:workitem) AND ($modelversion:rechnungsausgang-*)";
// Aus der dbtrNummer muss das führendde D entfernt werden
// wir speichern dieses zwar im Zahlungseingangs Workflow, aber eine
// Ausganksrechnung kennt das nicht
// Das ganze ist ein übles Relikt aus Cargosoft und kann nicht vermieden werden
String _dbtrNumberOld = _dbtrNumber;
if (_dbtrNumberOld.startsWith("D")) {
_dbtrNumberOld = _dbtrNumber.substring(1);
}
query = query + " AND (dbtr.number:" + _dbtrNumber + " OR dbtr.number:" + _dbtrNumberOld + ")";
try {
return documentService.find(query, 999, 0, "invoice.number", false);
} catch (QueryException e) {
logger.severe("Failed to compute outgoing invoices: " + e.getMessage());
}
return new ArrayList<>();
}
/**
* Diese Methode sucht einen Business Partner anhand seiner BPID
*

View file

@ -12,7 +12,6 @@ import org.imixs.workflow.WorkflowKernel;
import org.imixs.workflow.engine.DocumentService;
import org.imixs.workflow.engine.WorkflowService;
import org.imixs.workflow.exceptions.PluginException;
import org.imixs.workflow.exceptions.QueryException;
import org.imixs.workflow.faces.data.WorkflowController;
import org.imixs.workflow.faces.data.WorkflowEvent;
@ -125,19 +124,7 @@ public class OPListController implements Serializable {
lastCurrencyFilter = currencyFilter;
invoiceList = new ArrayList<ItemCollection>();
logger.fine("....loading open Invoices for " + _dbtrNumber);
// Aus der dbtrNummer muss das führendde D entfernt werden
// wir speichern dieses zwar im Zahlungseingangs Workflow, aber eine
// Ausganksrechnung kennt das nicht
// Das ganze ist ein übles Relikt aus Cargosoft und kann nicht vermieden werden
if (_dbtrNumber.startsWith("D")) {
_dbtrNumber = _dbtrNumber.substring(1);
}
try {
String query = "(type:workitem) AND ($modelversion:rechnungsausgang-*) AND (dbtr.number:" + _dbtrNumber
+ ")";
List<ItemCollection> invoiceListTemp = documentService.find(query, 999, 0, "invoice.number", false);
List<ItemCollection> invoiceListTemp = businessPartnerService.findOutgoingInvoices(_dbtrNumber);
// Jetzt nur noch die Rechnungen nehmen die zum ausgewählten Währungsfilter
// passen
@ -160,9 +147,6 @@ public class OPListController implements Serializable {
}
}
}
} catch (QueryException e) {
logger.severe("Failed to get op liste:" + e.getMessage());
}
/*
* Zahlugnseingang?

View file

@ -1,14 +1,11 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<!-- Zeit alle verknüften Zahlungen an -->
<h:panelGroup layout="block" styleClass="imixs-form-section"
id="dunnings">
<h:panelGroup layout="block" styleClass="imixs-form-section" id="dunnings">
<table class="imixsdatatable ">
@ -19,22 +16,31 @@
<th style="">#{message.modified}</th>
</tr>
<ui:param name="dunnings"
value="#{businessPartnerController.getDunnings()}"></ui:param>
<ui:param name="dunnings" value="#{businessPartnerController.getDunnings()}"></ui:param>
<ui:repeat var="dunning" value="#{dunnings}">
<tr>
<td><h:link outcome="/pages/workitems/workitem">
<td>
<h:link outcome="/pages/workitems/workitem">
#{dunning.item['$workflowsummary']}
<f:param name="id" value="#{dunning.item['$uniqueid']}" />
</h:link></td>
<td>#{dunning.item['$workflowstatus']}</td>
</h:link>
</td>
<td style="text-align: center;">#{invoice.item['$workflowstatus']}</td>
<td><h:outputText value="#{dunning.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}"
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$created']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(dunning.item['$editor'])}</td>
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
</tr>
</ui:repeat>

View file

@ -1,14 +1,11 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<!-- Zeit alle verknüften Zahlungen an -->
<h:panelGroup layout="block" styleClass="imixs-form-section"
id="invoices">
<h:panelGroup layout="block" styleClass="imixs-form-section" id="invoices">
<table class="imixsdatatable ">
@ -19,22 +16,31 @@
<th style="">#{message.modified}</th>
</tr>
<ui:param name="invoices"
value="#{businessPartnerController.getInvoicesIn()}"></ui:param>
<ui:param name="invoices" value="#{businessPartnerController.getInvoicesIn()}"></ui:param>
<ui:repeat var="invoice" value="#{invoices}">
<tr>
<td><h:link outcome="/pages/workitems/workitem">
<td>
<h:link outcome="/pages/workitems/workitem">
#{invoice.item['$workflowsummary']}
<f:param name="id" value="#{invoice.item['$uniqueid']}" />
</h:link></td>
<td>#{invoice.item['$workflowstatus']}</td>
</h:link>
</td>
<td style="text-align: center;">#{invoice.item['$workflowstatus']}</td>
<td><h:outputText value="#{invoice.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}"
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$created']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}</td>
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
</tr>
</ui:repeat>

View file

@ -1,14 +1,11 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<!-- Zeit alle verknüften Zahlungen an -->
<h:panelGroup layout="block" styleClass="imixs-form-section"
id="invoices">
<h:panelGroup layout="block" styleClass="imixs-form-section" id="invoices">
<table class="imixsdatatable ">
@ -16,14 +13,15 @@
<tr>
<th style="width: 600px;">Rechnung</th>
<th style="width: 200px;">Status</th>
<th style="">#{message.created}</th>
<th style="">#{message.modified}</th>
</tr>
<ui:param name="invoices"
value="#{businessPartnerController.getInvoicesOut()}"></ui:param>
<ui:param name="invoices" value="#{businessPartnerController.getInvoicesOut()}"></ui:param>
<ui:repeat var="invoice" value="#{invoices}">
<tr>
<td><h:link outcome="/pages/workitems/workitem" styleClass="tooltip-link">
<td>
<h:link outcome="/pages/workitems/workitem" styleClass="tooltip-link">
#{invoice.item['$workflowsummary']}
<f:param name="id" value="#{invoice.item['$uniqueid']}" />
<span class="tooltip-text">
@ -31,12 +29,20 @@
</span>
</h:link>
</td>
<td>#{invoice.item['$workflowstatus']}</td>
<td style="text-align: center;">#{invoice.item['$workflowstatus']}</td>
<td><h:outputText value="#{invoice.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}"
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$created']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}</td>
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
<td style="text-align: center;">
<h:outputText value="#{invoice.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.dateTimePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(invoice.item['$editor'])}
</td>
</tr>
</ui:repeat>

View file

@ -1,18 +1,14 @@
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:c="http://xmlns.jcp.org/jsp/jstl/core"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<!-- Zeit alle verknüften Zahlungen an -->
<h:panelGroup layout="block" styleClass="imixs-form-section"
id="paymentlist">
<h:panelGroup layout="block" styleClass="imixs-form-section" id="paymentlist">
<table class="imixsdatatable ">
<tr>
<th style="">Mahnung</th>
<th style="width: 100px;">Status</th>
@ -20,31 +16,29 @@
</tr>
<ui:param name="dunnings"
value="#{workitemLinkController.getExternalReferences('$workflowgroup:Mahnlauf')}"></ui:param>
value="#{workitemLinkController.getExternalReferences('$modelversion:(^mahnlauf.*)')}">
</ui:param>
<ui:repeat var="dunning_stub" value="#{dunnings}">
<ui:param name="dunning"
value="#{opListController.loadInvoice(dunning_stub.getUniqueID())}"></ui:param>
<ui:param name="dunning" value="#{opListController.loadInvoice(dunning_stub.getUniqueID())}"></ui:param>
<tr>
<td><h:link outcome="/pages/workitems/workitem">
<td>
<h:link outcome="/pages/workitems/workitem">
#{dunning.item['$workflowsummary']}
<f:param name="id" value="#{dunning.item['$uniqueid']}" />
</h:link></td>
</h:link>
</td>
<td>#{dunning.item['$workflowstatus']}</td>
<td><h:outputText value="#{dunning.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(dunning.item['$editor'])}</td>
<td>
<h:outputText value="#{dunning.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}" timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(dunning.item['$editor'])}
</td>
</tr>
</ui:repeat>
</table>
</h:panelGroup>
</ui:composition>

View file

@ -42,6 +42,7 @@
<th style="width: 150px;">#{custom['oplist.payment']}</th>
<th style=""></th>
</tr>
<ui:param name="invoices" value="#{opListController.getInvoices(workitem.item['dbtr.number'])}"></ui:param>
<ui:repeat value="#{invoices}" var="invoice">
<tr>

View file

@ -31,6 +31,8 @@
<th style="width: 100px;">#{custom['form.open_saldo']}</th>
<th style="">#{custom['form.dunning']}</th>
</tr>
<ui:param name="invoices" value="#{opListController.getInvoices(workitem.item['dbtr.number'])}"></ui:param>
<ui:repeat value="#{invoices}" var="invoice">
<tr>

View file

@ -18,13 +18,12 @@
</tr>
<ui:param name="payments"
value="#{workitemLinkController.getExternalReferences('$modelversion:zahlungseingang-.*')}"></ui:param>
value="#{workitemLinkController.getExternalReferences('$modelversion:(^zahlungseingang.*)')}">
</ui:param>
<ui:repeat var="payment_stub" value="#{payments}">
<ui:param name="payment" value="#{opListController.loadInvoice(payment_stub.getUniqueID())}"></ui:param>
<ui:param name="paymentDetails" value="#{opListController.loadPaymentDetails(payment)}"></ui:param>
<tr>
<td>
<h:link outcome="/pages/workitems/workitem">

View file

@ -73,6 +73,7 @@
<bpmn2:flowNodeRef>textAnnotation_fFO8tQ</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_kT136g</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_jkHxJA</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>event_zzWQSA</bpmn2:flowNodeRef>
</bpmn2:lane>
</bpmn2:laneSet>
<bpmn2:task id="task_ToMZaQ" imixs:processid="1000" name="Neuanlage">
@ -153,6 +154,7 @@
<bpmn2:incoming>sequenceFlow_b4BcVA</bpmn2:incoming>
<bpmn2:outgoing>sequenceFlow_03b60w</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_u8PLGw</bpmn2:incoming>
<bpmn2:incoming>sequenceFlow_ZTiO7w</bpmn2:incoming>
</bpmn2:task>
<bpmn2:task id="task_B8Pi7A" imixs:processid="1800" name="Locked">
<bpmn2:extensionElements>
@ -241,12 +243,12 @@
<imixs-form-section columns="4" label="">
<item name="analytic.invoices.count.all" type="custom" path="alexander/analyze_plain" label="Invoices total:" />
<item name="analytic.invoices.count.open" type="custom" path="alexander/analyze_plain" label="Invoices open:" />
<item name="analytic.invoices.count.due" type="custom" path="alexander/analyze_plain" label="Fällige Rechnungen:" />
<item name="analytic.invoices.count.due" type="custom" path="alexander/analyze_plain" label="Invoices over due:" />
<item name="analytic.invoices.count.dunning" type="custom" path="alexander/analyze_plain" label="Invoices dunning:" />
</imixs-form-section>
<imixs-form-section label="Incoming Invoices" path="alexander/section_bp_invoices_out" readonly="true" />
<imixs-form-section columns="2" label="Zahlungsmoral">
<imixs-form-section label="Invoices" path="alexander/section_bp_invoices_out" readonly="true" />
<imixs-form-section columns="2" label="Payment practice">
<item name="analytic.payment.avg.due" type="custom" path="alexander/analyze_plain" label="Average term of credit:" />
<item name="analytic.payment.avg.days" type="custom" path="alexander/analyze_plain" label="Average payment duration:" />
</imixs-form-section>
@ -693,6 +695,30 @@
<bpmn2:sequenceFlow id="sequenceFlow_u8PLGw" sourceRef="event_jkHxJA" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_17ibaQ"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="event_zzWQSA" imixs:activityid="20" name="Create SOA">
<bpmn2:extensionElements>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Created new SOA]]></imixs:value>
</imixs:item>
<imixs:item name="keypublicresult" type="xs:string">
<imixs:value><![CDATA[1]]></imixs:value>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<split name="subprocess_create">
<modelversion>mahnlauf-en-1.0</modelversion>
<task>1000</task>
<event>10</event>
<items>partner.id,partner.name,dbtr.number,partner.name|dbtr.name</items>
<action>/pages/workitems/workitem.jsf?id=<itemvalue>$uniqueid</itemvalue></action>
</split>]]></imixs:value>
</imixs:item>
</bpmn2:extensionElements>
<bpmn2:documentation id="documentation_Pkda2Q"/>
<bpmn2:outgoing>sequenceFlow_ZTiO7w</bpmn2:outgoing>
</bpmn2:intermediateCatchEvent>
<bpmn2:sequenceFlow id="sequenceFlow_ZTiO7w" sourceRef="event_zzWQSA" targetRef="task_Q80A1Q">
<bpmn2:documentation id="documentation_S2i1Tg"/>
</bpmn2:sequenceFlow>
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="OpenBPMN Diagram">
<bpmndi:BPMNPlane bpmnElement="collaboration_1" id="BPMNPlane_1">
@ -754,14 +780,14 @@
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="event_vwH0cA" id="BPMNShape_OXGg8Q">
<dc:Bounds height="36.0" width="36.0" x="697.0" y="357.0"/>
<dc:Bounds height="36.0" width="36.0" x="657.0" y="357.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_KaHfJQ">
<dc:Bounds height="20.0" width="100.0" x="665.0" y="396.0"/>
<dc:Bounds height="20.0" width="100.0" x="625.0" y="396.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_avahXg" id="BPMNEdge_odMtvQ" sourceElement="BPMNShape_OXGg8Q" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="720.0" y="392.0"/>
<di:waypoint x="720.0" y="417.0"/>
<di:waypoint x="679.0" y="393.0"/>
<di:waypoint x="679.0" y="417.0"/>
<di:waypoint x="667.0" y="417.0"/>
<di:waypoint x="667.0" y="440.0"/>
</bpmndi:BPMNEdge>
@ -1032,6 +1058,18 @@
<di:waypoint x="635.0" y="303.0"/>
<di:waypoint x="635.0" y="440.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape bpmnElement="event_zzWQSA" id="BPMNShape_IuuTKA">
<dc:Bounds height="36.0" width="36.0" x="737.0" y="357.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_GYTS1Q">
<dc:Bounds height="20.0" width="100.0" x="705.0" y="396.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_ZTiO7w" id="BPMNEdge_6KWEQA" sourceElement="BPMNShape_IuuTKA" targetElement="BPMNShape_7JA0nw">
<di:waypoint x="737.0" y="375.0"/>
<di:waypoint x="714.0" y="375.0"/>
<di:waypoint x="714.0" y="465.0"/>
<di:waypoint x="690.0" y="465.0"/>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -136,7 +136,6 @@ th { font-weight: bold;}
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_9</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>ExclusiveGateway_3</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateCatchEvent_8</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateThrowEvent_10</bpmn2:flowNodeRef>
<bpmn2:flowNodeRef>IntermediateThrowEvent_9</bpmn2:flowNodeRef>
<bpmn2:documentation id="documentation_N3gEbw"/>
@ -469,7 +468,6 @@ Bei Fragen wenden Sie sich bitte an info@imixs.com
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_9"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
<bpmn2:incoming>SequenceFlow_27</bpmn2:incoming>
<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_18</bpmn2:outgoing>
<bpmn2:outgoing>SequenceFlow_34</bpmn2:outgoing>
<bpmn2:incoming>sequenceFlow_zhcE7Q</bpmn2:incoming>
@ -562,100 +560,6 @@ Bei Fragen wenden Sie sich bitte an info@imixs.com
<bpmn2:sequenceFlow id="SequenceFlow_27" sourceRef="IntermediateCatchEvent_5000-20" targetRef="Task_1">
<bpmn2:documentation id="documentation_yXkweQ"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_8" imixs:activityid="25" name="Create SOA">
<bpmn2:extensionElements>
<imixs:item name="keylogtimeformat" type="xs:string">
<imixs:value><![CDATA[2]]></imixs:value>
</imixs:item>
<imixs:item name="keyarchive" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="txtmailsubject" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="keyaccessmode" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="keyscheduledactivity" type="xs:string">
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfmailbody" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="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:value><![CDATA[process.manager]]></imixs:value>
<imixs:value><![CDATA[process.team]]></imixs:value>
<imixs:value><![CDATA[space.manager]]></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:item name="numnextid" type="xs:int">
<imixs:value><![CDATA[5005]]></imixs:value>
</imixs:item>
<imixs:item name="txtnextprocesstree" type="xs:string">
<imixs:value/>
</imixs:item>
<imixs:item name="txtactivityresult" type="xs:string">
<imixs:value><![CDATA[<mahnlauf name="modelversion">mahnlauf-de-1.0</mahnlauf>
<mahnlauf name="task">1000</mahnlauf>
<mahnlauf name="event">100</mahnlauf>
<item name="action">/pages/workitems/workitem.jsf?id=<itemvalue>dunning.ref</itemvalue></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[Dunning run started]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>
</imixs:item>
<imixs:item name="txtbusinessrule" type="xs:string">
<imixs:value><![CDATA[var result={};
var refField="dbtr.mail";
result.isValid=true;
if ( ( workitem.get(refField) == null || ''==workitem.get(refField)[0]) ) {
result.isValid=false;
result.errorMessage='No email address has been recorded for this vendor yet. Please update it in the Creditor/Debitor Management.';
}]]></imixs:value>
</imixs:item>
<imixs:item name="namaddreadaccess" type="xs:string">
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
<imixs:value><![CDATA[{space:?:member}]]></imixs:value>
</imixs:item>
<imixs:item name="keyaddreadfields" type="xs:string"/>
</bpmn2:extensionElements>
<bpmn2:documentation id="Documentation_15"/>
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
<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_4"/>
</bpmn2:intermediateCatchEvent>
<bpmn2:exclusiveGateway gatewayDirection="Diverging" id="ExclusiveGateway_3">
<bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_25</bpmn2:outgoing>
@ -894,9 +798,6 @@ result.isValid=true;
<bpmn2:sequenceFlow id="SequenceFlow_34" sourceRef="Task_1" targetRef="IntermediateCatchEvent_1">
<bpmn2:documentation id="documentation_ewTXIA"/>
</bpmn2:sequenceFlow>
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="IntermediateCatchEvent_8" targetRef="Task_1">
<bpmn2:documentation id="documentation_Y35pjg"/>
</bpmn2:sequenceFlow>
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_9" imixs:activityid="300" name="[Dunning run]">
<bpmn2:extensionElements>
<imixs:item name="keyarchive" type="xs:string">
@ -1624,12 +1525,6 @@ result.isValid=true;
<dc:Bounds height="20.0" width="100.0" x="1578.0" y="233.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_8" id="BPMNShape_IntermediateCatchEvent_1">
<dc:Bounds height="36.0" width="36.0" x="767.0" y="817.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_9" labelStyle="BPMNLabelStyle_1">
<dc:Bounds height="20.0" width="100.0" x="739.0" y="855.0"/>
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ExclusiveGateway_3" id="BPMNShape_ExclusiveGateway_3" isMarkerVisible="true">
<dc:Bounds height="50.0" width="50.0" x="880.0" y="730.0"/>
<bpmndi:BPMNLabel id="BPMNLabel_43" labelStyle="BPMNLabelStyle_1">
@ -1853,13 +1748,6 @@ result.isValid=true;
<di:waypoint x="690.0" y="755.0"/>
<di:waypoint x="623.0" y="755.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_4" id="BPMNEdge_SequenceFlow_5" sourceElement="BPMNShape_IntermediateCatchEvent_1" targetElement="BPMNShape_Task_3">
<bpmndi:BPMNLabel id="BPMNLabel_19"/>
<di:waypoint x="790.0" y="818.0"/>
<di:waypoint x="790.0" y="800.0"/>
<di:waypoint x="755.0" y="800.0"/>
<di:waypoint x="755.0" y="780.0"/>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_60" id="BPMNEdge_SequenceFlow_61" sourceElement="BPMNShape_IntermediateCatchEvent_27" targetElement="BPMNShape_Task_8">
<bpmndi:BPMNLabel id="BPMNLabel_141"/>
<di:waypoint x="1503.0" y="555.0"/>