none
Dúvida sobre resolvedor de Conflitos RRS feed

  • Pergunta

  • Pessoal estou com um pequeno problema com replicação eu tenho minha matriz que chamarei de filial 1 e uma filial que chamerei de filial 2, tenho uma replicação por merge e surgiu um conflito que não consegui arrumar vou colocar de uma forma simples:

    No sistema da Filial 1 eu seleciono os dados a filial 2 e dou entrada de uma nota onde o produto A foi para quantidade 3, sendo que 1 já era o que estava em estoque e 2 vezes o que veio na nota até aqui perfeito.

    No sistema da Filial 2 eu passo uma venda com o produto A onde o produto que tinha quantidade 1 passou a zero até aqui sem problemas.

    O problema é o seguinte quando eu replicar ao invês SQL Server atualizar para quantidade de estoque 2 pois dei uma saida no meu estoque acaba gerando um conflito onde tenho que resolver sempre tem alguma forma de configurar o sql para não gerar esse conflito e para essa tabela em especifico o mesmo resolver corretamente esse problema?

    segunda-feira, 11 de novembro de 2013 17:19

Respostas

  • Eder,

    Talvez neste caso uma Stored Procedure ou Trigger pode ser um mecanismo que você poderá implementar para validar o seu estoque!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 20 de dezembro de 2013 13:30

Todas as Respostas

  • Eder,

    Que tipo de conflito? Será que é realmente o SQL Server que esta fazendo esta pequena confusão?

    Que tipo de replicação você esta utilizando?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 14 de novembro de 2013 15:29
  • Estou utilizando replicação do tipo merge, o que ocorre é o seguinte na matriz o pessoal realiza lançamento de nota fiscal na filial 2 a base é multi-filial, quando eles realizam a entrada da nota a tabela de estoque é atualizada até ai tudo bem um cenário normal, o que ocorre é que a filial 2 esta à todo vapor e realizou uma venda de um produto na filial, na matriz ocorreu a entrada da nota quando ocorre a replicação o sql server exibe o conflito, pois para o mesmo registro existem dois updates diferentes e não sei como resolver essa situação o que acaba gerando o estoque desatualizado, o cliente necessita que funcione dessa forma visto que na filial 2 não existem tantos funcionários para realizar esses procedimentos somente possuem funcionários para à venda existe uma forma de tratar essa situação?
    quinta-feira, 14 de novembro de 2013 16:51
  • Eder,

    Cara neste caso, você não vai conseguir implementar a replicação deste maneira, pois se você esta fazendo um Merge de alguma forma o SQL Server tem que entender se o mesmo dado deverá ser atualizado ou inserido com base na condição aplicada no Merge.

    É justamente este o ponto, como você tem duas instruções manipulando o mesmo tipo de dados, mas em situações distintas vai ser necessário estabelecer alguma regra.

    Entendo que você vai ter que estabelecer alguma critério na sua forma de trabalho, caso contrário, terá este conflitos ocasionados ainda mais.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 22 de novembro de 2013 21:59
  • Existe alguma forma de se criar um resolvedor de conflito onde o mesmo analise os dados que serão enviados pelo publicador e juntamente com os dados enviados pelo assinante e no caso esse resolvedor verificaria que um é um movimento de saida e outro de entrada e a diferença entre os dois mais o que já tinha no banco seria o meu novo valor?
    segunda-feira, 16 de dezembro de 2013 18:26
  • Boa noite,

    O SQL Server possui o recurso de filtro nas tabelas publicadas, mas isso não vai resolver seu problema.

    O que você pode fazer é: Ao vender, consulte o estoque, caso tenha, venda, caso não aguarde, essa tabela será replicada da matriz. Na matriz poderão dar entrada, enfim manipula-la como queira. Para cada venda, gere uma ordem de estoque, para dar baixa no estoque futuramente no servidor da matriz.


    Jefferson Santos [MCTS SQL Server]

    segunda-feira, 16 de dezembro de 2013 23:37
  • Eder,

    Talvez neste caso uma Stored Procedure ou Trigger pode ser um mecanismo que você poderá implementar para validar o seu estoque!!!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sexta-feira, 20 de dezembro de 2013 13:30