Lógica condicional em transformações no Jitterbit Integration Studio
Introdução
Criar uma condição em um nó de destino é chamado de mapeamento condicional. Esse recurso estende os conceitos básicos de mapeamento ao adicionar lógica de negócios para controlar quando os dados são processados. O mapeamento condicional permite especificar se um registro de origem que está sendo processado deve ser enviado ao destino com base em uma condição definida. A condição determina (sim ou não) se o registro é mapeado. Como parte dessa determinação, você pode incluir lógica para definir quais valores são usados no mapeamento. Por exemplo, você pode usar um registro apenas se o tamanho de um campo de texto for menor que um máximo especificado.
Notas importantes
Ao usar um script de condição em um nó de destino, esteja ciente destes pontos:
-
Você pode adicionar condições a nós de destino com uma cardinalidade de
[0+]
,[0, 1]
ou[1+]
em qualquer nível de estrutura. Se um nó for obrigatório ([1+]
) e a condição for avaliada comofalsa
, a operação pode falhar em tempo de execução. -
Nós de destino que podem ter uma condição podem ter apenas uma condição para cada nó. Toda a lógica para a condição deve residir nessa condição.
-
O script de condição é sempre avaliado antes de qualquer campo de destino ser avaliado. Isso significa que toda a lógica para criar ou determinar os valores para esses campos de destino deve estar no script de condição se o script de condição exigir esses valores para completar sua determinação.
-
Se várias condições estiverem presentes, elas são avaliadas na ordem do nó externo para o nó interno. Se estiverem no mesmo nível, então são avaliadas na ordem de cima para baixo.
Adicionar uma condição
Você pode adicionar condições como scripts em nós de destino com uma cardinalidade de [0+]
, [0, 1]
ou [1+]
. Passe o mouse sobre o nome do nó e clique para abrir o menu de ações do nó. No menu, selecione Adicionar condição ao nó.
Quando você seleciona esta opção, a área de script editável no nó de destino é aberta.
O conteúdo do script especifica a condição para gerar o registro. Uma condição deve retornar um valor true
(1) ou false
(0). Ela pode conter outra lógica, e um efeito colateral dessa lógica pode ser definir o valor de outros nós na transformação.
Quando um script condicional está presente, um ícone de condição é exibido no nó de destino. Quando um objeto ou variável de origem é usado em um script condicional, linhas de mapeamento estão conectadas ao nó, e a contagem de mapeamentos inclui nós nos quais o campo ou variável de origem é referenciado:
Nota
Se o nó for obrigatório ([1+]
) e a condição avaliar como false
, a operação pode falhar em tempo de execução.
Exemplo 1
O script abaixo requer que o objeto de origem code
avalie como true
para que o registro seja processado. Se code
avaliar como false
, o nó é ignorado e este registro específico não é processado:
Exemplo 2
Você também pode usar o operador de igualdade ==
como uma forma abreviada para escrever scripts de condição. Por exemplo, você poderia escrever a mesma condição usada no Exemplo 1 assim:
Exemplo 3
Para definir uma condição de modo que um registro seja usado apenas se uma flag para publicá-lo estiver definida, você poderia usar um script como este:
bool(Publish_To_Community__c) == true
Exemplo 4
Para definir uma condição de modo que um registro seja usado apenas se for menor que um tamanho máximo, assumindo que o texto do artigo está no elemento json$results$item.body$view$value$
, você poderia usar um script como este:
pass = true;
// Log article size
$articleDetailsSize = Length(json$results$item.body$view$value$);
WriteToOperationLog('Current article:' +
json$start$ + ' articleDetailsSize:' + $articleDetailsSize);
// Checks if the article size > $MaxArticleDetailSize;
// if so, the article is ignored
if($articleDetailsSize > $MaxArticleDetailSize,
WriteToOperationLog("Ignoring Id " + json$results$item.id$ +
" as too large (" + $articleDetailsSize + ")");
pass = false;
);
pass;
Exemplo 5
Um script de condição também pode definir valores usados em outros nós. Com base no Exemplo 4, o nó de condição pode, como parte de sua lógica, definir o conteúdo pretendido de um campo para uma variável global:
...
$articleDetails = Replace(json$results$item.body$view$value$,
'href="/','href="https://example.com/');
...
A variável global é então usada para definir o valor no campo de destino desejado Article_Details__c
:
$articleDetails;
Gerenciando condições
Você pode editar ou remover uma condição clicando no ícone de condição exibido à direita do nó de destino. Você também pode passar o mouse sobre o nome do nó e clicar em para abrir o menu de ações do nó.