Ir para o conteúdo

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 como falsa, 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ó:

nó de destino adicionar condição

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:

indicadores visuais de mapeamento condicional

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:

condição se

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:

condição abreviada

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:

editar condição do nó de destino

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:

remover condição do nó de destino

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.