diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftExportAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftExportAdapter.java new file mode 100644 index 0000000..cfa645f --- /dev/null +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/CargosoftExportAdapter.java @@ -0,0 +1,100 @@ +package com.alexanderlogistics; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Logger; + +import javax.inject.Inject; +import javax.xml.bind.JAXBException; +import javax.xml.transform.TransformerException; + +import org.imixs.workflow.FileData; +import org.imixs.workflow.ItemCollection; +import org.imixs.workflow.SignalAdapter; +import org.imixs.workflow.engine.ReportService; +import org.imixs.workflow.engine.WorkflowService; +import org.imixs.workflow.exceptions.AdapterException; +import org.imixs.workflow.exceptions.PluginException; + +/** + * This adapter exports the invoice data to a ftp server connected to cargosoft. + *

+ * The adapter can be configured through the model result item 'cargosoft' + *

+ * report = report definition to transfere the workitem into the cargosoft xml + * structure + * + *

+ * + *

+ * {@code
+        cargosoft-export
+       
+   }
+ * 
+ * + * @version 1.0 + * @author rsoika + */ +public class CargosoftExportAdapter implements SignalAdapter { + + public static final int EVENT_SUCCESS = 200; + public static final int EVENT_FAILURE = 300; + + public static final String REPORT_ERROR = "REPORT_ERROR"; + public static final String CONFIG_ERROR = "CONFIG_ERROR"; + + private static Logger logger = Logger.getLogger(CargosoftExportAdapter.class.getName()); + + @Inject + WorkflowService workflowService; + + @Inject + ReportService reportService; + + /** + * This method computes the cargosoft export data file + */ + @Override + public ItemCollection execute(ItemCollection document, ItemCollection event) throws AdapterException { + + logger.info("......starting export..."); + try { + + // read the cargosoft export options + ItemCollection evalItemCollection = workflowService.evalWorkflowResult(event, "cargosoft", document, false); + + if (evalItemCollection == null) { + throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), CONFIG_ERROR, + "missign cargosoft configuration in model event - please check model configuration"); + } + String reportID = evalItemCollection.getItemValueString("report"); + ItemCollection report = reportService.findReport(reportID); + + if (report == null) { + throw new PluginException(CargosoftExportAdapter.class.getSimpleName(), CONFIG_ERROR, + "missign cargosoft report '" + reportID + "' - please check model configuration"); + } + + List sourceData = new ArrayList(); + sourceData.add(document); + // start transformation + FileData exportFile = reportService.transformDataSource(report, sourceData, + document.getUniqueID() + ".xml"); + // attach result + document.addFileData(exportFile); + + // finally append the success event id + document.event(EVENT_SUCCESS); + + } catch (PluginException | JAXBException | TransformerException | IOException e) { + logger.severe("cargosoft export failed: " + e.getMessage()); + document.setItemValue("cargosoft.error", e.getMessage()); + document.event(EVENT_FAILURE); + } + + return document; + } + +} \ No newline at end of file diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/XMLPDFAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/XMLPDFAdapter.java deleted file mode 100644 index 41e46aa..0000000 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/XMLPDFAdapter.java +++ /dev/null @@ -1,219 +0,0 @@ -package com.alexanderlogistics; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; -import java.util.Map; -import java.util.logging.Logger; -import java.util.regex.Pattern; - -import javax.inject.Inject; - -import org.apache.pdfbox.cos.COSInputStream; -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary; -import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode; -import org.apache.pdfbox.pdmodel.common.PDNameTreeNode; -import org.apache.pdfbox.pdmodel.common.filespecification.PDComplexFileSpecification; -import org.apache.pdfbox.pdmodel.common.filespecification.PDEmbeddedFile; -import org.imixs.archive.core.SnapshotService; -import org.imixs.workflow.FileData; -import org.imixs.workflow.ItemCollection; -import org.imixs.workflow.SignalAdapter; -import org.imixs.workflow.engine.WorkflowService; -import org.imixs.workflow.exceptions.AdapterException; -import org.imixs.workflow.exceptions.PluginException; - -/** - * The - * - * @version 1.0 - * @author rsoika - */ -public class XMLPDFAdapter implements SignalAdapter { - - public static final String FILE_PATTERN_PDF = ".[pP][dD][fF]"; - public static final String FILE_PATTERN_XML = ".[xX][mM][lL]"; - - private static Logger logger = Logger.getLogger(XMLPDFAdapter.class.getName()); - - - @Inject - WorkflowService workflowService; - - @Inject - SnapshotService snapshotService; - - /** - * This method posts a text from an attachment to the Imixs-ML Analyse service - * endpoint - */ - @SuppressWarnings("unchecked") - @Override - public ItemCollection execute(ItemCollection document, ItemCollection event) throws AdapterException { - - logger.info("......starting xml extraction..." ); - try { - byte[] xmlData = getXMLFile(document, FILE_PATTERN_PDF); - - - } catch (PluginException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - return document; - } - - - - /** - * This method searches attached PDF files of a workitem and extracts an - * embedded XML file. - *

- * The method only returns the first embedded xml file and does not support - * multiple xml files embedded in one pdf file. - * - * @param document - * @param filePattern - * @return - * @throws PluginException - */ - public static byte[] getXMLFile(ItemCollection document, String file_pattern) throws PluginException { - - // verify all attached PDF files - List filenames = document.getFileNames(); - for (String filename : filenames) { - - if (Pattern.compile(file_pattern).matcher(filename).find()) { - - logger.info("...extract embedded XML from '" + filename + "'"); - - // we only support the first embedded XML file here! - FileData pdfFileData = document.getFileData(filename); - return getFirstEmbeddedXML(pdfFileData.getContent()); - - } - } - - // no data found - return null; - } - - /** - * Helper method to extract the first XML file from a list of files - * - * @param names - * @return - * @throws IOException - */ - private static byte[] extractFirstXMLFile(Map names) throws IOException { - for (Map.Entry entry : names.entrySet()) { - PDComplexFileSpecification fileSpec = entry.getValue(); - String filename = fileSpec.getFile(); - - // test if file is a xml file - if (Pattern.compile(FILE_PATTERN_XML).matcher(filename).find()) { - // we found an xml file! - PDEmbeddedFile embeddedFile = getEmbeddedFile(fileSpec); - COSInputStream inStream = embeddedFile.createInputStream(); - - return streamToByteArray(inStream); - - } - } - - // no XML file found - return null; - } - - /** - * This method extract the first XML file form a pdf file content - * - * @param content - * @return a byte array with the xml data or null if no xml file was found in - * the pdf file. - */ - private static byte[] getFirstEmbeddedXML(byte[] content) { - PDDocument doc = null; - byte[] result = null; - try { - - doc = PDDocument.load(content); - - PDDocumentNameDictionary namesDictionary = new PDDocumentNameDictionary(doc.getDocumentCatalog()); - PDEmbeddedFilesNameTreeNode efTree = namesDictionary.getEmbeddedFiles(); - if (efTree != null) { - Map names = efTree.getNames(); - if (names != null) { - result = extractFirstXMLFile(names); - } else { - List> kids = efTree.getKids(); - for (PDNameTreeNode node : kids) { - names = node.getNames(); - result = extractFirstXMLFile(names); - } - } - } - } catch (IOException e) { - logger.warning("unable to load embedded xml : " + e.getMessage()); - - } finally { - if (doc != null) { - try { - doc.close(); - } catch (IOException e) { - - e.printStackTrace(); - } - } - } - - return result; - } - - /** - * Helper method to extract platform specific embedded file format. - * - * @param fileSpec - * @return - */ - private static PDEmbeddedFile getEmbeddedFile(PDComplexFileSpecification fileSpec) { - PDEmbeddedFile embeddedFile = null; - if (fileSpec != null) { - embeddedFile = fileSpec.getEmbeddedFileUnicode(); - if (embeddedFile == null) { - embeddedFile = fileSpec.getEmbeddedFileDos(); - } - if (embeddedFile == null) { - embeddedFile = fileSpec.getEmbeddedFileMac(); - } - if (embeddedFile == null) { - embeddedFile = fileSpec.getEmbeddedFileUnix(); - } - if (embeddedFile == null) { - embeddedFile = fileSpec.getEmbeddedFile(); - } - } - return embeddedFile; - } - - /** - * This method converts a inputStream into a byte array. - * - * @param ins - * @return - * @throws IOException - */ - public static byte[] streamToByteArray(InputStream ins) throws IOException { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - byte[] byteBuffer = new byte[1024]; - int len; - while ((len = ins.read(byteBuffer)) > -1) { - baos.write(byteBuffer, 0, len); - } - baos.flush(); - return baos.toByteArray(); - } -} \ No newline at end of file diff --git a/reports/cargosoft/README.md b/reports/cargosoft/README.md new file mode 100644 index 0000000..1d576ab --- /dev/null +++ b/reports/cargosoft/README.md @@ -0,0 +1,21 @@ +# Cargosoft Schnittstelle + +Datenaustausch erfolgt über unseren eigenen FTP Serer + + + Server: u248962.your-storagebox.de + Benutzername: u248962-sub2 + Password: aXa61n9Un3jDNQlL + +## Dokumentation + +Die SST Beschreibung finden Sie in unserer Online Dokumentation unter folgendem Link: + + https://documentation.cargosoft.de/display/DEED/CargoSoftFile + + +## Offene Punkte + + * Wie lautet die Cargosoft Mandanten ID + + * Welchen Nummernkreis sollen wir verwenden? \ No newline at end of file diff --git a/reports/cargosoft/doc/CargoSoftInvoice-2020.2.xsd b/reports/cargosoft/doc/CargoSoftInvoice-2020.2.xsd new file mode 100644 index 0000000..8dbd81d --- /dev/null +++ b/reports/cargosoft/doc/CargoSoftInvoice-2020.2.xsd @@ -0,0 +1,407 @@ + + + + + + + + + Illustration of invoices in CargoSoft + + + + + + + + + + + + + eafako_t.mandant + db field: eafako_t.mandant + + + + + eafako_t.niederlassung + db field: eafako_t.niederlassung + + + + + On Import: If null, CargoSoft will generate the invoice number from a number range based on the invoice type On Export: CS will send this number eafako_t.rechnr + db field: eafako_t.rechnr + + + + + invoice, creditnote, cancellationeafako_t.art_kennz + + + + + eafako_t.fk_wg_sch + + + + + + true/falseeafako_t.bu_per + db field: eafako_t.bu_per + + + + + eafako_t.buchungstext + db field:eafako_t.buchungstext + + + + + yyyymm: etc: 201002eafako_t.bu_per + db field: eafako_t.bu_per + + + + + true/falseeafako_t.gebucht + db field: eafako_t.bu_per + + + + + true/falseeafako_t.storniert + db field: eafako_t.bu_per + + + + + eafako_t.beleg_storniert + db field: eafako_t.rechnr + + + + + true/falseeafako_t.storniert + db field: eafako_t.bu_per + + + + + eafako_t.beleg_korrigiert + db field: eafako_t.rechnr + + + + + eafako_t.kontierung + db field: eafako_t.bu_per + + + + + + + + + + + true/falseeafako_t.lr_bezahlt + + + + + true/falseeafako_t.kurs_sicher + + + + + eafako_t.fk_kst_mc + + + + + eafako_t.barcode + + + + + eafako_t.redatum + db field: eafako_t.redatum + + + + + + Payment conditions + + + + + + Payment condition codeeafako_t.fk_zb_kz + dbfield: eafako_t.fk_zb_kz + + + + + + + + + + + eafako_t.valdatum + db field: eafako_t.val_datum + + + + + + + + + Information about date, time and usereafako_t.fk_mitarb_logineafako_t.systemdateafako_t.systemzeit + + + + + + + db field: eafako_t.system_datum + + + + + + db field: eafako-t.systemzeit + + + + + User information + + + + + + Optional will not be processed + db field: eafako_t.fk_mitarb_login + + + + + Optional will not be processed + + + + + + Optional will not be processed + + + + + + Optional will not be processed + + + + + + Optional will not be processed + + + + + + + + + + + + + eafako_t.rech_referenz + + + + + + + + + + + + + + fibuko_t oder eafako_t + + + + + + + + + + + + + eafapo_t.zeile + db field: eafapo_t.zeile + + + + + eafapo_t.fk_eakopf_posnr + + + + + Billing codeseafapo_t.fk_aart_nr + db field: eafapo_t.fk_aart_nr + + + + + Billing Text (5 rows possible) + + + + + + Optional will not be processed + db field: eafapo_t.abr_text, eafapo_t.abr_text2, eafapo_t.abr_text3,eafapo_t.abr_text4, eafapo_t.abr_text5 + + + + + + + + + eafako_t.fk_kst_mc + + + + + Activity type codeeafapo_t.fk_lart_nr + db field: eafapo_t.fk_lart_nr + + + + + + + yyyymm: etc: 201002eafako_t.bu_per + db field: eafako_t.bu_per + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + eafako_t.fk_eakopf_posnr + + + + + + eafako_t.bereich + + + + + + + + + + + eakopf_t.hauptabteilung + + + + + eakopf_t.unterabteilung + + + + + eafako_t.anzahl_kolli + + + + + eafako_t.inhalt + + + + + eafako_t.gewicht + + + + + eafako_t.cbm + + + + + eafako_t.frachtpfl_gewicht + + + + + eafako_t.cont_20_ctr + + + + + eafako_t.cont_40_ctr + + + + + eafako_t.cont_45_ctr + + + + + + AWB or BL Number + + + + + diff --git a/reports/cargosoft/doc/Example_IncomingInvoice_unbooked_2020.2.xml b/reports/cargosoft/doc/Example_IncomingInvoice_unbooked_2020.2.xml new file mode 100644 index 0000000..7e0dc08 --- /dev/null +++ b/reports/cargosoft/doc/Example_IncomingInvoice_unbooked_2020.2.xml @@ -0,0 +1,97 @@ + + + + + XXXXXXXXXX + Cargosoft + 1 + + 2016-07-08T10:49:32.0Z + + + + + + + 001 + + + 897458237 + + + LR + + + + + EUR + + + + + + + + EUR + + + 500 + + + + + + + + EUR + + + 0 + + + + + false + false + 2016-07-06T00:00:00.0Z + + + 9999999 + + + + 201606-ABS1425131 + + + + + 1 + 999-201606-99999 + + + + + + EUR + + + 300.00 + + + + + + 45 + + + + + + + ACT + + + + + + diff --git a/reports/cargosoft/doc/Rechnungsimport Version 2020.2.pdf b/reports/cargosoft/doc/Rechnungsimport Version 2020.2.pdf new file mode 100644 index 0000000..def4eaa Binary files /dev/null and b/reports/cargosoft/doc/Rechnungsimport Version 2020.2.pdf differ diff --git a/reports/cargosoft/test/cargosoft-1.0.-muster.xsl b/reports/cargosoft/test/cargosoft-1.0.-muster.xsl new file mode 100644 index 0000000..9eff569 --- /dev/null +++ b/reports/cargosoft/test/cargosoft-1.0.-muster.xsl @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + Imixs-Office-Workflow + Cargosoft + 1 + + + + + + + + + + + + 001 + + + + + + + INVOICE + + + + + + + + + + + + + EUR + + + 500 + + + + + + + + EUR + + + 0 + + + + + false + false + 2016-07-06T00:00:00.0Z + + + 9999999 + + + + 201606-ABS1425131 + + + + + 1 + 999-201606-99999 + + + + + + EUR + + + 300.00 + + + + + + 45 + + + + + + + ACT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/reports/cargosoft/test/cargosoft-1.0.0.xsl b/reports/cargosoft/test/cargosoft-1.0.0.xsl new file mode 100644 index 0000000..0dd8d02 --- /dev/null +++ b/reports/cargosoft/test/cargosoft-1.0.0.xsl @@ -0,0 +1,146 @@ + + + + + + + + + + + + + Imixs-Office-Workflow + Cargosoft + + + + + + + + + + + + + + + + + + + + + + + + 001 + + + + + + + INVOICE + + + + + + + + + + + + + + + + + + + + + + + + EUR + + + 0 + + + + + false + false + + + + 9999999 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ACT + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/reports/cargosoft/test/positionen.out.xml b/reports/cargosoft/test/positionen.out.xml new file mode 100644 index 0000000..cc6628c --- /dev/null +++ b/reports/cargosoft/test/positionen.out.xml @@ -0,0 +1,121 @@ + + + + Imixs-Office-Workflow + Cargosoft + cca5b580-3a67-4066-bf22-cca09029a917 + + 2020-11-30T15:27:14.412+01:00 + + + + + + + 001 + + + 700001 + + + INVOICE + + + + + EUR + + + + + + + + EUR + + + 1035.70 + + + + + + + + EUR + + + 0 + + + + + false + false + 2020-10-26T00:00:00+01:00 + + + 9999999 + + + + + + 1 + 12234 + + + + + + EUR + + + 500.00 + + + + + + 45 + + + + + + + ACT + + + + + 2 + 55566 + + + + + + EUR + + + 535.70 + + + + + + 45 + + + + + + + ACT + + + + + + diff --git a/reports/cargosoft/test/positionen.xml b/reports/cargosoft/test/positionen.xml new file mode 100644 index 0000000..3836451 --- /dev/null +++ b/reports/cargosoft/test/positionen.xml @@ -0,0 +1,253 @@ + + + + + + + + 2020-11-30T15:27:14.412+01:00 + + + rsoika + + + rsoika + + + 0 + + + 2020-11-30T15:27:14.402|cargosoft-export-1.0|1000.100|1000| + 2020-11-30T15:27:14.411|cargosoft-export-1.0|1000.300|1800| + + + + + + 0 + + + + + + true + + + 300 + + + 2020-11-30T15:27:14.402+01:00 + + + 1000 + + + cargosoft-export-1.0 + + + 2020-11-30T15:27:14.412+01:00 + + + + + + rsoika + + + 1800 + + + + + + cca5b580-3a67-4066-bf22-cca09029a917-1606746434412 + + + 1800 + + + a3deceaddd82ca2f + + + cca5b580-3a67-4066-bf22-cca09029a917 + + + 12721216-999d-4e01-b6bd-f4d31c2b4782 + + + 1 + + + + + + Cargosoft-Export + + + Abgebrochen + + + Cargosoft Export NINGBO TIEDADA SCM CO.,LTD + RE2020110040 + + + 9bdb894f-9213-4c43-a9c7-5ae490c541d9 + + + + + + + + 500.00 + + + 16 + + + 1 + + + 202004 + + + 12234 + + + + + 535.70 + + + 19 + + + 2 + + + 202006 + + + 55566 + + + + + missign cargosoft configuration in model event + - please check model configuration + + + CMBCCNBS286 + + + xxxxxxxxxxxxxxxxxxx + + + NINGBO TIEDADA SCM CO.,LTD + + + EUR + + + 2020-10-26T00:00:00+01:00 + + + 2020-12-03T00:00:00+01:00 + + + RE2020110040 + + + 1035.70 + + + rsoika + + + rsoika + + + + + + + + + + + + + + + + + + + + + + + + 300 + + + + + + + + + 700001 + + + + + + + + + + + + + + + + + + + + + + + + Cargosoft-Export + + + + 2020-11-30T15:27:14.377+01:00 + Export processing + rsoika + + + 2020-11-30T15:27:14.402+01:00 + Export failed + rsoika + + + + typcn-document||typcn-tick,imixs-success,icon-sub-se + + + Abgebrochen + + + Cargosoft Export NINGBO TIEDADA SCM CO.,LTD + RE2020110040 + + + cargosoftarchive + + + \ No newline at end of file diff --git a/reports/cargosoft/test/simple.xml b/reports/cargosoft/test/simple.xml new file mode 100644 index 0000000..496828e --- /dev/null +++ b/reports/cargosoft/test/simple.xml @@ -0,0 +1,218 @@ + + + + + + + + 2020-11-30T15:20:35.327+01:00 + + + rsoika + + + rsoika + + + 0 + + + 2020-11-30T15:20:34.598|cargosoft-export-1.0|1000.100|1000| + 2020-11-30T15:20:35.290|cargosoft-export-1.0|1000.300|1800| + + + + + + 0 + + + + + + true + + + 300 + + + 2020-11-30T15:20:34.613+01:00 + + + 1000 + + + cargosoft-export-1.0 + + + 2020-11-30T15:20:35.328+01:00 + + + + + + rsoika + + + 1800 + + + + + + 08b3c46e-01a3-46ae-8ba4-b52cf350000e-1606746035351 + + + 1800 + + + 50464c0d9ab9ac7f + + + 08b3c46e-01a3-46ae-8ba4-b52cf350000e + + + 12721216-999d-4e01-b6bd-f4d31c2b4782 + + + 1 + + + + + + Cargosoft-Export + + + Abgebrochen + + + Cargosoft Export NINGBO TIEDADA SCM CO.,LTD + RE2020110040 + + + 48587711-1c85-47fb-9e2d-db61bc3cca55 + + + + + + missign cargosoft configuration in model event + - please check model configuration + + + CMBCCNBS286 + + + + + + NINGBO TIEDADA SCM CO.,LTD + + + EUR + + + 2020-10-26T00:00:00+01:00 + + + 2020-12-03T00:00:00+01:00 + + + RE2020110040 + + + 1035.70 + + + rsoika + + + rsoika + + + + + + + + + + + + + + + + + + + + + + + + 300 + + + + + + + + + 700001 + + + + + + + + + + + + + + + + + + + + + + + + + Cargosoft-Export + + + + 2020-11-30T15:20:33.301+01:00 + Export processing + rsoika + + + 2020-11-30T15:20:34.613+01:00 + Export failed + rsoika + + + + typcn-document||typcn-tick,imixs-success,icon-sub-se + + + Abgebrochen + + + Cargosoft Export NINGBO TIEDADA SCM CO.,LTD + RE2020110040 + + + cargosoftarchive + + + \ No newline at end of file diff --git a/workflow/cargosoft-export-1.0.0.bpmn b/workflow/cargosoft-export-1.0.0.bpmn new file mode 100644 index 0000000..598e6e3 --- /dev/null +++ b/workflow/cargosoft-export-1.0.0.bpmn @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + _subject (txtspacename)]]> + + + application.urlindex.jsf?workitem=$uniqueid + +Das ist eine automatische generierte E-Mail. Bitte nicht auf diese E-Mail antworten. ]]> + + + + + + +Krieger Email + +]]> + + + +application.urlindex.jsf?workitem=$uniqueid +

+Das ist eine automatische generierte E-Mail. Bitte nicht auf diese E-Mail antworten. +

+ +]]> + + + + + + + + StartEvent_1 + IntermediateCatchEvent_29 + Task_6 + BoundaryEvent_1 + IntermediateCatchEvent_26 + EventBasedGateway_3 + IntermediateCatchEvent_1 + EndEvent_2 + IntermediateCatchEvent_27 + Task_1 + EndEvent_1 + Task_2 + IntermediateCatchEvent_2 + + + + SequenceFlow_9 + + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + true + + + + + + + + + + + + + + + Rechnungseingang_DATEV Export]]> + SequenceFlow_4 + SequenceFlow_28 + SequenceFlow_63 + + + + + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + true + + + + + + + + + + + + SequenceFlow_16 + SequenceFlow_9 + SequenceFlow_27 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + SequenceFlow_63 + SequenceFlow_23 + SequenceFlow_15 + + + DataOutput_1 + + + DataOutput_1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + SequenceFlow_1 + SequenceFlow_4 + + + + SequenceFlow_15 + SequenceFlow_38 + SequenceFlow_3 + + + + + + + + + + + SequenceFlow_38 + SequenceFlow_24 + + + + + SequenceFlow_1 + + + + + + + + + + + + + + + + + + + + + cdtr.name invoice.number]]> + + + true + + + + + + + + + + + + SequenceFlow_24 + SequenceFlow_5 + SequenceFlow_29 + + + SequenceFlow_5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + SequenceFlow_3 + SequenceFlow_16 + + + + + + + + SequenceFlow_23 + + + + + + + + + + + SequenceFlow_27 + SequenceFlow_29 + SequenceFlow_28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflow/rechnungseingang-de-1.0.1-old.bpmn b/workflow/rechnungseingang-de-1.0.1-old.bpmn deleted file mode 100644 index b818262..0000000 --- a/workflow/rechnungseingang-de-1.0.1-old.bpmn +++ /dev/null @@ -1,2683 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ExclusiveGateway_4 - Task_2 - ExclusiveGateway_1 - StartEvent_1 - IntermediateCatchEvent_3 - IntermediateCatchEvent_13 - IntermediateCatchEvent_5 - IntermediateThrowEvent_3 - IntermediateCatchEvent_5000-20 - IntermediateCatchEvent_6 - - - ExclusiveGateway_3 - IntermediateCatchEvent_2 - ExclusiveGateway_6 - IntermediateCatchEvent_5005-20 - EventBasedGateway_2 - Task_5005 - IntermediateCatchEvent_5005-10 - IntermediateCatchEvent_5005-30 - ExclusiveGateway_5 - - - Task_5000 - EventBasedGateway_4 - IntermediateCatchEvent_16 - IntermediateCatchEvent_15 - IntermediateThrowEvent_1 - IntermediateCatchEvent_5000-10 - - - Task_3 - IntermediateThrowEvent_4 - IntermediateCatchEvent_7 - IntermediateCatchEvent_17 - ExclusiveGateway_2 - IntermediateCatchEvent_4 - Task_6 - Task_7 - IntermediateCatchEvent_18 - Task_5 - EndEvent_2 - EndEvent_1 - IntermediateCatchEvent_12 - Task_4 - IntermediateCatchEvent_14 - - - IntermediateCatchEvent_9 - Task_1 - IntermediateCatchEvent_11 - IntermediateThrowEvent_5 - IntermediateCatchEvent_10 - IntermediateCatchEvent_1 - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_31 - SequenceFlow_1 - SequenceFlow_32 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - false - - - - SequenceFlow_31 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - space.name]]> - - - false - - - - - - - SequenceFlow_2 - SequenceFlow_24 - - - SequenceFlow_0 - SequenceFlow_15 - SequenceFlow_21 - SequenceFlow_33 - - - - SequenceFlow_0 - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_38 - SequenceFlow_34 - SequenceFlow_37 - - - - - - - - - - - - _subject]]> - - - - - - - - - _amount (Brutto € _amount_brutto) -_description]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home -space.name]]> - - - - - - - - - - - - false - - - 0 && (parseFloat(a)!=parseFloat(b)) ) { - result.isValid=false; - result.errorMessage="Der Rechnungsbetrag " + a+ " stimmt nicht mit dem Positionsbetrag " + b + " überein."; - }]]> - - - - SequenceFlow_8 - SequenceFlow_51 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - false - - - - SequenceFlow_38 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home -space.name]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_10 - SequenceFlow_41 - - - SequenceFlow_37 - SequenceFlow_8 - SequenceFlow_10 - - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_33 - SequenceFlow_20 - SequenceFlow_2 - SequenceFlow_3 - - - - - - - - - - - - - - - - - - - - - - - -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_20 - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_4 - SequenceFlow_55 - SequenceFlow_22 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_29 - SequenceFlow_52 - - - SequenceFlow_32 - SequenceFlow_29 - SequenceFlow_30 - - - - - - - - - - - _subject]]> - - - - - - - - - _amount (Brutto € _amount_brutto) -_description]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - - SequenceFlow_30 - SequenceFlow_7 - - - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_25 - SequenceFlow_44 - SequenceFlow_47 - - - SequenceFlow_47 - - - - - - - - - - - - - - _subject]]> - - - - - - - - - _amount (Brutto € _amount_brutto) -_description]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - SequenceFlow_55 - SequenceFlow_12 - - - - - - - SequenceFlow_24 - SequenceFlow_13 - SequenceFlow_16 - - - workitem['space.team'] && workitem['space.team'][0]!="" - - - !workitem['space.team'] || workitem['space.team'][0]=="" - - - SequenceFlow_18 - SequenceFlow_1 - SequenceFlow_5 - - - workitem['process.manager'] && workitem['process.manager'][0]!="" - - - SequenceFlow_7 - SequenceFlow_5 - SequenceFlow_4 - - - - !workitem['process.manager'] || workitem['process.manager'][0]=="" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - - - - SequenceFlow_6 - SequenceFlow_18 - - - SequenceFlow_51 - SequenceFlow_16 - SequenceFlow_6 - - - - SequenceFlow_15 - - - - - SequenceFlow_52 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_3 - SequenceFlow_9 - - - - SequenceFlow_9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_22 - SequenceFlow_17 - - - SequenceFlow_17 - - - - - - SequenceFlow_12 - SequenceFlow_19 - SequenceFlow_25 - - - - - - - - - - - SequenceFlow_19 - SequenceFlow_23 - - - - workitem['payment.type'] && workitem['payment.type'][0]=="sepa_transfer" - - - - !workitem['payment.type'] || workitem['payment.type'][0]!="sepa_transfer" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Rechnungscontrolling]]> - - - - - - - - - - - - false - - - - SequenceFlow_21 - - - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_13 - SequenceFlow_26 - SequenceFlow_41 - SequenceFlow_11 - SequenceFlow_28 - SequenceFlow_36 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ]]> - - - - - - - - - - - - false - - - - SequenceFlow_26 - - - - - - - - - - - - _subject]]> - - - - - - - - - _amount (Brutto € _amount_brutto) -_description]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home -space.name]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_28 - SequenceFlow_34 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home -space.name]]> - - - - - - - - - - - - false - - - - - - - SequenceFlow_36 - SequenceFlow_35 - - - SequenceFlow_35 - - - - - - SequenceFlow_39 - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_39 - SequenceFlow_40 - - - SequenceFlow_40 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - space.name]]> - - - false - - - - SequenceFlow_11 - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_23 - SequenceFlow_14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1]]> - - - - - - - - - - - - - - - false - - - SequenceFlow_14 - SequenceFlow_42 - - - - - - - - - - - txtlastcomment]]> - - - - - - - - - cdtr.name invoice.number (invoice.currency invoice.total) space.name]]> - - - true - - - - - - - - - - - - - - - - - $workflowgroup - $workflowstatus]]> - SequenceFlow_42 - SequenceFlow_43 - - - - - - - - - - - _subject]]> - - - - - - - - - _amount (Brutto € _amount_brutto) -_description]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - home]]> - - - - - - - - - - - - false - - - - SequenceFlow_43 - SequenceFlow_44 - - - - - - Wurde ein Prozess Manager festgelegt, erfolgt eine Genehmigung. - - - - Die Rechnung wurde sachlich geprüft und genehmigt und kann nun in den Zahlungslauf übergeben werden. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/workflow/rechnungseingang-de-1.0.1.bpmn b/workflow/rechnungseingang-de-1.0.1.bpmn index 44389a8..3b3c0c8 100644 --- a/workflow/rechnungseingang-de-1.0.1.bpmn +++ b/workflow/rechnungseingang-de-1.0.1.bpmn @@ -67,6 +67,7 @@ IntermediateCatchEvent_5005-10 IntermediateCatchEvent_5005-30 ExclusiveGateway_5 + IntermediateCatchEvent_19 Task_5000 @@ -747,7 +748,7 @@ result.isValid=true; $workflowgroup - $workflowstatus]]> - SequenceFlow_4 + SequenceFlow_48 SequenceFlow_55 SequenceFlow_22 @@ -1048,9 +1049,8 @@ Betrag: _amount (Brutto € _amount_brutto SequenceFlow_7 SequenceFlow_5 - SequenceFlow_4 + SequenceFlow_46 - workitem['payment.type'] && workitem['payment.type'][0]=="direct_debit" @@ -2036,6 +2036,78 @@ Betrag: _amount (Brutto € _amount_brutto + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cargosoft-export-1.0 + 1000 + 100 + (^invoice\.)|(^cdtr\.)|(^dbtr\.)|(_childitems)|(numsequencenumber) + +]]> + + + + + + + + + + + + + + + false + + + SequenceFlow_46 + SequenceFlow_48 + + + + Wurde ein Prozess Manager festgelegt, erfolgt eine Genehmigung. @@ -2046,6 +2118,12 @@ Betrag: _amount (Brutto € _amount_brutto + + Datenübergabe an Cargosoft. + +Export erfolgt über eine asynchrone Verarbeitung im Modell 'cargosoft-export' + + @@ -2357,7 +2435,7 @@ Betrag: _amount (Brutto € _amount_brutto - + @@ -2369,16 +2447,28 @@ Betrag: _amount (Brutto € _amount_brutto - + - + + + + + + + + + + + + + @@ -2513,12 +2603,6 @@ Betrag: _amount (Brutto € _amount_brutto - - - - - - @@ -2714,6 +2798,26 @@ Betrag: _amount (Brutto € _amount_brutto + + + + + + + + + + + + + + + + + + + +