export Steuerbescheide Excel
This commit is contained in:
parent
a682955ab5
commit
a14762f784
6 changed files with 2126 additions and 10 deletions
|
|
@ -114,7 +114,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private double computeSteuerbescheideEUST() {
|
||||
logger.info("compute EUST...");
|
||||
logger.fine("compute EUST...");
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
double result = 0;
|
||||
|
||||
|
|
@ -131,7 +131,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private double computeSteuerbescheideZoll() {
|
||||
logger.info("compute Zoll...");
|
||||
logger.fine("compute Zoll...");
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
double result = 0;
|
||||
for (ItemCollection steuerItemCol : list) {
|
||||
|
|
@ -146,7 +146,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private double computeSteuerbescheideSaldo() {
|
||||
logger.info("compute saldo...");
|
||||
logger.fine("compute saldo...");
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
double result = 0;
|
||||
for (ItemCollection steuerItemCol : list) {
|
||||
|
|
@ -162,7 +162,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private double computeSteuerbescheideTotal() {
|
||||
logger.info("compute total...");
|
||||
logger.fine("compute total...");
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
double result = 0;
|
||||
for (ItemCollection steuerItemCol : list) {
|
||||
|
|
@ -177,7 +177,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private double computeSteuerbescheideSaldoDue() {
|
||||
logger.info("compute EUST...");
|
||||
logger.fine("compute EUST...");
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
double result = 0;
|
||||
for (ItemCollection steuerItemCol : list) {
|
||||
|
|
@ -243,7 +243,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private String accumulateSteuerbescheideByWeek() {
|
||||
logger.info("accumulate steuer by week...");
|
||||
logger.fine("accumulate steuer by week...");
|
||||
|
||||
List<ItemCollection> list = getSteuerbescheide();
|
||||
Map<Integer, SteuerData> saldoByWeek = new HashMap<>();
|
||||
|
|
@ -356,7 +356,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
* @return
|
||||
*/
|
||||
private String accumulateSteuerbescheideAbteilungByWeek() {
|
||||
logger.info("accumulate steuer by Abteilung week...");
|
||||
logger.fine("accumulate steuer by Abteilung week...");
|
||||
|
||||
String[] colors = {
|
||||
"#36a2eb",
|
||||
|
|
@ -389,7 +389,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
double total = steuerItemCol.getItemValueDouble("invoice.total.net");
|
||||
Date date = steuerItemCol.getItemValueDate("invoice.date");
|
||||
|
||||
logger.info(".... " + steuerItemCol.getItemValueString("$workflowSummary") + " = " + total);
|
||||
logger.fine(".... " + steuerItemCol.getItemValueString("$workflowSummary") + " = " + total);
|
||||
// Get the week number and year from the date
|
||||
calendar.setTime(date);
|
||||
int weekNumber = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||
|
|
@ -456,7 +456,7 @@ public class AGLAnalyticController implements Serializable {
|
|||
String key = _abteilung + "~" + yearWeek;// Unique key Import Forest~202405
|
||||
// Add the total for the week or 0.0 if no data
|
||||
SteuerData steuerData = totalByWeek.getOrDefault(key, new SteuerData());
|
||||
logger.info(" " + yearWeek + "=" + steuerData.total);
|
||||
logger.fine(" " + yearWeek + "=" + steuerData.total);
|
||||
dataBuilderTotals.add(steuerData.total);
|
||||
// Move to the next week
|
||||
startCal.add(Calendar.WEEK_OF_YEAR, 1);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,289 @@
|
|||
package com.alexanderlogistics;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.apache.poi.ss.usermodel.CellCopyPolicy;
|
||||
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
|
||||
import org.apache.poi.ss.util.CellReference;
|
||||
import org.apache.poi.xssf.usermodel.XSSFRow;
|
||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.imixs.workflow.FileData;
|
||||
import org.imixs.workflow.ItemCollection;
|
||||
import org.imixs.workflow.engine.DocumentService;
|
||||
import org.imixs.workflow.engine.WorkflowService;
|
||||
import org.imixs.workflow.exceptions.AdapterException;
|
||||
import org.imixs.workflow.exceptions.PluginException;
|
||||
import org.imixs.workflow.exceptions.QueryException;
|
||||
import org.imixs.workflow.office.config.ConfigService;
|
||||
import org.imixs.workflow.poi.POIFindReplaceAdapter;
|
||||
import org.imixs.workflow.util.XMLParser;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
/**
|
||||
* Der AGLAnalyticExcelAdapter exportiert importiert eine Excel Datei aus einem
|
||||
* Textblock und fügt die offenen Steuerbescheid Daten ein
|
||||
*
|
||||
* Der Adapter wird im Modell wie folgt konfiguriert
|
||||
*
|
||||
* <pre>
|
||||
* {@code
|
||||
<steuerbescheide name="excel-export">
|
||||
<textblock>textblock-ref</textblock>
|
||||
<template>filename</template>
|
||||
<targetname>filename</targetname>
|
||||
</steuerbescheide>
|
||||
}
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* Der Adapter erweitert den POIAdapter somit können Felder aktualisiert werden
|
||||
* (siehe POIFineReplaceAdapter).
|
||||
*
|
||||
* <p>
|
||||
* Der Adapter kopiert die Steuerbescheiddaten in neue Zeilen, welche ab
|
||||
* Zeilennummer
|
||||
* 16 eingefügt werden.
|
||||
* <p>
|
||||
*
|
||||
* Abschliessend wird die Zelle 'TOTAL' noch aktualisiert.
|
||||
*
|
||||
*
|
||||
* @version 1.0
|
||||
* @author rsoika
|
||||
*/
|
||||
public class AGLAnalyticExcelAdapter extends POIFindReplaceAdapter {
|
||||
|
||||
private static Logger logger = Logger.getLogger(AGLAnalyticExcelAdapter.class.getName());
|
||||
|
||||
@Inject
|
||||
WorkflowService workflowService;
|
||||
|
||||
@Inject
|
||||
OPListExportService opListExportService;
|
||||
|
||||
@Inject
|
||||
DocumentService documentService;
|
||||
|
||||
@Inject
|
||||
ConfigService configService;
|
||||
|
||||
/**
|
||||
* This method finds or create the Zahlungsavis and adds a reference
|
||||
* ($workitemref) to the current invoice.
|
||||
*
|
||||
* @throws PluginException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public ItemCollection execute(ItemCollection document, ItemCollection event)
|
||||
throws AdapterException, PluginException {
|
||||
|
||||
// ermittle die Hauptwährungen
|
||||
ItemCollection configItemCollection = configService.loadConfiguration("AGL_CONFIGURATION");
|
||||
List<String> currencyList = configItemCollection.getItemValue("currency.out");
|
||||
if (currencyList == null || currencyList.size() < 2) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), OPListExportService.ERROR_CONFIG,
|
||||
"missing Currency configuration - please check parameters");
|
||||
}
|
||||
|
||||
// read the Steuerbescheide options
|
||||
ItemCollection steuerbescheideConfig = workflowService.evalWorkflowResult(event, "steuerbescheide", document,
|
||||
false);
|
||||
if (steuerbescheideConfig == null || !steuerbescheideConfig.hasItem("excel-export")) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), CONFIG_ERROR,
|
||||
"missing Steuerbescheide configuration in model event - please check model configuration");
|
||||
}
|
||||
List<String> excelDefList = steuerbescheideConfig.getItemValue("excel-export");
|
||||
ItemCollection excelDefCollection = XMLParser.parseItemStructure(excelDefList.get(0));
|
||||
|
||||
String textblock = excelDefCollection.getItemValueString("textblock");
|
||||
String template = excelDefCollection.getItemValueString("template");
|
||||
String targetName = excelDefCollection.getItemValueString("target-name");
|
||||
|
||||
// adapt text....
|
||||
targetName = workflowService.adaptText(targetName, document);
|
||||
|
||||
try {
|
||||
appendExcelTemplate(document, textblock, template, targetName);
|
||||
insertInvoiceRows(document, targetName);
|
||||
|
||||
logger.info("... loading poi configuration..");
|
||||
// Process POI instructions
|
||||
// read the config
|
||||
ItemCollection poiConfig = workflowService.evalWorkflowResult(event, "poi-update", document, false);
|
||||
if (poiConfig == null || !poiConfig.hasItem("findreplace")) {
|
||||
throw new PluginException(POIFindReplaceAdapter.class.getSimpleName(), CONFIG_ERROR,
|
||||
"missing poi configuration");
|
||||
}
|
||||
List<String> replaceDevList = poiConfig.getItemValue("findreplace");
|
||||
String eval = poiConfig.getItemValueString("eval");
|
||||
|
||||
logger.info("... update template with normal poi information..");
|
||||
this.updateFileData(document.getFileData(targetName), document, replaceDevList, eval);
|
||||
|
||||
} catch (PluginException | IOException | QueryException e) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), OPListExportService.ERROR_CONFIG,
|
||||
"failed to update steuerbescheide: " + e.getMessage());
|
||||
}
|
||||
logger.info("... completed!");
|
||||
return document;
|
||||
}
|
||||
|
||||
/**
|
||||
* This helper method inserts a row for each invoice at row 16
|
||||
* into the excel template file
|
||||
* <p>
|
||||
* The method copies the Row A16 as a reference row
|
||||
* <p>
|
||||
* The named cell 'TOTAL' should contain the summary formula. It will be
|
||||
* evaluated at the end.
|
||||
*
|
||||
* @throws PluginException
|
||||
* @throws QueryException
|
||||
*/
|
||||
private void insertInvoiceRows(ItemCollection document, String fileName)
|
||||
throws PluginException, QueryException {
|
||||
|
||||
// load dummy rechnungen
|
||||
List<ItemCollection> invoices = loadSteuerbescheide();
|
||||
|
||||
FileData fileData = document.getFileData(fileName);
|
||||
|
||||
// load XSSFWorkbook
|
||||
XSSFWorkbook doc = null;
|
||||
try (InputStream imputStream = new ByteArrayInputStream(fileData.getContent())) {
|
||||
doc = new XSSFWorkbook(imputStream);
|
||||
// NOTE: we only take the first sheet !
|
||||
XSSFSheet sheet = doc.getSheetAt(0);
|
||||
CellReference invoiceRefCell = new CellReference("A11");
|
||||
XSSFRow referenceRowInvoice = sheet.getRow(invoiceRefCell.getRow());
|
||||
int referenceRowPos = 10;
|
||||
int rowPos = referenceRowPos;
|
||||
int lastRow = 2999;
|
||||
logger.finest("Last rownum=" + lastRow);
|
||||
|
||||
// jetzt füge alle Rechnungen an.
|
||||
int totalRowCount = invoices.size();
|
||||
sheet.shiftRows(referenceRowPos, lastRow, totalRowCount, true, true);
|
||||
for (ItemCollection invoice : invoices) {
|
||||
logger.fine("......add invoice " + invoice.getUniqueID());
|
||||
// now create a new line..
|
||||
XSSFRow row = sheet.createRow(rowPos);
|
||||
row.copyRowFrom(referenceRowInvoice, new CellCopyPolicy());
|
||||
// insert values
|
||||
row.getCell(0)
|
||||
.setCellValue(invoice.getItemValueDate("$created"));
|
||||
row.getCell(1, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueString("invoice.number"));
|
||||
row.getCell(2, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDate("invoice.date"));
|
||||
row.getCell(3, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDate("invoice.booking_date"));
|
||||
row.getCell(4, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueString("space.name"));
|
||||
row.getCell(5, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueString("invoice.text"));
|
||||
row.getCell(6, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueString("invoice.atc.number"));
|
||||
row.getCell(7, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDouble("invoice.total.net"));
|
||||
row.getCell(8, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDouble("invoice.saldo"));
|
||||
row.getCell(9, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDouble("steuer.eust"));
|
||||
row.getCell(10, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDate("steuer.eust.due"));
|
||||
row.getCell(11, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDouble("steuer.zoll"));
|
||||
row.getCell(12, MissingCellPolicy.CREATE_NULL_AS_BLANK)
|
||||
.setCellValue(invoice.getItemValueDate("steuer.zoll.due"));
|
||||
|
||||
rowPos++;
|
||||
}
|
||||
|
||||
// Leerzeile
|
||||
// categoryRow = sheet.createRow(rowPos);
|
||||
rowPos++;
|
||||
|
||||
// write back the file
|
||||
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
|
||||
doc.write(byteArrayOutputStream);
|
||||
|
||||
byte[] newContent = byteArrayOutputStream.toByteArray();
|
||||
FileData fileDataNew = new FileData(fileData.getName(), newContent, fileData.getContentType(), null);
|
||||
// update the fileData
|
||||
document.addFileData(fileDataNew);
|
||||
|
||||
logger.finest("......new document added");
|
||||
|
||||
} catch (IOException e) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), OPListExportService.ERROR_CONFIG,
|
||||
"failed to update opliste: " + e.getMessage());
|
||||
} finally {
|
||||
if (doc != null) {
|
||||
try {
|
||||
doc.close();
|
||||
} catch (IOException e) {
|
||||
logger.severe("Failed to close workbook: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method loads a text-block for a specified ref and appends the named
|
||||
* fileData object of this document.
|
||||
*
|
||||
* @param document
|
||||
* @throws PluginException
|
||||
*/
|
||||
private void appendExcelTemplate(ItemCollection document, String textblockRef, String template, String targetName)
|
||||
throws PluginException {
|
||||
|
||||
if ((template == null || template.isEmpty()) || (textblockRef == null || textblockRef.isEmpty())) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), OPListExportService.ERROR_CONFIG,
|
||||
"invalid steuerbescheide configuration in model event - textblock/template reference not defined!");
|
||||
}
|
||||
|
||||
// load the text block
|
||||
FileData fileData = opListExportService.loadTextBlockFileData(textblockRef, template);
|
||||
|
||||
// do we found the document?
|
||||
if (fileData == null) {
|
||||
throw new PluginException(AGLAnalyticExcelAdapter.class.getSimpleName(), OPListExportService.ERROR_CONFIG,
|
||||
"invalid steuerbescheide configuration in model event - template=" + template + " not found!");
|
||||
}
|
||||
fileData.setName(targetName);
|
||||
// append document
|
||||
logger.info("...append new steuerbescheide Template: " + targetName);
|
||||
document.addFileData(fileData);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Diese Methode läd alle offenen Steuerbescheide
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private List<ItemCollection> loadSteuerbescheide() {
|
||||
List<ItemCollection> result = new ArrayList<>();
|
||||
try {
|
||||
result = documentService.find(
|
||||
"$modelversion:steuerbescheid-* AND type:workitem", 9999, 0,
|
||||
"invoice.number", false);
|
||||
} catch (QueryException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -108,7 +108,7 @@ public class AnalyticController implements Serializable {
|
|||
if (workflowController.getWorkitem() != null) {
|
||||
// try to fetch value from cache
|
||||
if (!workflowController.getWorkitem().hasItem("analytic." + key)) {
|
||||
logger.info("fire analytic event for key '" + key + "'");
|
||||
logger.fine("fire analytic event for key '" + key + "'");
|
||||
// Fire the Analytics Event for this key
|
||||
AnalyticEvent event = new AnalyticEvent(key, workflowController.getWorkitem());
|
||||
if (analyticEvents != null) {
|
||||
|
|
|
|||
BIN
templates/steuerbescheid-liste_template.xlsx
Normal file
BIN
templates/steuerbescheid-liste_template.xlsx
Normal file
Binary file not shown.
443
workflow/analyse-steuerbescheid-de-1.0.1.bpmn
Normal file
443
workflow/analyse-steuerbescheid-de-1.0.1.bpmn
Normal file
|
|
@ -0,0 +1,443 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- origin at X=0.0 Y=0.0 --><bpmn2:definitions 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:open-bpmn="http://open-bpmn.org/XMLSchema" xmlns:tl="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exporter="org.eclipse.bpmn2.modeler.core" exporterVersion="1.5.4.RC1-v20220528-0836-B1" id="Definitions_1" name="Definitions 1" targetNamespace="http://www.imixs.org/bpmn2">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowmodelversion" type="xs:string">
|
||||
<imixs:value><![CDATA[analyse-steuerbescheid-de-1.0]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtfieldmapping" type="xs:string">
|
||||
<imixs:value><![CDATA[Prozess-Verantwortliche|namprocessmanager]]></imixs:value>
|
||||
<imixs:value><![CDATA[Prozess-Assistenz|namprocessassist]]></imixs:value>
|
||||
<imixs:value><![CDATA[Buchhaltung|namprocessteam]]></imixs:value>
|
||||
<imixs:value><![CDATA[Debitor-Mail|dbtr.mail]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txttimefieldmapping" type="xs:string">
|
||||
<imixs:value><![CDATA[Wiedervorlage|datDate]]></imixs:value>
|
||||
<imixs:value><![CDATA[Start|datFrom]]></imixs:value>
|
||||
<imixs:value><![CDATA[Ende|datTo]]></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.profile.ProfilePlugin]]></imixs:value>
|
||||
<imixs:value><![CDATA[org.imixs.marty.plugins.SequenceNumberPlugin]]></imixs:value>
|
||||
<imixs:value><![CDATA[org.imixs.marty.team.TeamPlugin]]></imixs:value>
|
||||
<imixs:value><![CDATA[org.imixs.marty.profile.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.marty.plugins.CommentPlugin]]></imixs:value>
|
||||
<imixs:value><![CDATA[org.imixs.marty.profile.MailPlugin]]></imixs:value>
|
||||
</imixs:item>
|
||||
<open-bpmn:auto-align>true</open-bpmn:auto-align>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:signal id="Signal_1" name="com.alexanderlogistics.AGLAnalyticExcelAdapter"/>
|
||||
<bpmn2:message id="Message_2" name="Html-Header">
|
||||
<bpmn2:documentation id="Documentation_22"><![CDATA[<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
html, body, div, p, pre, h1, h2, h3, ul, ol, span, a, table, td, form, img,
|
||||
li {
|
||||
font-family: Arial;
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 1em;
|
||||
min-width: 41em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 12pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
th {
|
||||
border-bottom: 1px solid #ccc;
|
||||
}
|
||||
td { border:none;min-width:120px; }
|
||||
th { font-weight: bold;}
|
||||
</style>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title><itemvalue>$workflowstatus</itemvalue></title>
|
||||
</head>
|
||||
<body>]]></bpmn2:documentation>
|
||||
</bpmn2:message>
|
||||
<bpmn2:message id="Message_7" name="Html-Footer">
|
||||
<bpmn2:documentation id="Documentation_15"><![CDATA[</body>
|
||||
</html>]]></bpmn2:documentation>
|
||||
</bpmn2:message>
|
||||
<bpmn2:collaboration id="Collaboration_1" name="Mahnlauf">
|
||||
<bpmn2:participant id="Participant_1" name="Steuerbescheid - Analyse " processRef="Process_1">
|
||||
<bpmn2:documentation id="documentation_sqQYFQ"/>
|
||||
</bpmn2:participant>
|
||||
<bpmn2:participant id="Participant_2" name="SEPA-Export Pool" processRef="eingangsrechnung-de"/>
|
||||
</bpmn2:collaboration>
|
||||
<bpmn2:process id="eingangsrechnung-de" isExecutable="false" name="Default Process">
|
||||
<bpmn2:documentation id="documentation_sxNNHw"/>
|
||||
</bpmn2:process>
|
||||
<bpmn2:process definitionalCollaborationRef="Collaboration_1" id="Process_1" isExecutable="false" name="Steuerbescheid - Analyse ">
|
||||
<bpmn2:laneSet id="LaneSet_1" name="Lane Set 1">
|
||||
<bpmn2:lane id="Lane_1" name="Buchhaltung">
|
||||
<bpmn2:flowNodeRef>StartEvent_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>Task_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>EndEvent_3</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>Task_2</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>IntermediateCatchEvent_8</bpmn2:flowNodeRef>
|
||||
<bpmn2:documentation id="documentation_WBGJTA"/>
|
||||
<bpmn2:flowNodeRef>DataObject_1</bpmn2:flowNodeRef>
|
||||
<bpmn2:flowNodeRef>event_HrHS9A</bpmn2:flowNodeRef>
|
||||
</bpmn2:lane>
|
||||
</bpmn2:laneSet>
|
||||
<bpmn2:startEvent id="StartEvent_1" name="Start">
|
||||
<bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing>
|
||||
<bpmn2:documentation id="documentation_5CHRCQ"/>
|
||||
</bpmn2:startEvent>
|
||||
<bpmn2:task id="Task_2" imixs:processid="1900" name="Archiviert">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||
<imixs:value><![CDATA[<itemvalue format="EEE. dd. MMM. yyyy">$lasteventdate</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-chart-pie||||typcn-tick,imixs-success]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txttype" type="xs:string">
|
||||
<imixs:value><![CDATA[workitemarchive]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="namaddreadaccess" type="xs:string">
|
||||
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txteditorid" type="xs:string">
|
||||
<imixs:value><![CDATA[form_basic_read]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_4"><![CDATA[<textblock><itemvalue>$workflowgroup</itemvalue> - <itemvalue>$workflowstatus</itemvalue></textblock>]]></bpmn2:documentation>
|
||||
<bpmn2:outgoing>SequenceFlow_10</bpmn2:outgoing>
|
||||
<bpmn2:incoming>sequenceFlow_OL83kQ</bpmn2:incoming>
|
||||
<bpmn2:incoming>sequenceFlow_P5vJKg</bpmn2:incoming>
|
||||
</bpmn2:task>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_10" sourceRef="Task_2" targetRef="EndEvent_3">
|
||||
<bpmn2:documentation id="documentation_WzPj2A"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:endEvent id="EndEvent_3" name="End">
|
||||
<bpmn2:incoming>SequenceFlow_10</bpmn2:incoming>
|
||||
<bpmn2:documentation id="documentation_sMnhoQ"/>
|
||||
</bpmn2:endEvent>
|
||||
<bpmn2:task id="Task_1" imixs:processid="1000" name="Erfassung">
|
||||
<bpmn2:extensionElements>
|
||||
<imixs:item name="txtworkflowsummary" type="xs:string">
|
||||
<imixs:value><![CDATA[<itemvalue format="dd.MM.yyyy">$lasteventdate</itemvalue>]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txteditorid" type="xs:string">
|
||||
<imixs:value><![CDATA[alexander/form_basic]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtimageurl" type="xs:string">
|
||||
<imixs:value><![CDATA[typcn-chart-pie||]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txttype" type="xs:string">
|
||||
<imixs:value><![CDATA[workitem]]></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:value><![CDATA[namprocessteam]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyaddreadfields" type="xs:string"/>
|
||||
<imixs:item name="keyaddwritefields" type="xs:string"/>
|
||||
<imixs:item name="namaddreadaccess" type="xs:string">
|
||||
<imixs:value><![CDATA[{process:?:member}]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="namaddwriteaccess" type="xs:string">
|
||||
<imixs:value><![CDATA[{process:?:member}]]></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_4</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_17AQjg</bpmn2:outgoing>
|
||||
<bpmn2:outgoing>sequenceFlow_nZPhew</bpmn2:outgoing>
|
||||
</bpmn2:task>
|
||||
<bpmn2:sequenceFlow id="SequenceFlow_4" sourceRef="StartEvent_1" targetRef="Task_1">
|
||||
<bpmn2:documentation id="documentation_p6trwA"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:dataObject id="DataObject_1" name="Form">
|
||||
<bpmn2:documentation id="Documentation_17"><![CDATA[<?xml version="1.0"?>
|
||||
<imixs-form>
|
||||
|
||||
<imixs-form-section columns="3" label="Offene Beträge">
|
||||
<item name="analytic.steuer.zoll" type="custom" path="alexander/analyze_plain" label="Zoll:" />
|
||||
<item name="analytic.steuer.eust" type="custom" path="alexander/analyze_plain" label="EUST:" />
|
||||
<item name="analytic.steuer.total" type="custom" path="alexander/analyze_plain" label="Gesamt:" />
|
||||
|
||||
<item name="analytic.steuer.saldo" type="custom" path="alexander/analyze_plain" label="Saldo:" />
|
||||
<item name="analytic.steuer.due" type="custom" path="alexander/analyze_plain" label="Saldo überfällig:" />
|
||||
</imixs-form-section>
|
||||
|
||||
<imixs-form-section columns="2" label="Trend nach Kalenderwoche">
|
||||
|
||||
<item name="analytic.steuer.trend" type="custom" path="alexander/analyze_chart" label="Zoll/Eust pro KW:" />
|
||||
<item name="analytic.steuer.trend.abteilung" type="custom" path="alexander/analyze_chart" label="Gesamt pro Abteilungen:" />
|
||||
</imixs-form-section>
|
||||
|
||||
</imixs-form>]]></bpmn2:documentation>
|
||||
<bpmn2:dataState id="DataState_1"/>
|
||||
</bpmn2:dataObject>
|
||||
<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_8" imixs:activityid="40" name="Archivieren">
|
||||
<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="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/>
|
||||
</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[Analysedaten archiviert]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="Documentation_2"><![CDATA[Analysedaten archivieren.]]></bpmn2:documentation>
|
||||
<bpmn2:incoming>sequenceFlow_17AQjg</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_OL83kQ</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:association id="Association_2" sourceRef="DataObject_1" targetRef="Task_1">
|
||||
<bpmn2:documentation id="documentation_pDK6DQ"/>
|
||||
</bpmn2:association>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_17AQjg" sourceRef="Task_1" targetRef="IntermediateCatchEvent_8">
|
||||
<bpmn2:documentation id="documentation_c8gvZg"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_OL83kQ" sourceRef="IntermediateCatchEvent_8" targetRef="Task_2">
|
||||
<bpmn2:documentation id="documentation_j2zUkw"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:intermediateCatchEvent id="event_HrHS9A" imixs:activityid="20" name="Excel Export">
|
||||
<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="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/>
|
||||
</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[Analysedaten archiviert]]></imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="keyupdateacl" type="xs:boolean">
|
||||
<imixs:value>false</imixs:value>
|
||||
</imixs:item>
|
||||
<imixs:item name="txtactivityresult" type="xs:string">
|
||||
<imixs:value><![CDATA[<item name="process">Mahnwesen</item>
|
||||
<steuerbescheide name="excel-export">
|
||||
<textblock>Steuerbescheide Template</textblock>
|
||||
<template>steuerbescheid-liste_template.xlsx</template>
|
||||
<target-name>steuerbescheide_<itemvalue format="yyyy-MM-dd">$lasteventdate</itemvalue>.xlsx</target-name>
|
||||
</steuerbescheide>
|
||||
|
||||
<poi-update name="findreplace">
|
||||
<find>K6</find>
|
||||
<replace><itemvalue format="dd.MM.yyyy">$lasteventdate</itemvalue></replace>
|
||||
<type>date</type>
|
||||
</poi-update>
|
||||
|
||||
<poi-update name="eval">TOTAL1;TOTAL2;TOTAL3;TOTAL4</poi-update>
|
||||
]]></imixs:value>
|
||||
</imixs:item>
|
||||
</bpmn2:extensionElements>
|
||||
<bpmn2:documentation id="documentation_pCTOtQ"><![CDATA[Excel Datei erzeugen]]></bpmn2:documentation>
|
||||
<bpmn2:signalEventDefinition id="signalEventDefinition_007muw" signalRef="Signal_1"/>
|
||||
<bpmn2:incoming>sequenceFlow_nZPhew</bpmn2:incoming>
|
||||
<bpmn2:outgoing>sequenceFlow_P5vJKg</bpmn2:outgoing>
|
||||
</bpmn2:intermediateCatchEvent>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_nZPhew" sourceRef="Task_1" targetRef="event_HrHS9A">
|
||||
<bpmn2:documentation id="documentation_IN9m7w"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
<bpmn2:sequenceFlow id="sequenceFlow_P5vJKg" sourceRef="event_HrHS9A" targetRef="Task_2">
|
||||
<bpmn2:documentation id="documentation_gV4coQ"/>
|
||||
</bpmn2:sequenceFlow>
|
||||
</bpmn2:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram">
|
||||
<bpmndi:BPMNPlane bpmnElement="Collaboration_1" id="BPMNPlane_1">
|
||||
<bpmndi:BPMNShape bpmnElement="Participant_1" id="BPMNShape_Participant_1" isHorizontal="true">
|
||||
<dc:Bounds height="330.0" width="960.0" x="100.0" y="150.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Lane_1" id="BPMNShape_Lane_1" isHorizontal="true">
|
||||
<dc:Bounds height="330.0" width="930.0" x="130.0" y="150.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="StartEvent_1" id="BPMNShape_1">
|
||||
<dc:Bounds height="36.0" width="36.0" x="197.0" y="297.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="20.0" width="100.0" x="169.5" y="337.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Task_1" id="BPMNShape_Task_1">
|
||||
<dc:Bounds height="50.0" width="110.0" x="290.0" y="290.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="EndEvent_3" id="BPMNShape_EndEvent_2">
|
||||
<dc:Bounds height="36.0" width="36.0" x="757.0" y="297.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_85" labelStyle="BPMNLabelStyle_1">
|
||||
<dc:Bounds height="20.0" width="100.0" x="728.0" y="337.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Task_2" id="BPMNShape_Task_2">
|
||||
<dc:Bounds height="50.0" width="110.0" x="570.0" y="290.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="DataObject_1" id="BPMNShape_DataObject_1">
|
||||
<dc:Bounds height="50.0" width="35.0" x="290.0" y="190.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_13">
|
||||
<dc:Bounds height="20.0" width="100.0" x="258.0" y="240.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Message_2" id="BPMNShape_Message_1">
|
||||
<dc:Bounds height="20.0" width="30.0" x="119.0" y="59.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_35">
|
||||
<dc:Bounds height="20.0" width="100.0" x="84.0" y="79.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="Message_7" id="BPMNShape_Message_4">
|
||||
<dc:Bounds height="20.0" width="30.0" x="213.0" y="59.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_40">
|
||||
<dc:Bounds height="20.0" width="100.0" x="178.0" y="79.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape bpmnElement="IntermediateCatchEvent_8" id="BPMNShape_IntermediateCatchEvent_8">
|
||||
<dc:Bounds height="36.0" width="36.0" x="467.0" y="297.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_24">
|
||||
<dc:Bounds height="20.0" width="100.0" x="434.5" y="337.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_10" id="BPMNEdge_SequenceFlow_10" sourceElement="BPMNShape_Task_2" targetElement="BPMNShape_EndEvent_2">
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_26"/>
|
||||
<di:waypoint x="680.0" y="315.0"/>
|
||||
<di:waypoint x="757.0" y="315.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="SequenceFlow_4" id="BPMNEdge_SequenceFlow_4" sourceElement="BPMNShape_1" targetElement="BPMNShape_Task_1">
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_11"/>
|
||||
<di:waypoint x="233.0" y="315.0"/>
|
||||
<di:waypoint x="290.0" y="315.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="Association_2" id="BPMNEdge_Association_2" sourceElement="BPMNShape_DataObject_1" targetElement="BPMNShape_Task_1">
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_17"/>
|
||||
<di:waypoint x="325.0" y="213.0"/>
|
||||
<di:waypoint x="345.0" y="213.0"/>
|
||||
<di:waypoint x="345.0" y="290.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_17AQjg" id="BPMNEdge_oSvh0w" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_IntermediateCatchEvent_8">
|
||||
<di:waypoint x="400.0" y="315.0"/>
|
||||
<di:waypoint x="467.0" y="315.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_OL83kQ" id="BPMNEdge_lwO0vA" sourceElement="BPMNShape_IntermediateCatchEvent_8" targetElement="BPMNShape_Task_2">
|
||||
<di:waypoint x="503.0" y="315.0"/>
|
||||
<di:waypoint x="570.0" y="315.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape bpmnElement="event_HrHS9A" id="BPMNShape_hrK7fA">
|
||||
<dc:Bounds height="36.0" width="36.0" x="327.0" y="387.0"/>
|
||||
<bpmndi:BPMNLabel id="BPMNLabel_CJ3Faw">
|
||||
<dc:Bounds height="20.0" width="100.0" x="295.0" y="426.0"/>
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_nZPhew" id="BPMNEdge_5PzaQQ" sourceElement="BPMNShape_Task_1" targetElement="BPMNShape_hrK7fA">
|
||||
<di:waypoint x="345.0" y="340.0"/>
|
||||
<di:waypoint x="345.0" y="387.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge bpmnElement="sequenceFlow_P5vJKg" id="BPMNEdge_aN5clQ" sourceElement="BPMNShape_hrK7fA" targetElement="BPMNShape_Task_2">
|
||||
<di:waypoint x="363.0" y="405.0"/>
|
||||
<di:waypoint x="623.0" y="405.0"/>
|
||||
<di:waypoint x="623.0" y="340.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">
|
||||
<dc:Font name="arial" size="9.0"/>
|
||||
</bpmndi:BPMNLabelStyle>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn2:definitions>
|
||||
1384
workflow/steuerbescheid-de-1.0.5.bpmn
Normal file
1384
workflow/steuerbescheid-de-1.0.5.bpmn
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue