# 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/`