Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core workflow 3.0 > Workflows anhand von Beispielen entwickeln
Mit dem folgenden Workflow entpacken Sie etwa E-Mails, die durch den agorum core mailadapter einlaufen, und verschieben die dort enthaltenen Anhänge / PDF-Dateien in Ordner, die zuvor durch den Workflow erstellt wurden. Auf dieselbe Weise können Sie etwa auch ZIP-Dateien entpacken und jedes andere Dokument verschieben / ablegen.
Der Workflow besteht aus folgenden Knoten (in dieser Reihenfolge):
Diese Dokumentation beschreibt die Anlage und Parameter / Werte jedes Knotens. Anschließend folgt eine Beschreibung der Funktionsweise jedes Knotens, damit Sie verstehen, welche Aufgaben der jeweilige Knoten erfüllt und wie er im abgebildeten Workflow funktioniert.
Hinweis: Bei allen nachfolgend aufgeführten Bezeichnungen / Variablen / Werten handelt es sich um Beispiele. Sie müssen diese Beispiele nicht 1:1 übernehmen, sondern können eigene Bezeichnungen und Werte verwenden.
Im 1. Schritt erstellen Sie den Knoten Kommentar.
Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.
Dieser Knoten dient lediglich dazu, den Start des Workflows zu kennzeichnen. Er verschafft somit einen Überblick, wo der Workflow beginnt. Setzen Sie diesen Knoten als Eingangsknoten. Vergeben Sie als Anzeigename etwa Workflow wird gestartet.
Im 2. Schritt erstellen Sie den Knoten Workflow Debugging.
Im Knoten befüllen Sie folgenden Parameter:
token.variables.starte_mit_debug
Hinweis: Die Variable starte_mit_debug erwartet einen Wahrheitswert (true oder false). Diesen Wert können Sie etwa mitgeben, indem Sie im Workflow-Editor auf Ausführen klicken und dort die Konfiguration rechts folgendermaßen ergänzen:
"starte_mit_debug": trueVollständiges Beispiel der Konfiguration (Ausführen mit Anhang, hier eine E-Mail):
{ "starte_mit_debug": true, "sys_acw_attachments": [ "/Home/roi/MyFiles/Beispiele_unwrap/test 2_1559519_2146849.eml" ] }
Dieser Knoten versetzt den Workflow in einen Testbetrieb. Da die Eingangsvariable nicht gefüllt ist, arbeitet der Knoten mit den Anhängen aus der internen Systemvariable sys_acw_attachments. Im obigen Beispiel wird die E-Mail test 2_1559519_2146849.eml als Anhang übergeben. Diese E-Mail wiederum hat in diesem Beispiel zwei Anhänge:
Der Workflow arbeitet mit dieser E-Mail im Debug-Modus. Die Unterscheidung zwischen den beiden PDF-Dateien (Schreibweise der Dateiendung PDF und pdf) kommt später in Schritt 6 und dort im Knoten Bedingung (Objekte) zum Tragen.
Im 3. Schritt erstellen Sie den Knoten Entpacken.
Im Knoten setzen und befüllen Sie folgende Parameter:
EntpacktePDFs
Dieser Knoten entpackt E-Mails. Da hier der Parameter Rekursiv aktiviert wurde und der Parameter Zwischenmails deaktiviert ist, wird der Anhang der oben übergebenen E-Mail test 2_1559519_2146849.eml entpackt, in diesem Falle also die beiden PDFs:
Die entpackten PDFs speichert das System in die Ausgangsvariable namens EntpacktePDFs. In der Variablen befindet sich jetzt ein Array, das zwei Objekte (die beiden PDFs) enthält.
Im 4. Schritt erstellen Sie den Knoten set.
Im Knoten befüllen Sie folgende Parameter:
ac_status
In Bearbeitung
Dieser Knoten weist der Variable ac_status den Wert In Bearbeitung zu. Die Variable und deren Wert In Bearbeitung können Sie etwa dann in einem Workflow-Filter anzeigen lassen, damit Benutzer danach suchen können. Die Variable wird hier in diesem Falle also nicht als Metadatum auf Objekte gesetzt.
Im 5. Schritt erstellen Sie den Knoten Iterieren.
Im Knoten befüllen Sie folgenden Parameter:
EntpacktePDFs
AktuellesDokument
Dieser Knoten läutet einen Loop (eine Schleife) ein. Er nimmt in der Eingangsvariable die entpackten PDFs aus Schritt 3 entgegen. Anschließend verlässt das System den Knoten durch das Outlet namens loop.
Folgende Knoten folgen:
Der Knoten wird so lange durchlaufen, bis keine Dokumente mehr vorhanden sind, die durch den Workflow übergeben wurden. Das durchgelaufene Element speichert das System in der Ausgangsvariable AktuellesDokument. Anschließend verlässt das System den Knoten Iterieren nach dem Durchlauf durch das Standard-Outlet.
Im 6. Schritt erstellen Sie den Knoten Bedingung (Objekte).
Im Knoten befüllen Sie folgende Parameter:
[nameExtension=/pdf/i]
AktuellesDokument
Dieser Knoten filtert über den angegebenen Selektor alle Dateien, die als Dateiendung pdf aufweisen. Das i am Ende des Selektors bewirkt, dass etwa nicht nur auf PDF geprüft wird, sondern auch auf die Kleinschreibung der Dateiendung (pdf).
Der Knoten verfügt zudem über zwei Outlets:
In diesem Falle gibt das System die eingangs beschriebenen PDF-Dateien Test.pdf und Test.PDF über das Outlet true an den nächsten Knoten weiter. Alle anderen Dateiendungen, sofern vorhanden, gibt das System über das Outlet false weiter.
Im 7. Schritt erstellen Sie den Knoten Ablage.
Im Knoten befüllen Sie folgenden Parameter:
/agorum/roi/Files
/agorum samples/Allgemeine Mailpost/${date:yyyy/MM}
AktuellesDokument
AktuellesDokument
Dieser Knoten nimmt die Objekte aus der Eingangsvariable AktuellesDokument entgegen. Hierbei handelt es sich um Dateien, die eine andere Dateiendung als PDF aufweisen und zuvor über den Knoten Bedingung (Objekte) in Schritt 6 über das Outlet false übergeben wurden.
Diese Dateien legt das System unterhalb des Basisordners /agorum/roi/Files" in den Ordner "/agorum samples/Allgemeine Mailpost/${date:yyyy/MM}, etwa:
/agorum samples/Allgemeine Mailpost/2021-05
Als Datum nimmt das System den Zeitpunkt der Ablage. Wird also der Workflow etwa am 27.05.2021 ausgeführt, legt das System die Dateien in den Ordner /agorum samples/Allgemeine Mailpost/2021-05 ab und erstellt den Ordner, falls er nicht vorhanden ist.
Das System speichert die erzeugten Objekte in die Ausgangsvariable AktuellesDokument und verlässt den Knoten über das Standard-Outlet, wo der Workflow erneut in den Knoten Iterieren aus Schritt 5 läuft.
Im 8. Schritt erstellen Sie den Knoten Zusammenführen.
Im Knoten befüllen Sie folgende Parameter:
AllePDFs AktuellesDokument
AllePDFs
Erreicht das System diesen Knoten zum ersten Mal, nimmt der Knoten zuerst die Eingangsvariable AktuellesDokument entgegen. Die Variable wurde zuvor durch den Knoten Bedingung (Objekte) und das Outlet true in Schritt 6 übergeben.
Nach dem ersten Durchlauf speichert das System das Ergebnis in die Variable AllePDFs. Dank des Knotens Iterieren in Schritt 5 wird der Knoten Zusammenführen nun ein weiteres Mal durchlaufen. Dieses Mal erhält der Knoten die Variable AllePDFs, da diese zuvor hier in der Ausgangsvariable angegeben wurde.
Sie geben in diesem Knoten als Eingangsvariablen also sowohl die zuvor verwendete Variable AktuellesDokument als auch die durch diesen Knoten erstellte Variable AllePDFs an.
Beide Eingangsvariablen werden jetzt durch diesen Knoten in die Ausgangsvariable AllePDFs zusammengeführt. D. h. AllePDFs enthält jetzt ein Array aus mehreren Objekten.
Im 9. Schritt erstellen Sie den Knoten Kommentar.
Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.
Dieser Knoten dient lediglich dazu, den weiteren Weg des Knotens Zusammenführen aus Schritt 8 zu verdeutlichen. Das Outlet führt jetzt zurück zum Knoten Iterieren, wo schließlich dessen Default-Outlet genommen wird.
Im 10. Schritt erstellen Sie erneut den Knoten Log.
Im Knoten befüllen Sie folgende Parameter:
Log der einzelnen Dokumente.
Dieser Knoten gibt im Log (Protokoll) die Nachricht Log der einzelnen Dokumente aus und zeigt im Log die Inhalte / Variablen an, die zu diesem Zeitpunkt im Workflow vorhanden sind.
Im 11. Schritt erstellen Sie den Knoten Suche Objekte.
Im Knoten befüllen Sie folgende Parameter:
inpath:9999 identifier:"Kunden"
2
Hauptkundenakte
Der Knoten sucht etwa zu einer Bestellung, die per E-Mail hereinkam und einen PDF-Anhang besitzt, eine Kundenakte (Ordner), um die Bestellung später abzulegen (Schritt 16).
Im 12. Schritt erstellen Sie den Knoten condition.
Im Knoten befüllen Sie folgende Parameter:
token.variables.Hauptkundenakte.length <= 1
Dieser Knoten prüft, wie viele Objekte in der Variable Hauptkundenakte enthalten sind. Dabei wird mit dem Attribut length bestimmt, dass maximal 1 Akte enthalten sein darf.
Im 13. Schritt erstellen Sie den Knoten Fehler.
Im Knoten befüllen Sie folgende Parameter:
Workflowabbruch - zu viele Kundenakten gefunden!
Dieser Knoten gibt die Fehlermeldung Workflowabbruch - zu viele Kundenakten gefunden! in der Bedienoberfläche von agorum core aus und bricht den Workflow ab, sofern das System den Knoten condition in Schritt 12 durch das Outlet false verlassen hat. In diesem Falle wurde also mehr als 1 Kundenakte gefunden.
Im 14. Schritt erstellen Sie den Knoten Ist Array leer.
Im Knoten befüllen Sie folgende Parameter:
Hauptkundenakte
Dieser Knoten wird erreicht, sofern das System den Knoten condition in Schritt 12 durch das Outlet true verlassen hat. Das System prüft jetzt, ob die Eingangsvariable Hauptkundenakte einen leeren Wert aufweist.
Im 15. Schritt erstellen Sie erneut den Knoten Fehler.
Im Knoten befüllen Sie folgende Parameter:
Keine Kundenakte gefunden - Workflow wird abgebrochen.
Dieser Knoten gibt die Fehlermeldung Keine Kundenakte gefunden - Workflow wird abgebrochen. in der Bedienoberfläche von agorum core aus und bricht den Workflow ab, sofern das System den Knoten condition in Schritt 14 durch das Outlet false verlassen hat. In diesem Falle wurde also keine Akte gefunden.
Im 16. Schritt erstellen Sie den Knoten Pfade anlegen.
Im Knoten befüllen Sie folgende Parameter:
Bestellungen
Hauptkundenakte
AblageBestellungen
Dieser Knoten erstellt den Pfad Bestellungen unterhalb der Basis-Ordner, die in der Eingangsvariable Hauptkundenakte enthalten sind. Es handelt sich hierbei um die Objekte (Ordner), die zuvor über den Knoten Suche Objekte in Schritt 11 gesucht wurden. Für jeden dieser Ordner wird also etwa folgender Pfad angelegt:
Kunden/Bestellungen
Die erzeugten vollständigen Pfade legt das System in die Ausgangsvariable AblageBestellungen ab.
Im 17. Schritt erstellen Sie den Knoten Verschieben.
Im Knoten befüllen Sie folgende Parameter:
token.variables.AblageBestellungen[0]
AllePDFs
AllePDFs
Dieser Knoten verschiebt die in der Eingangsvariable AllePDFs vorhandenen PDF-Dateien in den Ordner, der in der Variable AblageBestellungen vorhanden ist, also in folgenden Ordner:
Kunden/Bestellungen
Die Schreibweise token.variables.AblageBestellungen[0] ist nötig, da zuvor über den Knoten Ablage eventuell im Array mehrere Elemente in der Ausgangsvariable mitgegeben wurden. Arbeiten Sie im Parameter Ordner und verwenden Sie eine Expression, müssen Sie zwingend das Element angeben, das im Array enthalten ist, hier das nullte Element [0], da nur ein Element in diesem Beispiel vorhanden ist (der Ordner Kunden).
Es handelt sich hierbei nur um PDF-Dateien. Diese Unterscheidung stammt aus dem Knoten Bedingung (Objekte) in Schritt 6. Alle anderen Dateien, die keine PDFs sind, wurden bereits in Schritt 7 in einen Ordner abgelegt.
Das System speichert die verschobenen Objekte anschließend in die Ausgangsvariable AllePDFs, die theoretisch von weiteren nachfolgenden Knoten verarbeitet werden könnte.
Im 18. Schritt erstellen Sie erneut den Knoten Kommentar.
Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.
Dieser Knoten dient lediglich dazu, das Ende des Workflows zu kennzeichnen. Er verschafft einen Überblick, wo der Workflow endet. Vergeben Sie als Anzeigename im Knoten etwa Workflow wird beendet.