Mapeamento condicional em transformações no Jitterbit Integration Studio
Introdução
Criar uma condição em um nó de destino é chamado de mapeamento condicional. O mapeamento condicional permite especificar se um registro de origem 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 que quaisquer campos de destino sejam avaliados. 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+]
. A partir do modo de mapeamento ou modo de script, passe o mouse sobre o nome do nó e clique no ícone do menu de ações para abrir o menu de ações. No menu, selecione Adicionar condição ao nó:
Quando você seleciona esta opção, se não estiver no modo de script, você é levado ao modo de script para criar uma condição inserindo um script no nó selecionado.
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 você está no modo de mapeamento e 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 que o campo ou variável de origem é referenciado:
Nota
Se o nó for obrigatório ([1+]
) e a condição avaliar para false
, a operação pode falhar em tempo de execução.
Exemplo 1
O script abaixo requer que o objeto de origem code
avalie para true
para que o registro seja processado. Se code
avaliar para false
, então 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;
Editar uma condição
Você pode editar uma condição tanto no modo de mapeamento quanto no modo de script 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 no ícone do menu de ações para abrir o menu de ações. No menu, selecione Editar condição:
Se você ainda não estiver no modo de script, será levado ao modo de script para editar a condição, editando o script no nó selecionado.
Remover uma condição
Tanto no modo de mapeamento quanto no modo de script, passe o mouse sobre o nome do nó e clique no ícone do menu de ações para abrir o menu de ações. No menu, selecione Remover condição:
O conteúdo do script é limpo, removendo a condição.
Você também pode remover uma condição editando manualmente o script de condição para limpar o script de seu conteúdo.