Zum Inhalt springen

Workflows mit Steuerungsskripten in Jitterbit Studio verwalten

Einführung

Ein Steuerungsskript ist ein Skript, das Orchestrierungslogik enthält, um zu verwalten, wie und wann eine Operation ausgeführt werden soll, und wird für komplexe Workflows empfohlen. Es ist normalerweise die erste Operation einer Operationskette.

Beispiel

In diesem Beispiel möchten wir eine Liste von High Schools lesen, über die Liste iterieren, ein Wörterbuch erstellen und dann eine Aktualisierungsoperation aufrufen.

Der Datensatz ist eine Liste von Codes und Namen von High Schools, die wie folgt formatiert ist:

"001,Amon Carter-Riverside HS|002,Arlington Heights HS|003,South Hills HS|4,Diamond Hill-Jarvis HS|005,Paul Laurence Dunbar HS|006,Eastern Hills HS|008,North Side HS|009,Polytechnic HS"

Hinweis

  • Die Verwendung von If in Kombination mit RunOperation und GetLastError kann so eingesetzt werden, dass bei einem technischen Fehler der Operation ein Fehler ausgelöst wird und der Prozess stoppt. Andernfalls wird die Operation normal ausgeführt.
  • While sollte für Schleifen verwendet werden.

Hier ist ein hochrangiges Beispiel mit Kommentaren:

If(!RunOperation("<TAG>operation:read_data</TAG>"),GetLastError()); // The output is written to a global variable endpoint $io
If(Length($io) > 0, // Checking if any data was read, skip if no data was generated
$dict_highschool_list = Dict(); // Initializing the dictionary
arr = Array(); // Initializing the array
arr_list = Array();
arr = Split($io,"|"); // A "|" is the record separator
cnt = Length(arr); i = 0;
While(i < cnt,
arr_list = Split(arr[i],","); // Another split to separate by commas
AddToDict($dict_highschool_list, arr_list[0],arr_list[1]);
// The dictionary key is the code, its value is the name of the high school. Note the use of brackets to denote the position in the array.
i++);
WriteToOperationLog("Number of high schools read: " + cnt);
If(!RunOperation("<TAG>operation:read_data</TAG>"),GetLastError()); // Use the dictionary as a cross-reference
,
WriteToOperationLog("No data read; stopping process")
);