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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2012, 10:18   #1  
absurdperson is offline
absurdperson
Участник
 
27 / 11 (1) +
Регистрация: 07.02.2012
CRM 4 и JavaScript
Задача такого плана: имеется пользовательская сущность (new_request), связанная связью Многие-к-Одному с сущностями Бизнес-партнёр и Контакты. В этой сущности есть лукапы для выбора Бизнес-партнёра и Контакта. Суть в следующем: после выбора Бизнес-партнёра, в лукапе Контактов необходимо отобразить список Контактов, непосредственно связанных с выбранным ранее Бизнес-партнёром, а по умолчанию там отображён список всех сохранённых в базе Контактов, что совсем неудобно. К тому же, после выбора Контактов желательно, чтобы автоматически заполнились дополнительные поля Электронная почта и Телефон, указанные в выбранном Контакте, но это позже. Думаю, если решу первую часть задачи, то решать вторую часть будет уже проще.
Самый оптимальный способ реализации по моему мнению - это использование JavaScript. Проблема в том, что с ним Я совершенно не знаком. К тому же проблема осложняется отсутствием компилятора, поэтому не совсем ясно, где же именно у меня ошибка и вообще, верным ли является мой код. Покопавшись в сущностях, атрибутах и связях нашёл атрибут parentcustomerid в сущности contact. Судя по всему, в нём помещаются идентификаторы Контактов, которые привязаны пользователем к Бизнес-партнёрам. Описав задачу на бумаге пришёл к серии выводов:
1) Мне необходимо получить значение account.accountid из моего лукапа, в котором выбирается Бизнес-партнёр (в моей сущности он называется new_accountid);
2) Затем нужно получить значение contact.parentcustomerid, который должен совпадать с account.accountid;
3) Скрыть записи из списка выбора лукапа контактов, при условии, что contact.parentcustomerid != new_request.new.accountid

Изучив кое-какие обучающие материалы в инете, Я так и не нашёл толкового кода, который бы работал с CRM 4. Почему-то не работает даже простейший вариант, в котором запоминается значение из лукапа, взятый с mmcrm.ru:

Цитата:
var lookup = crmForm.all.<имя_лукап_поля>.DataValue;
if (lookup[0] != null) {
var theText = lookup[0].name;
}
При выполнении этого скрипта появляется вот такое сообщение:


Подскажите хотя бы с чего мне начать и куда двигать, а то весь проект на этом месте застопорился. И какова вообще структура JavaScript-кода, предназначенного для кастомизации.

PS Важно это или нет, но добавлю, что весь код пишу в самой CRM на событии onChange
Старый 28.03.2012, 10:45   #2  
Borisvil is offline
Borisvil
Участник
 
123 / 36 (2) +++
Регистрация: 03.06.2011
Адрес: Санкт-Петербург
Здравствуйте!

У Вас на самом деле две разные задачи.
Первая - сделать фильтрацию лукапа. Информации и вариантов по этой теме много. Тем самым сделаете что будут отображаться только те контакты, которые относятся к выбранному бизнес-партнеру.
Вторая - при выборе контакта в лукапе подтянуть из его полей типа электронная почта информацию и записать ее в поля формы, это тоже делается несложно через JavaScript, например через retrieve.
За это сообщение автора поблагодарили: absurdperson (1).
Старый 28.03.2012, 10:55   #3  
absurdperson is offline
absurdperson
Участник
 
27 / 11 (1) +
Регистрация: 07.02.2012
Цитата:
Сообщение от Borisvil Посмотреть сообщение
Здравствуйте!

У Вас на самом деле две разные задачи.
Первая - сделать фильтрацию лукапа. Информации и вариантов по этой теме много. Тем самым сделаете что будут отображаться только те контакты, которые относятся к выбранному бизнес-партнеру.
Вторая - при выборе контакта в лукапе подтянуть из его полей типа электронная почта информацию и записать ее в поля формы, это тоже делается несложно через JavaScript, например через retrieve.
На самом деле так и есть. Вторая задача тоже мне кажется более простой. Вопрос в основном по первой задаче. Совершенно не знаю, с чего начать техническую реализацию. Кажется при поиске решения первой задачи упустил ключевое слово фильтрация... С него и начну, спасибо за подсказку! :-)

