28.03.2012, 10:18 | #1 |
Участник
|
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 |
Участник
|
Здравствуйте!
У Вас на самом деле две разные задачи. Первая - сделать фильтрацию лукапа. Информации и вариантов по этой теме много. Тем самым сделаете что будут отображаться только те контакты, которые относятся к выбранному бизнес-партнеру. Вторая - при выборе контакта в лукапе подтянуть из его полей типа электронная почта информацию и записать ее в поля формы, это тоже делается несложно через JavaScript, например через retrieve. |
|
|
За это сообщение автора поблагодарили: absurdperson (1). |
28.03.2012, 10:55 | #3 |
Участник
|
Цитата:
Сообщение от Borisvil
Здравствуйте!
У Вас на самом деле две разные задачи. Первая - сделать фильтрацию лукапа. Информации и вариантов по этой теме много. Тем самым сделаете что будут отображаться только те контакты, которые относятся к выбранному бизнес-партнеру. Вторая - при выборе контакта в лукапе подтянуть из его полей типа электронная почта информацию и записать ее в поля формы, это тоже делается несложно через JavaScript, например через retrieve. Последний раз редактировалось absurdperson; 28.03.2012 в 10:57. |
|
28.03.2012, 11:26 | #4 |
Чайный пьяница
|
Фильтрация лукапов:
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 |
Участник
|
Цитата:
Компилятора тут нет, но можно пользоваться отладчиком встроенным в IE или в Visual Studio. Отлаживать код без отладчика - занятие неблагодарное. |
|
29.03.2012, 08:54 | #6 |
Участник
|
Цитата:
Сообщение от griefon
Судя по ошибке, имя <имя_лукап_поля> у вас - new_request.new_accountid. Хотя, правильно будет new_accountid, ведь у вас лукап на организации?
Компилятора тут нет, но можно пользоваться отладчиком встроенным в IE или в Visual Studio. Отлаживать код без отладчика - занятие неблагодарное. 2)Спасибо, про отладчики даже не подумал! |
|
29.03.2012, 10:38 | #7 |
Участник
|
При фильтрации лукапа, Вы решили проблему с сортировками на форме лукапа, и с фильтром на самой форме?
|
|
29.03.2012, 11:40 | #8 |
Участник
|
Цитата:
Нашёл несколько интересных руководств по созданию фильтров, собираю из них сейчас то, что нужно мне. Вот ссылки, если кому-то понадобятся. 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 |
Участник
|
Я один раз задавал на форуме этот вопрос.
В преденных Вами ссылках ответа на него нет. Вам дожно помочь вот это. Цитата:
Сообщение от a33ik
Фильтрация лукапов:
http://mscrmfilteredlookup.codeplex.com/ Если не разберетесь пишите. Вот здесь это обсуждалось. и еще небольшая кучка мелких проблем, который хорошо было бы сделать. Чтобы все работало правильно. ещё раз о фильтре Lookup и lookupbrowse filter |
|
29.03.2012, 14:30 | #10 |
Участник
|
Всем спасибо за помощь, с фильтрацией разобрался благодаря вашим и своим ссылкам.
2g.Naukovych, сейчас пока нет нужды в сортировке, если вдруг что-то найду, то обязательно отпишусь. |
|
|
|