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
-
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”.
-
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.