01. CONCEITO

A funcionalidade de Gestão de Ambientes visa aumentar a simplicidade e segurança na distribuição de modificações efetuadas em dicionários, para outros ambientes. O recurso é baseado no módulo Configurador. 

A separação em Projetos permite modificações diferentes para situações específicas, aumentando a segurança e flexibilidade no gerenciamento dessas modificações.

Ao trabalhar com Gestão de Ambientes recomendamos que seja utilizado, preferencialmente, um DataBase exclusivo ou um Grupo de Empresas somente para a manipulação dos projetos.

Rotina disponível a partir da Release 12.1.27


Finalidade:

Através do projeto, modificações são agrupadas e armazenadas até o momento da aplicação ou expedição.

Conteúdo:

Dicionário de dados, Helps de campos e perguntas e Menus (apenas em dicionário no banco), podem ser manipulados no projeto.

Incorporação:

Devido ao recurso de incorporação, é fácil agregar o conteúdo de um projeto a outro projeto.

Integridade:

Utilização de um mesmo registro em projetos distintos são validados na sua manipulação e na incorporação.

Geração de Pacote:

Ao gerar o pacote, as alterações efetuadas em dicionários no projeto serão automaticamente transportadas. Além dessas, serão transportados também os arquivos anexados no banco de conhecimentos do projeto. É possível selecionar também arquivos de atualização diferencial fornecidos pela TOTVS ( arquivos SDF*.TXT ) para a composição do pacote. Caso existam arquivos SDF e de projetos no mesmo pacote, os arquivos SDF serão aplicados antes do projeto na atualização.

Geração de Arquivo Diferencial:

Essa opção gera apenas os arquivos SDF, HLP e MNU com as alterações do projeto. 


02. COMO UTILIZAR

Para acessar o Gestão de Projetos, entre pelo menu Configurador > Base de Dados > Gestão de Ambientes > Cadastro de Projetos



Tela inicial do Gestão de Projetos


Na tela inicial, nota-se a área do Browse de Projetos existentes a esquerda, os botões de ações da rotina (que detalharemos mais abaixo), uma área de Pesquisa de Projetos, e um gráfico que permite verificar visualmente a porcentagem de Projetos com status Em aberto, Encerrado, Incorporado e Gerado.


Abaixo listaremos os passos para criar um novo projeto, e atuar nele.


Criando um novo Projeto

Na tela inicial do Gestão de Projetos, clique em Incluir




Os campos Código, Situação, Data de Criação, Versão e Release de Criação, já virão preenchidos e bloqueados. Você deve preencher apenas o campo Projeto, indicando o nome desejado para este Projeto.

Após preencher, clique em Confirmar.


Obs.: caso precise alterar o nome deste Projeto, clique sobre ele e clique em Alterar. A mesma janela será aberta, permitindo a alteração apenas do Nome do Projeto.



Configurando os perfis de acesso

Essa funcionalidade foi desenvolvida com o objetivo de controlar os acessos de projetos a um usuário ou grupo de usuários, com isso é possível atribuir acessos diferentes a equipes ou usuários diferentes, aumentando o controle e segurança. Para maiores informações acesse a documentação de Controle de acessos (perfis de acessos)


Importante

Funcionalidade disponível a partir do Release 12.1.33, LIB Label 20211004.


Efetuando alterações na Base pelo Projeto

Na tela inicial do Gestão de Projetos, clique sobre o Projeto previamente criado, e clique em Detalhes do Projeto



No menu da lateral esquerda, são exibidos os itens da Base de Dados que podem ser alterados via Projeto. Na parte superior são exibidos os detalhes do Projeto, e na parte central são exibidos os cards mostrando quais itens possuem alguma alteração nesse Projeto.



Acessando as opções do menu lateral, é aberta a opção correspondente da Base de Dados. As alterações que forem feitas serão salvas nesse projeto, para posterior geração de arquivo .mzp que servirá para aplicação em outros ambientes.

Vamos simular por exemplo a criação de uma nova tabela para propagação posterior em outros ambientes. Na tela do cadastro de Projetos, clique em Dicionário de Dados.


Clique em Incluir, e então preencha as informações da nova tabela. Ao final, clique em Confirmar.


A tabela criada aparecerá com uma legenda amarela no Browse, indicando que é um item do Projeto, não original da Base. 


Clique no Botão Home. A tela inicial do Cadastro de Projetos irá exibir os cards de Tabelas e  de Campos em cor diferenciada, indicando que existem alterações desses itens no Projeto.


