21.03.2012, 13:54 | #1 |
Участник
|
CRM 2011, вопрос о SOAP
товарищи!
Добрый день! Подскажите, пожалуйста, как получить имя объекта в лукапе.. подробнее - есть сущность opportunity, на ней есть лукап new_projectid запрос получает несколько сущностей opportunity и соответствующие new_projectid. projectnameValue.nodeTypedValue дает id соответствующего проекта, а имя достать не получается. в XMLresponse оно есть, но достать не получается (пробовал по всякому) X++: function opportunity() { 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>"+ "<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>opportunity</q1:EntityName>"+ "<q1:ColumnSet xsi:type='q1:ColumnSet'>"+ "<q1:Attributes>"+ "<q1:Attribute>opportunityid</q1:Attribute>"+ "<q1:Attribute>new_projectid</q1:Attribute>"+ //"<q1:Attribute>new_object</q1:Attribute>"+ "</q1:Attributes>"+ "</q1:ColumnSet>"+ "<q1:Distinct>false</q1:Distinct>"+ "</query>"+ "</RetrieveMultiple>"+ "</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/RetrieveMultiple"); 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 + 'we'); } // Parse and display the results. else { var results = resultXml.getElementsByTagName('BusinessEntity'); var msg = ""; if (results.length == 0) { msg = "No id were found in ."; alert(msg); return; } else { for (i=0;i < 10;i++) { var idValue = results[i].selectSingleNode('./q1:opportunityid').nodeTypedValue; var projectnameValue = results[i].selectSingleNode('./q1:new_projectid'); if (projectnameValue != null) { alert(idValue + projectnameValue.nodeTypedValue); } } } } } |
|
21.03.2012, 13:58 | #2 |
Участник
|
Вот здесь была похожая ситуация
CRM 4.0 Присвоение одному атрибуту сущности значения другого атрибута связанной сущности Надо было вызвать getAttribute("name"); у узла. в котором имя хранится |
|
|
За это сообщение автора поблагодарили: mistah (1). |
21.03.2012, 14:10 | #3 |
Участник
|
g.Naukovych, точно, спасибо!
|
|
21.03.2012, 14:41 | #4 |
Участник
|
а дополнительный вопрос:
если пишу: X++: results[i].selectSingleNode('./q1:new_projectid').getAttribute("name"); если пишу X++: results[i].selectSingleNode('//q1:new_projectid').getAttribute("name"); |
|
21.03.2012, 14:43 | #5 |
Участник
|
Вы пришлите Респонс, чтобы было проще отвечать.
|
|
21.03.2012, 14:49 | #6 |
Участник
|
g.Naukovych разобрался уже, спасибо!
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|