Rotinas automáticas de atualização

É possível criar rotinas para que a atualização do sistema execute automaticamente. O próprio processo de atualização irá controlar a execução das rotinas criadas pelos times, sendo possível acompanhar posteriormente o resultado da execução de cada script desenvolvido.

Desenvolvimento das rotinas

  1. Os scripts devem ser inseridos a partir da classe /Dados/Arquivos/Atualização/Scripts Pos-Atualização/. Os arquivos devem ser do tipo JavaScript com a extensão “.ijs”.

  2. Eles devem possuir necessariamente a seguinte estrutura:

const UpdateScript = require('@nginstack/devops/lib/update/UpdateScript');
const updateScript = new UpdateScript();
try {
    let updateVersion = null;
    let result = '';
    // Desenvolva aqui a lógica do seu script
    // utilizando as conexões de origem (source) e destino (target)
    // Lembre-se de alimentar os valores das variáveis updateVersion e result
    // que serão passadas ao método finish
    updateScript.finish(result, updateVersion);
} catch (e) {
    updateScript.fail(e);
}
updateScript.result;

Ajuste de permissões

Ao mover classes e arquivos existentes para uma hierarquia de classe recém criada, pode ocorrer de o usuário perder acesso a essas classes e arquivos pelo fato da classe criada não possuir as devidas permissões. Para esses casos a classe UpdateScript possui o método copyChildrenViewPermissions que pode ser utilizada para atribuir permissões de visão à uma classe, com base nas classes e arquivos filhos da classe informada.

Atenção:

  • Os métodos finish e fail são responsáveis pela gravação de registros na tabela de Eventos do Sistema (iSysEvent) e devem ser invocados de acordo com a estrutura acima.
  • Seu script deve retornar sempre na última linha o valor existente na propriedade result do objeto UpdateScript. Ela contém as informações que serão listadas pelo processo de atualização ao seu final.
  • O método finish deve receber uma única versão referente às alterações realizadas no banco de dados.
  • As rotinas criadas para essa funcionalidade não devem executar alterações diretamente no banco de dados: database.executeSQL(sql).
  • Rotinas potencialmente lentas não devem ser incorporadas automaticamente ao processo de atualização.

Consultando o Histórico de Execução de Scripts de Atualização

Utilize a consulta disponível no caminho abaixo para verificar os status da execução dos scripts de atualização: “Desenvolvimento > Atualização > Histórico de Execução de scripts de atualização”. Scripts que ainda não tiveram sua execução finalizada com sucesso podem ser reexecutados a partir deste relatório.