Ao clicar nos cards com alterações, essas são exibidas para visualização apenas.



Importante: Alguns itens possuem regra especifica para propagação ou não podem ser propagados para outras bases via projeto:

  • Nome da tabela (SX2): Não podem ser propagados, pois podem existir compartilhamentos de tabela entre Grupos de Empresas ou nomes fora do padrão Tabela + Grupo + “0”
  • Compartilhamento de Tabelas (SX2): Serão propagados, conforme regra detalhada no link: Tratamento para a tabela SX2 - Arquivos
  • Alteração de Tabela Genérica (SX5): Serão propagados, conforme regra detalhada no link: Tratamento para a tabela SX5 - Tabelas Genéricas
  • Compartilhamento de Parâmetros (Filial) (SX6): Não podem ser propagados, pois o layout, as filiais e conteúdos podem ser diferentes em diferentes Grupos de Empresa destino.
    Obs.: Mediante o fato de que não é possível promover o compartilhamento de Parâmetros através de Projetos, foi desenvolvida uma rotina de
    Réplica de Parâmetros, visando facilitar a replicação dos mesmos entre Empresas / Unidades de Negócios / Filiais. A documentação completa da rotina pode ser acessada no link: https://tdn.totvs.com/pages/viewpage.action?pageId=538487879
  • Alteração de Conteúdo de Parâmetro (SX6): Serão propagados, conforme regra detalhada no link: Tratamento para a tabela SX6 - Parâmetros
  • Amarração do Filtro com Usuário (SXT): Não podem ser propagados, pois o cadastro de usuários no ambiente de Desenvolvimento pode não ser o mesmo do ambiente destino.
  • Grupo de Campos (SXG): Não pode ser tratado via Gestão de Ambientes.


Observação: Para estes casos, deve-se continuar fazendo as alterações individualmente em cada base, sem projeto, através dos respectivos programas no menu do Configurador (Ambiente > Cadastros, Base de Dados > Dicionário)



Efetuando o Instanciamento de Artefatos no Projeto

É possível instanciar em um projeto existente registros de um determinado dicionário de dados, de modo que os mesmos estejam presentes no projeto, e possam ser criados ou alterados na base de dados que receberá essas atualizações via pacote ou arquivo diferencial. Para maiores informações acesse a documentação de Instanciamento de Artefatos no Projeto.

Efetuando a troca de prefixo de tabelas do Projeto

É possível efetuar a mudança do prefixo das tabelas de usuário de um projeto e suas dependências principais (campos, índices, gatilhos) visando facilitar a aplicação em ambientes que já possuam os mesmos prefixos criados para outras funcionalidades. Esse recurso é especialmente útil para a adequação de templates de customização. Para maiores informações acesse a documentação de Troca de prefixo de tabelas do Projeto.



Preferências de Atualização

As Preferências de Atualização permitem modificar algumas regras de atualização dos pacotes gerados pelo recurso Gestão de Ambientes. O recurso é especialmente útil para não sobrepor modificações já efetuadas pelo cliente final no ambiente destino do pacote.


Este recurso está disponível a partir do release 12.1.2310, e LIB versão 20240226.


Foram criadas preferências de atualização específicas para colunas do Dicionário de Campos (SX3) e gerais para o Dicionário de Tabelas (SX2).

Por exemplo: o campo Validação de Usuário pode ser modificado através do Configurador para inserir validações específicas do cliente, mesmo em campos padrões da TOTVS. O comportamento padrão do pacote gerado pelo Gestão de Ambientes é sobrepor o conteúdo do inicializador padrão, pois trata-se de uma atualização efetuada internamente.

Já no caso de um pacote com característica de template, pode ser desejável não sobrepor uma validação de usuário. Nesse caso, pode-se configurar essa propriedade para comportar-se de forma semelhante a um pacote gerado pela própria TOTVS, ou seja, nunca sobrepor o conteúdo da validação de usuário.


O campo Tamanho pode exemplificar outra necessidade: um template pode ser expedido com um campo que permita ao cliente alterar o tamanho. O cliente pode então aumentar o tamanho do campo. Numa atualização subsequente do mesmo template, o que é normalmente desejado é que o tamanho modificado pelo cliente seja mantido.

Numa atualização padrão do pacote do recurso Gestão de Ambientes, o tamanho seria sobreposto, mesmo que reduzido. Nesse caso, também é possível selecionar uma configuração semelhante ao pacote gerado pela TOTVS, onde o tamanho no ambiente destino não seria sobreposto, caso seja permitida a alteração no destino via Configurador.


