O ambiente do SmartERP possui uma única diferença em comparação com ambiente on-premisse, não existe a possibilidade de parar os serviços do ambiente. Isto ocorre pois o SmartERP encontra-se em uma plataforma de auto-gerenciamento/controle de quedas. Na prática, temos um agente de monitoramento que varre o sistema todo à cada 'x' segundos e se este agente encontrar um problema e/ou a falta de conexão em um dos componentes instalados no ambiente, este irá tentar restabelecer o serviço de forma autônoma. Caso o mesmo não consiga, nos envia um alerta de queda para analise e ação manual. Se o usuário tentar realizar a execução de uma manutenção de banco e/ou dicionário de dados, o agente entrará em ação, bloqueando a operação do usuário. Isto pois entende que há um problema de conexão entre os seus componentes. Para liberarmos a ação de personalização dentro do dicionário de dados, criamos uma ferramenta de atualização manual do usuário, cujo tem a função de avisar o agente de monitoramento que há uma manutenção programada pelo usuário e para que não entre em ação até o término do processo solicitado pelo usuário. Alem disto, o usuário escolherá qual o ambiente irá executar a manutenção do ambiente. Para utilizar esta funcionalidade, iremos utilizar duas ferramentas (ou etapas) para isto. A primeira é o gerenciador de ambiente Protheus (Master Metadata) e a segunda é o TCLOUD. O gerenciador de ambiente ou master metadata é uma ferramenta que visa controlar todas as alterações de dicionário de dados e a criação de parâmetros e menus em projetos, para assim, facilitar a replica destas alterações entre os diversos ambientes do cliente. Este processo se dá pois criamos um pacote de atualização e aplicamos no ambiente do cliente através do UPDDISTR. Este pacote é gerado somente pelo ambiente de configurador do ambiente de produção e poderá ser replicado para qualquer ambiente que o usuário escolher. Para isto, implementamos o conceito de Stages no ambiente do SmartERP (futuramente será liberado para os clientes on-premisse). Os stages permitem controlar o ciclo de vida de uma inovação ou personalização de um metadado no SmartERP, desde sua construção até a entrega ao ambiente de produção. Dentro do ambiente tempos os seguinte Stages: Configurador, Homologação e Produção - O Stage de Configuração é o único que permite ao usuário que realize edições no dicionário do ERP. Este está configurado somente no endereço do configurador de produção.
- O Stage de Homologação é utilizado em todos os ambientes derivados do ambiente develop (ou homologação) e neste é permitido somente a alteração de conteúdos de parâmetros ou alterações que não envolvam diretamente o dicionário de dados, como usuários, schedules, sispags, cnabs e etc..
- O Stage de Produção habilita somente a utilização dos módulos do ERP, não deixando acessar o configurador.
Para identificar os Stages, acesse o shift+f6 de dentro do módulo e posicione na segunda aba, conforme imagem abaixo: ![](/download/attachments/527828382/011.%20identificando%20os%20stages.gif?version=1&modificationDate=1577130401730&api=v2)
Importante: As informações de contidas neste quadro serve para nortear as suas alterações e também informar em qual Stage você se encontra.
Como utilizar o gerenciador de ambiente? O gestor de ambiente utiliza o conceito de projetos para empacotamento das alterações do usuário. Sendo assim, podemos ter vários projetos para um mesmo ambiente trabalhando de forma independente. As alterações de dicionários são vinculadas ao Projeto e essas alterações são geradas posteriormente. Qualquer projeto pode gerar os pacotes de atualização. Ele gera apenas as alterações vinculadas à ele. Abaixo demonstramos como ficará os projetos dentro do ambiente: ![](/download/attachments/527828382/image2019-12-23_14-51-8.png?version=1&modificationDate=1577127071087&api=v2)
Importante: Todos os projetos seguem uma linha base para realização das alterações, para isto, configuramos o dicionário de produção para este papel. Com isto, garantimos sempre que as alterações realizadas nos ambiente de homologação sejam um espelho de produção, evitando assim incompatibilidade entre os ambientes.
Acessando o gestor de ambientePara acessar o gerenciador de ambiente, acesso o configurador (pelo endpoint cfg de produção) e após logar navegue entre os menus: Base de Dados \ Gestão de Ambientes \ Gestão de Projetos Ao abrir a tela, verás que é um cadastro simples contendo os dados do projeto. Proceda com a criação de um novo projeto conforme imagem abaixo: ![](/download/attachments/527828382/006.%20Cadastrando%20um%20novo%20projeto.gif?version=1&modificationDate=1577127945403&api=v2)
Inciando ambiente de projeto:Para que todas as ações realizadas no configurador sejam vinculadas à este projeto, deve-se informar ao ambiente que há um projeto ativo, para isto acesse: Base de Dados \ Gestão de Ambientes \ Inicializa Ambiente ![](/download/attachments/527828382/007.%20Iniciando%20ambiente%20com%20o%20projeto%20cadastrado.gif?version=1&modificationDate=1577127945927&api=v2)
Ao concluir esta ação, todas as operações dentro do configurador serão vinculadas à este projeto.
Realizando alteração no dicionário de dados:As alterações no dicionário de dados seguem o mesmo conceito do configurador padrão, porém notem que não há o botão de salvar as alterações, pois estes entram automaticamente dentro do projeto iniciado. Abaixo um exemplo de uma edição de uma tabela padrão: ![](/download/attachments/527828382/008.%20Realizando%20altera%C3%A7%C3%A3o%20no%20dicionario.gif?version=1&modificationDate=1577128033050&api=v2)
Importante: Todas as inclusões de tabelas e/ou alterações em campos serão automaticamente vinculadas aos projetos. Também serão vinculados os novos parâmetros, novos helps e menus. Para estes, as alterações são aplicadas automaticamente no ambiente, pois pela regra do UPDDISTR, não realizamos alterações de conteúdos neste componentes.
Fechando pacote de atualização:Após todas as alterações realizadas pelo usuário, devemos informar ao sistema que o projeto foi finalizado. Para isto, devemos voltar à rotina de gestão de projetos e realizar a geração do pacote conforme demonstrado abaixo: ![](/download/attachments/527828382/009.%20Gerando%20pacote%20de%20atualiza%C3%A7%C3%A3o%20do%20dicionario.gif?version=1&modificationDate=1577128034760&api=v2)
Após a conclusão do projeto, será demonstrado a seguinte mensagem: ![](/download/attachments/527828382/image2019-12-23_15-40-57.png?version=1&modificationDate=1577130061400&api=v2)
O pacote gerado conterá 3 arquivos: O prjpack.mzp contendo as alterações do dicionário, o manifest_update.txt contendo um log de todas as alterações e o arquivo dictionary.json que trata do mapeamento entre o projeto e as empresas. ![](/download/attachments/527828382/image2019-12-23_16-6-13.png?version=1&modificationDate=1577131574097&api=v2)
Aplicando personalização no ambiente:Conforme informamos acima, após finalizarmos as alterações do dicionário, precisamos informar ao agente de monitoramento do ambiente que há uma atualização à ser efetuada e para isto, utilizaremos o painel TCLOUD para realizar a atualização dos ambientes. Dentro do ambiente TCLOUD, selecione o ambiente que deseja atualizar e em seguida qual o pacote a ser aplicado. Após isto clique no botão aplicar, conforme imagem abaixo: ![](/download/attachments/527828382/010.%20Aplicando%20atualiza%C3%A7%C3%A3o%20de%20dicionario%20no%20ambiente.gif?version=1&modificationDate=1577128035257&api=v2)
Com o clique do botão, será enviado um comando para o agente para: → Copiar o pacote/projeto para o ambiente escolhido na atualização → Parar todos os serviços vinculados àquele ambiente → Iniciar o processo de backup do ambiente (banco e volume) → Iniciar o processo de UPDDISTR no ambiente Importante: Ao realizar este procedimento, o ambiente estará indisponível ou seja, se aplicado dentro da janela produtiva do cliente, o mesmo ficará inoperante. Pedimos que agende entre as áreas operacionais do cliente, o melhor horário para aplicação deste procedimento.
Centralizando projetos:Como mencionamos acima, podemos ter vários projetos simultâneos no ambiente e isto poderá gerar um CDM grande no momento da aplicação destes pacotes, para isto, existe a possibilidade de aglutinarmos todos os projetos em um único. A vantagem deste processo é que diminuímos a quantidade de vezes de execução do UPDDISTR no ambiente do cliente e também o tempo de down-time no mesmo. Para demonstrar este processo, iremos criar 3 projetos, sendo duas features e develop. Após as alterações e finalizações das duas features, iremos dentro do menu de gestão de projetos e incorporaremos todas no projeto develop, conforme descritivo abaixo:
Após a conclusão, os dois projetos de features ficarão com o status de incorporados e somente o projeto develop estará ativo. Neste, iremos proceder com a geração dos artefatos conforme descrito anteriormente. ![](/download/attachments/527828382/image2019-12-23_16-12-10.png?version=1&modificationDate=1577131932797&api=v2)
Importante: Um cuidado que se deve ter com relação à ordem de incorporação. Quando houver alterações do mesmo dado em projetos diferentes, prevalecerá a alteração do último projeto incorporado.
Dentro do ambiente, basta acessar o menu: Base de Dados \ Gestão de Ambientes \ Cadastro de Projetos \ Outras Ações \ Incorporar ![](/download/attachments/527828382/image2019-12-23_16-17-16.png?version=1&modificationDate=1577132237127&api=v2)
|