Estrutura inicial, ambiente IA
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
---
|
||||
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)
|
||||
@@ -0,0 +1,27 @@
|
||||
# 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/`
|
||||
Reference in New Issue
Block a user