none
Chamar WebService via JScript com mais de um parametro RRS feed

  • Pergunta

  • Boa tarde a todos...

     

    Fiz um WebService que verifica se o nome informado corresponde ao CPF informado.

    Porém não consigo executar este WebService passanodo os dois parametros (nome e cpf)

    Segue o JScript:

    var soapBody ="<soap:Body>" +
    "<cpf xmlns=\"http://tempuri.org/\">" +
    "<_cpf>" + input + "</_cpf:>" +
    "</cpf>" +
    "<nome xmlns=\"http://tempuri.org/\">" +
    "<_nome>" + input2 + "</_nome:>" +
    "</nome>" +
    "</soap:Body>";
    
    var xml = "" + 
      "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + 
      "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + 
      GenerateAuthenticationHeader() + 
      soapBody +
      "</soap:Envelope>" + 
      "";  
    
     var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    
     xmlHttpRequest.Open("POST", "http://localhost:56428/ValidarCPF.asmx/ValidarCPF", false);
     xmlHttpRequest.setRequestHeader("SOAPAction","http://tempuri.org/cep");
     xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); 
     xmlHttpRequest.setRequestHeader("Content-Length", xml.length); 
     xmlHttpRequest.send(xml);  
     var resultXml = xmlHttpRequest.responseXML;
    

    O erro retornado no evento OnChange do campo cpf é::

    Erro: Número de argumentos incorreto ou atribuição de propriedade inválida

     

    Alguém pode me ajudar?

     

    sábado, 6 de novembro de 2010 18:38

Respostas

Todas as Respostas

  • Olá Carlos,

     

    Você pode utilizar a função RemoteCommand:

    http://rami-heleg.blogspot.com/2010/07/using-remotecommand-in-crm-40.html

     

    Recomendo você copia a função para seu código e renomeá-la. Desta forma você estará utilizando-a de forma suportada ;)

     

    Abraço,

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves sábado, 6 de novembro de 2010 20:33
    • Marcado como Resposta RicardoAlves segunda-feira, 8 de novembro de 2010 20:58
    sábado, 6 de novembro de 2010 20:33
  • Opa,

     

    Obrigado Ricardo

    Porém escrevi a função porém me retorna um erro dizendo que Erro:'Custom Command' não está definido;

    var cmd = new CustomCommand('ValidarCPF', 'validarCPF', 'http://localhost:56428/ValidarCPF.asmx/ValidarCPF', 'http://validarCPF.org/');
    cmd.SetParameter('_cpf', _cpf);
    cmd.SetParameter('_nome', _nome);
    var rslt = cmd.Execute();
    if (!rslt || !rslt.ReturnValue){
      var vstatus = resultXml.getElementsByTagName('Status');
      var vmensagem = resultXml.getElementsByTagName('Mensagem');
      
      if (vstatus == 1)
      {
        window.alert(vmensagem);
      }
      else if (vstatus == 2)
      {
        window.alert(vmensagem);
      }
      else if (vstatus == 3)
      {
        window.alert(vmensagem);
      } 
    return;
    
    }
    if (rslt.ReturnValue.errorDescription) {
    //Failed
    alert(rslt.ReturnValue.errorDescription);
    return;
    }
    
    SEgundo a função do Rami Heleg, o parametro "/MySite/" é a URL do WebService?

     

    domingo, 7 de novembro de 2010 16:26
  • Carlos,

     

    Essa função é do próprio Dynamics CRM, mas não permitido o uso.

    O erro "não está definido" é porque ela realmente não existe. Está parte que você copio é apenas a chamada da função, você precisa copiá-la para seu fonte para funcionar...

     

    Eu criei um post com a função no blog:

    http://ricardoalves.me/56/consultar-webservice-via-jscript-no-dynamics-crm/

     

    Abraço,

     


    Ricardo Alves
    www.ricardoalves.me
    • Sugerido como Resposta RicardoAlves domingo, 7 de novembro de 2010 19:16
    • Marcado como Resposta RicardoAlves segunda-feira, 8 de novembro de 2010 20:58
    domingo, 7 de novembro de 2010 19:16