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 comofalse
, 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ó:
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:
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:
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:
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:
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:
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:
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.