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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2009, 10:17   #1  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Использование веб сервисов.
Здравствуйте, уважаемые.
Сразу скажу, что только начинаю разбираться с CRM 4.0 и могу написать что-нибудь не то, но всё же (читаю SDK).
Проблема такая - в форме Интерес добавлено поле типа lookup (выбирается бизнес-партнер), нужно вычитать Название этой организации, Телефон и вставить в соответствующие поля в форме Интерес.
Насколько я понял по форумам делается это с помощью вэб сервисов.
Пытаюсь сделать, результат следующий: название ставится, телефон нет.
Вопрос как вставить телефон.

Вот что я делаю: на событие OnChange поля customerid (добавленный lookup) вешаю такой код:

var lookupItem = new Array;

lookupItem = crmForm.all.customerid.DataValue;
if (lookupItem[0] != null)
{
alert(crmForm.all.companyname.DataValue = lookupItem[0].name);
alert(lookupItem[0].id);
}

var accountid = "lookupItem[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>account</entityName>"+
"<id>"+accountid+"</id>"+
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+
"<q1:Attribute>telephone1</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/2007/WebServices/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:telephone1").nodeTypedValue);

crmForm.all.telephone1.DataValue = alert(lookupItem[0].telephone1);
}
Старый 03.06.2009, 10:55   #3  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Я правильно понял, что этот код нужно вешать на OnChange поля customerid ?
Старый 03.06.2009, 11:00   #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
А при каком событии Вы хотите подтягивать телефон?
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 03.06.2009, 12:02   #5  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
А при каком событии Вы хотите подтягивать телефон?
При выборе бизнес-партнера в lookup.
Старый 03.06.2009, 11:00   #6  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Да, вставляете функцию и ее вызов.
Старый 03.06.2009, 12:14   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от Murzin Andrey Посмотреть сообщение
Здравствуйте, уважаемые.
Пытаюсь сделать, результат следующий: название ставится, телефон нет.
Вопрос как вставить телефон.

// 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:telephone1").nodeTypedValue);

crmForm.all.telephone1.DataValue = alert(lookupItem[0].telephone1);
}
Вы не используете значение которое получили из сервиса.
Код:
crmForm.all.telephone1.DataValue = resultXml.selectSingleNode("//q1:telephone1").nodeTypedValue;
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional

Последний раз редактировалось Артем Enot Грунин; 03.06.2009 в 12:18.
Старый 03.06.2009, 12:38   #8  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Вы не используете значение которое получили из сервиса.
Код:
crmForm.all.telephone1.DataValue = resultXml.selectSingleNode("//q1:telephone1").nodeTypedValue;
Делаю с таким кодом, пишет ошибку "An unexpected error occurred"


Кто делал похожую работу, может покажете код )). Буду оч. благодарен.
Старый 03.06.2009, 12:54   #9  
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
Цитата:
Сообщение от Murzin Andrey Посмотреть сообщение
Делаю с таким кодом, пишет ошибку "An unexpected error occurred"


Кто делал похожую работу, может покажете код )). Буду оч. благодарен.
Весь свой код приведите, пожалуйста, для работы над ошибками.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 03.06.2009, 13:01   #10  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Спасибо, разобрался. Заработало.

Только теперь другая проблема. При выборе бизнес-партнера появляются сообщения со значениями искомых полей. Как их убрать? ))

Код такой:

var lookupItem = new Array;

lookupItem = crmForm.all.customerid.DataValue;

var accountid = "lookupItem[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>account</entityName>"+
"<id>"+lookupItem[0].id+"</id>"+
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+
"<q1:Attribute>telephone1</q1:Attribute>"+
"</q1:Attributes>"+

"<q1:Attributes>"+
"<q1:Attribute>name</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/2007/WebServices/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:telephone1").nodeTypedValue);
alert(resultXml.selectSingleNode("//q1:name").nodeTypedValue);

crmForm.all.telephone1.DataValue = resultXml.selectSingleNode("//q1:telephone1").nodeTypedValue;
crmForm.all.companyname.DataValue = resultXml.selectSingleNode("//q1:name").nodeTypedValue;
}
Старый 03.06.2009, 13:05   #11  
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
Цитата:
Сообщение от Murzin Andrey Посмотреть сообщение
Спасибо, разобрался. Заработало.

Только теперь другая проблема. При выборе бизнес-партнера появляются сообщения со значениями искомых полей. Как их убрать? ))

Код такой:

var lookupItem = new Array;

lookupItem = crmForm.all.customerid.DataValue;

var accountid = "lookupItem[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>account</entityName>"+
"<id>"+lookupItem[0].id+"</id>"+
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+
"<q1:Attributes>"+
"<q1:Attribute>telephone1</q1:Attribute>"+
"</q1:Attributes>"+

"<q1:Attributes>"+
"<q1:Attribute>name</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/2007/WebServices/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:telephone1").nodeTypedValue);
alert(resultXml.selectSingleNode("//q1:name").nodeTypedValue);


crmForm.all.telephone1.DataValue = resultXml.selectSingleNode("//q1:telephone1").nodeTypedValue;
crmForm.all.companyname.DataValue = resultXml.selectSingleNode("//q1:name").nodeTypedValue;
}
Все alert() конструкции убеите и будет Вам счастье.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 03.06.2009, 12:14   #12  
slivka_83 is offline
slivka_83
Консультант-джедай
Аватар для slivka_83
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
1,683 / 374 (16) ++++++
Регистрация: 18.12.2008
Адрес: default city
Тогда если это новое поле, то оно не может быть customerid! у него должен быть префикс
__________________
Крокодил, крокожу и буду крокодить.
Человек человеку - волк , а зомби зомби - зомби.
Экстремал и буду экстремать!
Блога
Старый 03.06.2009, 12:15   #13  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от slivka_83 Посмотреть сообщение
Тогда если это новое поле, то оно не может быть customerid! у него должен быть префикс
Интерес уже связан с Клиентом. Это стандартное поле
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 03.06.2009, 15:31   #14  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Можно. Например посидеть и подумать, а не постить после каждого бага!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 04.06.2009, 08:02   #15  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Доброе утро.
Целые сутки просидел с этой темой - ничего не вышло, ошибка и всё тут.
Может кто обошёл эту проблему?
Изображения
 

Последний раз редактировалось Murzin Andrey; 04.06.2009 в 08:05.
Старый 04.06.2009, 08:48   #16  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Типичный null pointer! Где-то не вернулся объект или вы неправильно к нему обращаетесь.

p.s. Это не форум отладчиков, это форум по MS CRM. Код из SDK работает? Работает! В алерты нужное значение попадает? Попадает. Если вы не в состоянии его использовать, то вам не сюда, а на курсы по Java Script!
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 04.06.2009, 09:41   #17  
Murzin Andrey is offline
Murzin Andrey
Участник
 
12 / 10 (1) +
Регистрация: 03.06.2009
Адрес: Россия
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Типичный null pointer! Где-то не вернулся объект или вы неправильно к нему обращаетесь.

p.s. Это не форум отладчиков, это форум по MS CRM. Код из SDK работает? Работает! В алерты нужное значение попадает? Попадает. Если вы не в состоянии его использовать, то вам не сюда, а на курсы по Java Script!
Уважаемый Артем, я понимаю, что просто объект не вернулся (потому что значение в поле отсутствует), если есть значение, то всё хорошо. И не спорю, что код из SDK работает или нет, он работает.
В моём случае нужно не ошибку в коде искать (её нет), а какое-то дополнение к нему дописать, вот в чём загвоздка. В SDK об этом я ничего не нашёл (

P.S. форум же для того и существует, чтобы кто уже знает о чём-то подсказал тому кто ещё об этом не знает, на мой взгляд.
Старый 04.06.2009, 09:58   #18  
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
Цитата:
Сообщение от Murzin Andrey Посмотреть сообщение
Уважаемый Артем, я понимаю, что просто объект не вернулся (потому что значение в поле отсутствует), если есть значение, то всё хорошо. И не спорю, что код из SDK работает или нет, он работает.
В моём случае нужно не ошибку в коде искать (её нет), а какое-то дополнение к нему дописать, вот в чём загвоздка. В SDK об этом я ничего не нашёл (

P.S. форум же для того и существует, чтобы кто уже знает о чём-то подсказал тому кто ещё об этом не знает, на мой взгляд.
Учите JavaScript. Посмотрите в SDK как отладить JavaScript.

PS форум существует для того, чтобы помогать в решении проблемы, а не решать проблемы человека за него. Я всё сказал.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 04.06.2009, 11:36   #19  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Могу дать только такие советы: (на этот раз по существу)
1. Сохраняйте карточку объекта прежде чем запускать предварительный просмотр формы, иначе последние изменения не сохранятся.
2. Используйте alert(); для поиска фрагмента кода, который дает сбой
3. По слухам в IE8 включили достаточно мощный инструментарий разработчика. В том числе "отладчик скриптов нового поколения".
4. К просветлению может привести лишь долгий путь самопознания. Форум нужен в случае экстренной необходимости или потребности в дискуссии.

И прошу прощения за излишнюю резкость.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Где найти веб-форму Преобразования интереса? Impulse Dynamics CRM: Разработка 2 28.09.2008 13:55
Ошибка при создании веб-ссылки в MS VS? Alexey-IT Dynamics CRM: Разработка 1 12.01.2008 03:24
Через веб не отображается полученная почта Hungrymar Dynamics CRM: Администрирование 14 19.12.2006 10:09
Не могу отправить почту через веб-интерфейс Hungrymar Dynamics CRM: Администрирование 0 18.11.2006 09:44
Ошибки в веб интерфесе DiMish Dynamics CRM: Администрирование 5 29.11.2005 17:50

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

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

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