22 lines
1.6 KiB
Markdown
Executable File
22 lines
1.6 KiB
Markdown
Executable File
---
|
|
description: "Use quando editar JavaScript Rhino no DavinTI/Vitruvio (.js) e scripts nos formularios/processos .xml Vitruvio: compatibilidade ES5, padroes de db/query, interop Java, concatenacao SQL/HTML e alteracoes seguras para producao."
|
|
name: "Rhino ES5 Vitruvio"
|
|
applyTo: "**/*.js, **/*.xml"
|
|
---
|
|
# Rhino ES5 (Vitruvio)
|
|
|
|
- O runtime e Rhino ES5. Use sempre `var`.
|
|
- Nao use `let`, `const`, template strings, arrow functions, optional chaining ou outros recursos modernos de JS.
|
|
- Em comparacoes com objetos Java (interop), prefira `==` e `!=`.
|
|
- Monte SQL/HTML com concatenacao incremental:
|
|
- `var sql = ""; sql += " SELECT ...";`
|
|
- Prefira APIs/libs padrao da plataforma:
|
|
- `libService.loadScript('db'|'javadateutils'|'util'|...)`
|
|
- `new db("CONEXAO")`, `db.queryRow(sql, params)`, `db.query(sql, params).each(function (row) { ... })`, `db.transaction(function () { ... })`, `db.executeProcedure(nome, parametros)`, `db.update(sql, params)`
|
|
- `engine.getField('campo').setValue`, `engine.getLabel('id').setValue`, `engine.getWidget('id')`, `engine.setGlobalVariable('nome', funcao);`
|
|
- `execution.getVariable/ setVariable`, `taskService`, `vFormService`, `sendMessageToVitruvio({ ... })`
|
|
- `db.query` retorna `null` quando nao ha linhas; se o objeto existir, ja ha ao menos um registro e deve ser percorrido com `lista.each(...)` (nao usar `size`).
|
|
- Organize helpers internos (formatação de data, filtros, builders de HTML) antes das funcoes expostas (`this.metodo = function () { ... }`).
|
|
- Mantenha nomenclatura e convencoes existentes em portugues.
|
|
- Priorize alteracoes minimas e compativeis com producao, evitando refactors amplos.
|