Como fazer a migração de filial de FF para EEFF

Hoje vou mostrar para vocês, como fazer a migração do campo de filial de dois caracteres para mais.

Se você trabalha em alguma empresa, que utiliza o Protheus e o campo filial tem dois caracteres (padrão FF), e é necessário aumentar esse campo (padrão EEFF), existe um procedimento a ser realizado.

Antes de começarmos, montei esse artigo com a ajuda do grande Márcio Ortolan ( LinkedIn ), especialista na parte de infraestrutura de produtos TOTVS. Então abaixo irei detalhar os procedimentos (principalmente relacionado as customizações).

Obs. 1: Faça um teste antes em uma base de testes

Fazendo a migração de FF para EEFF:

  1. Faça um backup geral do Protheus (Protheus Data, SQL, etc)
  2. Execute o procedimento de migração de empresas, por exemplo, se sua empresa for 01, migre para 10 (de SB1010 para SB1100), nesse link do TDN tem a documentação de como fazer o procedimento – Converta uma empresa/filial para o formato de Gestão de Empresas
  3. Agora, se o SQL inflou de tamanho, rode o Shrink no arquivo de logs
  4. Exclua as tabelas originais da empresa 01 e o cadastro de filiais da empresa 01
  5. Execute novamente o processo de migração (realizado no item 2), porém executando da empresa 10 para a empresa 01
  6. Execute novamente o Shrink, e se quiser execute o script para otimizar o banco de dados
  7. Por último, exclua a empresa 10, e as tabelas da empresa 10

Passos a executar após a migração:

Abaixo irei detalhar alguns processos que geralmente são necessários para executar após fazer essa migração:

  1. Fazer uma varredura em todos os fontes, alterando onde tem filial chumbada (por exemplo, de 01 para 0101) e compilar todo o sistema novamente
  2. Algumas tabelas customizadas, ou campos customizados, precisam de update na informação, então por exemplo, supondo que tenha um campo chamado Z01_FILORI, você precisa atualizar ele com UPDATE Z01010 SET Z01_FILORI = ’01’ + Z01_FILORI (repita isso para todas as tabelas que não atualizaram o campo de filial ou tenham um campo de filial customizada)
  3. Abrir no APSDU o grupo de perguntas (SX1), filtrar o X1_TAMANHO igual a 2 e o X1_F3 igual a ‘SM0’, alterar o tamanho de 2 para 4
  4. Com a tabela SX1 aberta ainda, faça um novo filtro do X1_TAMANHO igual a 2 e a expressão “FILIAL” $ Upper(X1_PERGUNT), altere o tamanho de 2 para 4
  5. Com o APSDU aberto, abra os parâmetros (SX6), e veja se tem algum customizado que guarde filial, se sim, altere o conteúdo, por exemplo, de 01 para 0101
  6. Ainda com os parâmetros abertos, os que tem o campo filial preenchido, altere adicionando 01 a esquerda
  7. Parâmetros geralmente exclusivos (que tem o campo filial preenchido), crie para a nova filial (faça um backup, depois altere a filial nesse bakcup e depois execute o append)
  8. Verifique as tabelas que serão compartilhadas, as que forem, você precisará alterar na SX2 o modo de compartilhamento para C, e depois disso executar um update no SQL limpando o campo de filial, por exemplo, UPDATE SA1010 SET A1_FILIAL = ”
  9. Abra o configurador, no cadastro de empresas, se tiver cnpj vazio nas filiais e preencha (acesse o backup realizado caso não tenha a informação guardada)
  10. No configurador ainda, desinstale todas as procedures, e instale elas novamente (não precisa baixar, apenas clique em desinstalação e depois instalação)
  11. No configurador, abrir o cadastro de usuários e liberar as novas filiais para acesso (antes era 01, agora tem que liberar 0101)
  12. No configurador, veja o Controle de Numeração, e se necessário, altere a sequencia dos cadastros
  13. Antes de liberar o sistema, você pode montar um script que executa DbSelectArea em todas as tabelas para criar os índices no SQL

Obs. 2: Além de todos esses passos citados, pode ser que na empresa que você atenda tenha algumas particularidades, por exemplo, se usar RH, será necessário dar um update no campo RCC_FIL da tabela RCC010. Ou se usa base de conhecimento, tenha que atualizar a AC9, e assim por diante.

Obs. 3: Algumas tabelas, podem sumir os dados, por exemplo, peguei um caso com a CTO, para isso, será necessário acessar o backup realizado, usar o Copiar Para pelo APSDU, e depois executar um Append em produção.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta