Показать сообщение отдельно
Старый 20.08.2009, 09:24   #7  
Dekan is offline
Dekan
Участник
Аватар для Dekan
 
171 / 11 (1) +
Регистрация: 11.05.2009
Адрес: Оренбург
В проге fetch проверил, нормально возвращает id всех сущностей оборудования (хотя мне нужно количество сущностей вернуть):
Код:
<fetch mapping='logical'>
	<entity name='equipment'>
		<no-attrs/>
		<link-entity name='new_equipment_contractdetail' from='equipmentid' to='equipmentid'/>
	</entity>
</fetch>
А вот составить весь запрос не получается
Всё равно где-то допускаю ошибку, пишет "ошибка на странице", код такой:

Код:
// Prepare variables to fetch accounts.
var fetchMapping = "logical";
var entityName = "equipment";
var linkEntityname ="new_equipment_contractdetail";
var linkEntityfrom ="equipmentid";
var linkEntityto ="equipmentid";
var authenticationHeader = GenerateAuthenticationHeader();

// Prepare the SOAP message.
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'>"+ 
authenticationHeader+ 
"<soap:Body>"+ 
"<Fetch xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ 
"<fetchXml>&lt;fetch mapping='"+fetchMapping+"'&gt;"+ 
"&lt;entity name='"+entityName+"'&gt;"+ 
"&lt;link-entity name='"+linkEntityname+"' from='"+linkEntityfrom+"'&gt;" to='"+linkEntityto+"'&gt;"+ 
"&lt;/link-entity&gt;"+ 
"&lt;/entity&gt;"+ 
"&lt;/fetch&gt;</fetchXml>"+ 
"</Fetch>"+ 
"</soap:Body>"+ 
"</soap:Envelope>";
// Prepare the xmlHttpObject and send the request.
var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xHReq.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Fetch");
xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xHReq.setRequestHeader("Content-Length", xml.length);
xHReq.send(xml);
// Capture the result.
var resultXml = xHReq.responseXML;

// Check for errors.
var errorCount = resultXml.selectNodes('//error').length;
if (errorCount != 0)
{
 var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
 alert(msg);
}
// Process and display the results.
else
{

// Capture the result and UnEncode it.
var resultSet = new String();
resultSet = resultXml.text;
resultSet.replace('&lt;','<');
resultSet.replace('&gt;','>');

// Create an XML document that you can parse.
   var oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
   oXmlDoc.async = false; 
// Load the XML document that has the UnEncoded results.
   oXmlDoc.loadXML(resultSet);
// Display the results.
   var results = oXmlDoc.getElementsByTagName('result');
      var msg = "\equipment Id\t\t\t\tequipment Name\r";
msg +="--------------------------------------------------------------------------------\r";
    for (i=0;i < results.length;i++)
    {
     var idValue = results[i].selectSingleNode('./equipmentid').nodeTypedValue;
     var name = results[i].selectSingleNode('./name').nodeTypedValue;
     msg += idValue +"\t"+ name+"\r";
    alert(idValue);
	}