Configuração PROTHEUS:
A premissa para que se utilize produtos globais é que o nível de compartilhamento no Protheus da tabela de Produtos (SB1) deve ser compartilhado por filial e unidade. Desde que empresa seja equivalente ao nível de coligada do lado do RM.
A configuração de Produtos Globais do lado RM deve ser realizada, para que seja evitado as réplicas para cada coligada, através do processo de Carga Inicial de Dados no Protheus.
Configuração RM:
Caso não exista produtos na base RM, para adequar a Produtos Globais, basta alterar a parametrização em: Opções -> Parâmetros -> RM Nucleus -> Definições Gerais -> Tabelas -> Produtos -> Produto global e marcar a opção “Usa produto global”.
2. Caso as coligadas existam Produtos já cadastrados, deve-se escolher a Coligada principal para que seja realizada a conversão para global, ou seja, a primeira coligada convertida terá sua parametrização como base para a conversão das demais coligadas para global. Essa conversão somente passará todos os dados da tabela TPRODUTO são convertidos para a coligada global (coligada 0).
4. Para efetuar a conversão, executar o processo em: Utilitário -> Conversão de Produto Global.
5. Caso somente a coligada convertida existir Produtos, as demais coligadas para aparecem os produtos globais devem-se habilitar somente o Parâmetro: Opções -> Parâmetros -> RM Nucleus -> Definições Gerais -> Tabelas -> Produtos -> Produto global e marcar a opção “Usa produto global”. Os produtos que foram convertidos na coligada base serão apresentados para a coligada após habilitada para global.
Caso as demais coligadas já existam produtos cadastrados, deve-se executar o processo de conversão para global, marcando os campos que farão parte para a conversão.
Atenção: Ao rodar a conversão, os produtos com mesmo código da coligada base, serão unificados e produtos com códigos que não existam na coligada base, serão transformados para global.
6. Deverá ser realizado esse processo para todas as coligadas que existam produtos já cadastrados, para que todas tenham seus produtos transformados em globais.
7. Após realizado o processo para todas as coligadas, deve-se ajustar os De/Para de todos os produtos, para isso, basta rodar o script abaixo na base RM para que seja ajustado todos os de/para: (Esse script, tira da chave de integração a informação da FILIAL, uma vez que os produtos agora passam a ser compartilhados a nível de filial).
“UPDATE GEAIDEPARA SET GEAIDEPARA.VALORRM = (SELECT (TPRODUTO.CODCOLPRD || '|' || TPRODUTO.IDPRD) AS NOVOVALORM
FROM GEAIDEPARA A
JOIN TPRODUTODEF ON (TPRODUTODEF.CODCOLIGADA || '|' || TPRODUTODEF.IDPRD) = A.VALORRM
JOIN TPRODUTO ON TPRODUTO.IDPRD = TPRODUTODEF.IDPRD
WHERE TABELARM LIKE 'TPRODUTO' AND A.ID = GEAIDEPARA.ID)
WHERE TABELARM LIKE 'TPRODUTO'
AND EXISTS (SELECT (TPRODUTO.CODCOLPRD || '|' || TPRODUTO.IDPRD) AS NOVOVALORM
FROM GEAIDEPARA A
JOIN TPRODUTODEF ON (TPRODUTODEF.CODCOLIGADA || '|' || TPRODUTODEF.IDPRD) = A.VALORRM
JOIN TPRODUTO ON TPRODUTO.IDPRD = TPRODUTODEF.IDPRD
WHERE TABELARM LIKE 'TPRODUTO' AND A.ID = GEAIDEPARA.ID)
8. Para os De/Para do Protheus, não é necessário script, pode-se excluir todos os de/para da entidade “ITEM” via APSDU e após isso, rodar uma única Carga Inicial dos Dados da entidade “ITEM” para que os De/Para sejam criados do lado PROTHEUS de forma correta, baseando-se no Compartilhamento.
APSDU – Tabela de De/Para (XXF), filtrando somente ALIAS = SB1 (Produto):
Carga Inicial de ITEM:
Estrutura do DE/PARA correto nesse caso, com valor externo sem FILIAL: