| 
			
			 | 
		#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);
}
				__________________ 
		
		
		
		
	Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать!   Блога
			 | 
| 
	
 | 
| 
			
			 | 
		#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  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Консультант-джедай 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Кажется все таки нашел похожий пример... буду химичить  
		
		
		
		
		
		
			    ![]() http://social.microsoft.com/Forums/e...3-d67f7c775c6d и еще вот http://jianwang.blogspot.com/2008/01...-security.html 
				__________________ 
		
		
		
		
	Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать!   Блога
			 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Консультант-джедай 
		
			
	 | 
	
	
	
		
		
		
		 
			
			C линками что-то не получилось  
		
		
		
		
		
		
			  нарисовал с помощью фетча http://technet.microsoft.com/en-us/l.../cc677073.aspx  
		
				__________________ 
		
		
		
		
	Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать!   Блога
			 | 
| 
	
 | 
| 
	
	 | 
	
			 
			Похожие темы
		 | 
	||||
| Тема | Ответов | |||
| Как создать экземпляр кастомной сущности через SOAP? | 7 | |||
| Дата в SOAP-запросе | 1 | |||
| crmForm.IsDirty зохватит всех! | 10 | |||
		
  |