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.

Resolve conflicts

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 propriedade Link.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 propriedade userCanChangeNegativeKey com valor true.
  • 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.