Árvore de páginas

CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização

01. VISÃO GERAL

Atualizar a versão do sistema possibilitando o acompanhamento dos status da atualização em tempo real. Atualmente a aplicação irá atualizar apenas a base de dados.

02. EXEMPLO DE UTILIZAÇÃO

Caminho

 Atualiza – UPD00001.
O Atualiza é disponibilizado junto com o pacote de atualização.

Pré-Requisitos e Restrições

  • A ferramenta deve ser executada em um sistema operacional homologado.
  • É necessário ter o .NET Framework 4.8 ou superior instalado.
  • É necessário ter o Oracle Client 32-bit com o arquivo tnsnames.ora configurado.
  • É necessário que o owner CONSINCO tenha privilégio ao dicionário de dados do Oracle (“select any dictionary” ou "select_catalog_role").
  • É desejável que o owner CONSINCO tenha privilégio para encerramento de sessões (“alter system kill”).
    • Como alternativa, pode ser criada uma procedure para encerramento de sessões. Veja a documentação sobre Servidor de Banco de Dados para exemplo da procedure e mais informações.
  • Recomenda-se fortemente a execução da atualização em ambiente de homologação para ensaio e tomada de tempo.
  • Mudanças de versão (ex: 22.07 > 23.01) habitualmente exigem mais tempo para atualização do que mudanças de Service Pack (ex: 23.01.001 > 23.01.002), e o tempo é acumulativo de acordo com a quantidade de atualizações a serem aplicadas.
  • Sempre verifique o espaço disponível para o Oracle antes de iniciar uma atualização de versão, pois habitualmente poderá ter a criação de novos índices que exigirá espaço extra.
  • A atualização do sistema em ambientes Oracle Standard levam mais tempo do que em ambientes Oracle Enterprise devido ao uso de paralelismo na criação de índices.
  • Para usuários não administradores que não tenham permissão de alterar o arquivo Consinco.ini, o Windows pode replicar o arquivo para o diretório Virtual Store (%UserProfile%\AppData\Local\VirtualStore) e gerar confusão no apontamento do banco de dados da aplicação.

Passo a passo

Para utilizar o Atualiza faça o login informando o usuário e senha de acesso.

O campo ‘Conexão’ informará em qual base de dados será feito o login. As conexões exibidas para seleção são as que estão cadastradas no Menu.

Ao realizar o login será verificado a versão do Oracle da base de dados. Caso a versão atual do banco de dados não seja mais suportada pelo ERP, não será permitido atualizar o sistema e o Atualiza exibirá uma mensagem de aviso, conforme imagem abaixo.

Validade do Pacote

Os pacotes de atualização possuem uma data de expiração para garantir que as atualizações ocorram sempre para a release mais recente disponível na ocasião, assegurando que as últimas correções e adequações de produto serão aplicadas. Caso a ferramenta seja iniciada por um pacote de atualização que foi disponibilizado a mais de 15 dias, uma mensagem de alerta será exibida, porém, será possível continuar a atualização. Ao se deparar com esta mensagem, recomenda-se verificar na ocasião se há um pacote de atualização (release) mais recente.

Se o pacote de atualização tiver sido liberado a mais de 30 dias, a ferramenta impedirá que a atualização seja iniciada e somente permitirá continuar se for informado uma chave de acesso emergencial fornecida pela Consinco. Neste cenário, recomenda-se verificar se há na ocasião um pacote de atualização mais recente disponível, e se mesmo assim houver a necessidade de atualizar para o pacote obsoleto, a chave de acesso deverá ser solicitada a equipe de suporte da Consinco que avaliará se há viabilidade para que a mesma seja fornecida.

Tela de Avisos

Após fazer o login, será visualizada a tela de avisos, que exibirá (quando houver) notificações sobre procedimentos/informações referentes ao processo de atualização.

Para continuar a atualização é necessário dar ciência nos avisos. Para isso, marque os avisos como ‘lidos’ clicando nas caixas de cada item.

Ao marcar o aviso como ‘lido’ você confirmará que está ciente sobre os procedimentos/informações que poderão impactar o processo de atualização, conforme demonstrado na imagem abaixo.

Recomenda-se verificar os avisos previamente, uma vez que estes podem conter orientações de ações importantes e necessárias antes e depois da atualização, e que podem exigir tempo hábil para sua execução.

Se não houver nenhuma informação referente a atualização da base de dados, a tela de avisos não será exibida ao logar no Atualiza.

Para visualizar os avisos, clique no botão ‘Avisos da Versão’.

Objetos Inválidos

Se houver objetos inválidos na base, ao fazer o login, será exibido uma mensagem de aviso, conforme imagem abaixo. É importante que não haja objetos inválidos, mas isso não impede que a atualização seja executada. Verifique se são objetos oficiais, e, se necessário, reporte-os ao suporte Consinco.

Ao clicar em ‘Ok’ serão exibidos os objetos que estão inválidos e as triggers desabilitadas, onde será possível ‘Recompilar’ os objetos ou ‘Atualizar’ a lista de verificação. Ao selecionar um registro, na tela ‘Erro’ será exibido seu detalhamento, conforme imagem abaixo.

Se não houver objetos inválidos, a tela não será exibida ao acessar o Atualiza.

Para visualizar os objetos inválidos, clique no botão ‘Objetos inválidos’.

É possível recompilar os objetos clicando no botão ‘Recompilar objetos’.

É possível exportar um relatório para arquivo texto dos objetos inválidos clicando no botão ´Exportar log´.

Usuários e Processos Logados

Para realizar a atualização, é necessário que nenhum usuário ou processo esteja logado na base de dados. Clique no botão ‘Usuários Logados’ para visualizar se há usuário logado na base. Nesta tela é possível ‘Encerrar a sessão’ e ‘Atualizar a lista’.

Ao encerrar as sessões, os módulos também serão bloqueados para atualização impedindo o acesso dos usuários, evitando que novas conexões sejam feitas.

Caso deseja desbloquear os módulos, basta clicar no botão ‘Desbloquear Módulos’.

Preparando Atualização

Antes de iniciar a atualização certifique-se que todos os processos e serviços foram parados e de que não há nenhum usuário conectado na base de dados, caso contrário a atualização não será iniciada e será exibida uma mensagem de alerta, conforme imagem abaixo.

Nota: A execução de jobs e schedules será suspensa na instância do banco de dados durante a atualização.

Clique no botão ‘Atualizar’ para iniciar a atualização.

Antes de iniciar a atualização será exibida mensagem avisando sobre a importância de não ter usuários conectados e sobre a pausa nos processos, conforme imagem abaixo.

Após clicar em ‘OK’ a atualização será iniciada e o andamento será exibido no ‘Histórico da Execução’.

IMPORTANTE: Tenha ciência de que este processo não pode ser abortado, depois de iniciado deve ser concluído. O processo não é reversível, uma vez que o modelo de dados e os objetos serão alterados durante a execução dos scripts, tornando os executáveis utilizados até então incompatíveis.

Ao iniciar a atualização, os módulos do ERP serão bloqueados, impedindo o acesso do usuário. Se o usuário tentar acessar algum módulo, receberá uma mensagem informando que o sistema está em atualização.


Executando Atualização

Durante o processo de atualização será exibido o status da execução, informando o andamento total e por tarefas.

Total: Exibe o andamento do total de arquivos da versão.

Tarefa: Exibe o andamento das tarefas dentro de cada arquivo.

Tempo Estimado: Quando o processo de atualização envolve a criação de tarefas longas, como por exemplo, criação de índices ou de novas colunas, o Atualiza exibirá o tempo estimado para tal execução. Conforme imagem abaixo.

Nota: Tempo Estimado

É importante destacar que o tempo estimado é do Oracle, e sua exibição está condicionada ao Oracle fornecer a informação. Algumas operações podem envolver mais de uma etapa (ex: scan, sort), e o tempo estimado é de cada etapa.

Sessão Bloqueada: Se durante o processo de atualização acontecer de algum usuário conectar-se na base e bloquear uma sessão, o processo poderá ser interrompido e o Atualiza exibirá o status ‘Sessão bloqueada’.

Para verificar qual sessão está bloqueando a atualização e encerrá-la, acesse a tela ‘Usuários e Processos logados’ ou coloque o ponteiro do mouse no texto 'Sessão bloqueado!' em vermelho para que seja exibida a informação da sessão, conforme imagem abaixo:

Se a execução da atualização for interrompida de forma anormal por qualquer motivo, como por exemplo reinício da máquina, ao abrir o Atualiza novamente o processo continuará de onde parou, sendo necessário apenas iniciar a execução da atualização novamente.

Ao finalizar a atualização, se houver objetos inválidos, será exibida uma mensagem de aviso. Verifique se são objetos oficiais, e, se necessário, reporte-os ao suporte TOTVS Varejo Supermercados. É importante que não haja objetos inválidos no banco de dados.

Histórico de Execução

O Atualiza exibirá o histórico de execução de cada arquivo, informando o tempo da execução e se houve ou não falhas durante a execução do arquivo. Se ocorrem falhas durante a execução da atualização, elas serão exibidas em tela conforme imagem abaixo.

Em caso de dúvidas, reporte as falhas ao suporte TOTVS Varejo Supermercados. É possível exportar as falhas para um arquivo único compactado para envio ao suporte por meio do botão ‘Exportar’.

Algumas falhas são obsoletas e, na maioria das vezes, são irrelevantes, pois indicam que os objetos já foram criados (como por exemplo, índices, colunas ou tabelas) e não demandam nenhum tipo de análise do suporte.

Por padrão, as falhas obsoletas não são exibidas, para consultá-las clique na opção ‘Mostrar falhas obsoletas’, conforme imagem abaixo.

Configurações

As configurações poderão ser acessadas através do botão ‘Configurações‘, conforme a imagem abaixo.

É possível configurar os tablespaces utilizados conforme a lista disponível. Caso nenhum seja selecionado, será considerado o tablespace padrão configurado no Oracle.

A alteração do tablespace é feito durante a execução, sendo alterado no arquivo PDC e salvo um novo arquivo em um diretório de nome TEMP no mesmo diretório do executável.

Este novo diretório é removido ao término da execução.

Histórico de Atualizações

O histórico ficará gravado na base de dados, para consultá-lo acesse o botão ‘Histórico de Atualização’ e clique na lupa ou dê duplo clique na linha para visualizar o log de erros.

Para consultar os detalhes do erro, selecione a linha e dê duplo clique na coluna ‘Comando’ ou na coluna ‘Falha’. Conforme imagens abaixo.

É possível salvar os logs com as falhas em arquivo texto, caso seja necessário encaminhá-las para o suporte. Para exportar as falhas, clique no botão ‘Salvar Relatório’.

Selecione a pasta em seu computador onde serão armazenados os arquivos.
Se deseja exportar apenas os erros críticos, na mensagem ‘Exportar somente erros críticos?’, clique em ‘Sim’.

Execução em modo silencioso

A aplicação pode ser inicializada com passagem de parâmetros conforme descrito abaixo:

  • autoexec
    Usado para que a execução se inicie sem interação humana, ou seja, execução silenciosa.
  • salvalog
    Usado para informar a geração de log da aplicação. Serão criados arquivos na pasta Logs, no mesmo diretório da aplicação, tendo como padrão o nome como “log_ddMMyyyyHHmmss.json”.
  • -c <servidor> <usuário> <senha>
    Para informar a conexão com a base de dados, deve-se utilizar o marcador -c seguido do servidor, usuário e senha, nessa ordem e sempre com essas informações. A aplicação irá buscar no TNSNAMES os dados de conexão, então é preciso que o arquivo esteja configurado corretamente.
  • tipoAmbiente=<ambiente>
    Usado para informar se o ambiente é de Produção ou Homologação. Se o parâmetro não for informado, será considerado ambiente de produção. Valores possíveis: P (produção) ou H (homologação).

Os parâmetros podem ser informados em qualquer ordem, exceto o parâmetro de conexão que, ao informar o marcador, deve seguir a ordem estabelecida na documentação. Os dados de conexão são obrigatórios.

Ao executar em modo silencioso, um ícone de sistema irá exibir as informações atuais da execução, conforme imagem abaixo.

Os arquivos de log gerados, seguem o modelo de exemplo abaixo.

log_20210208114056.json
{
  "nomeExecutavel": "Consinco Atualiza.exe",
  "id": 1,
  "sistemaOperacional": {
    "nome": "Windows 10 Pro",
    "versao": "10.0.19042.0",
    "build": "19042",
    "release": "2009"
  },  
"nivel": "Alerta",  
"dominio": "SP01",
"nomeMaquina": "RBPN019403893",
"nomeUsuario": "vitor.gilioli",
"dataHora": "08/02/2021 11:40:56",
"mensagem": "Atualização finalizada com algumas falhas.\nTempo decorrido de atualização: 00:02:19",
"detalhes": "",
"stack": "",
"palavrasChave": [ ".net", "inicialização", "framework" ]
}
log_20210208150746.json
{
  "nomeExecutavel": "Consinco Atualiza.exe",
  "id": 1,
  "sistemaOperacional": {
    "nome": "Windows 10 Pro",
    "versao": "10.0.19042.0",
    "build": "19042",
    "release": "2009"
  },
  "nivel": "Erro",
  "dominio": "SP01",
  "nomeMaquina": "RBPN019403893",
  "nomeUsuario": "vitor.gilioli",
  "dataHora": "08/02/2021 15:07:46",
  "mensagem": "Não é permitido abrir mais de uma instância pois o módulo já esta sendo executado.\n\nTerminal: RBPN019403893\nUsuário O.S: vitor.gilioli",
  "stack": "",
  "palavrasChave": [ "consinco", "atualiza", "versão", "aplicação" ]
}
log_20210208151109.json
{
  "nomeExecutavel": "Consinco Atualiza.exe",
  "id": 0,
  "sistemaOperacional": {
    "nome": "Windows 10 Pro",
    "versao": "10.0.19042.0",
    "build": "19042",
    "release": "2009"
  },
  "nivel": "Sucesso",
  "dominio": "SP01",
  "nomeMaquina": "RBPN019403893",
  "nomeUsuario": "vitor.gilioli",
  "dataHora": "08/02/2021 15:11:09",
  "mensagem": "Atualização finalizada.\nTempo decorrido de atualização: 00:02:19",
  "stack": "",
  "palavrasChave": [ "consinco", "atualiza", "sucesso", "atualização" ]
}

Exemplo de chamada

"Atualiza.exe" autoexec salvalog -c orapd devupdate devupdate tipoAmbiente=P

Código de Saída

A aplicação irá lançar um código de saída (exitCode) com o valor 0, caso tenha finalizado a execução com sucesso, o valor 1 caso tenha apresentado algum erro durante a execução e o valor 2 caso seja um aviso ou alerta. Para ambas as situações, se for passado o parâmetro salvalog, a aplicação irá gerar sempre o arquivo de log referente ao momento de encerramento da aplicação, seja por sucesso ou erro.

Valores de saída:
0 - Sucesso
1 - Erro
2 - Alerta
3 - Informação