O relatório “Administração do sistema > Ferramentas para chaves > Verificação de
integridade das referências” passa a verificar a integridade das colunas de lookup múltiplo.
O agendamento de relatórios poderia falhar com o erro “It’s not allowed to change the key field
value if logChanges is enabled”.
Desenvolvimento
O relatório de geração de build do sistema foi reformulado para exibir as informações
com melhor organização e legibilidade, em especial, quando ocorriam falhas na execução dos
testes unitários.
Os métodos formatTxtReport e formatHtmlReport da classe
AggregatedTestResult
passam a exibir um resumo da execução dos testes por produto do sistema.
Engine
Foram criadas as propriedades
Task.prototype.userValidationMode
e
Job.prototype.userValidationMode
com o objetivo de indicar se a execução do script agendado deve considerar o status da conta do
usuário responsável pelo agendamento. Essa nova opção é útil para a execução de scripts responsáveis
por gravações de operações de forma assíncrona, pois essas operações precisam ser efetivadas na base
de dados independentemente do estado do usuário.
As páginas “Ports”, “Domains” e “Databases” do Manage passam a validar e indicar
mais claramente os campos obrigatórios, evitando falhas de configuração na inicialização
do Engine.
Web Framework
Foi criada a propriedade
FormDialog.prototype.resetButtonVisible
com o objetivo de permitir que o botão de redefinição de campos seja ocultado em diálogos de
formulário.
Defeitos corrigidos
Administração do sistema
A execução da rotina de limpeza de log poderia falhar com o erro “Parâmetro obrigatório não
informado” caso o servidor de execução estivesse configurado.
A alteração do servidor responsável pela execução dos relatórios agendados no processo
“Administração do sistema > Relatórios > Configurações” poderia falhar ao remover
os agendamentos do servidor anterior.
Engine
O método
DataSet.prototype.append
poderia falhar ao inserir registros de um outro DataSet originado de um SQL contendo a
cláusula UNION ALL.
A remoção dos índices nos campos “iVersion” e “VERSAO” realizada na versão 85 foi revertida,
pois esses índices são utilizados pelo sistema.
Web Framework
Ao expandir um registro de uma grade em árvore, poderia ocorrer um deslocamento indesejado do
foco para o registro corrente da grade.
O sincronismo da grade poderia falhar com o erro “Erro ao obter o estado da grade” logo
após a alteração da propriedade
Grid.prototype.maxRecordCount
.
Ao clicar no botão “Abrir módulo em grade” no menu de acesso rápido ocorria o erro
“Erro ao obter menu”.
O zoom das imagens em relatórios e grades apresentava falhas quando elas ficavam próximas
ao final da área visível da tela.
A pesquisa global do sistema poderia não trazer resultados caso o termo fosse alterado durante a
sua execução.
A alteração de um campo booleano durante a validação de uma modificação anterior poderia
deixar o campo em um estado inconsistente. O campo poderia apresentar visualmente um valor
diferente do estado real do DataSet.
Ao alternar para o modo grade após editar uma grade detalhe, o foco poderia ser restaurado para o
campo imediatamente anterior à grade detalhe.
Outras alterações
Engine
A função
File.moveFile
passa a sobrescrever o arquivo de destino caso ele já exista, adotando o comportamento já existente
na função File.copyFile
.
Os logs gerados pelos comandos DML executados via
Database.prototype.executeSQL
passam a ser gravados no arquivo sql.log na categoria “sql.unsafe”, permitindo o tratamento
customizado desses logs caso seja necessário.
Foi criada a coluna “iExpiresAt” na tabela “iAuthToken” com o objetivo de armazenar a data e hora
de expiração do token. Com essa modificação, as colunas “iUTCExpires” e “iUTCExpiresHour” dessa
tabela passam a ser consideradas obsoletas e não serão preenchidas na emissão de novos tokens. Elas
também deverão ser removidas em versões futuras do sistema, portanto, o seu uso deve ser revisto.
A classe Job foi renomeada para ScheduledJob e passa a ser exportada pelo módulo
@nginstack/engine/lib/scheduler/ScheduledJob.js.