Open Source Dokumentenmanagement
Dokumentation

Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht

Navigation: Dokumentationen agorum core > agorum core workflow 3.0 > Workflows anhand von Beispielen entwickeln


Workflow "E-Mails entpacken und Dokumente verschieben"

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.

Übersicht: Workflow E-Mails entpacken und Dokumente verschieben

Knoten „Kommentar“ erstellen


Im 1. Schritt erstellen Sie den Knoten Kommentar.

Aussehen des Knotens

Parameter befüllen

Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.

Funktionsweise des Knotens

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.

Knoten „Workflow Debugging“ erstellen


Im 2. Schritt erstellen Sie den Knoten Workflow Debugging.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgenden Parameter:

  1. Vergeben Sie im Parameter Debug-Modus verwenden etwa folgende Variable als Expression:
    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": true
    Vollstä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"  
      ]
    }

Funktionsweise des Knotens

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.

Knoten „Entpacken“ erstellen


Im 3. Schritt erstellen Sie den Knoten Entpacken.

Aussehen des Knotens

Parameter befüllen

Im Knoten setzen und befüllen Sie folgende Parameter:

  1. Aktivieren Sie den Parameter E-Mails.
  2. Aktivieren Sie den Parameter Rekursiv.
  3. Vergeben Sie im Parameter Ausgangsvariable für das Ergebnis etwa folgende Variable im Editor:
    EntpacktePDFs

Funktionsweise des Knotens

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.

Knoten „set“ erstellen


Im 4. Schritt erstellen Sie den Knoten set.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Schlüssel etwa folgende Variable im Editor:
    ac_status
    
  2. Vergeben Sie als Wert im Editor etwa Folgendes:
    In Bearbeitung

Funktionsweise des Knotens

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.

Knoten „Iterieren“ erstellen


Im 5. Schritt erstellen Sie den Knoten Iterieren.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgenden Parameter:

  1. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    EntpacktePDFs
    
  2. Vergeben Sie im Parameter Ausgangsvariable etwa folgende Variable im Editor:
    AktuellesDokument

Funktionsweise des Knotens

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.

Knoten „Bedingung (Objekte)“ erstellen


Im 6. Schritt erstellen Sie den Knoten Bedingung (Objekte).

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie etwa folgenden Regex als Selektor im Editor:
    [nameExtension=/pdf/i]
  2. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    AktuellesDokument
    

Funktionsweise des Knotens

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.

Knoten „Ablage“ erstellen


Im 7. Schritt erstellen Sie den Knoten Ablage.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgenden Parameter:

  1. Vergeben Sie im Parameter Basisordner etwa folgenden Ordner im Editor:
    /agorum/roi/Files
    
  2. Vergeben Sie im Parameter Pfad etwa folgenden Pfad im Editor:
    /agorum samples/Allgemeine Mailpost/${date:yyyy/MM}
  3. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    AktuellesDokument
  4. Vergeben Sie im Parameter Ausgangsvariable etwa folgende Variable im Editor:
    AktuellesDokument

Funktionsweise des Knotens

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.

Knoten „Zusammenführen“ erstellen


Im 8. Schritt erstellen Sie den Knoten Zusammenführen.

Aussehen des Knotes

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Eingangsvariablen etwa folgende Variablen im Editor:
    AllePDFs
    AktuellesDokument
    
  2. Vergeben Sie im Parameter Ausgangsvariable für das Ergebnis etwa folgende Variable im Editor:
    AllePDFs

Funktionsweise des Knotens

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.

Knoten „Kommentar“ erstellen


Im 9. Schritt erstellen Sie den Knoten Kommentar.

Aussehen des Knotens

Parameter befüllen

Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.

Funktionsweise des Knotens

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.

Knoten „Log“ erstellen


Im 10. Schritt erstellen Sie erneut den Knoten Log.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Nachricht etwa folgenden Text im Editor:
    Log der einzelnen Dokumente.
    

Funktionsweise des Knotens

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.

Knoten „Suche Objekte“ erstellen


Im 11. Schritt erstellen Sie den Knoten Suche Objekte.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Suche etwa Folgendes im Editor:
    inpath:9999 identifier:"Kunden"
    
  2. Vergeben Sie als Limit etwa Folgendes im Editor:
    2
    
  3. Vergeben Sie im Parameter Ausgangsvariable etwa folgende Variable im Editor:
    Hauptkundenakte

Funktionsweise des Knotens

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).

Knoten „condition“ erstellen


Im 12. Schritt erstellen Sie den Knoten condition.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Bedingung etwa Folgendes als Expression:
    token.variables.Hauptkundenakte.length <= 1
    

Funktionsweise des Knotens

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.

Knoten „Fehler“ erstellen


Im 13. Schritt erstellen Sie den Knoten Fehler.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie etwa folgende Fehlermeldung im Editor:
    Workflowabbruch - zu viele Kundenakten gefunden!

Funktionsweise des Knotens

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.

Knoten „Ist Array leer“ erstellen


Im 14. Schritt erstellen Sie den Knoten Ist Array leer.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    Hauptkundenakte
    

Funktionsweise des Knotens

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.

Knoten „Fehler“ erstellen


Im 15. Schritt erstellen Sie erneut den Knoten Fehler.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie etwa folgende Fehlermeldung im Editor:
    Keine Kundenakte gefunden - Workflow wird abgebrochen.

Funktionsweise des Knotens

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.

Knoten „Pfade anlegen“ erstellen


Im 16. Schritt erstellen Sie den Knoten Pfade anlegen.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Pfad etwa Folgendes im Editor:
    Bestellungen
  2. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    Hauptkundenakte
  3. Vergeben Sie im Parameter Ausgangsvariable etwa folgende Variable im Editor:
    AblageBestellungen

Funktionsweise des Knotens

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.

Knoten „Verschieben“ erstellen


Im 17. Schritt erstellen Sie den Knoten Verschieben.

Aussehen des Knotens

Parameter befüllen

Im Knoten befüllen Sie folgende Parameter:

  1. Vergeben Sie im Parameter Ordner etwa Folgendes als Expression:
    token.variables.AblageBestellungen[0]
  2. Vergeben Sie im Parameter Eingangsvariable etwa folgende Variable im Editor:
    AllePDFs
  3. Vergeben Sie im Parameter Ausgangsvariable etwa folgende Variable im Editor:
    AllePDFs

Funktionsweise des Knotens

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.

Knoten „Kommentar“ erstellen


Im 18. Schritt erstellen Sie erneut den Knoten Kommentar.

Aussehen des Knotens

Parameter befüllen

Der Knoten verfügt über keine Möglichkeit, Parameter anzugeben. Legen Sie den Knoten daher lediglich an.

Funktionsweise des Knotens

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.