Usuário com melhor resposta
[CRM 2011] Plugin com detecção de duplicidade e envio de e-mail

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?
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
- Sugerido como Resposta Azevedo PedroMVP quarta-feira, 3 de julho de 2013 08:14
- Marcado como Resposta Tiago Michelini CardosoMVP, Moderator quinta-feira, 8 de agosto de 2013 22:35
-
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/- Marcado como Resposta Tiago Michelini CardosoMVP, Moderator quinta-feira, 8 de agosto de 2013 22:35
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
- Sugerido como Resposta Azevedo PedroMVP quarta-feira, 3 de julho de 2013 08:14
- Marcado como Resposta Tiago Michelini CardosoMVP, Moderator quinta-feira, 8 de agosto de 2013 22:35
-
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/- Marcado como Resposta Tiago Michelini CardosoMVP, Moderator quinta-feira, 8 de agosto de 2013 22:35
-
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.
- Editado Rodrigo Monteiro Ferreira sexta-feira, 12 de julho de 2013 20:23 Correção ortografica