Para configurar as Preferências de Atualização, deve-se selecionar um projeto e clicar na opção Detalhes do Projeto. No menu Outras Ações, selecionar a opção Preferências para atualização. Será exibida uma janela com as preferências para as colunas do dicionário SX3 e preferências gerais do dicionário SX2.


Pode-se alterar a configuração para item clicando no combo. Ao posicionar no item, será exibida uma breve explicação do comportamento no espaço Descrição da opção.


Se clicar em Confirmar, as configurações de preferências serão armazenadas no projeto e podem ser modificadas posteriormente.

Ao gerar um Pacote ou Arquivo Diferencial do Projeto, as preferências serão levadas juntamente com os artefatos de migração e serão consideradas durante o processo de atualização (UPDDISTR).

O Manifesto de Atualização, um arquivo texto explicativo criado no momento da geração de um Pacote ou Arquivo Diferencial (manifest_update.txt), também incluirá informações sobre as preferências utilizadas. Apenas as preferências informadas como Projeto do tipo template serão listadas, pois são as exceções ao processo habitual de atualização.


A incorporação de projetos transporta apenas os artefatos de dicionários e menus de um projeto para outro. Configurações como Controle de Acessos e Preferências para Atualização não são transportadas.




Controle de Permissões

Através do Controle de Permissões é possível ajustar permissões de alteração em campos nos projetos do recurso Gestão de Ambientes. Essas permissões seriam: alteração de tamanho, decimais, uso, tipo e controle de campo obrigatório “padrão” (diferente do coluna X3_OBRIGAT).


Este recurso está disponível a partir do release 12.1.2310, e LIB versão 20240226.


Dessa forma, é possível personalizar via Configurador as permissões de alteração que o campo terá quando for criado ou alterado no ambiente destino.

O recurso está disponível apenas para campos de usuário criados ou alterados no contexto do projeto.


Para acessar as Permissões, deve-se clicar na opção Outras ações > Permissões na janela de inclusão ou alteração do campo.


Com essas permissões é possível, por exemplo, criar um campo com característica de Obrigatório sem que seja possível desabilitar a obrigatoriedade no ambiente que possui o pacote de atualização instalado.

Outro exemplo é criar um campo cujo tamanho não possa ser modificado pelo usuário via Configurador. 




Incorporar alterações de um Projeto em outro

É possível incorporar as alterações de um projeto em outro projeto, mesmo que já existam alterações no projeto destino. 

- Clique na empresa Origem e clique em Outras Ações > Incorporar


- Clique na empresa Destino e clique em Confirmar


- Será exibida uma janela de confirmação. Clique em Sim


As alterações de base feitas no Projeto Origem foram replicadas para o Projeto Destino, e a legenda de Status do Projeto Origem foi alterada para Incorporado



Reabrir um Projeto

A opção de Reabrir um Projeto serve para voltar seu status para Em Aberto (legenda verde), caso queira. Pois quando você executa as ações de Incorporar ou de Gerar Pacote, o Status do projeto muda para as respectivas legendas.



Encerrar Projeto

A opção de Encerrar Projeto serve para finalizar um Projeto. Ao utilizar esta opção, não será mais possível Reabrir este projeto, nem mesmo Incorporar, Gerar Pacote ou Gerar Arquivo Diferencial, apenas poderá Visualizar o Projeto sem fazer alterações.



Anexar

A opção de Anexar do menu, serve para anexar arquivos ao projeto, para posterior propagação em outros ambientes. Utiliza o Banco de Conhecimento para isso.

Na tela principal do Cadastro de Projetos, clique sobre o Projeto e clique em Outras Ações > Anexar

Na tela do Banco de Conhecimento (Vínculo), clique em Outras Ações > Conhec.


Na tela do Banco de Conhecimento, clique em Incluir


Na tela de inclusão, preencha a Descrição do objeto, então clique em Outras Ações > Seleciona Objeto


Na janela que irá abrir, selecione o arquivo, que pode ser um documento, um pdf, imagem, patch, etc. Clique em Abrir




Importante:

Para a aplicação de patch, é necessário que o arquivo contenha, em qualquer posição do nome, sua nomenclatura para o RPO de destino (TTRI999, sendo: R=RPO, I=Idioma, 999=Versão).
Por exemplo: aplicacao_de_melhoria_ttte120_
para homologacao.ptm, onde será aplicado em um RPO ttte120.rpo no caso.




