Versão 46

Novidades

Configuração da tela de login

A tela de login padrão do Web Framework passa a permitir a configuração das cores e imagens de fundo, sem a necessidade de customização por meio de arquivos CSS. Para isso, deve ser utilizado o processo “Admin > Aparência e personalização > Telas de login”.

Mais detalhes podem ser obtidos no manual Páginas de login.

Configurações gerais

O sistema passa a contar com uma solução mais simples para gerenciar configurações gerais que não são diretamente associadas às classes e registros do sistema, evitando a criação de classes de configurações e arquivos de definição de classes (x-class) especificamente para esse fim.

Mais detalhes podem ser obtidos no manual Configurações gerais.

Melhorias

Admin

  • Foi criado o processo “Admin > Replicação de dados > Registros ignorados” com o objetivo de cadastrar as chaves que não devem ser sincronizadas na replicação de dados. Ele deve ser utilizado quando o administrador do ambiente de produção não deseja enviar alterações específicas para as bases de destino, ou quando o desenvolvedor ou consultor que está utilizando uma base de desenvolvimento ou homologação quer garantir que o registro seja estável e não sofra mais modificações a partir da base de origem.
  • O processo “Admin > Monitoramento > Engines” passa a apresentar a quantidade de arquivos e sockets abertos pelos Engines.

Engine

  • Foi criado o método DatabaseSchema.prototype.dropView com o objetivo de remover uma visão da base de dados.
  • Foram criados os métodos LobStorage.prototype.setLobExtraAttributes e LobStorage.prototype.getLobExtraAttributes com o objetivo atualizar e obter, respectivamente, os atributos extras de um documento do banco de dados.
  • Os métodos LobStorage.prototype.addLob e LobStorage.prototype.updateLob passam a permitir indicar os atributos extras do documento por meio da nova opção extraAttributes.
  • O Engine passa a gravar periodicamente no “supervisor.log” as seguintes informações:
    • Memória física disponível.
    • Espaço em disco disponível na unidade onde o Engine está instalado.
    • Sockets abertos.
    • Arquivos abertos.
  • Foi criada a classe JWS com o objetivo de permitir a geração, leitura e validação de tokens JWS.
  • A classe FileStorage passa a permitir o armazenamento de arquivos privados (arquivos armazenados na LobStorage). Mais detalhes em Vincular arquivos a cadastros.
  • A classe FileStorage passa a limitar a quantidade de arquivos vinculados a um registro, o tamanho do arquivo adicionado e o tamanho máximo disponível para armazenamento de todos os arquivos vinculados a um registro. Mais detalhes em Vincular arquivos a cadastros.
  • A função validateString passa a aceitar o tipo “color”. Ao utilizar esse tipo, será validado se o valor informado está no formato “#rrggbb”.
  • Foi criada a classe ECCryptoPKey com o objetivo de realizar operações de assinatura digital e validação utilizando curvas elípticas.
  • O Engine passa a utilizar a porta TCP 587 no envio de e-mails caso a opção Mail.prototype.autoTls esteja ativa e uma porta não tenha sido especificada de forma explícita no endereço informado em smtpServer.
  • Os scripts executados via IDE do Engine passam a ser registrados na tabela de log transacional, comportamento que já era adotado pela extensão do VS Code. Como o log pode ser consultado pelos administradores do sistema, é importante que sejam evitados valores literais com informações sigilosas, como senhas de usuários. Para esses casos, é recomendado que os valores sejam publicados como variáveis de ambiente e sejam consultados por meio da propriedade engine.env no script a ser executado.

Extensão VS Code

  • Passa a ser possível selecionar colunas para cópia ou exportação de um resultado de execução de script ou query do tipo DataSet. A seleção é feita clicando sobre o cabeçalho da coluna enquanto é pressionada a tecla ctrl ou a shift.
  • A exportação dos dados de um DataSet passa a contar com a opção “csv (excel)”, um CSV formatado para funcionar com a configuração padrão do Excel.
  • Foi disponibilizada a view para declaração de variáveis de ambiente a serem utilizadas na execução de scripts. As variáveis informadas estarão disponíveis no objeto engine.env durante a execução do script. Mais detalhes em Variáveis.

Web Framework

  • Passa a ser possível criar campos do tipo “grid” em grades de variáveis, sem DataSet associado. Nesse cenário de uso, não serão aplicados filtros de registros com base na grade mestre, portanto a grade detalhe sempre exibirá todos os registros do DataSet retornado pelo evento createDataSet.
  • O diálogo de formulário passa a tratar como “combo” quaisquer campos que possuam a propriedade options preenchida, comportamento já adotado pelas grades.
  • Passa a ser possível o upload de múltiplos arquivos na grade de arquivos vinculados. Por padrão, será permitida a importação de até 50 arquivos vinculados ao registro. Mais detalhes em Vincular arquivos a cadastros.

Defeitos corrigidos

Engine

  • Ao disparar um evento criado usando a classe LegacyEvent poderia ocorrer o erro “Erro na declaração do evento” caso fossem utilizadas funções anônimas dentro do evento declarado.
  • As funções stringToInteger e stringToNumber consideravam valores textuais não numéricos como 0 em vez de gerar um erro informando que o valor informado não era um número.
  • O método DataSet.prototype.getFieldModified não detectava a modificação do campo até que a alteração do registro fosse efetivada por meio de um post. O problema ocorria apenas quando a propriedade logChanges estava ativa.

Web Framework

  • Ao acessar a página de login, o navegador poderia sugerir a tradução da página de um idioma estrangeiro para o português.
  • Ao excluir um registro da grade e inserir um novo, ocorria indevidamente a sugestão dos valores do registro recém excluído.
  • Ao realizar uma busca na grade utilizando a opção “Todos os campos”, ocorria o erro “Erro na execução da busca na grid” caso um campo do tipo “memo” de um DataSet fosse definido com o tipo “string” na grade.
  • Ao mostrar ou ocultar o campo de chaves da grade mãe, os botões das grades filhas desapareciam.
  • A redefinição de senha na tela de login não gerava um erro claro se o envio do e-mail falhasse devido a uma configuração incorreta do servidor SMTP no Manage.
  • Os valores retornados pelos campos “combo” dos diálogos de formulário sempre eram do tipo “string”, independentemente do valor configurado na propriedade options.

Outras alterações

Engine