---
name: vitruvio-rhino-diagnostic
description: "Diagnostique e corrija scripts Rhino ES5 do Vitruvio em arquivos .js ou blocos CDATA de XML. Use para erros de sintaxe ES6, db.query retornando null, comparacoes com objetos Java, uso de libService.loadScript, SQL ou HTML montados errado, globais do engine e bugs de runtime em formularios, processos, libs ou paineis."
argument-hint: "Descreva o script, erro ou comportamento inesperado."
---

# Diagnostico de Script Rhino Vitruvio

## Quando usar
- Falhas em scripts `.js` do Vitruvio ou em `CDATA` dentro de `.xml`.
- Erros de runtime ligados a `db.query`, `queryRow`, `engine`, `execution`, `sendMessageToVitruvio` ou libs carregadas via `libService.loadScript`.
- Ajustes em formularios, processos, paineis e libs compartilhadas sem introduzir sintaxe incompativel.

## Objetivo
Encontrar a causa raiz do problema em runtime Rhino, corrigir com a menor mudanca segura possivel e preservar compatibilidade de producao.

## Procedimento
1. Identifique onde o script roda: lib, formulario, processo, painel ou widget.
2. Verifique incompatibilidades de sintaxe primeiro usando o [guia de falhas comuns](./references/common-failures.md).
3. Confirme se as libs necessarias foram carregadas antes do uso.
4. Revise o acesso a dados: `db.query` retorna `null` sem linhas; quando existir, percorra com `.each(...)`.
5. Revise comparacoes com objetos Java e valores vindos da plataforma usando `==` e `!=`.
6. Garanta que SQL e HTML estejam montados com concatenacao incremental e parametros nomeados.
7. Se a logica depender de globais, confirme registro por `engine.setGlobalVariable` antes do consumo em botoes ou eventos.
8. Ao finalizar, descreva o defeito encontrado, o ajuste aplicado e o risco residual se houver dependencia de dados externos.

## Saida esperada
- Correcao compativel com Rhino ES5.
- Explicacao curta da causa raiz.
- Validacao do ponto de falha mais provavel e do padrao correto adotado.

## Recursos
- [Falhas comuns e padroes corretos](./references/common-failures.md)