Clique em Confirmar para concluir a Inclusão do objeto.

Feche a janela de inclusão de novo objeto, e na tela de vínculo, abaixo da coluna Objeto, clique 2 vezes no campo e clique na Lupa


Na janela que irá abrir, selecione o arquivo que foi incluído anteriormente, e clique em OK


Será criado o vínculo com este arquivo. Clique em Salvar.

Quando o pacote deste Projeto for gerado e aplicado em outros ambientes, este arquivo irá junto.



Gerar Pacote

As alterações feitas na base através do Projeto são propagadas para outras bases através de Pacotes (arquivos .mzp). Essa opção do menu serve para gerar este arquivo.

Para gerar um Pacote, clique sobre o Projeto onde as alterações foram feitas, então clique em Outras Ações > Gerar Pacote


Será aberta uma nova janela, selecione a pasta desejada e clique em Abrir. O arquivo .mzp será gerado nesta pasta.


A aplicação do pacote .mzp gerado deve ser feita nos outros ambientes através da rotina MPUPDATEPACK. Maiores informações sobre o uso da rotina: MPUPDATEPACK



Gerar Arquivo Diferencial

Esta opção serve para gerar os arquivos alterados no projeto de forma separada (arquivos de help, arquivo sdfbra, etc), para que possam ser aplicados individualmente através do UPDDISTR nos demais ambientes, caso queira. Maiores informações sobre o uso do UPDDISTR: Atualização de Dicionário Diferencial

Para gerar o arquivo diferencial, na tela principal do Cadastro de Projetos, clique sobre o Projeto desejado e clique em Outras Ações > Gerar Arquivo Diferencial

Na janela que será aberta, selecione a pasta onde quer salvar os arquivos, e clique em Abrir


Será exibida uma mensagem informando que os arquivos foram gerados com sucesso.




Proteção para Pacote e Arquivo diferencial

A partir da LIB versão 20221128, os arquivos de Pacote (.mzp) e Diferencial (sdfbra.txt) podem contar com uma chave de segurança. A Proteção do Projeto oferece mecanismos para prevenir a distribuição indiscriminada de pacotes de atualização. Estão disponíveis dois recursos de proteção: Totvs ID e Data de Expiração.

O Totvs ID é um identificador único vinculado ao License Server que está sendo utilizado pelo ambiente. A proteção via Totvs ID garante que o pacote ou arquivo diferencial seja aplicado apenas em um ambiente que utilize o License Server especificado. Dessa forma, um pacote vinculado a determinado Totvs ID não poderá ser aplicado em outro cliente, por exemplo.

Já a proteção via Data de Expiração garante que o pacote seja aplicado até determinada data. Isso permite criar pacotes para "demonstração", que não poderão ser aplicados indefinidamente.

Para que a opção de proteção esteja disponível, primeiro é necessário configurar o parâmetro MV_PRJPROT. Se o mesmo não existir, é necessário criá-lo no Configurador > Ambiente > Cadastro > Parâmetros. Crie um novo parâmetro e preencha-o conforme imagem abaixo:


Feito isso, na tela de Projetos, selecione o Projeto para o qual deseja gerar Pacote ou Arquivo diferencial, então clique em Outras Ações > Gerar Pacote (ou Gerar arquivo diferencial)


Será aberta uma janela de aviso, perguntando se "Deseja proteger o arquivo a ser gerado". Se for selecionada a opção Não, será aberta a janela padrão para seleção de pasta para gerar o Arquivo diferencial (ou no caso do Pacote, será indicado o nome do arquivo). Se for selecionada a opção Sim, será aberta a tela abaixo para preenchimento do Totvs ID do ambiente (se marcar a respectiva caixinha) que será permitida a aplicação deste arquivo, e a opção de validar a data de expiração (se marcar a respectiva caixinha), permitindo selecionar uma data a partir da qual o arquivo não poderá mais ser aplicado.


Conforme exemplo acima, o arquivo gerado não poderá ser aplicado após 31/12/2023, e também só poderá ser aplicado em um ambiente que esteja conectado a um License Server que possua o Totvs ID ilustrado na imagem.

Se houver a tentativa de aplicar o arquivo em data posterior a data de expiração, no programa que estiver aplicando será exibida uma mensagem de alerta informando "Data de validade expirada", conforme imagem abaixo:


