Saltar al contenido

Gestionar flujos de trabajo utilizando scripts de controlador en Jitterbit Studio

Introducción

Un script de controlador es un script que contiene la lógica de orquestación para gestionar cómo y cuándo debe ejecutarse una operación, y se recomienda para flujos de trabajo complejos. Generalmente, es la primera operación de una cadena de operaciones.

Ejemplo

En este ejemplo, queremos leer una lista de escuelas secundarias, iterar sobre la lista, construir un diccionario y luego llamar a una operación de actualización.

El conjunto de datos es una lista de códigos y nombres de escuelas secundarias formateada de la siguiente manera:

"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"

Nota

  • Usar If en combinación con RunOperation y GetLastError puede ser útil para que, si la operación tiene un fallo técnico, se genere un error y el proceso se detenga. De lo contrario, la operación se ejecutará normalmente.
  • While debe usarse para bucles.

Aquí hay un ejemplo de alto nivel con comentarios:

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")
);