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:
- Faça um backup geral do Protheus (Protheus Data, SQL, etc)
- 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
- Agora, se o SQL inflou de tamanho, rode o Shrink no arquivo de logs
- Exclua as tabelas originais da empresa 01 e o cadastro de filiais da empresa 01
- Execute novamente o processo de migração (realizado no item 2), porém executando da empresa 10 para a empresa 01
- Execute novamente o Shrink, e se quiser execute o script para otimizar o banco de dados
- 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:
- Fazer uma varredura em todos os fontes, alterando onde tem filial chumbada (por exemplo, de 01 para 0101) e compilar todo o sistema novamente
- 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)
- 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
- 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
- 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
- Ainda com os parâmetros abertos, os que tem o campo filial preenchido, altere adicionando 01 a esquerda
- 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)
- 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 = ”
- 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)
- No configurador ainda, desinstale todas as procedures, e instale elas novamente (não precisa baixar, apenas clique em desinstalação e depois instalação)
- No configurador, abrir o cadastro de usuários e liberar as novas filiais para acesso (antes era 01, agora tem que liberar 0101)
- No configurador, veja o Controle de Numeração, e se necessário, altere a sequencia dos cadastros
- 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.
Bom dia.
Daniel, você e/ou algum parceiro presta este tipo de serviço?
Obrigado e parabéns pelos conteúdos gerados!
Boa tarde Rodrigo, tudo joia?
Opa agradecemos o feedback, é muita bondade sua.
Então, nós da Atilio Sistemas ( https://atiliosistemas.com/ ), só atendemos para a parte de customização (desenvolvimento AdvPL e TL++) ou para treinamentos.
Um grande abraço.