Se houver a tentativa de aplicar o arquivo em um AppServer que não esteja conectado a um License Server válido (com o Totvs ID indicado na geração do arquivo), no programa que estiver aplicando será exibida uma mensagem de alerta informando "Servidor de licenças inválido", conforme imagem abaixo:


O usuário deverá informar a validação ou as validações desejadas. O Totvs ID informado deverá ser o mesmo do ambiente destino e a data de expiração deverá ser igual ou superior à data no momento de aplicação do pacote. O arquivo gerado será agora validado no momento da atualização (UPDDISTR). Caso uma ou ambas as condições não sejam atendidas não será permitido aplicar a atualização.



Excluir Projeto

Caso queira excluir um Projeto (não importa o status em que ele se encontre), na tela principal do cadastro de projetos, clique sobre o projeto que deseja excluir, então clique em Outras Ações > Excluir


Trabalhando com Projetos Concorrentes

Por padrão, não é possível utilizar o mesmo registro em 2 projetos diferentes. Ou seja, se o projeto A já está manipulando o campo A1_NREDUZ, e o projeto B tentar manipulá-lo, será apresentada a mensagem abaixo:


Através do parâmetro MV_PRJOVER é possível permitir a inclusão de itens de mesma chave em projetos concorrentes.

Parâmetro

Tipo

Valor Default

Conteúdo

MV_PRJOVER

Lógico

.F.

.F. – Não permite a inclusão de itens de mesma chave em projetos concorrentes.

.T. - Permite a inclusão de itens de mesma chave em projetos concorrentes.


Com o parâmetro ativo, será apresentada a pergunta abaixo:



Log de auditoria

Através do Log de Auditoria de Projetos, é possível analisar as alterações que foram feitas em cada Projeto, clicando sobre ele e então em Outras Ações > Log de auditoria. Abaixo iremos detalhar o que é logado em cada uma das colunas.


Chave: mostra qual foi o item que teve alguma operação logada. Por exemplo, ao alterar um Parâmetro (SX6), a chave será o nome do Parâmetro (Ex.: MV_1DUP).

Atributo: mostra qual atributo da chave teve alguma operação logada. Por exemplo, ao alterar a descrição de um parâmetro, o Atributo será X6_DESCRIC.

Descrição do atributo: mostra a descrição do atributo logado.

Valor anterior: mostra o conteúdo anterior do atributo logado, quando a operação for de alteração, pois na operação de inclusão não existiam dados prévios (mais detalhes no item Operação mais abaixo).

Novo Valor: mostra o novo conteúdo do atributo logado. 

Operação: mostra qual ação de log foi gravada, se foi uma Inclusão, Alteração ou Exclusão. É importante salientar que não se trata do tipo de alteração que foi feita em determinado dicionário, mas sim da operação que foi feita em relação ao Projeto. Por exemplo, se for alterado um campo de uma tabela através do Projeto, a Operação no Log será de Inclusão, não de Alteração, porque ao fazer a alteração do campo, esse foi incluído no Projeto. Após este campo já estar no Projeto, se for feita uma nova alteração nele, aí sim a Operação será de Alteração, pois esse sofreu uma alteração no Projeto.

Data/hora: mostra a estampa de tempo em que essa operação foi logada.

Usuário do Protheus: mostra qual usuário teve uma ação logada ao fazer alguma manipulação no Projeto. Pode ser o usuário Administrador ou algum usuário do Grupo Administradores que tenha acesso a manipulação do Projeto.

Usuário do Banco: mostra o usuário do Banco de Dados.

Rotina: mostra a Rotina do programa utilizado.

Ip: mostra o endereço IP do servidor.


É possível também Filtrar as informações que serão exibidas no log, através do botão Outras Ações > Filtros. Detalharemos abaixo as opções de Filtro.


Dicionário:
permite selecionar apenas um dicionário específico para exibir resultados no Log de auditoria.

Data rápida: permite selecionar um intervalo de datas para exibir resultados no Log de auditoria. Ao selecionar uma das opções, como Hoje, Uma semana, 30 dias e Um ano, a Data inicial e Data final são ajustadas de acordo com o período selecionado. Ao selecionar a opção Personalizada, pode-se definir manualmente as datas em Data inicial e Data final.

Operação: permite selecionar quais operações deseja mostrar na tela do Log de auditoria. 


Pode-se combinar as opções acima, e ao clicar no botão Confirmar, o browse do Log será atualizado mostrando apenas as informações pertinentes ao filtro criado.



Páginas filhas: