diff --git a/office-alexander-logistics-app/pom.xml b/office-alexander-logistics-app/pom.xml index 9af6a7e..1aaabf1 100644 --- a/office-alexander-logistics-app/pom.xml +++ b/office-alexander-logistics-app/pom.xml @@ -245,6 +245,12 @@ imixs-adapters-qrcode compile + + + org.imixs.workflow + imixs-adapters-poi + compile + diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java index 965af71..58cab96 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/ZahlungsavisExportAdapter.java @@ -1,6 +1,8 @@ package com.alexanderlogistics; +import java.io.IOException; import java.util.Collection; +import java.util.List; import java.util.logging.Logger; import javax.inject.Inject; @@ -8,13 +10,14 @@ import javax.inject.Inject; 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.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.poi.POIFindReplaceAdapter; + /** * Der ZahlungsavisAdapter importiert eine Excel Datei aus einem Textblock * @@ -22,14 +25,26 @@ import org.imixs.workflow.exceptions.QueryException; * {@code textblock-ref filename - } + filename + } * *

+ * Der Adapter erweitert den POIAdapter somit können felder aktualisiert werden: + * + *

+ * {@code
+ * 
+       F4
+       numsequencenumber
+       text
+   
+   }
+ * 
* * @version 1.0 * @author rsoika */ -public class ZahlungsavisExportAdapter implements SignalAdapter { +public class ZahlungsavisExportAdapter extends POIFindReplaceAdapter { private static Logger logger = Logger.getLogger(ZahlungsavisExportAdapter.class.getName()); @@ -51,6 +66,7 @@ public class ZahlungsavisExportAdapter implements SignalAdapter { * * @throws PluginException */ + @SuppressWarnings("unchecked") @Override public ItemCollection execute(ItemCollection document, ItemCollection event) throws AdapterException, PluginException { @@ -63,9 +79,27 @@ public class ZahlungsavisExportAdapter implements SignalAdapter { } String textblock = evalItemCollection.getItemValueString("textblock"); String template = evalItemCollection.getItemValueString("template"); + String targetName = evalItemCollection.getItemValueString("target-name"); + // adapt text.... + targetName = workflowService.adaptText(targetName, document); + + appendExcelTemplate(document, textblock, template, targetName); - appendExcelTemplate(document, textblock, template); - + // 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 replaceDevList = poiConfig.getItemValue("findreplace"); + String eval = poiConfig.getItemValueString("eval"); + try { + this.updateFileData(document.getFileData(targetName), document, replaceDevList, eval); + } catch (PluginException | IOException e) { + throw new PluginException(ZahlungsavisExportAdapter.class.getSimpleName(), ERROR_CONFIG, + "failed to update zahlungsavis - wrong POI configuraiton: " + e.getMessage()); + } return document; } @@ -76,7 +110,7 @@ public class ZahlungsavisExportAdapter implements SignalAdapter { * @param document * @throws PluginException */ - private void appendExcelTemplate(ItemCollection document, String textblockRef, String template) + private void appendExcelTemplate(ItemCollection document, String textblockRef, String template, String targetName) throws PluginException { if ((template == null || template.isEmpty()) || (textblockRef == null || textblockRef.isEmpty())) { @@ -92,9 +126,10 @@ public class ZahlungsavisExportAdapter implements SignalAdapter { throw new PluginException(ZahlungsavisExportAdapter.class.getSimpleName(), ERROR_CONFIG, "invalid zahlungsavis configuration in model event - template=" + template + " not found!"); } - + fileData.setName(targetName); // append document - logger.info("...append new Zahlugnsavis Template: " + template); + logger.info("...append new Zahlugnsavis Template: " + targetName); + document.addFileData(fileData); } diff --git a/pom.xml b/pom.xml index 2d99730..b8cc189 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 5.2.14 4.2.0 4.5.0 - 2.3.0 + 2.3.1-SNAPSHOT 2.2.14-SNAPSHOT 1.0.20 1.1.5 @@ -180,6 +180,13 @@ ${org.imixs.adapters.version} provided
+ + + org.imixs.workflow + imixs-adapters-poi + ${org.imixs.adapters.version} + provided + diff --git a/reports/zahlungsavis/zahlungsavis_template.xls b/reports/zahlungsavis/zahlungsavis_template.xls index 5a1569c..322f50a 100644 Binary files a/reports/zahlungsavis/zahlungsavis_template.xls and b/reports/zahlungsavis/zahlungsavis_template.xls differ diff --git a/reports/zahlungsavis/zahlungsavis_template.xlsx b/reports/zahlungsavis/zahlungsavis_template.xlsx new file mode 100644 index 0000000..1bc3ff8 Binary files /dev/null and b/reports/zahlungsavis/zahlungsavis_template.xlsx differ diff --git a/workflow/zahlungsavis-1.0.0.bpmn b/workflow/zahlungsavis-1.0.0.bpmn index 0c36575..af57cde 100644 --- a/workflow/zahlungsavis-1.0.0.bpmn +++ b/workflow/zahlungsavis-1.0.0.bpmn @@ -69,6 +69,7 @@ Task_2 IntermediateCatchEvent_6 EndEvent_3 + IntermediateCatchEvent_2 @@ -330,7 +331,18 @@ result.isValid=true; Zahlugnsavis Template - zahlungsavis_template.xls]]> + zahlungsavis_template.xlsx +zahlungsavis_numsequencenumber.xlsx + + C10 + numsequencenumber + text + + + F10 + $modified + date + ]]> @@ -530,7 +542,18 @@ result.isValid=true; Zahlugnsavis Template - zahlungsavis_template.xls]]> + zahlungsavis_template.xlsx +zahlungsavis_numsequencenumber.xlsx + + C10 + numsequencenumber + text + + + F10 + $modified + date + ]]>