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.