Condições
A condição é a unidade de trabalho de uma regra: avalia uma expressão sobre o evento e, quando ela é verdadeira, executa ações.
Partes de uma condição
Nome: identifica a condição no painel e nas comparações entre versões. Escolha algo que descreva a intenção (cartao_estrangeiro, cliente_bloqueado), não o mecanismo.
Expressão: resulta em verdadeiro ou falso a partir dos dados disponíveis no momento da avaliação:
$amount > 1000 and $issuer_country != "BR"
A expressão é escrita conforme a sintaxe para expressões e só pode usar os campos do tipo de evento ao qual a regra pertence.
Ações: de zero a várias, executadas em ordem quando a expressão é verdadeira. As ações são o efeito da condição: preencher um campo, consultar um dado externo, adicionar um valor a uma lista, executar uma análise.
Ordem e encadeamento
As condições são avaliadas de cima para baixo, todas elas. A avaliação não para na primeira condição satisfeita: se três condições forem satisfeitas, as três executam suas ações.
Essa ordem importa porque as condições compartilham a mesma memória de trabalho. Cada condição é avaliada sobre o estado atual do evento, incluindo o que as condições anteriores escreveram:
| Ordem | Condição | Expressão | Ação |
|---|---|---|---|
| 1 | identifica_emissor | $card_bin != null | Enriquecer: BIN → issuer_id, issuer_country |
| 2 | emissor_estrangeiro | $issuer_country not in ["BR"] | Preencher campo: review = "true" |
A condição 2 só funciona porque a condição 1 já preencheu issuer_country. Se a ordem fosse invertida, o campo ainda estaria vazio na hora da avaliação.
A mesma lógica vale para as ações dentro de uma condição: elas executam na ordem em que aparecem e podem ser reordenadas arrastando as linhas no painel.
Condição sem ações
Uma condição pode não ter nenhuma ação. Isso é válido, mas raro: sem ação, a condição não produz efeito algum. O caso de uso é documentar uma verificação que ainda está sendo desenhada, deixando as ações para depois.
Quando uma condição não é satisfeita
Nada acontece: a avaliação segue para a próxima condição. Campos que uma condição preencheria continuam com o valor que já tinham (ou vazios), e uma condição posterior pode testar exatamente essa ausência:
$issuer_country == null
Se uma ação falhar
Se uma ação encontrar um erro inesperado durante a execução, o evento ainda é registrado, sem os valores que a regra produziria, e a equipe da Glass Data é notificada automaticamente. A ingestão nunca é interrompida por causa de uma regra.
Valores que a ação não conseguiu resolver não são erro: uma consulta sem resultado, ou um valor em branco, deixa o campo de destino intocado, e uma condição seguinte pode tratar essa ausência.