# Condições A condição é a unidade de trabalho de uma [regra](/pt/rules/): 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](/pt/rules/expression-syntax/) 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](/pt/rules/actions/) são o efeito da condição: preencher um campo, consultar um dado externo, adicionar um valor a uma lista, executar uma [análise](/pt/rules/analyses/). ## 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.