Mapeamento Condicional¶
Introdução¶
A criação de uma condição em um nó de destino, conhecida como mapeamento condicional, permite especificar 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 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.
Anotações Importantes¶
Ao usar um script de condição em um nó de destino, esteja ciente destas notas:
- As condições podem ser adicionadas aos nós de destino 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 poderá 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 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 desses campos de destino deverá estar no script de condição se o script de condição exigir esses valores para concluir sua determinação.
- Se múltiplas 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.
Adicionar uma Condição¶
Você pode adicionar condições como scripts em nós de destino com cardinalidade de [0+]
, [0, 1]
, ou [1+]
. De qualquer modo de mapeamento ou modo de script, passe o mouse sobre o nome do nó e clique no botão í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 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 poderá 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
, o nó será ignorado e esse registro específico não será processado:
Exemplo 2¶
Você também pode usar o ==
operador igual como 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 para que um registro seja usado somente se um sinalizador para publicá-lo tiver sido definido, você poderia usar um script como este:
bool(Publish_To_Community__c) == true
Exemplo 4¶
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$
, 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¶
De qualquer modo de mapeamento ou modo de script, clique no laranja ícone de condição exibido à direita do nó de destino:
Ou passe o mouse sobre o nome do nó e clique no botão ícone do menu de ações para abrir o menu de ações. No menu, selecione Editar condição:
Se ainda não estiver no modo de script, você 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 de script, passe o mouse sobre o nome do nó e clique no botão í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 seu script.