AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2009, 15:54   #1  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
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  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Lightbulb
Цитата:
Сообщение от 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  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Кажется все таки нашел похожий пример... буду химичить

http://social.microsoft.com/Forums/e...3-d67f7c775c6d

и еще вот

http://jianwang.blogspot.com/2008/01...-security.html
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 08.06.2009, 10:13   #4  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
C линками что-то не получилось нарисовал с помощью фетча http://technet.microsoft.com/en-us/l.../cc677073.aspx
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как создать экземпляр кастомной сущности через SOAP? Tony Green Dynamics CRM: Разработка 7 27.02.2009 08:37
Дата в SOAP-запросе ZooY Dynamics CRM: Разработка 1 02.07.2008 07:14
crmForm.IsDirty зохватит всех! Черничкин Станислав Dynamics CRM: Разработка 10 19.02.2008 08:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:05.