none
CRM 2011 - Criar alertas se E-mail Router RRS feed

  • Pergunta

  • Olá Pessoal.

    Estou com um problema no meu Dynamics 2011.

    Criar alertas se E-mail Router pare de funcionar ou caso alguma fila fique sem receber emails por 'x' tempo.

    As Vezes, por algum motivo qualquer, meu email router para de disparar emails para minhas filas. 

    Quero criar um JavaScript que valide se uma determinada fila ou se todas as filas, não são atualizadas com novos emails a cada 'X' hora(s).

    Caso a fila 'XPTO' não tenha novos emails, o script dispara um alerta para administrador da fila com problema, ou caso nenhuma fila esteja atualizada, dispara um alerta ao administrador do CRM.

    Seria possível criar algo do tipo?

    Obrigado a todos!


    segunda-feira, 11 de março de 2013 15:02

Respostas

  • Boas Daniel,

    Para esse erro encontrei este post que tem uma solução.

    Para saber por exemplo os items de uma queue utilize um código deste tipo:

    string fetchrequest = string.Format(
    @"<fetch mapping='logical' aggregate='true'>
        <entity name='queueitem'>
            <attribute name='queueitemid' alias='c' aggregate='count'/>
            <filter type='and'>
                <condition attribute='objecttypecode' operator='ne' value='4406'/>
                <condition attribute='queueid' operator='eq' value='{0}'/>
            </filter>
        </entity>
    </fetch>", queueid.ToString());
    
    string fetchresult = crmservice.Fetch(fetchrequest);
    XmlDocument document = new XmlDocument();
    document.LoadXml(fetchresult);
    Console.Writeline("numero de elementos:" + document.SelectSingleNode("//resultset/result/c").InnerText));
    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 terça-feira, 12 de março de 2013 10:01
    • Marcado como Resposta Daniel Bicudo sexta-feira, 15 de março de 2013 12:49
    terça-feira, 12 de março de 2013 10:01

Todas as Respostas

  • Boas Daniel,

    O melhor será você tentar resolver o problema do email router parar de disparar emails. Já tentou ver os logs activar o trace e ver se existe mais informação desse erro?

    Para a sua solução não aconselho um Javascript porque não consegue ser reactivo, ou seja, disparar sozinho. Um plugin também não deve resolver o seu problema, porque mais uma vez necessita algo para desencadear. O meu concelho e até conseguir resolver o seu problema do email router, seria fazer uma aplicação batch que vai ler de 5 em 5 minutos se houve alterações nas queues se não houver num determinado período de tempo enviava por exemplo um email.

    Espero ter ajudado.


    Pedro Azevedo Crm Specialist 4.0\2011

    • Sugerido como Resposta Azevedo PedroMVP segunda-feira, 11 de março de 2013 17:50
    segunda-feira, 11 de março de 2013 17:50
  • Opa Pedro, Obrigado pelo retorno!

    Então, ativamos o log semana passada. Pegamos os seguintes erros:

    #27938 - Erro ao verificar se há mensagens de email a serem processadas na caixa de correio cac.xxxx@xxxx.com. System.Net.WebException: The remote server returned an error: (404) Not Found

    #26234 - O serviço E-mail Router não pôde processar um item de trabalho de provedor, usando o assembly: Microsoft.Crm.Tools.EmailProviders.dll e a classe: Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider. System.Threading.ThreadAbortException: Thread was being aborted

    Quando pensei no JavaScript, pensei que poderia colocar no OnLoad da Página, esse seria meu gatilho, porém, ficaria inviável, pois são diversos atendentes utilizando essa mesma tela, e pode ser que um, ou alguns deles, fiquem sem receber emails por um determinado período propositalmente, sem ser um erro, e sim o gerente que não disponibiliza um determinado assunto para eles.

    Já esse processo batch, pode ser que ajude. Vc tem algum script de exemplo?

    Obrigado mais uma vez pela ajuda.

    segunda-feira, 11 de março de 2013 20:04
  • Boas Daniel,

    Para esse erro encontrei este post que tem uma solução.

    Para saber por exemplo os items de uma queue utilize um código deste tipo:

    string fetchrequest = string.Format(
    @"<fetch mapping='logical' aggregate='true'>
        <entity name='queueitem'>
            <attribute name='queueitemid' alias='c' aggregate='count'/>
            <filter type='and'>
                <condition attribute='objecttypecode' operator='ne' value='4406'/>
                <condition attribute='queueid' operator='eq' value='{0}'/>
            </filter>
        </entity>
    </fetch>", queueid.ToString());
    
    string fetchresult = crmservice.Fetch(fetchrequest);
    XmlDocument document = new XmlDocument();
    document.LoadXml(fetchresult);
    Console.Writeline("numero de elementos:" + document.SelectSingleNode("//resultset/result/c").InnerText));
    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 terça-feira, 12 de março de 2013 10:01
    • Marcado como Resposta Daniel Bicudo sexta-feira, 15 de março de 2013 12:49
    terça-feira, 12 de março de 2013 10:01
  • Olá Pedro, Desculpe a demora.
    Mandei essa alternativa e o outro fórum indicado pra minha equipe de desenvolvimento. Eles estão analisando. Ai logo mais eu marco como resposta

    Enquanto isso, eu estou com os itens antigos, pendentes na minha inbox e não foram encaminhados para tratamento no Dynamics.
    Como faço para reprocessar?
    Já Restartei o serviço, movi os itens para outras filas para verificar se ele captura corretamente e nada funcionou...

    Como paliativo, criamos uma regra no outlook, onde todos os emails de uma determinada pasta, é encaminhado para o nosso proprio email. Quando o email bate na inbox, ele é direcionado para as filas do dynamics

    Obrigado por tudo!

    quarta-feira, 13 de março de 2013 15:30
  • Boas Daniel,

    Desculpa não ter respondido antes mas não recebi a notificação da sua resposta, os fóruns andam com problemas e muitas vezes não recebo a notificação de resposta. Só recebi a notificação da resposta correcta, ainda bem que ajudou a minha proposta. Em relação ao teu problema aconselho a criar uma nova thread para mais gente poder contribuir. E tentar detalhar mais o problema pois não entendi bem.


    Pedro Azevedo Crm Specialist 4.0\2011

    sexta-feira, 15 de março de 2013 14:24