none
[CRM 2011] Dúvida ao executar plugin RRS feed

  • Pergunta

  • Vou desenvolver um plugin que faz consultas de CPF,CNPJ e CEP em um Web Service, gostaria de saber se existe alguma forma do plugin executar através de um botão Ribbon, OnChange de algum campo ou ser executado por um JS?


    segunda-feira, 24 de junho de 2013 20:53

Respostas

  • Daniel,

    A informação do Pedro vale se realmente for algo controlável por algum evento. Porém se precisar por exemplo que o botão do ribbon seja independente do registro, ou seja, não necessita de nenhuma ação ou que o form seja aberto, poderá criar um jscript que é acionado no click do ribbon e realiza as consultas nos web services.

    Att,

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

    terça-feira, 25 de junho de 2013 12:18
    Moderador
  • Boas Daniel,

    Esquecendo a opção do Javascript, penso que existe outra maneira mais fácil que o plugin, que é a execução de um workflow que pode ter uma custom activity que pesquise através do webservice. Tens aqui um exemplo de execução de um workflow através do Javascript.

    Falando agora do plugin a ideia é que cada vez que exista um pedido, seja criado uma entidade em que no create tu consultes o WebService e depois afectes esse registo com os valores retornados pelo WebService. Depois tens que realizar o Retrieve para retornar esse mesmo registo para poderes consultar os valores afectados.

    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, 26 de junho de 2013 09:40
  • Boas Daniel,

    Sim você só tem que simular uma acção de create ou update (ou outra mensagem) sobre uma entidade assim tem a certeza que o plugin vai executar, por exemplo quando alguém modifica um dos códigos você força a chamada de um create sobre uma entidade customizada e que é reponsável por executar o web service e constroi uma entidade com as informações que você necessita. O Jamie Miley tem um tutorial sobre este assunto muito bom, veja aqui.


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

    Pedro Azevedo Crm Specialist 4.0\2011


    terça-feira, 25 de junho de 2013 06:12

Todas as Respostas

  • Boas Daniel,

    Sim você só tem que simular uma acção de create ou update (ou outra mensagem) sobre uma entidade assim tem a certeza que o plugin vai executar, por exemplo quando alguém modifica um dos códigos você força a chamada de um create sobre uma entidade customizada e que é reponsável por executar o web service e constroi uma entidade com as informações que você necessita. O Jamie Miley tem um tutorial sobre este assunto muito bom, veja aqui.


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

    Pedro Azevedo Crm Specialist 4.0\2011


    terça-feira, 25 de junho de 2013 06:12
  • Daniel,

    A informação do Pedro vale se realmente for algo controlável por algum evento. Porém se precisar por exemplo que o botão do ribbon seja independente do registro, ou seja, não necessita de nenhuma ação ou que o form seja aberto, poderá criar um jscript que é acionado no click do ribbon e realiza as consultas nos web services.

    Att,

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

    terça-feira, 25 de junho de 2013 12:18
    Moderador
  • Boas Tiago,

    A ver se eu entendi a sua sugestão, basicamente está a sugerir que se aceda directamente ao WebService via Javascript, estou certo? Se o Daniel tiver essa possibilidade penso que é a melhor forma. Eu penso que para este caso temos que ter atenção, penso eu (se estiver errado por favor corrija) que não é muito fácil aceder a WebServices externos. Fica aqui um exemplo do que eu penso que o Tiago estava a sugerir e que se for possível será a melhor opção sem dúvida nenhuma:

    $.ajax({ 
            type: "POST",
            contentType: "application/json; charset=utf-8",
            datatype: "json",
            url: serviceURL,
            data: jsonData,
            beforeSend: function (XMLHttpRequest) {
                XMLHttpRequest.setRequestHeader("Accept", "application/json");
            },
            success: function (data, textStatus, XmlHttpRequest) {
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
            }
        });




    Pedro Azevedo Crm Specialist 4.0\2011

    terça-feira, 25 de junho de 2013 13:06
  • Isso mesmo Pedro a ideia é essa!

    []'s,


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

    terça-feira, 25 de junho de 2013 14:15
    Moderador
  • Entendi, no exemplo ele colocou a execução do plugin no Create de uma terceira entidade, mas seguindo esta linha de pensamento, como poderia receber o resultado desta execução.

    Exemplo : Na oportunidade pra dar continuidade ao processo de vendas preciso fazer uma  consulta, então clico em um botão que está na oportunidade e ele cria via JS este registro em uma terceira entidade , assim o plugim que e executado no Create desta terceira entidade consome o WebService e atualiza o registro com o resultado, mas o usuário que clicou no botão que esta na oportunidade esta esperando o resultado da consulta. O que fazer neste caso ?

    Ob: Realizar esta consulta via JS e uma terceira opção caso não consiga realizar via Plugin, mas preciso que seja via Plugin pois terei que passar dados importante somo usuário e senha e com Plugin e mais seguro.

    terça-feira, 25 de junho de 2013 20:22
  • Boas Daniel,

    Esquecendo a opção do Javascript, penso que existe outra maneira mais fácil que o plugin, que é a execução de um workflow que pode ter uma custom activity que pesquise através do webservice. Tens aqui um exemplo de execução de um workflow através do Javascript.

    Falando agora do plugin a ideia é que cada vez que exista um pedido, seja criado uma entidade em que no create tu consultes o WebService e depois afectes esse registo com os valores retornados pelo WebService. Depois tens que realizar o Retrieve para retornar esse mesmo registo para poderes consultar os valores afectados.

    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, 26 de junho de 2013 09:40
  • Daniel,

    Para resolver o problema de espera pode usar mensagens de alerta:

    http://tiagomcardoso.wordpress.com/2012/11/27/informativocarregandonoformulario/

    Att,


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

    quinta-feira, 26 de setembro de 2013 00:29
    Moderador