none
Detecção de Duplicatas RRS feed

  • Pergunta

  • Boa tarde,

    Tenho um prblema, utilizando a detecção de duplicata nativa do sistema, consigo mostrar ao usuário que o registro está duplicado, mas não consigo impediló de cadastrar registros duplicados. Entaão fiz um consulta na base e retorno a conta cadastrada duplicada no ON save, e limpo o campo . Porem o registro salva normalmentes, como posso impedir a ação de salvar  depois da verificação de detecção via script no ON SAVE do formulário.

    ON SAVE


    //Dupicidade de CNPJ na Conta
    function RetrieveContaCNPJDuplicado(CNPJ)
    {
     var xml = "" +
     "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
     "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
      GenerateAuthenticationHeader() +
      " <soap:Body>" +
       " <RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
        " <query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
        " <q1:EntityName>account</q1:EntityName>" +
        " <q1:ColumnSet xsi:type=\"q1:AllColumns\" />" +
        " <q1:Distinct>false</q1:Distinct>" +
        " <q1:Criteria>" +
         " <q1:FilterOperator>And</q1:FilterOperator>" +
         " <q1:Conditions>" +
          " <q1:Condition>" +
          " <q1:AttributeName>new_cnpj</q1:AttributeName>" +
          " <q1:Operator>Equal</q1:Operator>" +
          " <q1:Values>" +
          " <q1:Value xsi:type=\"xsd:string\">" + CNPJ + "</q1:Value>" +
          " </q1:Values>" +
          " </q1:Condition>" +
          " </q1:Conditions>" +
        " </q1:Criteria>" +
        " </query>" +
       " </RetrieveMultiple>" +
      " </soap:Body>" +
     "</soap:Envelope>" +
     "";

     var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
     xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
     xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
     xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
     xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
     xmlHttpRequest.send(xml);

     var resultXml = xmlHttpRequest.responseXML;
     var entityNodes = resultXml.selectNodes("//RetrieveMultipleResult/BusinessEntities/BusinessEntity");

     if (entityNodes.length == 0) return (null);

     var entityNode = entityNodes[0];
     
     var Nomenode = entityNode.selectSingleNode("q1:name");
     var CNPJnode = entityNode.selectSingleNode("q1:new_cnpj");
     
      if (crmForm.all.new_tipodeclientefj.DataValue == true)
        {
          alert( 'Já exixte uma Conta cadastrada com o CNPJ -->  ' +  CNPJnode.text + ' - ' + Nomenode.text  );
          crmForm.all.new_cnpj.DataValue = null;
     crmForm.all.new_cnpj.SetFocus();
     }
     else
      {
         alert( 'Já exixte uma Conta cadastrada com o CPF -->  ' +  CNPJnode.text + ' - ' + Nomenode.text  );
               crmForm.all.new_cnpj.DataValue = null;
             crmForm.all.new_cnpj.SetFocus();
      }

    // Preicso abortar a ação de salvar em andamento

     return (null);
    }


    Tiago Henrique Consultor de Implantação Microssoft Dynamics CRM
    segunda-feira, 4 de outubro de 2010 20:48