05.06.2009, 15:54 | #1 |
Консультант-джедай
|
SOAP и Join
Добрый день!
Такой (не)большой вопросик Есть у меня три объекта: Объект1 ссылается через лукап на Объект2. Объект2 ссылается через лукап на Бизнес-партнеров. Мне нужно на форме Объекта1 получить имя Бизнес-партнера, связанного с Объектом1 через Объект2. На данный момент мне удалось с формы Объекта1 выцепить айдишник Бизнес-партнера с Объекта2. Я могу аналогичным соап запросом выцепить имя Бизнес-партнера (айдишник у меня уже есть), но эти соап запросы жутко тормозят срм. Поэтому хотелось бы обойтись одним запросом. Говорят можно как-то использовать join, но что-то никакой внятной информации по этому поводу (применительно к срм и javascript) я в инете не нашел. Может кто знает как это можно сделать (или ссылочку подкинет ). Вот код что у меня есть: Код: // Prepare variables for a contact to retrieve. var statusid = crmForm.all.new_statusid.DataValue[0].id; 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>"+ "<Retrieve xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ "<entityName>new_status</entityName>"+ "<id>"+statusid+"</id>"+ "<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+ "<q1:Attributes>"+ "<q1:Attribute>new_accountid</q1:Attribute>"+ "</q1:Attributes>"+ "</columnSet>"+ "</Retrieve>"+ "</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/200...vices/Retrieve"); 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); } // Display the retrieved value. else { alert(resultXml.selectSingleNode("//q1:new_accountid").nodeTypedValue); }
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
05.06.2009, 16:08 | #2 |
Чайный пьяница
|
Цитата:
Сообщение от slivka_83
Добрый день!
Такой (не)большой вопросик Есть у меня три объекта: Объект1 ссылается через лукап на Объект2. Объект2 ссылается через лукап на Бизнес-партнеров. Мне нужно на форме Объекта1 получить имя Бизнес-партнера, связанного с Объектом1 через Объект2. На данный момент мне удалось с формы Объекта1 выцепить айдишник Бизнес-партнера с Объекта2. Я могу аналогичным соап запросом выцепить имя Бизнес-партнера (айдишник у меня уже есть), но эти соап запросы жутко тормозят срм. Поэтому хотелось бы обойтись одним запросом. Говорят можно как-то использовать join, но что-то никакой внятной информации по этому поводу (применительно к срм и javascript) я в инете не нашел. Может кто знает как это можно сделать (или ссылочку подкинет ). Вот код что у меня есть: Код: // Prepare variables for a contact to retrieve. var statusid = crmForm.all.new_statusid.DataValue[0].id; 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>"+ "<Retrieve xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>"+ "<entityName>new_status</entityName>"+ "<id>"+statusid+"</id>"+ "<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+ "<q1:Attributes>"+ "<q1:Attribute>new_accountid</q1:Attribute>"+ "</q1:Attributes>"+ "</columnSet>"+ "</Retrieve>"+ "</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/200...vices/Retrieve"); 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); } // Display the retrieved value. else { alert(resultXml.selectSingleNode("//q1:new_accountid").nodeTypedValue); } Первое - пользуйтесь Link-ами при построения запроса. Второе - для того, чтобы получить SOAP запрос - воспользуйтесь идеей Stunware.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
05.06.2009, 16:27 | #3 |
Консультант-джедай
|
Кажется все таки нашел похожий пример... буду химичить
http://social.microsoft.com/Forums/e...3-d67f7c775c6d и еще вот http://jianwang.blogspot.com/2008/01...-security.html
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
08.06.2009, 10:13 | #4 |
Консультант-джедай
|
C линками что-то не получилось нарисовал с помощью фетча http://technet.microsoft.com/en-us/l.../cc677073.aspx
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Как создать экземпляр кастомной сущности через SOAP? | 7 | |||
Дата в SOAP-запросе | 1 | |||
crmForm.IsDirty зохватит всех! | 10 |
|