Ir para o conteúdo

Mapeamento Condicional

Introdução

O mapeamento condicional permite especificar que um registro em uma transformação seja mapeado com base em uma condição definida. A condição determina (sim ou não) se o registro está mapeado. Como parte dessa determinação, você pode incluir lógica para definir quais valores serão usados no mapeamento. Por exemplo, um registro poderá ser usado somente se o tamanho de um campo de texto for menor que um máximo especificado.

O mapeamento condicional é realizado adicionando um elemento de dados especial denominado nó de condição a uma pasta de destino. O conteúdo do nó de condição 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.

Só pode haver um nó de condição em uma pasta de destino. Assim, toda lógica para a condição deve residir nessa condição.

O nó 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 deverá estar no nó de condição se o nó de condição exigir esses valores para concluir sua determinação.

Se diversas condições estiverem presentes, elas serão avaliadas na ordem do nó externo para o nó interno; se estiverem no mesmo nível, serão avaliados na ordem de cima para baixo.

Nota

Os nós de condição aplicam-se somente a pastas de destino opcionais ou de loop (também conhecidas como nós de loop de destino ou TLNs).

Crie um Nó de Condição

Para definir uma condição:

  1. Selecione a pasta à qual a condição será aplicada:

    anexo

  2. Abaixo do mapeamento de transformação, clique no ícone de múltiplas pastas anexo para exibir a caixa de diálogo Opções de mapeamento. Para obter informações sobre todas as opções disponíveis, consulte Adicionar pastas extras em Mapeamento de estruturas planas para estruturas hierárquicas.

  3. Selecione Ativar condição na pasta atual e clique em OK.

    anexo

  4. A pasta selecionada exibirá agora um novo elemento de dados de condição abaixo do nó ao qual você aplicou a condição:

    anexo

Aplicar uma Fórmula ao Nó de Condição

Agora você tem uma condição aplicada ao seu alvo. Para que esteja operacional, é necessário aplicar uma fórmula:

  1. Clique duas vezes na condição na árvore de destino:

    anexo

  2. O Formula Builder será aberto. Na área de script no canto superior esquerdo, insira uma expressão apropriada para sua condição usando uma combinação de fórmulas, valores de elementos de dados de origem e operadores matemáticos.

  3. A fórmula deve retornar true (1) ou false (0) para determinar se o mapeamento para o registro determinado ocorre.

Exemplos

Para definir uma condição de modo que um registro seja usado somente se seu sinalizador para publicá-lo tiver sido definido, você pode usar uma condição como:

<trans>
bool(Publish_To_Community__c) == true
</trans>

Definir uma condição para que um registro seja usado somente se for menor que o tamanho máximo, assumindo que o texto do artigo esteja no elemento json$results$item.body$view$value$:

<trans>
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;
</trans>

Uma fórmula de condição também pode definir valores usados em outros nós. Usando o exemplo acima, 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:

<trans>
...
$articleDetails = Replace(json$results$item.body$view$value$,
                          'href="/','href="https://example.com/');
...
</trans>

A variável global é então usada para definir o valor no campo de destino desejado Article_Details__c:

<trans>
$articleDetails;
</trans>