Esse documento tem como objetivo demonstrar a utilização do programa Script Manager, que é o atualizador de banco de dados do PEP (Prontuário Eletrônico do Paciente) do segmento de saúde. Ele deverá ser utilizado em todas atualizações de versão desses produtos, seguindo o processo previamente definido.
O Script Manager é um programa em formato desktop, que faz parte do pacote de ferramentas pra administração dos ambientes do PEP. Ele é o responsável por executar scripts de alteração de banco de dados nas atualizações dos softwares.
Sendo assim, o processo de atualização do PEP 2.0 contempla a utilização do ScriptManager de maneira obrigatória, caso contrário, o banco de dados não será atualizado e a aplicação poderá não funcionar corretamente.
Como o Script Manager funciona tanto em tecnologia Oracle quanto SQL Server, ele utiliza os comandos nativos de cada tecnologia para executar os scripts.
Em ambiente Oracle:
Em ambiente SQL Server:
Para identificar quais scripts estão faltando executar em um ambiente, o ScriptManager faz uma comparação entre o diretório “dbscripts”, dentro do pacote de atualização, e de uma tabela de controle do banco de dados.
O ScriptManager precisa do web.config do PEP para ser executado. Para ele achar esse arquivo, quando acontece a primeira execução do ScriptManager, ele solicita que o usuário cadastre uma "Variável de Ambiente", chamada: TOTVS.HealthCare_SM.
O nome do ambiente também deverá ser alterado para dar sequencia na execução:
Você deverá navegar entre as pastas para localizar a pasta de instalação. Esse exemplo é para instalação de PEPxRM, no drive C:\:
Esse caminho setado na variável de ambiente, também irá servir para orientação da pasta de criação dos logs de execução.
O Script Manager utiliza basicamente 2 tabelas:
A pasta aonde são salvos os logs é concatenada com a variável de ambiente. Nesse nosso exemplo, ele criará os logs no caminho: C:\APPS\PMWEB\TOTVS.PEP.WCF\Logs.
Cada log gerado, contém um cabeçalho com algumas informações como, data/hora da Execução, host de execução, usuário de execução, etc.
Esse cabeçalho poderá ajudar caso tenha algum problema na execução dos scripts. O Script Manager, na sua primeira execução, cria automaticamente uma pasta com o nome do usuário owner para fins de organização dos logs e possível reutilização do ScriptManager em mais de um ambiente.
Os logs são gerados com a data e hora no nome, concatenando com um sufixo de status final de execução do ScriptManager, para melhor visualização do diretório de logs:
A credencial precisa ser do usuário Owner do sistema(EX.: PEP), ou seja, o usuário que possui permissão para criar e alterar objetos dentro do schema do banco de dados. É o usuário diferente do que a aplicação do PEP normalmente utilizam (usuário Consulta EX.: CONS_PEP).
Note que o preenchimento do banco de dados foi feito de forma automática. Ele pegou as informações do WEB.Config do PEP que definimos o caminho na primeira execução do Script Manager.
Ao clicar em “Próximo”, o Script Manager verificará se existem scripts pendentes de execução no ambiente conectado (baseado em uma comparação dos scripts do pacote de atualização no diretório “dbscripts” com a tabela da aplicação SYS138_UPDATE_DB.)
Caso existam scripts pendentes de execução, eles aparecerão com status “Não executado”, como mostra imagem abaixo:
Ações:
Mensagem: Confirmação de realização de backup
Mensagem: Confirmação de execução dos scripts.
Obs: Caso qualquer uma das mensagens seja respondida com “Não”, os scripts não são executados.
Caso dê algum tipo de erro na execução dos scripts, o sistema mostra mensagem de erro abaixo e gera log com sufixo “ERROR” no diretório configurado.
Ações:
Prosseguir com atualização da aplicação.
Quando houverem scripts pendentes e o Script Manager for fechado antes de executá-los, irá aparecer a mensagem a seguir solicitando a confirmação da saída sem execução de scripts pendentes. Também será informado no log de execução quais os scripts que não foram executados.
Para migração de versão, a mensagem abaixo será apresentada no momento da validação da conexão:
Os passos seguintes são os mesmos das execuções demonstradas acima.