Versão 24
Melhorias
Engine
- Foram criadas as funções
stringCompare
e
dateCompare
com o objetivo de comparar valores de forma equivalente aos métodos
String.prototype.compare()
e Date.prototype.compare()
. Essas extensões das classes nativas do
JavaScript são uma característica do runtime JavaScript Ije e elas não existem no
V8. Elas também são publicadas como ngin.text.compare()
e ngin.date.compare()
para uso em arquivos da Virtual File System que não são estruturados como módulos JavaScript.
- Foram criadas as funções
toSqlString
e
toHtmlString
com o objetivo de formatar valores para serem inseridos em expressões SQL e HTML de forma equivalente
aos métodos Object.prototype.toSqlString()
e Object.prototype.toHtmlString()
. Essas funções
também são publicadas como ngin.text.toSqlString()
e ngin.text.toHtmlString()
para uso em
arquivos da Virtual File System que não são estruturados como módulos JavaScript.
- Foi criada a função
truncateTimePart
com o objetivo de remover a parte de tempo de uma data de forma equivalente ao realizado pelo
ApplyUpdates
na gravação de colunas do tipo date
.
- O Engine passa a suportar o parâmetro de linha de comando
--v8-flags="<args>"
com objetivo
de configurar as flags do runtime JavaScript v8. Mais detalhes no manual
Configuração do Engine.
- O método
DataSet.prototype.sum
foi otimizado. Nos casos mais comuns de uso, ele passou a ser aproximadamente 3 vezes mais rápido
que a versão anterior.
- Foi criado o método
TaskProgressStatusArray.prototype.item
com o objetivo de obter um elemento de um TaskProgressStatusArray
de forma compatível com o
runtime JavaScript V8.
- Ao criar um arquivo na Virtual File System relacionado a um produto (chave negativa) não era
verificado se o produto associado ao arquivo poderia depender do produto associado ao diretório
onde o arquivo estava sendo criado.
Web Framework
- No diretório de configuração do tema, o Web Framework passa a carregar todos os arquivos
CSS que iniciem com os prefixos “environment” e “simpleLayout”, permitindo que os temas padrões
do sistema possam ser customizados sem a necessidade duplicar a configuração completa do tema.
É importante ressaltar que essa é uma configuração avançada voltada para parceiros e não deve
ser utilizada pelos clientes finais do sistema. Os nomes das classes CSS são detalhes internos
da implementação do Web Framework e podem ser alterados a qualquer momento sem aviso prévio.
Configurações sobre essas classes podem deixar de funcionar após uma atualização de sistema,
exigindo uma revisão da customização.
Defeitos corrigidos
Admin
- O filtro “Módulos” dos relatórios
Admin > Segurança > Permissões > Análise de Permissões
e
Admin > Segurança > Permissões > Diferenças de permissões
não exibia os módulos filhos da
classe /Menu
.
- Em determinadas situações o relatório
Admin > Segurança > Permissões > Diferenças de Permissões
poderia gerar o erro “JSON parse error”.
Desenvolvimento
- A propriedade
ModelDef.prototype.dbIndexSpace
era
ignorada na criação de índices no banco de dados Oracle.
- Em determinadas situações, a atualização do sistema poderia gerar o erro
“ORA-01442: column to be modified to NOT NULL is already NOT NULL” no banco de dados Oracle.
- Os registros da tabela
iLog
associados às alterações realizadas pelo processo
Desenvolvimento > Atualização > Sincronizar Permissões de Papéis
não indicavam o processo de
origem no campo iReferrer
, o que dificultava a rastreabilidade dessas modificações.
- A ordem de execução dos “Scripts Pós-Atualização” durante a atualização do sistema era
indeterminada. Esse comportamento poderia provocar erros durante a atualização de bases com versões
muito defasadas, quando os scripts mais recentes dependiam dos dados inseridos por scripts mais
antigos. Agora a execução passa a ser ordenada pela data de criação do script.
- A rotina de ajuste de permissões executada durante a criação do diretório
/Menu
na
Virtual File System poderia criar permissões duplicadas caso houvesse permissões na classe
Raiz
configuradas com o modo de aplicação “Classe e filhas”. Foi criada uma rotina de
pós-upgrade para corrigir os eventuais erros introduzidos por essa rotina.
- Os processos
Sincronizar Permissões de Papéis
e Atualizar Sistema
poderiam criar registros
inválidos de permissões de papéis, caso a base de origem da atualização contivesse permissões
duplicadas. Os processos foram alterados para não propagar o erro da base de origem e eles
passam a excluir as permissões inválidas criadas pelas versões anteriores do sistema.
Engine
- O construtor
new Date()
criava datas inválidas quando era informado valores negativos de
milissegundos.
- O método
DataSet.prototype.sum
gerava uma totalização incorreta caso um dos campos a ser totalizado também fosse incluído na lista
de campos a serem agrupados. Agora o sistema passa a gerar um erro para indicar que essa operação
não é suportada.
Web Framework
- Em determinadas situações os relatórios com grupos contraídos não podiam ser expandidos.
- Scripts “x-find” que dependiam da variável global
classKey
poderiam falhar caso houvesse
uma classe filha redefinido a pesquisa de uma classe mãe.
Outras alterações
Desenvolvimento
- Nos processos Atualizar Sistema e Atualizar Estrutura, os comandos de criação de índices
deixam de adicionar a opção compute statistics quando utilizado o banco de dados Oracle. Essa
opção deixou de ser recomendada desde o Oracle 10g, conforme
manual.
Web Framework
- A função
persistDataSets
passa a ignorar DataSets que não possuem o campo Classe caso não haja dados a serem gravados na
base de dados. Esse alteração tem o objetivo de permitir a criação de grades detalhes com
dados com estruturas não convencionais, desde que a grade mestre se responsabilize pela
efetivação desses dados.
- Os campos calculados das grades de variáveis de relatórios deixam de ser exibidos como filtros
no cabeçalho do relatório gerado. Esses campos normalmente são criados com a finalidade de
auxiliar o usuário no preenchimento do relatório e exibição deles como filtros gerava uma
poluição visual desnecessária no relatório.
Última atualização em 19 Sep 2024