Versão 77

Novidades

Formatação de campos numéricos na grade

Campos numéricos (integer, int64, int32 e number) agora suportam formatação de exibição personalizada através da propriedade displayFormat. O comportamento da formatação é similar aos campos lookup: quando o campo não possui foco, o valor é exibido formatado; quando em foco, apresenta apenas o valor numérico com separador de casas decimais (quando aplicável).

Os seguintes formatos estão disponíveis com localização para Português-Brasil:

  • Formato decimal: Exibe números com separadores de milhares e decimais (ex.: 1.234,56)
  • Formato inteiro: Exibe números inteiros com separadores de milhares (ex.: 1.234.567.890)
  • Formato de chave: Exibe números sem formatação, para chaves de banco de dados (ex.: -1234567890)

Por padrão, campos dos tipos integer, int64 e int32 serão formatados com formato inteiro. Recomenda-se que campos que armazenem chaves do sistema sejam configurados manualmente para o formato de chave.

Melhorias

Administração do sistema

  • O processo “Administração do sistema > Licenciamento > Produtos licenciados” passa a permitir que a chave do licenciador seja alterada durante o relicenciamento de todos produtos que não sejam o “Engine”. O processo também passa a apresentar o status de integridade da licença, permitindo identificar licenças que tenham sido alteradas acidentalmente.
  • O processo “Administração do sistema > Armazenamento de arquivos > Gerenciamento de armazenamento” passa a permitir a verificação de arquivos órfãos nos serviços de armazenamento em nuvem. Mais detalhes no manual Gerenciamento de armazenamento.

Engine

  • A classe Pop3 Pop3 agora oferece suporte à autenticação via XOAUTH2. Para utilizá-la, o usuário deve definir a propriedade authCommand como “xoauth2” e fornecer o token de acesso como segundo parâmetro do método login. A geração do token de acesso deve ser realizada separadamente.
  • Foi criado o método ProductManager.prototype.isDevelopmentEnabled com o objetivo de verificar se um produto do sistema está habilitado para desenvolvimento na base de dados corrente.

Web Framework

  • Usuários que acessem o sistema por meio de um provedor de identidade externo agora podem utilizar o mesmo provedor para desbloquear a tela do sistema. Para que o desbloqueio funcione corretamente, é necessário permitir que o navegador abra pop-ups a partir do sistema.
  • Foram adicionados os métodos toText e toBytes à classe UploadedFile, permitindo obter o conteúdo do arquivo como string ou como array de bytes.
  • Foi criada a classe LabelFieldAggregator com o objetivo de permitir a exibição de rótulos fixos na barra de agregadores de colunas da grade.

Extensão VS Code

  • Os erros de execução de código que acontecem no servidor passam a ser apresentados com uma aba de informações na tela de resultados, informando base de dados, tempo de execução, javascript runtime, nome do servidor e IDs da sessão e do Engine.
  • A extensão passa a contar com o comando “Engine DevTools: Open ESLint Config Folder”, que abre a pasta local onde todas as configurações de ESLint de todas as bases de dados são salvas de forma consolidada. Mais informações na documentação da extensão.
  • A extensão passa a indicar erro nos arquivos de teste com falha no carregamento da suíte de testes. Mais detalhes na documentação da extensão.

Defeitos corrigidos

Engine

  • O método File.prototype.moveFile poderia falhar no Linux se o caminho do arquivo de destino estivesse numa partição ou sistema de arquivos diferente daquele em que o Engine está instalado.
  • A inicialização do Engine poderia falhar se o caminho de instalação do sistema contivesse caracteres acentuados.
  • A opção “Tools > Enable product changes” da IDE embarcada do Engine poderia afetar outras sessões de usuários além da sessão da IDE.
  • A inicialização do Engine no Linux falhava caso o usuário utilizado para executar o serviço fosse definido por um provedor de identidade externo, como o LDAP.

Web Framework

Extensão VS Code

  • O botão de copiar da grade de resultados não copiava o conteúdo da célula selecionada.

Outras alterações

Engine

  • A função validateString deixa de suportar tipos de validação customizados que antes podiam ser registrados por meio da função validateString.registerType ou pela variável global _validateStringHandler. O uso da função validateString.registerType em códigos customizados deve ser eliminado. Os códigos que faziam uso desses tipos devem passar a utilizar os pré-definidos pela função validateString ou devem fazer uso direto da função de validação customizada.
  • O runtime Javascript V8 foi atualizado para a versão 13.8.
  • O método LicenseManager.prototype.isLicensed passa a retornar falso caso o registro de um produto licenciado na base de dados tenha sido alterado indevidamente.
  • O cabeçalho “x-content-type-options: nosniff” passa a ser adicionado em todas as respostas de requisições HTTP de conteúdos originados da Virtual File System, tornando mais estrita a validação do tipo de mídia dos arquivos retornados pelo sistema no navegador Web.

Web Framework

  • A biblioteca “ECharts” foi atualizada para a versão 6.0.0.

Extensão VS Code

  • A extensão passa a recomendar a desativação da configuração “Testing > Save Before Test”. Por padrão, no momento em que testes são executados, o VS Code salva automaticamente todos os arquivos abertos que tenham modificações não salvas. Desativar essa configuração evita que arquivos da VFS sejam indevidamente salvos dessa forma.