none
[CRM 2011] Plugin com detecção de duplicidade e envio de e-mail RRS feed

  • Pergunta

  • Bom dia,

    Preciso desenvolver um plugin que não permita criar uma conta caso já exista uma conta com aquele CNPJ na nossa base, se isso acontecer preciso informar a pessoa que esta tentando criar a conta e preciso também notificar o proprietário da conta que foi efetuada "uma tentativa de criação de conta com o CNPJ de um cliente dele".

    Esbarrei na seguinte dificuldade, para o usuário que esta tentando criar a conta eu exibiria um InvalidPluginExecutionException com minha mensagem e para o proprietário eu enviaria um e-mail, porem ao lançar exception ele faz rollback da transação e não envia e-mail.

    Alguem já passou por isso ou tem alguma sugestão?

    terça-feira, 2 de julho de 2013 14:35

Respostas

  • Boas,

    Pois não tens alternativas, o CRM vai fazer rollback sempre da transação e é o comportamento correto. Uma solução é criares outro proxy e aí sim criares o email.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 3 de julho de 2013 08:14
  • Rodrigo,

    A sugestão do Pedro realmente é o caminho, apenas aprofundando a ideia...

    O proxy no caso, seria um serviço desenvolvido apartado do CRM, mas que consome as dlls ou serviços dele, assim antes de lançar a exceção pode "chamar" o seu proxy. A única função dele é receber alguns parametros e enviar o e-mail.

    Uma outra alternativa que eu tentaria (não sei se funcionará, não sei até onde o rollback afetaria), seria chamar no C# um workflow que dispara o e-mail, é de se testar...

    Att,

     


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quarta-feira, 10 de julho de 2013 14:25
    Moderador

Todas as Respostas

  • Boas,

    Pois não tens alternativas, o CRM vai fazer rollback sempre da transação e é o comportamento correto. Uma solução é criares outro proxy e aí sim criares o email.

    Espero ter ajudado.
    Se respondi a sua pergunta por favor marque como resposta e\ou como útil.


    Pedro Azevedo Crm Specialist 4.0\2011

    quarta-feira, 3 de julho de 2013 08:14
  • Rodrigo,

    A sugestão do Pedro realmente é o caminho, apenas aprofundando a ideia...

    O proxy no caso, seria um serviço desenvolvido apartado do CRM, mas que consome as dlls ou serviços dele, assim antes de lançar a exceção pode "chamar" o seu proxy. A única função dele é receber alguns parametros e enviar o e-mail.

    Uma outra alternativa que eu tentaria (não sei se funcionará, não sei até onde o rollback afetaria), seria chamar no C# um workflow que dispara o e-mail, é de se testar...

    Att,

     


    Tiago Michelini Cardoso MVP - MCC - MCTS
    https://tiagomcardoso.wordpress.com/

    quarta-feira, 10 de julho de 2013 14:25
    Moderador
  • Muito obrigado pelas respostas!

    Sobre chamar um workflow já tentei, ele é considerado parte da transação e entra no rollback. Outra tentativa que fiz sem sucesso é um plugin assincrono separado para enviar o e-mail e rodar antes do plugin que lança a exception, mesmo assim não funciona. o.O

    Vou estudar essa alternativa de fazer um proxy.


    sexta-feira, 12 de julho de 2013 20:10