Qual é a melhor forma de replicar os campos de uma base de testes para produção?

No artigo de hoje, vou demonstrar a melhor forma de replicar os campos da base de testes para produção, usando a Gestão de Ambientes para criar os seus UPDDISTR.

Esse artigo foi uma dica enviada do meu grande amigo Kleber Santos ( LinkedIn ).

Pessoal, se você já precisou copiar campos, índices, tabelas, etc de uma base de testes para produção, geralmente eram feitos principalmente 3 processos:

  • Exportar pelo APSDU da base de testes e appendar em produção recriando as informações
  • Usar a excelente ferramenta ExporDic do Ernani Forastieri
  • Criar algum código fonte que já criava as tabelas e campos usando X31UpdTable

Acontece que, por causa do dicionário de dados ir para o SQL, e evitar usar códigos para manipular tabelas, como poderíamos proceder?

E se existisse alguma ferramenta, que gerasse pra gente um UPDDISTR customizado de uma base, e pudéssemos aplicar em outra?

Aí que entra o Gestão de Ambientes. É uma funcionalidade padrão do Protheus, onde você pode gerar os seus UPDDISTR. Abaixo vou mostrar como usar esse recurso.

  1. Entre em Configurador > Base de Dados > Gestão de Ambientes > Cadastro de Projetos

Acessando o cadastro de projetos

  1. Na tela que será aberta, clique em Incluir, insira uma descrição para o projeto

Incluindo um novo projeto

  1. Clique agora em Detalhes do Projeto

Clicando em Detalhes do Projeto

  1. Na esquerda existem as possibilidades para adicionar no nosso projeto, como Parâmetros, Menus, Gatilhos, etc… Clique então em Dicionário de Dados

Menu de opções a esquerda

  1. Na tabela, clique em Incluir, inclua uma tabela de testes, no nosso caso será a tabela ZA1, com os campos ZA1_CODIGO e ZA1_NOME e com o índice ZA1_FILIAL + ZA1_CODIGO
  2. Ao confirmar a alteração e inclusão de campos e índices, o ícone da legenda da tabela ficará em amarelo

Inclusão da tabela ZA1

  1. Voltando a área de Home, será exibido o que foi adicionado no projeto, com a possibilidade de você clicar e visualizar

Exibição de informações na Home

  1. Clique em Fechar e volte para a lista de projetos
  2. Crie uma pasta dentro da sua Protheus data, chamada por exemplo, /x_projetos/
  3. Clique agora em Outras Ações > Gerar arquivo diferencial

Clicando em Gerar Arquivo Diferencial

  1. Selecione a pasta que criamos no item 9

Escolhendo a pasta customizada

  1. Aguarde a geração, e depois abra a pasta, e os arquivos estarão lá

Verificando arquivos gerados

  1. Agora você pode aplicar via UpdDistr nas outras bases

Além do que foi demonstrado acima, existem inúmeros outros recursos, como adicionar Patch, por isso recomendo que leiam o link abaixo nas referências, que contém toda a documentação do Gestão de Ambientes.

Obs.: As outras formas (como via APSDU), você pode usar tranquilamente (desde que o dicionário não esteja no banco), o Gestão de Ambientes é apenas um recurso mais novo e disponível nativamente no ERP.

Referências:

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

9 Responses

  1. Murilo Tavares disse:

    Daniel, muito obrigado por esse trabalho que você faz.
    Você não faz ideia de como nos ajuda.
    Abraços.
    Murilo

  2. Edson Novaes disse:

    Muito bom, Atilio, parabéns!
    Uma dúvida caso eu já tenha criado meu alias e os campos no Configurador, como faço para utilizar o que já está criado em vez de precisar cadastrar tudo novamente pelo projeto?

  3. Edson Novaes disse:

    Conseguir encontrar como resolver e só editar o ALIAS.

    Obrigado.

  4. Bruno Martins disse:

    Boa tarde Daniel, parabéns pela iniciativa e pelas informações.

    Uma dúvida, se fiz no ambiente teste, empresa 99 de teste e vou replicar em uma em producao em um cliente, mesmo nos dados da sx2 contendo após o alias das tabelas, o codigo da empresa + 0, exemplo SA1990, ele vai considerar na criação de tabelas, a que eu escolher durante a importação, correto?

    • Bom dia Bruno, tudo joia?

      Até onde testei, ele vai funcionar igual um UPDDISTR normal, onde mesmo que você crie para a empresa “01” por exemplo, e depois você vai rodar o UPDDISTR numa empresa “02”, ele vai entender e criar corretamente.

      Tenha uma ótima e abençoada quinta feira.

      Um forte abraço.

      • Bruno disse:

        Obrigado Deus abençõe! Coloco todos os arquivos em systemload, pra rodar o UPDDITR, correto? E ele funciona em outras versões? Exemplo: Gerei na 2510 e algum outro ambiente está na 2410 ou vice e versa.

        • Bom dia Bruno, tudo joia?

          Amém meu irmão.

          Olha, eu acredito que sim, desde que não tenha muita diferença de versão, tipo tentar gerar em um com 12.1.2410 e depois tentar aplicar no 12.1.3 por exemplo.

          Mas quando é pouca diferença de versão, acho que dará certo.

          Se você conseguir testar, depois nos dê um feedback.

          Tenha uma ótima e abençoada terça feira.

          Um forte abraço.

Deixe uma resposta

Terminal de Informação