Versão 36
Novidades
Busca textual na UFS e em Resource Strings
A extensão do VS Code passa a contar com a busca textual também para arquivos da UFS e Resource Strings. A busca agora também é capaz de filtrar arquivos utilizando glob patterns.
Mais detalhes em https://nginstack.com/pt/docs/vscode/file-system-search/.
Melhorias
Admin
- O processo
Admin > Agendador de scripts
passa a exibir o tamanho dos dados contidos nas tarefas agendadas. Essa informação passa a estar disponível no campo “Dados serializados”, exibido apenas no modo formulário.
Engine
- O guia de estilo adotado pela plataforma passa a ser documentado em https://nginstack.com/pt/docs/style-guide.
- A IDE do Engine passa a permitir abrir uma classe no VS Code por meio da opção “Open in VS Code”, exibida ao clicar com o botão direito na classe.
- Os arquivos abertos no VS Code a partir da IDE do Engine passam a ser posicionados na mesma localização do cursor do editor do Engine.
- A classe Base64 teve sua API modificada e passa a suportar a variação base64url. Mais detalhes disponíveis na sua documentação de referência.
- Foi implementada a propriedade
engine.env
que permite ler a definição das variáveis de ambiente do processo no sistema operacional. - O Engine passa a suportar a leitura de colunas do tipo
LONG
no Oracle. - O método
Task.prototype.setParameters
passa a retornar o tamanho total em bytes dos parâmetros serializados na tarefa. - A classe
ScriptRunner
passa a permitir o uso de realms de sessões Stateful. O construtor passa a receber as novas opçõessessionId
ewaitTimeout
para indicar a sessão Stateful a ser restaurada e o tempo máximo de espera em milissegundos. - Foi criado o método
ScriptRunner.prototype.evaluate
com o objetivo de executar uma expressão no ambiente JavaScript utilizado pela instância doScriptRunner
, permitindo assim a manipulação ou inspeção desse ambiente. - Foi criado o método
SessionManager.prototype.abortSession
com o objetivo de solicitar a interrupção da execução de uma sessão a partir do seu identificador. - Foram criadas as propriedades
Session.prototype.trackingId
eScriptRunner.prototype.trackingId
com o mesmo propósito da propriedadeDatabase.prototype.trackingId
, mas com abrangência global na sessão. - Foi criada a classe
TextEncoder
, disponibilizando uma API padrão para conversão de strings para a codificação utf-8.
Web Framework
- Foi otimizada a exibição de campos lookups que contém chaves que não existem no cache local.
Defeitos corrigidos
Engine
- O timeout de sessão configurado pelo método
Session.prototype.setTimeout
poderia ser ignorado pelo Engine. - O método
FieldList.prototype.indexOf
retornava um índice inválido quando informado o nome de um campo removido.
Web Framework
- Os recursos das sessões encerradas pelos usuários poderiam ser preservados indevidamente durante o tempo máximo de inatividade da sessão configurado, por padrão 15 minutos.
- Modificações realizadas em um processo não visível na interface, como alterar a interação corrente, poderiam não ser exibidas para o usuário imediatamente quando a aba do processo era restaurada. Essas modificações eram exibidas apenas na primeira interação do usuário com o processo.
Outras alterações
Engine
- O Engine deixa de configurar os parâmetros de sessão
ANSI_NULL
,ANSI_WARNINGS
,QUOTED_IDENTIFIER
eCONCAT_NULL_YIELDS_NULL
comOFF
e passa a ativar a opçãoANSI_DEFAULTS
nas conexões com o banco de dados Microsoft SQL Server. Os parâmetros desativados são obsoletos e tornam o funcionamento do Microsoft SQL Server distinto dos demais SGBDs suportados pelo Engine, principalmente no tratamento dos valores nulos. A desativação deles também passa a possibilitar a criação de índices com filtros. Após a atualização para o Engine 36 ou superior, as bases de dados existentes precisam ser recriadas utilizando os processos “Criar cópia” e “Restaurar cópia” disponíveis no menu “Desenvolvimento > Base de dados > Migração” para que todas essas alterações entrem em vigor. - Colunas passam a ser criadas no Microsoft SQL Server com a opção
SPARSE
ativa. Essa modificação tem o objetivo de reduzir o custo de armazenagem dos valores nulos. - A propriedade
Field.prototype.dbConstraints
foi eliminada e os eventuais valores informados nela serão ignorados na criação de tabelas e colunas na base de dados. - O motor Javascript V8 foi atualizado para a versão 7.8.
- O método
Connection.prototype.scheduledSendEmail
passa a limitar o tamanho da mensagem gravada no scheduler em 25MB. Esse limite pode ser ampliado pelo novo parâmetromaxSize
desse método. - As tarefas do scheduler criadas para envio de e-mails passam a incluir o assunto no nome da tarefa.
- Os campos “VERSAO”, “VERSAOFT” e “VERSAOBD” da tabela “ULTCHAVE” passam a ser do tipo
BIGINT
. A conversão das bases existentes será realizada automaticamente durante a atualização do sistema. - Foi eliminada a classe
ngin.db.DatabaseVersion
, pois o seu uso se tornou desnecessário com a alteração do tipo da coluna “VERSAOBD” da tabela “ULTCHAVE” paraBIGINT
.
Web Framework
- O construtor da classe
ECharts
deixa de receber o parâmetrotheme
. Essa configuração passa a ser uma propriedade do parâmetrooptions
.