Class: UpdateScript

@nginstack/devops/lib/update/UpdateScript~ UpdateScript


new UpdateScript()

Objeto utilizado pelos scripts que devem ser executados após uma atualização de produto.

Ele cria as conexões de origem (source) e destino (target) da atualização e é responsável pela gravação dos registros na tabela iSysEvent. Este script só pode ser utilizado no contexto da atualização, pois há dependência de variáveis globais do processo de atualização, não podendo ser executado via iDBC de forma isolada.

Importante: Não é possível utilizar métodos que façam uso do cache local através de instâncias de Connection. Isto elimina o uso, por exemplo, dos métodos getChildren, cloneLocalCache e cloneLocalCacheByClass.

Examples
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;
const UpdateScript = require('@nginstack/devops/lib/update/UpdateScript');
const updateScript = new UpdateScript();
try {
    updateScript.copyChildrenViewPermissions(-999999);
    updateScript.finish('Permissões da classe -999999 ajustadas com sucesso.');
} catch (e) {
    updateScript.fail(e);
}
updateScript.result;

Members


result :string

Resultado do script retornado para atualização de produtos. O valor desta propriedade deve ser lida na última linha do script e deixada na pilha, conforme exemplo do construtor.

Type:
  • string

source :Connection

Conexão de onde foi originada a atualização.

Importante: Não é possível utilizar métodos que façam uso do cache local através de instâncias de Connection. Isto elimina o uso, por exemplo, dos métodos getChildren, cloneLocalCache e cloneLocalCacheByClass.

Type:

sourceDB :Database

Interface com banco de dados de origem.

Type:

target :Connection

Conexão de destino da atualização.

Importante: Não é possível utilizar métodos que façam uso do cache local através de instâncias de Connection. Isto elimina o uso, por exemplo, dos métodos getChildren, cloneLocalCache e cloneLocalCacheByClass.

Type:

targetDB :Database

Interface com banco de dados de destino.

Type:

Methods


<static> execute(params)

Método auxiliar que realiza a execução de um script de atualização e retorna os detalhes do resultado da execução.

Parameters:
Name Type Description
params ExecutionParams

Parâmetros da execução do script.

Returns:
Type
ExecutionResult

copyChildrenViewPermissions(directoryKey)

Cria permissões de visão para a classe informada com base nos diretórios e arquivos filhos.

O objetivo deste método é garantir que um usuário que enxergue qualquer uma das classes ou arquivos filhos tenha acesso também ao diretório onde eles estão localizados. O processo de permissões já dá esta garantia, no entanto quando são realizadas movimentações de diretório em chaves negativas, eventualmente podem ser geradas inconsistências em diretórios ou arquivos de chave positiva. Este método corrige essas inconsistências.

Este método não leva em consideração filtros extras de permissão, portanto não deve ser utilizado em classes que utilizam esse recurso.

Parameters:
Name Type Description
directoryKey number

Chave da classe que deve ter a permissão ajustada.

Returns:

Número de versão das alterações realizadas no banco de dados.

Type
number

fail(error)

O método fail é responsável por registrar o evento de Estado 'Fracassado'.

Parameters:
Name Type Description
error Error

Deve ser passado o erro ocorrido na execução do script para ser gravado no campo iResult da tabela iSysEvent. É aconselhado que seja guardada a pilha de execução na propriedade stack para que o UpdateScript guarde maiores informações sobre a falha.


finish(result, updateVersion)

O método finish é responsável por registrar o evento de Estado 'Finalizado'.

Parameters:
Name Type Description
result string

Deve ser passado o resultado da execução do script para ser gravado no campo iResult da tabela iSysEvent.

updateVersion number

Caso o script tenha efetuado alguma alteração, a versão deve ser passada para ser gravada no campo iUpdateVersion da tabela iSysEvent.


getProductFromKey(key)

Obtém a chave do produto ao qual uma chave pertence.

Parameters:
Name Type Description
key number

A chave cujo produto se deseja obter.

Returns:

A chave do produto ao qual a chave pertence. Se a chave informada for positiva, será retornado um valor nulo.

Type
number