# Falhas Comuns e Padroes Corretos

## Sintaxe incompativel
- Troque `let` e `const` por `var`.
- Nao use template strings, arrow functions, optional chaining ou outros recursos modernos nao suportados.
- Em comparacoes com objetos Java, prefira `==` e `!=`.

## Banco e consultas
- `db.query(sql, params)` retorna `null` quando nao ha linhas.
- Se o resultado existir, ele ja possui ao menos um registro e deve ser percorrido com `.each(function (row) { ... })`.
- Use `db.queryRow` quando a expectativa for uma unica linha.
- Prefira parametros nomeados e evite concatenar valores diretamente na clausula SQL.

## SQL e HTML
- Monte blocos com concatenacao incremental: `var sql = ""; sql += " SELECT ...";`.
- Mantenha identacao consistente nos trechos adicionados por concatenacao.
- Evite blocos gigantes sem helper quando houver repeticao clara de montagem.

## Engine e globais
- Registre globais em `initScript` ou no ponto de bootstrap antes de chama-las em eventos.
- Use `engine.getField`, `engine.getLabel`, `engine.getWidget` e `execution.getVariable` conforme o contexto do artefato.
- Nao assuma que uma variavel de processo ja esta populada; valide a origem do dado.

## Fontes internas do workspace
- `Vitruvio/Documentação/eventos-vitruvio.md`
- `Vitruvio/Documentação/queries-padroes.md`
- `Vitruvio/Libs/`