Versão 30
Novidades
Integração com Visual Studio Code (experimental)
Foi disponibilizada no VS Code a extensão Engine DevTools como uma alternativa à IDE do Engine para os desenvolvedores da plataforma.
Esta extensão tem o objetivo de substituir a IDE do Engine no futuro, no entanto, nesta primeira versão, ela é restrita apenas à edição de arquivos da Virtual File System. As demais funcionalidades da IDE do Engine, como a execução de scripts, consultas no banco de dados e depuração de códigos, deverão ser disponibilizadas em versões futuras dessa extensão.
Importante: por ainda ser uma funcionalidade experimental, a extensão não deve ser utilizada em ambientes de produção.
Mais detalhes em https://nginstack.com/pt/docs/vscode/overview/.
Integração com a biblioteca de gráficos ECharts
O Web Framework passa a permitir a construção de gráficos utilizando a biblioteca de código
aberto
ECharts. Gráficos podem ser criados em
processos e relatórios por meio da classe
ECharts
ou em consultas automatizadas utilizando o tipo de visualização
'echarts'
.
O uso da biblioteca ECharts passa a ser recomendado em relação às demais bibliotecas de gráficos disponíveis no sistema, pois ela não requer a aquisição de licenças de uso. Mais detalhes em https://nginstack.com/pt/docs/web-framework/echarts.
Melhorias
Engine
- A configuração de diretórios da UFS no Manage e via parâmetro de linha de comando
--ufsDirectory
passam a aceitar o caractere curinga “*”, simplificando a configuração de monorepos. Exemplo:<UnionFS> Directory c:\workspace\my-repository\packages\* </UnionFS>
REST Framework
- As respostas de controladores podem agora ser instâncias de
File
ouMemoryStream
, sendo esses tipos recomendados em respostas de tamanho elevado. Mais detalhes emRouteResult.prototype.content
.
Web Framework
- Foi criado o evento
beforeExit
na classeProcess
, permitindo que regras de negócio sejam validadas no fechamento de um processo. Exemplo de uso:process.on('beforeExit', function (evt) { const process = evt.process; const grid = process.grid('pending'); if (!grid.ds.isEmpty){ if (!process.confirm('Ainda há operações a serem analisadas. Deseja realmente sair?') { evt.preventDefault(); } } });
- A imagem de fundo da tela de login padrão passa a poder ser customizada por parceiros via CSS. A classe CSS desse elemento também passa a indicar o mês corrente, permitindo imagens temáticas por época do ano.
- Foram disponibilizados os manuais de criação de fontes de dados, visualizações e uso do IQuery em https://nginstack.com/pt/docs/datasources/overview/.
Defeitos corrigidos
Admin
- Ao atribuir um escopo de autorização a um usuário recém criado poderia ocorrer o erro “Não foi possível localizar o usuário xxxxx”.
- Ao executar o processo
Admin > Cache local > Descartar os caches de dados e de chaves
ocorria o erro “include is not a function”. - O relatório
Admin > Segurança > Grupos, Papéis e Usuários > Usuários habilitados
apresentava uma quebra de agrupamento caso fosse utilizada mais de uma classe de usuários.
Desenvolvimento
- O processo
Atualizar sistema
poderia deixar a base em um estado não íntegro que impedia novas atualizações caso ele fosse interrompido abruptamente na sua etapa inicial.
Engine
- O módulo
@nginstack/engine/lib/math/isNumber
poderia gerar o erro “Undefined property”.
Web Framework
- Ao executar o método
SimpleLayout.prototype.end
em um relatório sem colunas ocorria o erro “Não é permitido abrir um TiCustomDataset sem as definições dos campos”. - Na versão 24, a propriedade
Process.prototype.key
passou a ser uma instância deDBKey
em vez umnumber
primitivo. Essa alteração foi revertida, pois ela foi acidental e altera o comportamento de processos que testam o valor dessa propriedade de forma estrita. - Não era possível criar links em visualizações de fontes de dados que utilizassem colunas como parâmetros, caso essas colunas tivessem um alias informado.
- Visualizações de fontes de dados abertas por links criados pelo método
Process.prototype.dsvLink
poderiam ignorar as variáveis informadas pelo usuário caso os links fossem criados sem parâmetros adicionais.
Outras alterações
Engine
- O escopo de autorização “api.classes” passa a ser atribuído por padrão aos usuários do grupo “Developers”, permitindo assim que eles possam utilizar a API HTTP Classes.
- As APIs IQuery e DataSource foram movidas do pacote “@nginstack/engine” para os novos pacotes “@nginstack/iquery” e “@nginstack/datasource”. A documentação disponível em https://api.nginstack.com passa a indicar os novos caminhos dos módulos dessas APIs. Os caminhos para os módulos no pacote “@nginstack/engine” utilizados antes dessa alteração continuarão a ser aceitos para fins de compatibilidade.
Web Framework
- A página de login padrão do sistema passa a inibir o usuário de iniciar múltiplos logins pressionando diversas vezes a tecla Enter ou o botão “Ok”. Essa alteração não se aplica às páginas de logins customizadas por parceiros ou clientes, as quais precisam ser revistas para implementar funcionalidade equivalente.