Versão 35
Novidades
Exibição de diff ao salvar arquivos da VFS no VS Code
A extensão do VS Code passa a exibir o diff ao salvar um arquivo da VFS caso haja conflito em razão de dois ou mais desenvolvedores estarem trabalhando no mesmo arquivo.
Melhorias
Admin
- O processo
Admin > Segurança > Grupos, papéis e usuários > Usuários
passa a alertar o administrador se forem alteradas as senhas de usuários com contas que não estão vigentes, dando-lhe a opção de renovar a vigência dessas contas.
Engine
- A classe
LobStorage
passa a codificar o conteúdo de novos arquivos em Z85 em vez de Base64, gerando uma redução de aproximadamente 6% no custo de armazenagem. Ela também passa a comprimir todos os tipos de arquivos, sempre que for observado um benefício com essa operação. - Foi criada a API HTTP
/api/devops/v1/transaction-log/clear
, que possibilita a limpeza do log transacional (tabela iLog), antes realizada apenas pelo script “Clear TransactionLog”. - Foi criado o novo escopo de autorização “system.clearTransactionLog”, requerido para o uso da nova API de limpeza do log transacional. O grupo “Administrators” passa a possuir esse escopo por padrão.
- O protocolo IAP, utilizado na comunicação entre Engines, passa a tratar as chaves e versões como inteiros de 64 bits.
Extensão VS Code
- A extensão passa a contar com a formatação automática de arquivos da VFS, por meio do comando
Format Document
, acessível através da paleta de comandos do VS Code, ou do menu de contexto do editor. - Caminhos ou chaves de diretórios da Virtual File System passam a ser abertos ao clicar neles com a tecla Ctrl pressionada.
Web Framework
- Foi criado o método
Process.prototype.download
com o objetivo de realizar o download de arquivos. Diferentemente da propriedadeLink.prototype.srcId
, a nova API não requer a criação de um link ou interação com usuário, nem bloqueia a sessão do usuário enquanto o arquivo está sendo descarregado.
Defeitos corrigidos
Desenvolvimento
- O processo
Desenvolvimento > Atualização > Atualizar VFS
apresentava erro quando a base de destino encontrava-se em uma versão antiga que ainda não possuía os campos “iLastModifiedHour”, “iLastModifiedUtcHour”, “iCreationHour” e “iCreationUtcHour” na tabela “iVfs”, e a base de origem já possuía estes campos. - O processo
Desenvolvimento > Atualização > Atualizar Sistema
poderia falhar ao sincronizar os registros caso houvesse um campo “CHAVE” ou “iKey” na base destino configurado com a propriedadeuserCanChangeNegativeKey
com valortrue
. - O processo
Desenvolvimento > Atualização > Atualizar Sistema
poderia falhar caso um x-class ocultasse a definição de uma visualização de fonte de dados recém criada. - O processo
Desenvolvimento > Atualização > Atualizar VFS
gerava o erro “Key 0 not found in DBCache” se na base destino existisse uma chave negativa que não fizesse parte dos produtos do sistema.
Engine
- Os scripts de inicialização do Engine não eram executados se o usuário “system” fosse bloqueado pelo administrador. Os bloqueios desse usuário e do “anonymous” passam a ser impedidos pelo sistema.
- Poderia ocorrer um erro do tipo Assertion Failure durante a sincronização do Cache Local caso houvesse uma atualização na definição de campos de uma tabela com uma mudança de tipo de campo de string para integer. Atualizações dessa natureza passam agora a induzir uma recriação de sua tabela no Cache.
- A pesquisa por referências na exclusão de registros ignorava alterações no modelo de dados decorrentes da exclusão de arquivos do tipo x-model ou x-class.
Extensão VS Code
- Ao salvar um x-class de uma classe que possuísse algum outro x-class com o comando “includeOnce” legado, a extensão apontava erro de sintaxe.
Outras alterações
Desenvolvimento
- A propriedade DEVOPS_API_KEY passar a ser obsoleta.
Engine
- A função
adjustCase
passa a não capitalizar a preposição “em” quando informado o tipo “title”. - A configuração padrão de retenção de log transacional (iLog) foi alterada nas classes abaixo com
o objetivo de reduzir a retenção em classes que armazenam arquivos binários ou informações de
controle interno do sistema:
- Raiz: 450 dias.
- Sistema de Arquivos Virtual LOBs: 90 dias.
- Large Objects: 90 dias.
- Controle de tarefas pendentes: 90 dias.
- Sessões de aplicativos: 90 dias.
- Sequências: 90 dias.
- A rotina de limpeza de log transacional passa a tratar os arquivos JAZ de forma especial, preservando os logs desses arquivos por apenas 60 dias.
- A tabela “iLicenseUse” não era mais utilizada pela plataforma e foi removida do modelo de dados. Ela será removida automaticamente durante o processo de atualização do sistema.