|
19.02.2011, 20:26 | #1 |
Участник
|
Цитата:
Сообщение от EvgenijM
Код: function GetAttributeValueByEntityId(entityName, entytiId, attributeName) { var xml = '' + '[?xml version=`1.0` encoding=`utf-8`?]' + '\r\n' + '[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`]' + '\r\n' + ' [soap:Body]' + '\r\n' + ' [entityName xmlns=`http://schemas.microsoft.com/crm/2006/WebServices`]' + entityName + '[/entityName]' + '\r\n' + ' [id xmlns=`http://schemas.microsoft.com/crm/2006/WebServices`]' + entytiId + '[/id]' + '\r\n' + ' [columnSet xmlns=`http://schemas.microsoft.com/crm/2006/WebServices` xmlns:q=`http://schemas.microsoft.com/crm/2006/Query` xsi:type=`q:ColumnSet`]' + '\r\n' + ' [q:Attributes]' + '\r\n' + ' [q:Attribute]' + attributeName + '[/q:Attribute]' + '\r\n' + ' [/q:Attributes]' + '\r\n' + ' [/columnSet]' + '\r\n' + ' [/soap:Body]' + '\r\n' + '[/soap:Envelope]' + ''; xml = xml.replace(/\[/gi, String.fromCharCode(60)); xml = xml.replace(/\]/gi, String.fromCharCode(62)); xml = xml.replace(/\`/gi, String.fromCharCode(34)); var xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP'); xmlHttpRequest.Open('POST', '/mscrmservices/2006/CrmService.asmx', false); xmlHttpRequest.setRequestHeader('SOAPAction','http://schemas.microsoft.com/crm/2006/WebServices/Retrieve'); xmlHttpRequest.setRequestHeader('Content-Type', 'text/xml; charset=utf-8'); xmlHttpRequest.setRequestHeader('Content-Length', xml.length); xmlHttpRequest.send(xml); var doc = xmlHttpRequest.responseXML; // alert(xmlHttpRequest.responseText); var retValue = ''; if (doc.selectSingleNode('//RetrieveResult/' + attributeName) != null) retValue = doc.selectSingleNode('//RetrieveResult/' + attributeName).text; return retValue; } Код: var oProduct = crmForm.all.productid; if (oProduct.DataValue != null && oProduct.DataValue[0] != null) { crmForm.all.SOME_OTHER_FIELD.DataValue = GetAttributeValueByEntityId('product', oProduct.DataValue[0].id, 'PRODUCT_ATTRIBUTE_NAME'); } Сообщение с веб-страницы --------------------------- <?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"> <soap:Body> <soap:Fault> <faultcode>soap:Client</faultcode> <faultstring>System.Web.Services.Protocols.SoapException: Сервер не распознал заголовок HTTP SOAPAction: http://srv/mscrmservices/2006/WebServices/Retrieve. at System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest() at System.Web.Services.Protocols.SoapServerProtocol.Initialize() at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)</faultstring> <detail /> </soap:Fault> </soap:Body> </soap:Envelope> --------------------------- ОК --------------------------- Уже кучу способов перепробовал, а результат один . Подскажите пожалуйста, в чем моя ошибка? |
|
21.02.2011, 01:20 | #2 |
Участник
|
|
|