Ir para o conteúdo

Gerenciar fluxos de trabalho usando scripts de controle no Jitterbit Studio

Introdução

Um script de controle é um script que contém a lógica de orquestração para gerenciar como e quando uma operação deve ser executada, e é recomendado para fluxos de trabalho complexos. Geralmente, é a primeira operação de uma cadeia de operações.

Exemplo

Neste exemplo, queremos ler uma lista de escolas de ensino médio, iterar sobre a lista, construir um dicionário e, em seguida, chamar uma operação de atualização.

O conjunto de dados é uma lista de códigos e nomes de escolas de ensino médio formatados assim:

"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 em combinação com RunOperation e GetLastError pode ser utilizado para que, se a operação tiver uma falha técnica, um erro seja gerado e o processo pare. Caso contrário, a operação será executada normalmente.
  • While deve ser usado para loops.

Aqui está um exemplo de alto nível com comentários:

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