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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.04.2009, 07:55   #21  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
Код:
var invite4 =  GetAttributeValueFromID('new_date_protocol', crmForm.all.new_protocolsfordate.DataValue[0].id, 'new_invite4');

crmForm.all.new_invite.DataValue=invite4



function GetAttributeValueFromID(sEntityName, GUID, sAttributeName)
{
var authenticationHeader = GenerateAuthenticationHeader();
// Prepare the SOAP message.
var xml = "";
xml = 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>"+sEntityName+"</entityName>"+ 
"<id>"+GUID+"</id>"+ 
"<columnSet xmlns:q1='http://schemas.microsoft.com/crm/2006/Query' xsi:type='q1:ColumnSet'>"+ 
"<q1:Attributes>"+ 
"<q1:Attribute>"+sAttributeName+"</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;

var result = resultXml.selectSingleNode("//q1:" + sAttributeName).nodeTypedValue;

if (errorCount != 0)
{
 var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
result = " ";
}
// Display the retrieved value.
else 
{
alert('test')
return result;
}
}
Сначала показывает test, а затем нижеописанное сообщение

Последний раз редактировалось vital.mih; 01.04.2009 в 07:59.
Старый 02.04.2009, 07:28   #22  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
ну что нет ни у кого идей??
Старый 02.04.2009, 12:05   #23  
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
Цитата:
Сообщение от vital.mih Посмотреть сообщение
ну что нет ни у кого идей??
Это только идеи, которые не могу проверить на практике, потому что в отпуске с ноутом на коленях .

Итак:
1. Стоит всё-таки везде где надо ставить ; В вашем случае это строка 3 - crmForm.all.new_invite.DataValue=invite4;

2. Перед присвоением - поставьте alert(invite4); и убедитесь, что возвращается корректное значение.

3. Убедитесь, что поле new_invite вынесено на форму и желательно таки указать его тип, чтобы знать с чем имеем дело.

4. Перед выполнением поиска желательно вставить проверку, что crmForm.all.new_protocolsfordate.DataValue != null &&crmForm.all.new_protocolsfordate.DataValue.length != 0

Пробуйте. Если опять не заработает - есди дождётесь меня из отпуска и Вам не помогут - постараюсь помочь.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 02.04.2009, 12:27   #24  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Цитата:
Сообщение от vital.mih Посмотреть сообщение
ну что нет ни у кого идей??
Да, пользуйтесь alert`ами, эту функцию привел как пример на основе sdk
сейчас заканчиваю проект у себя, так что пока нет свободного времени. На след неделе просмотрю и переделаю функцию. Так что сейчас дебажте сами
Старый 02.04.2009, 15:15   #25  
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
Цитата:
Сообщение от Bondonello Посмотреть сообщение
Да, пользуйтесь alert`ами, эту функцию привел как пример на основе sdk
сейчас заканчиваю проект у себя, так что пока нет свободного времени. На след неделе просмотрю и переделаю функцию. Так что сейчас дебажте сами
А ещё лучше - волшебной коммандой debugger; (при этом не забудьте включить отладку скриптов у себя в браузере).
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 06.04.2009, 15:04   #26  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
не проходит короче эта строчка:
var result = resultXml.selectSingleNode("//q1:" + sAttributeName).nodeTypedValue;

Как бы задать условие, чтобы она не выполнялась, если искомый атрибут null?
Старый 06.04.2009, 15:07   #27  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
или как задать, чтобы в строке
var errorCount = resultXml.selectNodes('//error').length;
errorCount становилось единицей в случае, если искомый атрибут null?
Старый 06.04.2009, 16:35   #28  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
А как вытащить значение атрибута с типом дата?
Старый 06.04.2009, 17:07   #29  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Цитата:
Сообщение от vital.mih Посмотреть сообщение
А как вытащить значение атрибута с типом дата?
Точно так же, только потом его необходимо преобразовать в необходимый для себя
вот вариант "по-быстрому"
var datec;

datec = GetAttributeValueFromID("new_entity","{63802E36-49AB-DC11-94ED-000423AF733E}","new_daterate");

var year;
var month;
var day;

year = datec.substr(0,4);
month = datec.substr(5,2);
day = datec.substr(8,2);

crmForm.all.new_mydaterate.DataValue =new Date(year,month,day);
Старый 06.04.2009, 17:16   #30  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
Цитата:
Сообщение от Bondonello Посмотреть сообщение
Точно так же, только потом его необходимо преобразовать в необходимый для себя
вот вариант "по-быстрому"
var datec;

datec = GetAttributeValueFromID("new_entity","{63802E36-49AB-DC11-94ED-000423AF733E}","new_daterate");

var year;
var month;
var day;

year = datec.substr(0,4);
month = datec.substr(5,2);
day = datec.substr(8,2);

crmForm.all.new_mydaterate.DataValue =new Date(year,month,day);
все здорово, но у меня почему то дата на месяц больше. Хотя alert(month) показывает корректно...
Старый 06.04.2009, 17:51   #31  
SilentBlaze is offline
SilentBlaze
Участник
 
1 / 10 (1) +
Регистрация: 06.04.2009
А как присвоить Lookup-атрибут одной сущности Lookup аттрибуту другой сущности? Т.е. допустим у аккаунта есть связь c TestEntity (N:1) и у контакта есть связь с TestEntity (N:1). Как на форме создания (обновления) контакта при выборе Parent account подставить автоматически связь TestEntity аккаунта?
На OnChanged событии аттрибута parent_account я уже получил GUID TestEntity выбранного аккаунта. Осталось только присвоить crmForm.all.testentityid.DataValue значение. Но DataValue в этом случае NULL (пользователь ничего не выбрал). Кто-нибудь сталкивался с такой задачей? Есть идеи? Спасибо.
Старый 06.04.2009, 18:58   #32  
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
Цитата:
Сообщение от vital.mih Посмотреть сообщение
все здорово, но у меня почему то дата на месяц больше. Хотя alert(month) показывает корректно...
Месяцы нумеруются от 0 до 11. Об этом тут

Поэтому используйте примерно такой код:

Код:
var datec;

datec = GetAttributeValueFromID("new_entity","{63802E36-49AB-DC11-94ED-000423AF733E}","new_daterate");

var year;
var month;
var day;

year = datec.substr(0,4);
month = datec.substr(5,2) - 1;
day = datec.substr(8,2);

crmForm.all.new_mydaterate.DataValue =new Date(year,month,day);
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 06.04.2009, 19:04   #33  
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
Цитата:
Сообщение от SilentBlaze Посмотреть сообщение
А как присвоить Lookup-атрибут одной сущности Lookup аттрибуту другой сущности? Т.е. допустим у аккаунта есть связь c TestEntity (N:1) и у контакта есть связь с TestEntity (N:1). Как на форме создания (обновления) контакта при выборе Parent account подставить автоматически связь TestEntity аккаунта?
На OnChanged событии аттрибута parent_account я уже получил GUID TestEntity выбранного аккаунта. Осталось только присвоить crmForm.all.testentityid.DataValue значение. Но DataValue в этом случае NULL (пользователь ничего не выбрал). Кто-нибудь сталкивался с такой задачей? Есть идеи? Спасибо.
Тема заполнения лукапов уже не раз поднималась на форуме. Воспользовались бы поисковиком или SDK и нашли бы. Например такое
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 14.04.2009, 09:48   #34  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
А каким образом,наоборот, присвоить атрибут из "подвязанной сущности" атрибуту "главной", ведь там нет лукапа.
Старый 14.04.2009, 14:19   #35  
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
Цитата:
Сообщение от vital.mih Посмотреть сообщение
А каким образом,наоборот, присвоить атрибут из "подвязанной сущности" атрибуту "главной", ведь там нет лукапа.
1. Из подвязанной сущности, как не крутись, а айдишик родительской - вытащить можно. Если не нет на форме, то воспользовавшись веб сервисами.
2. Выполнить апдейт полей родительской сущности по полученному айдишнику родительской записи средствами веб сервисов.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit

Последний раз редактировалось a33ik; 14.04.2009 в 15:14.
Старый 07.07.2009, 08:39   #36  
vital.mih is offline
vital.mih
Участник
 
114 / 10 (1) +
Регистрация: 25.02.2009
Адрес: Пермь
Кстати, так вопрос и не решился, если искомый атрибут null?
Старый 07.07.2009, 09:45   #37  
Dekan is offline
Dekan
Участник
Аватар для Dekan
 
171 / 11 (1) +
Регистрация: 11.05.2009
Адрес: Оренбург
Цитата:
Сообщение от vital.mih Посмотреть сообщение
Кстати, так вопрос и не решился, если искомый атрибут null?
Я вопрос с null решил так:

telephone1= resultXml.selectSingleNode("//q1:telephone1");
if ( telephone1 !=null )
crmForm.all.telephone1.DataValue = telephone1.nodeTypedValue
else {crmForm.all.telephone1.DataValue = null}


работает.
Старый 08.09.2010, 05:49   #38  
Dicora is offline
Dicora
Участник
 
109 / 15 (1) ++
Регистрация: 12.07.2010
Молодцы =))

А с Гуидами в Пиклистке.... жжете.. ржал минуты 2 рассмешили =))))
Спасибо!
Старый 08.09.2010, 10:53   #39  
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
Цитата:
Сообщение от Dicora Посмотреть сообщение
Молодцы =))

А с Гуидами в Пиклистке.... жжете.. ржал минуты 2 рассмешили =))))
Спасибо!
Не совсем понял, почему посмешило. Можете объяснить?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значение поля одной сущности при обработке формы другой сущности zhenek Dynamics CRM: Разработка 25 05.07.2011 16:19
Получение атрибута из другого объекта Казарин Александр Dynamics CRM: Разработка 6 20.10.2008 18:08
Создание объекта сущности из другого объекта! SnSS Dynamics CRM: Разработка 5 29.05.2008 13:38
Отнимание одного значения от другое pkost Dynamics CRM: Разработка 2 14.03.2008 07:48
Rollup 2 и обкрытие атрибута сущности для кастомизации AHAPX1CT Dynamics CRM: Администрирование 1 23.08.2007 13:45

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

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

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