|
![]() |
#1 |
Участник
|
В проге 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><fetch mapping='"+fetchMapping+"'>"+ "<entity name='"+entityName+"'>"+ "<link-entity name='"+linkEntityname+"' from='"+linkEntityfrom+"'>" to='"+linkEntityto+"'>"+ "</link-entity>"+ "</entity>"+ "</fetch></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('<','<'); resultSet.replace('>','>'); // 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); } |
|