Ir para o conteúdo

Mapeamento Condicional

Introdução

A criação de uma condição em um nó de destino, chamada de mapeamento condicional, permite que você especifique se um registro de origem que está sendo processado deve ser enviado para o 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, um registro pode ser usado somente 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 destas notas:

  • Condições podem ser adicionadas aos nós alvo com uma cardinalidade de [0+], [0, 1], ou [1+] em qualquer nível de estrutura. Se um nó for necessário ([1+]) e a condição é avaliada como false, a operação pode falhar em tempo de execução.
  • Os nós de destino que podem ter uma condição podem ter apenas uma condição para cada nó. Assim, 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 concluir sua determinação.
  • Se várias condições estiverem presentes, elas serão avaliadas na ordem do nó externo para o nó interno; se estiverem no mesmo nível, elas serã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+]. De qualquer modo de mapeamento ou modo script, passe o mouse sobre o nome do nó e clique em ícone do menu de ações para abrir o menu de ações. No menu, selecione Adicionar condição ao nó:

condição de adição do nó de destino

Ao selecionar esta opção, se você ainda não estiver no modo de script, você será levado ao modo de script para criar uma condição inserindo um script no nó selecionado:

condição vazia

O conteúdo do script especifica a condição para gerar o registro. Uma condição deve retornar um true(1) ou false (0) valor. Ele pode conter outra lógica, e um efeito colateral dessa lógica pode ser definir o valor de outros nós na transformação.

Nota

Se o nó for necessário ([1+]) e a condição é avaliada como false, a operação pode falhar em tempo de execução.

Exemplo 1

O script abaixo requer que o objeto de origem code avalia para true para que o registro seja processado. Se code avalia para false, então o nó é ignorado e este registro em particular não é processado:

condição se

Exemplo 2

Você também pode usar o == operador equals como uma abreviação para escrever scripts de condição. Por exemplo, a mesma condição usada no Exemplo 1 poderia ser escrita assim:

condição abreviada

Exemplo 3

Para definir uma condição de modo que um registro seja usado somente se um sinalizador para publicá-lo for definido, você pode 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 somente se for menor que um tamanho máximo, assumindo que o texto do artigo esteja no elemento json$results$item.body$view$value$, você pode 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

De qualquer modo de mapeamento ou modo script, clique na laranja ícone de condição exibido à direita do nó de destino:

ícone de condição do nó de destino

Ou 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 Editar condição:

condição de ediçã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

De qualquer modo de mapeamento ou modo script, passe o mouse sobre o nome do nó e clique em ícone do menu de ações para abrir o menu de ações. No menu, selecione Remover condição:

condição de remoçã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 conteúdo do script.