Verkettung und Steuerung von Operationen in Jitterbit Studio
Einführung
Studio bietet zwei Möglichkeiten, Operationen miteinander zu verketten und ihre Ausführung zu steuern: das Invoke Operation-Tool und die RunOperation-Funktion in einem Skript. Beide Ansätze erstellen Operationsketten und unterstützen synchrone und asynchrone Ausführung, eignen sich aber für unterschiedliche Situationen.
| Invoke Operation-Tool | Skript mit RunOperation |
|
|---|---|---|
| Einrichtung | Visuell, Drag-and-Drop | Skriptschritt zur Operation hinzugefügt |
| Bedingte Logik | Nicht unterstützt | Unterstützt (verwende If, While usw.) |
| Fehlererfassung | Integrierte Fehlerbehandlungsoptionen | Manuell mit GetLastError |
| Schleifen | Nicht unterstützt | Unterstützt |
| Am besten geeignet für | Einfache, unbedingte Aufrufe | Controller-Logik, Schleifen, bedingte Verzweigung |
Verwende das Invoke Operation-Tool
Das Invoke Operation-Tool ist eine Projektkomponente, die eine angegebene Operation als Schritt innerhalb einer anderen Operation ausführt. Es befindet sich auf der Registerkarte Tools der Design-Komponentenpalette.
Füge einen Invoke Operation-Schritt hinzu
-
Wähle in der Design-Komponentenpalette die Registerkarte Tools aus.
-
Ziehe ein Invoke Operation-Tool auf die Design-Canvas und lege es in der Operation ab, in der der Aufruf erfolgen soll.
-
Der Konfigurationsbildschirm wird automatisch geöffnet.
Konfiguriere das Invoke Operation-Tool
-
Name: Gib einen Namen ein, um diese Tool-Instanz zu identifizieren, oder wähle Use operation name aus, um den Namen der aufgerufenen Operation automatisch zu verwenden.
-
Operation: Wähle die aufzurufende Operation aus der Liste der Operationen im aktuellen Projekt aus.
-
Run type: Wähle Synchronously oder Asynchronously aus.
- Synchronously (Standard): Die aufgerufene Operation wird bis zum Abschluss ausgeführt, bevor die übergeordnete Operation fortgesetzt wird. Änderungen an globalen Variablen in der aufgerufenen Operation sind in der übergeordneten Operation verfügbar.
- Asynchronously: Die aufgerufene Operation wird in die Warteschlange eingereiht und läuft unabhängig. Die übergeordnete Operation wird sofort fortgesetzt, ohne zu warten. Änderungen an globalen Variablen in der aufgerufenen Operation werden nicht in der übergeordneten Operation berücksichtigt.
Weitere Informationen findest du unter Synchronicity.
-
Error handling (nur synchron):
- Raise error if operation fails: Die übergeordnete Operation schlägt fehl und stoppt, wenn die aufgerufene Operation fehlschlägt. Alle auf der übergeordneten Operation konfigurierten On Fail Operationsaktionen werden ausgeführt.
- Cancel operation chain if operation fails: Die übergeordnete Operation wird bis zum Abschluss fortgesetzt, aber es werden keine weiteren On Fail- oder On Success-Aktionen ausgeführt, wenn sie beendet wird.
-
Klicke auf Save Changes.
Hinweis
Eine mit dem Invoke Operation-Tool erstellte Operationskette zeigt keine visuelle Referenzlinie auf der Design-Canvas an.
Verwende Skripte mit RunOperation
Für bedingte Aufrufe, Schleifen oder Fehlerakkumulation füge einen Skriptschritt zur Operation hinzu und verwende RunOperation.
Grundlegender Aufruf
<trans>
RunOperation("<TAG>operation:My Operation</TAG>");
</trans>
Standardmäßig wird RunOperation synchron ausgeführt. Übergib false als zweites Argument, um asynchron auszuführen:
<trans>
RunOperation("<TAG>operation:My Operation</TAG>", false);
</trans>
Bedingter Aufruf und Fehlererfassung
Umhülle RunOperation mit einem If, um Fehler zu erkennen und den Fehler zu erfassen:
<trans>
If(!RunOperation("<TAG>operation:My Operation</TAG>"),
WriteToOperationLog("Operation failed: " + GetLastError());
RaiseError(GetLastError());
);
</trans>
GetLastError ruft die Fehlermeldung der zuletzt fehlgeschlagenen Operation ab. RaiseError stoppt die aktuelle Operation und löst ihre konfigurierte On Fail-Aktion aus.
Routing basierend auf Payload-Inhalt
Die Bedingung kann auch die Daten selbst testen, anstatt das Ergebnis einer vorherigen Operation zu prüfen. Dieses Muster wird verwendet, wenn ein Endpoint mehr als eine Art von Nachricht liefert und jede Art eine andere Operation benötigt:
<trans>
If($gv_messageType == "Update",
RunOperation("<TAG>operation:Process Update</TAG>");
,
RunOperation("<TAG>operation:Process Cancellation</TAG>");
);
</trans>
Ein vollständiges Beispiel, das eine eingehende XML-Payload inspiziert, um den Nachrichtentyp zu bestimmen, finden Sie unter XML-Nachrichten nach Knotentyp weiterleiten.
Controller-Skripte
Ein Controller-Skript ist eine Skriptoperation, deren einziger Zweck darin besteht, andere Operationen zu koordinieren. Es ist nützlich, wenn:
- Eine Operation bedingt basierend auf Projektvariablen oder Datenwerten ausgeführt werden muss.
- Unteroperationen innerhalb einer Schleife aufgerufen werden und Daten aus einer Liste an jede Ausführung übergeben werden.
- Trace-Protokollierung zwischen Operationsschritten erforderlich ist (z. B.
WriteToOperationLog("Starting update at: " + Now())).
Ein vollständiges Controller-Skript-Beispiel finden Sie unter Workflows mit Controller-Skripten verwalten. Ein Muster für automatische Wiederholungen finden Sie unter Fehlgeschlagene Operation erneut versuchen.
Weitere Verwendungen von Skripten
Skripte werden auch in Transformations-Feldmappings und als eigenständige wiederverwendbare Skripte verwendet. Wenn die gleiche Logik in mehr als einer Transformation benötigt wird, erstellen Sie ein eigenständiges Skript und rufen Sie es aus jeder Transformation mit RunScript auf.