Сравнил Ваш код с
этим. Есть отличия. Попробуйте использовать такой код:
Код:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var soapXml = "<?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>" +
"<Execute xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+
"<Request xsi:type='SetStateLeadRequest'>" +
"<EntityId>" + leadId + "</EntityId>" +
"<LeadState>Qualified</LeadState>" +
"<LeadStatus>3</LeadStatus>" +
"</Request>" +
"</Execute>"+
"</soap:Body>" +
"</soap:Envelope>";
try {
xmlhttp.open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlhttp.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Execute");
xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlhttp.setRequestHeader("Content-Length", soapXml.length);
xmlhttp.send(soapXml);
var result = xmlhttp.responseXML.xml;
if (result.indexOf('faultcode') < 0)
crmForm.SubmitCrmForm(1,true,true,false);
else
alert(result);
} catch(e) {
alert(e.description);
}