Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa noite.
Tenho aqui a seguinte situação:
Na tabela PEMPRESA a empresa ABC tem o código 1.
Na tabela TEMPRESA a empresa ABC está com o código 1000.
Outro exemplo seriam os produtos. Em uma tabela o respectivo produto Y tem o código 1, em outra tabela o produto tem o código 000012 por exemplo.
Tenho notas fiscais que irão ter o mesmo nome de produto Y, porém os códigos são diferentes, por se tratarem de BD separados.
Pensei em tratar o BD antigo substituindo os códigos de pelos códigos do novo BD.
Obrigado.
Diego
Você pode adotar uma de duas soluções iniciais:
1) Fazer a ligação pelo nome do produto (não recomendo).
2) Criar uma tabela DE-PARA com objetivo de converter a codificação de um BD para a de outro BD.
Amigo,
Sendo que o nome dos produtos estão iguais, então poderá criar um Mapping para padronizar as IDs e assim por adiante;
Exemplo simples:
Mapping_ID_Produtos:
Mapping Load
NOME_PRODUTO,
ID_PRODUTO
FROM TABELA_BD_NOVO;
Dim_Produtos:
Load
ApplyMap('Mapping_ID_Produtos',NOME_PRODUTO,ID_PRODUTO) As 'ID_PRODUTO',
NOME_PRODUTO,
...
FROM TABELA_BD_ANTIGO;
Postei a minha resposta... aí apareceu a sua srsrs
A sua já responde bem.
Ola pessoal o meu cenário é assim: Primeiro o BD antigo, no caso nesse BD não se insere mais nada, já foi completamente migrado.
BD Antigo | |
ITEM | Descricao |
.0001 | Oleo Diesel BS 500 - ANP 820 |
.00013 | Oleo Diesel BS 10 - ANP 820 |
Aqui meu BD novo, esse sim pode haver inclusão de novos produtos. BD Novo | |
ITEM | Descricao |
1 | Oleo Diesel BS 500 |
2 | Oleo Diesel BS 10 |
Não seria melhor então padronizar o banco antigo para o novo? Ou seja, foçar ele a alterar os códigos antigos para os códigos do novo BD, uma vez que não teremos mais alteração nesse antigo?
Depois dessa transformação eu não precisarei mais também realizar o EXTRACT, já que a informação do BD antigo não mudará.
Mario, eu pensei nisso, mas o nome dos produtos estão diferentes, assim como os códigos.
Estou pensando nisso Marcio, pq eu apenas precisaria pegar a tabela itens com o código do produto, e descartaria a tabela de produtos que é onde esta a descrição. Ou então trabalhar com um XLS, mas não queria envolver uma auxiliar.
Amigo, vejo que poderá tratar somente uma vez (ou poucas vezes) a questão da padronização do BD antigo e armazenar em QVD, sendo assim, poderá realizar um DE-PARA dos novos para os antigos, não precisará ficar processando um DE-PARA sempre para os novos, mas é questão de análise interna de vocês (custo-benefício);
Notei que o nome do produto Descricao está diferente entre as tabelas, porém o primeiro sub field parece igual;
Poderá tratar assim
Exemplo:
Mapping_ID_Produtos:
Mapping Load
Upper(Trim((Descricao))) As 'Descricao',
ITEM
FROM TABELA_BD_NOVO;
Dim_Produtos:
Load
ApplyMap('Mapping_ID_Produtos',Upper(Trim(SubField(Descricao,1,'-'))),ITEM) As 'ITEM',
Descricao,
...
FROM TABELA_BD_ANTIGO;
Obs.: Inclui Upper() e Trim() pois é uma boa prática para evitar problemas simples de associação no de-para
Nesse cenário eu faria uma rotina de conversão DE-PARA do banco antigo para os valores de codificação do banco novo. Vai dar um pouco de trabalho, mas depois de pronto não precisaria mais mexer nisso.
Respondi abaixo amigo.