Export und Import von Laufzeitdaten über das CLI

Sie können Laufzeitdaten von Prozessen von einer INUBIT Process Engine zu einer anderen INUBIT Process Engine verschieben.

Alle der im Folgenden beschriebenen Prozesskommandos stehen sowohl im interaktiven Modus (siehe Interaktiver CLI-Modus) als auch im Skriptmodus zur Verfügung (siehe Skriptmodus des CLI).

Überblick

Auf dem Quellsystem werden Laufzeitdaten von Prozessen exportiert. Die Laufzeitdaten werden in ein Archiv geschrieben. Die exportierten Prozesse werden auf dem Quellsystem angehalten. Wurden alle Laufzeitdaten der zu verschiebenden Prozesse in das Archiv geschrieben, wird eine operationId generiert und ausgegeben. Diese operationId identifiziert den gesamten Vorgang und ist für die weiteren Schritte wichtig. Diese operationId muss für weitere Aktionen zur Verfügung stehen.

Die Archivdatei wird auf der Process Engine abgelegt, mit dem das CLI verbunden ist. Der Pfad zur Archivdatei wird nach dem erfolgreichen Export auf die Konsole ausgegeben (siehe Laufzeitdaten vom Quellsystem über CLI exportieren).

Die im Archiv enthaltenen Laufzeitdaten der Prozesse werden in das Zielsystem importiert. Sowohl auf dem Quellsystem als auch auf dem Zielsystem existieren jetzt dieselben Prozesse, sie werden jedoch nicht ausgeführt.

Wurden alle Laufzeitdaten auf dem Zielsystem korrekt importiert, wird die Ausführung der zugehörigen Prozesse unter Angabe der operationId fortgesetzt.

Wurden alle Prozesse erfolgreich fortgesetzt, werden die exportierten Prozesse unter Angabe der operationId vom Quellsystem entfernt.

Anderenfalls werden die Prozesse auf dem Quellsystem unter Angabe der operationId fortgesetzt.

Die Audit-Log-Einträge werden nicht exportiert.

Voraussetzungen

  • Sie haben das CLI als Systemadministrator gestartet.

  • Die Modelldaten (Workflows und Module) und die Benutzer- und Benutzergruppenstruktur auf dem Quellsystem und auf dem Zielsystem müssen identisch sein.

  • Wenn Sie die Laufzeitdaten filtern wollen, z.B. um die Daten eines bestimmten Kunden zu exportieren, müssen Sie das Monitoring in der Workbench konfiguriert und die Workflows entsprechend modelliert haben, siehe Filtern der zu exportierenden Laufzeitdaten.

Beim Verschieben von Laufzeitdaten werden die folgenden Schritte ausgeführt:

  1. Der Export der Laufzeitdaten für die vom Quellsystem zu verschiebenden Prozesse wird auf dem Quellsystem eingeleitet, siehe Laufzeitdaten vom Quellsystem über CLI exportieren.

    • Prozesse im Status PROCESSING werden ausgeführt, bis sie erfolgreich beendet wurden oder einen der folgenden Staus erreicht haben:

      • WAITING

      • SUSPEND

      • ERROR

      • RETRY

    • Prozesse im Status QUEUED werden vom Scheduler nicht ausgeführt und nicht exportiert.

      Wenn sich ein Sub-Workflow im Status QUEUED befindet, wird er trotzdem exportiert, wenn sich der aufrufende Workflow im Status PROCESSING befindet und der Sub-Workflow dieselbe Process-ID hat.

    • Prozesse, deren Laufzeitdaten für den Export vorgemerkt sind, werden blockiert und nicht weiter ausgeführt.

  2. Die Laufzeitdaten der vom Quellsystem zu verschiebenden Prozesse werden in ein ZIP-Archiv geschrieben. Das Archiv wird in das Verzeichnis <inubit-installdir>/server/ibis_root/ibis_data/backup auf der Process Engine gespeichert, mit der das CLI verbunden wurde.

    Wurde das CLI mit einem Loadbalancer verbunden, ist der ausführende Knoten nicht eindeutig. Deshalb wird der Name der Process Engine zurückgegeben, auf der das Archiv erstellt wurde. Es wird jedoch empfohlen, sich direkt mit einem Knoten zu verbinden.

  3. Das ZIP-Archiv muss zu einem System transferiert werden, das vom CLI für den Import über eine Pfadangabe erreichbar ist.

  4. Das ZIP-Archiv muss in das Zielsystem importiert werden, siehe Laufzeitdaten über das CLI importieren.

  5. Die Ausführung der erfolgreich auf das Zielsystem importierten Prozesse mit den Laufzeitdaten kann unter Angabe der operationId fortgesetzt werden, siehe Blockierte Prozesse über das CLI fortsetzen.

  6. Wurden die Prozesse erfolgreich auf dem Zielsystem fortgesetzt, müssen sie auf dem Quellsystem unter Angabe der operationId gelöscht werden, siehe Blockierte Prozesse über das CLI löschen.
    Anderenfalls können die Prozesse auf dem Quellsystem unter Angabe der operationId fortgesetzt werden, siehe Blockierte Prozesse über das CLI fortsetzen.

Filtern der zu exportierenden Laufzeitdaten

Filtern nach benutzerdefinierten Daten

Um die zu exportierenden Laufzeitdaten einzuschränken, z.B. um die Daten eines bestimmten Kunden zu exportieren, nutzen Sie die benutzerdefinierten Spalten des Queue Managers und das Variablenmapping.

Filternamen definieren

So gehen Sie vor

  1. Öffnen Sie das Register Administration > Allgemeine Einstellungen > Monitoring > Benutzerdefinierte Spalten.

  2. Klicken Sie in das Feld Wert in der Zeile Queue Manager: Benutzerdefinierte Spalte 1.

    Sie können auch die anderen benutzerdefinierten Spalten zum Definieren von Filternamen nutzen.

  3. Geben Sie den Filternamen an, z.B. tenantID.

  4. Klicken Sie auf das Speichern-Icon administration guide 420 1.

    Die benutzerdefinierte Spalte 1 hat den angegebenen Wert.

    Um mehrere Filter zu definieren, wiederholen Sie die Schritte 2, 3 und 4. Wie Sie mehrere Filter kombinieren, siehe Kommandoreferenz: Exportieren und Importieren von Laufzeitdaten.

Filtername als Spalte anzeigen

So gehen Sie vor

  1. Öffnen Sie das Register Monitoring > Queue Manager.

  2. Klicken Sie mit der rechten Maustaste auf den Tabellenkopf.

  3. Klicken Sie auf den Eintrag bzw. die Einträge, z.B. is_userDefined1, wenn dieser noch nicht ausgewählt ist.
    Mehrere Diagrammtypen geben Sie kommasepariert und in Hochkommas eingeschlossen an

    administration guide 421 0

Der Name der benutzerdefinierten Spalte 1, z.B. tenantID, wird als Spalte im Queue Manager angezeigt.

Wert für einen Filternamen setzen

Sie müssen den Wert für den Filternamen über das Variablenmapping setzen.

Für jeden zu exportierenden Technical Workflow müssen Sie eine Variable setzen, die identisch zu der benutzerdefinierten Spalte benannt sein muss.

So gehen Sie vor

  1. Öffnen Sie das Register Designer > Server in der INUBIT Workbench.

  2. Öffnen Sie den Technical Workflow, dessen Laufzeitdaten exportiert werden sollen, zum Bearbeiten.

  3. Öffnen Sie die Palette Variablen am rechten Rand der Arbeitsfläche.

  4. Klicken Sie auf das Icon Neu administration guide 421 1.

  5. Benennen Sie den Namen der Variablen identisch zu dem Wert, den Sie für die benutzerdefinierte Spalte zuvor definiert haben.

  6. Wählen Sie als Typ xs:string, falls erforderlich.

    administration guide 422 2
  7. Fügen Sie gegebenenfalls einen Kommentar hinzu.

  8. Klicken Sie auf OK, um die neue Variable zu speichern.

  9. Öffnen Sie den Dialog Variablenmapping für das Modul, das diese Informationen für den Export benötigt, über den Kontextmenüeintrag Variablen-Mapping bearbeiten.

    Welches Modul diese Informationen benötigt, hängt von Ihrem Workflow ab. Wenn Sie einen Filter definieren, um bestimmte Laufzeitdaten zu exportieren, z.B. Daten eines bestimmten Kunden, werden die Daten nur exportiert, wenn die Variable auf den erwarteten Wert gesetzt wurde, z.B. auf den Kundennamen.
    Wenn die Variable für einen Prozess nicht gesetzt ist, z.B., weil er gequeuet ist, wird er nur exportiert, wenn er dieselbe Process-ID hat, wie ein anderer Prozess, für den die Variable gesetzt ist, z.B., weil er ein Sub-Process eines Prozesses ist, für den die Variable gesetzt ist.

  10. Wählen Sie z.B. Statischer Wert für die Quelle und setzen Sie den Wert, der zur Variablen passt.

    Werte für Filternamen dürfen nur alpha-numerische Zeichen enthalten, außer zum Angeben des Pfads zu einer CSV-Datei mit Process-IDs.

  11. Wählen Sie die Variable, die Sie definiert haben, um bestimmte zu exportierende Laufzeitdaten zu filtern.

    administration guide 423 0
  12. Klicken Sie auf OK, um das Variablenmapping zu speichern.

  13. Publizieren Sie den Workflow.

Das Variablenmapping ist dem Modul zugewiesen und es hat ein V icon an der linken unteren Ecke.

Filtern nach ProcessIDs

Sie können die zu exportierenden Laufzeitdaten einschränken, indem Sie nur Daten bestimmter ProcessIDs exportieren.

Voraussetzungen

Sie kennen die ProcessIDs für die die Laufzeitdaten exportiert werden sollen.

So gehen Sie vor

  1. Erzeugen Sie eine ProcessIDs-Datei (Textdatei), welche die durch Kommas getrennten ProcessIDs enthält, für die die Laufzeitdaten exportiert werden sollen.
    Beispielinhalt einer ProcessIDs-Datei: 100, 101, 102, 103, 104, 105, 106, 107

  2. Starten Sie den Laufzeitdaten-Export mit der option --filterProcessIds <pathToProcessIdFile> mit pathToProcessIdFile als vollständigen Pfad zur erzeugten Textdatei mit den ProcessIDs (siehe Laufzeitdaten vom Quellsystem über CLI exportieren).
    Das System

    1. liest die Textdatei mit den ProcessIDs,

    2. blockiert die darin gelisteten Prozesse,

    3. schreibt die Laufzeitdaten dieser Prozesse in das Exportarchiv,

    4. gibt die OperationID zurück.
      Für alle nicht existierenden Prozesse aus der ProcessIDs-Datei erscheint eine Warnung imTrace Log.

Laufzeitdaten vom Quellsystem über CLI exportieren

Voraussetzungen

Der Benutzer hat das Recht Configuration.

Aufruf

  • Interaktiver Modus

    startcli [-u <user account>] [-p <password>]
    ...
    process export {<absolute path>|<archive file name>} [--filterExpression <expression>] [--filterProcessIds <pathToProcessIdFile>]
  • Skriptmodus

    startcli [-u <user account>] [-p <password>] --execCommand "process export <archive filename> [--filterExpression <expression>] [--filterProcessIds <pathToProcessIdFile>]"

Parameter

Die operationId sowie der Dateipfad werden zurückgegeben, wenn das Kommando beendet ist.

Das Exportarchiv hat dieselbe Struktur wie das Backuparchiv.

Beispiel

  • Interaktiver Modus

    process export export_2015_08_04.zip --filterExpression 'tenantID=Virtimo AND location in (Berlin, Hamburg)'
  • Skriptmodus

    startcli -u jh -p inubit --execCommand "process export export_2015_08_04.zip --filterExpression 'tenantID=Virtimo AND location in (Berlin, Hamburg)'"

Zurückgegebener Text

Wurden die Laufzeitdaten erfolgreich exportiert, werden die folgenden Informationen zurückgegeben:

Runtime data export was successful!
The export file is located at: C:\inubit\server\Tomcat\bin\..\..\ibis_root\ibis_data\backup\export_2015_08_04.zip
Operation ID is: c85cb4a7-36e3-4b97-a585-105b6c056b4a

Blockierte Prozesse über das CLI anzeigen

Voraussetzungen

Der Benutzer hat das Recht Configuration.

Aufruf

process listBlocked <operationId>

Benutzen Sie dieses Kommando, um die mit einer bestimmten operationId exportierten oder importierten und blockierten Prozesse anzuzeigen.

Laufzeitdaten über das CLI importieren

Voraussetzungen

  • Das Archiv muss vom Import-CLI über einen Dateipfad erreichbar sein.

  • Der Benutzer hat das Recht Configuration.

Aufruf

process import <archive file path>

Nachdem Import starten die Prozesse nicht automatisch. Sie müssen mit dem Kommando process resume <operationId> fortgesetzt werden, siehe Blockierte Prozesse über das CLI fortsetzen.

Nachdem die importierten Prozesse auf dem Zielsystem gestartet wurden, müssen sie auf dem Quellsystem mit dem Kommando process deleteBlocked <operationId> gelöscht werden, siehe Blockierte Prozesse über das CLI löschen.

Anderenfalls setzen Sie die blockierten Prozesse auf dem Quellsystem fort, siehe Blockierte Prozesse über das CLI fortsetzen.

Blockierte Prozesse über das CLI fortsetzen

Voraussetzungen

Der Benutzer hat das Recht Configuration.

Aufruf

process resume <operationId>

Benutzen Sie dieses Kommando um mit einer bestimmten operationId blockierte Prozesse auf dem Zielsystem fortzusetzen oder setzen Sie damit diese Prozesse im Fehlerfall auf dem Quellsystem fort.

Blockierte Prozesse über das CLI löschen

Voraussetzungen

  • Alle Prozesse wurden anhand einer bestimmten operationId erfolgreich fortgesetzt.

  • Der Benutzer hat das Recht Configuration.

Aufruf

process deleteBlocked <operationId>

Benutzen Sie dieses Kommando zum Löschen blockierter Prozesse mit einer bestimmten operationId auf dem Quellsystem oder im Fehlerfall auf dem Zielsystem.

Kommandoreferenz: Exportieren und Importieren von Laufzeitdaten

Aufruf

process export {<absolute path>|<file name>}
               [--excludeModel]
               [--filterExpression <expression>|
                --filterProcessIds {<absolute path>|<file name>}]
        import <file path>
        deleteBlocked <operation ID>
        listBlocked <operation ID>
        resume <operationId>

Um diese Hilfe auszugeben, können Sie eines der folgenden beiden Kommandos nutzen:

process -h
process --help

Alle Prozesskommandos stehen auch im Skriptmodus zur Verfügung, siehe Skriptmodus des CLI.

Kommandooptionen

Option Bedeutung

process export <absolute path>

Exportieren der Laufzeitdaten in das angegebene ZIP-Archiv

process export <filename>

Exportieren von Laufzeitdaten in das angegebene ZIP-Archiv im Verzeichnis <inubit-installDir>/server/ibis_root/ibis_data/backup

--excludeModel

Modelldaten wie Diagramme und Module werden nicht exportiert

--filterExpression '<expression>'

<variable> in (wert1, wert2)

Optional: Filtern der zu exportierende Laufzeitdaten

Der Filterausdruck muss in einfache Anführungszeichen eingeschlossen sein.

  • AND (muss in Großbuchstaben angegeben werden)

    Zum Verknüpfen von zwei Filterbedingungen

  • OR

    Nicht direkt unterstützt, indirekt unter Verwendung von inFile und in. inFile (muss in Camel-Case-Schreibweise angegeben werden) zum Angeben einer Variablen, die einen Pfad zu einer CSV-Datei mit Filterwerten enthält, z.B. Werte in benutzerdefinierten Spalten in (muss in Kleinbuchstaben angegeben werden) zum Angeben mehrerer Werte

process import <filepath>

Importieren der Laufzeitdaten aus dem angegebene Archiv

process deleteBlocked <operationId>

Löschender blockierten Prozesse und Laufzeitdaten anhand einer bestimmten <operationId>

process listBlocked <operationId>

Auflisten der blockierten Prozesse anhand einer bestimmten <operationId>

process resume <operationId>

Fortsetzen der blockierten Prozesse anhand einer bestimmten <operationId>

process validateExport
<runtimeDataExportZipfilePath>

Überprüfen der ZIP-Datei des Laufzeitdaten-Exports

Beispiel

process export myExport.zip --filterExpression 'location in (Bangalore, Berlin) AND countryName inFile /tmp/countryName.txt'