Ações

A ação é o efeito de uma condição satisfeita. Uma condição pode ter de zero a várias ações, executadas de cima para baixo, e cada ação enxerga o que as anteriores escreveram.

Esta página reúne o que vale para todas as ações. Cada ação tem sua própria página, com a configuração e o comportamento específicos.

Origem, destino e ajustes

Várias ações consultam um dado e devolvem outro. Em todas elas a configuração segue o mesmo formato:

  • Origem: quais campos do evento alimentam a ação;
  • Destino: quais campos recebem cada resultado;
  • Ajustes: parâmetros próprios da ação.

Cada destino é opcional individualmente: se você só precisa do país e não do identificador, deixe o outro em branco. Mas cada ação exige pelo menos um destino preenchido: uma ação que não grava nada em lugar nenhum não seria executada e não é aceita ao salvar.

Um resultado que a ação não conseguiu resolver deixa o campo de destino intocado, em vez de gravar um valor vazio. Isso é intencional: um campo em branco continua sendo testável por uma condição posterior ($issuer_country == null), e nenhum palpite é melhor que um dado errado. Já false e 0 são resultados legítimos e são gravados normalmente.

Valor fixo ou expressão

As duas ações que gravam um valor, preencher campo e definir variável temporária, aceitam esse valor de duas formas, escolhidas em um seletor ao lado do destino:

  • Valor fixo: o conteúdo é gravado exatamente como foi escrito. Nada dentro dele é interpretado: em valor fixo, $amount grava o texto $amount.
  • Expressão: o conteúdo é interpretado, e o que se grava é o resultado.

Ações criadas antes desta opção abrem em Valor fixo e mantêm o comportamento anterior.

Uma expressão pode ser:

Forma Exemplo
um campo do evento $issuer_country
uma variável temporária %bot.score
um texto, número ou booleano "aprovado", 10, true
uma junção com concat concat($order_id, "-", %bot.score_cell)

Aplica-se a mesma sintaxe das condições, com uma diferença: a expressão de uma ação produz um valor, não um verdadeiro ou falso, e não há comparações nem and/or. Como em qualquer condição, uma variável temporária lida na expressão precisa ter sido produzida por uma ação anterior.

Tipos compatíveis

Um texto, número ou booleano escrito diretamente na expressão é validado pelo campo de destino, exatamente como um valor fixo seria.

Já um campo, uma variável temporária ou um concat precisam ter tipo compatível com o destino. A conversão só acontece quando não há perda:

Tipo do campo de destino Aceita valor de
Texto qualquer tipo
Inteiro Inteiro
Decimal Decimal, Inteiro
Booleano Booleano
Data e hora Data e hora

Um decimal não é gravado em um campo inteiro: arredondar automaticamente decidiria pelo autor da regra o que fazer com a parte fracionária. O caminho contrário, um inteiro em um campo decimal, é aceito. O resultado de concat é sempre um texto, e por isso só cabe em campo de texto.

Uma variável temporária não tem tipo de destino, de modo que aceita qualquer valor, inclusive um conjunto como %bot.triggered_cells. Copiado sozinho, o conjunto continua sendo um conjunto e segue utilizável à direita de um in. Esse mesmo conjunto não pode ser gravado em um campo, nem usado dentro de um concat.

Valores ausentes

Uma expressão que apenas copia um valor, como $campo ou %variavel sozinhos, não grava nada quando esse valor não existe: o campo de destino fica como estava, e a variável temporária continua ausente. É a mesma escolha descrita acima, de não substituir um dado ausente por um palpite. Já false, 0 e um texto vazio são leituras legítimas e são gravados.

Um concat sempre grava, porque constrói um texto novo em vez de copiar um existente; as partes ausentes entram como vazio.


Índice