Последний раз редактировалось absurdperson; 28.03.2012 в 10:57.
Старый 28.03.2012, 11:26   #4  
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
Фильтрация лукапов:
http://mscrmfilteredlookup.codeplex.com/
http://crm.georged.id.au/post/2008/0...-in-CRM-4.aspx
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: absurdperson (1).
Старый 28.03.2012, 14:50   #5  
griefon is offline
griefon
Участник
 
131 / 52 (2) ++++
Регистрация: 07.12.2010
Адрес: down under
Цитата:
Сообщение от absurdperson Посмотреть сообщение
var lookup = crmForm.all.<имя_лукап_поля>.DataValue;
if (lookup[0] != null) {
var theText = lookup[0].name;
}
Судя по ошибке, имя <имя_лукап_поля> у вас - new_request.new_accountid. Хотя, правильно будет new_accountid, ведь у вас лукап на организации?

Компилятора тут нет, но можно пользоваться отладчиком встроенным в IE или в Visual Studio. Отлаживать код без отладчика - занятие неблагодарное.
Старый 29.03.2012, 08:54   #6  
absurdperson is offline
absurdperson
Участник
 
27 / 11 (1) +
Регистрация: 07.02.2012
Цитата:
Сообщение от griefon Посмотреть сообщение
Судя по ошибке, имя <имя_лукап_поля> у вас - new_request.new_accountid. Хотя, правильно будет new_accountid, ведь у вас лукап на организации?

Компилятора тут нет, но можно пользоваться отладчиком встроенным в IE или в Visual Studio. Отлаживать код без отладчика - занятие неблагодарное.
1)Лукапы у меня и в new_accountid и в new_contactid.
2)Спасибо, про отладчики даже не подумал!
Старый 29.03.2012, 10:38   #7  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
При фильтрации лукапа, Вы решили проблему с сортировками на форме лукапа, и с фильтром на самой форме?
__________________
Мой блог https://procrm.tv
Старый 29.03.2012, 11:40   #8  
absurdperson is offline
absurdperson
Участник
 
27 / 11 (1) +
Регистрация: 07.02.2012
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
При фильтрации лукапа, Вы решили проблему с сортировками на форме лукапа, и с фильтром на самой форме?
Сортировку ещё не делал.

Нашёл несколько интересных руководств по созданию фильтров, собираю из них сейчас то, что нужно мне. Вот ссылки, если кому-то понадобятся.
http://ms-dynamics-crm.com.ua/2009/0...okup-fetchxml/
http://mmcrm.ru/?p=513
http://mmcrm.ru/?p=1230
Старый 29.03.2012, 12:29   #9  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Я один раз задавал на форуме этот вопрос.
В преденных Вами ссылках ответа на него нет.
Вам дожно помочь вот это.

Цитата:
Сообщение от a33ik Посмотреть сообщение
Фильтрация лукапов:
http://mscrmfilteredlookup.codeplex.com/
То что a33ik рекоммендует.
Если не разберетесь пишите.

Вот здесь это обсуждалось. и еще небольшая кучка мелких проблем, который хорошо было бы сделать. Чтобы все работало правильно.
ещё раз о фильтре Lookup и lookupbrowse filter
__________________
Мой блог https://procrm.tv
Старый 29.03.2012, 14:30   #10  
absurdperson is offline
absurdperson
Участник
 
27 / 11 (1) +
Регистрация: 07.02.2012
Всем спасибо за помощь, с фильтрацией разобрался благодаря вашим и своим ссылкам.

2g.Naukovych, сейчас пока нет нужды в сортировке, если вдруг что-то найду, то обязательно отпишусь.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM DE LA CREME! CRM 4.0 Disaster Recovery Blog bot Dynamics CRM: Blogs 2 26.02.2016 08:23
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 7 Blog bot Dynamics CRM: Blogs 0 27.03.2012 02:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 4 Blog bot Dynamics CRM: Blogs 0 24.09.2011 01:16
CRM DE LA CREME! Configuring Microsoft Dynamics CRM 4.0 for Internet-facing deployment Blog bot Dynamics CRM: Blogs 0 18.08.2009 11:05
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05

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

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

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