Ir para o conteúdo

Encadear e controlar operações no Jitterbit Studio

Introdução

O Studio fornece duas maneiras de encadear operações e controlar como elas são executadas: a ferramenta Invocar Operação e a função RunOperation em um script. Ambas as abordagens criam cadeias de operações e suportam execução síncrona e assíncrona, mas se adequam a situações diferentes.

Ferramenta Invocar Operação Script com RunOperation
Configuração Visual, arrastar e soltar etapa de script adicionada à operação
Lógica condicional Não suportada Suportada (use If, While, etc.)
Captura de erros Opções de tratamento de erros integradas Manual com GetLastError
Laços Não suportados Suportados
Melhor para Invocações simples e incondicionais Lógica de controle, laços, ramificação condicional

Usar a ferramenta Invocar Operação

A ferramenta Invocar Operação é um componente de projeto que executa uma operação especificada como um passo dentro de outra operação. Ela está localizada na aba Ferramentas da paleta de componentes de design.

Adicionar um passo de Invocar Operação

  1. Na paleta de componentes de design, selecione a aba Ferramentas.

  2. Arraste uma ferramenta Invocar Operação para a tela de design e solte-a na operação onde a invocação deve ocorrer.

  3. A tela de configuração é aberta automaticamente.

Configurar a ferramenta Invocar Operação

  • Nome: Insira um nome para identificar esta instância da ferramenta, ou selecione Usar nome da operação para corresponder automaticamente ao nome da operação que está sendo invocada.

  • Operação: Selecione a operação a ser invocada na lista de operações do projeto atual.

  • Tipo de execução: Selecione Síncrona ou Assíncrona.

  • Sincronamente (padrão): A operação invocada é concluída antes que a operação pai continue. As alterações de variáveis globais na operação invocada estão disponíveis na operação pai.

  • Assincronamente: A operação invocada é colocada em fila e executa de forma independente. A operação pai continua imediatamente sem esperar. As alterações de variáveis globais na operação invocada não são refletidas na operação pai.

Para mais informações, veja Sincronismo.

  • Tratamento de erros (apenas síncrono):

    • Gerar erro se a operação falhar: A operação pai falha e para se a operação invocada falhar. Qualquer ação de Em Falha ações da operação configurada na operação pai é executada.
    • Cancelar cadeia de operações se a operação falhar: A operação pai continua até a conclusão, mas nenhuma ação de Em Falha ou Em Sucesso é executada quando termina.
  • Clique em Salvar Alterações.

Nota

Uma cadeia de operações criada usando a ferramenta Invocar Operação não exibe uma linha de referência visual na tela de design.

Usar scripts com RunOperation

Para invocação condicional, loops ou acumulação de erros, adicione um passo de script à operação e use RunOperation.

Invocação básica

<trans>
RunOperation("<TAG>operation:My Operation</TAG>");
</trans>

Por padrão, RunOperation é executado de forma síncrona. Passe false como o segundo argumento para executar de forma assíncrona:

<trans>
RunOperation("<TAG>operation:My Operation</TAG>", false);
</trans>

Invocação condicional e captura de erro

Envolva RunOperation em um If para detectar falhas e capturar o erro:

<trans>
If(!RunOperation("<TAG>operation:My Operation</TAG>"),
  WriteToOperationLog("Operation failed: " + GetLastError());
  RaiseError(GetLastError());
);
</trans>

GetLastError recupera a mensagem de erro da operação que falhou mais recentemente. RaiseError interrompe a operação atual e aciona sua ação Em Falha configurada.

Roteamento no conteúdo da carga útil

A condição também pode testar os dados em si, em vez do resultado de uma operação anterior. Este é o padrão a ser usado quando um endpoint entrega mais de um tipo de mensagem e cada tipo precisa de uma operação diferente:

<trans>
If($gv_messageType == "Update",
  RunOperation("<TAG>operation:Process Update</TAG>");
,
  RunOperation("<TAG>operation:Process Cancellation</TAG>");
);
</trans>

Para um exemplo completo que inspeciona uma carga útil XML de entrada para determinar o tipo de mensagem, veja Roteie mensagens XML por tipo de nó.

Scripts de controlador

Um script de controlador é uma operação de script cujo único propósito é coordenar outras operações. É útil quando:

  • Uma operação deve ser executada condicionalmente com base em variáveis de projeto ou valores de dados.
  • Suboperações são chamadas de dentro de um loop, passando dados de uma lista para cada invocação.
  • O registro de rastreamento é necessário entre as etapas da operação (por exemplo, WriteToOperationLog("Iniciando atualização em: " + Now())).

Para um exemplo completo de script de controlador, veja Gerencie fluxos de trabalho usando scripts de controlador. Para um padrão de nova tentativa automática, veja Tente novamente uma operação falhada.

Outros usos de scripts

Scripts também são usados dentro de mapeamentos de campos de transformação e como scripts reutilizáveis independentes. Se a mesma lógica for necessária em mais de uma transformação, crie um script independente e chame-o de cada transformação usando RunScript.