Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=80&stc=1&d=1296211379)
![](http://www.axforum.info/forums/blog_attachment.php?attachmentid=100&stc=1&d=1296211379)
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Фильтрация лукап в CRM 2011. Интересная особенность.
Запись от Артем Enot Грунин размещена 12.04.2012 в 07:00
Обновил(-а) Артем Enot Грунин 12.04.2012 в 20:37
Обновил(-а) Артем Enot Грунин 12.04.2012 в 20:37
Теги bug, customization, lookup
В одной из прошлых статей я писал о тонкостях использования функционала фильтрованных полей выбора в CRM. В прошлой статье речь шла о том как добавить фильтр при помощи кода. Теперь же речь пойдет о фильтрации производимой путем настройки.
Про это в сети написано не мало, так что буду краток: в настройках лукапа мы можем указать. по какой связи необходимо строить фильтр:
![Нажмите на изображение для увеличения
Название: FilterSettings.png
Просмотров: 266
Размер: 5.6 Кб
ID: 213](//axforum.info/forums/blog_attachment.php?s=b2ba1b6021a1999ff82c877ea685a198&attachmentid=213&thumb=1&d=1334173840)
По сути, настройка говорит следующее: выбери мне все записи объекта в данном поле, которые связаны с объектом в поле Х по этой связи.
В результате, открыв лукап мы увидим следующее:
![Нажмите на изображение для увеличения
Название: FilterApplyed.png
Просмотров: 273
Размер: 14.4 Кб
ID: 214](//axforum.info/forums/blog_attachment.php?s=b2ba1b6021a1999ff82c877ea685a198&attachmentid=214&thumb=1&d=1334173840)
Второй чекбокс говорит нам о том, что наложен фильтр.
Баг заключается в том, что поле-лукап, которое используется для настройки фильтрации связанных записей, обязательно должно быть на форме. В противном случае фильтр не будет работать. Внешне об этом можно судить по отсутствию дополнительного фильтра на форме лукапа:
![Нажмите на изображение для увеличения
Название: FilterNotApplyed.png
Просмотров: 259
Размер: 15.3 Кб
ID: 215](//axforum.info/forums/blog_attachment.php?s=b2ba1b6021a1999ff82c877ea685a198&attachmentid=215&thumb=1&d=1334173849)
Очевидно, данный функционал задействует скрипты формы, поэтому поле, которое используется для фильтра должно быть в модели Xrm.Page.
Обратите внимание, что к полям колонтитулов через нее нет доступа, так как по сути они представляют собой статические текстовые метки. Поэтому вынести требуемое поле в колонтитул не достаточно - поле может быть скрыто, но оно должно быть размещено в теле формы.
Надеюсь мне удалось сэкономить вам несколько часов головной боли в поисках причины, почему однажды настроенный функционал внезапно перестал работать. Удачной работы!
Про это в сети написано не мало, так что буду краток: в настройках лукапа мы можем указать. по какой связи необходимо строить фильтр:
По сути, настройка говорит следующее: выбери мне все записи объекта в данном поле, которые связаны с объектом в поле Х по этой связи.
В результате, открыв лукап мы увидим следующее:
Второй чекбокс говорит нам о том, что наложен фильтр.
Баг заключается в том, что поле-лукап, которое используется для настройки фильтрации связанных записей, обязательно должно быть на форме. В противном случае фильтр не будет работать. Внешне об этом можно судить по отсутствию дополнительного фильтра на форме лукапа:
Очевидно, данный функционал задействует скрипты формы, поэтому поле, которое используется для фильтра должно быть в модели Xrm.Page.
Обратите внимание, что к полям колонтитулов через нее нет доступа, так как по сути они представляют собой статические текстовые метки. Поэтому вынести требуемое поле в колонтитул не достаточно - поле может быть скрыто, но оно должно быть размещено в теле формы.
Надеюсь мне удалось сэкономить вам несколько часов головной боли в поисках причины, почему однажды настроенный функционал внезапно перестал работать. Удачной работы!
Всего комментариев 4
Комментарии
-
Запись от a33ik размещена 12.04.2012 в 16:16 -
Запись от Артем Enot Грунин размещена 12.04.2012 в 16:25 -
Фильтр также не будет работать в случае, если поле-лукап на форме, но оно пустое. (видим все записи).
Я кстати не уверен что это баг.
Я так понимаю фильтер может быть двух типов.
1. Отобрази мне записи по определенному фильтру и только их. (обычно фильтр не связан со связью, а фильтруется по пиклисту флагу или …).
2. Отобрази мне записи по определенному фильтру либо все. (связь контакт -фирма. я выберу фирму отобрази мне её работников. если поле фирма не заполнен я выберу из всего списка работника, а фирма заполнится автоматически.) это то что они и организовали только как обычно не до конца.Запись от Konstantin Katsovich размещена 12.04.2012 в 19:20
Обновил(-а) Konstantin Katsovich 14.04.2012 в 23:48 -
Спасибо! Тоже интересное наблюдение. Вообще, наверно, я бы ожидал другое поведение: если лукап пустой, мне не должно вернуться ничего. Ведь мне нужны все кто связан. С другой стороны, простым запросом так не сделать, так что я сам должен чистить и отключать зависимый лукам при очистке мастера.
Не думаю что изначально была идея заполнять зависимое поле автоматически - это уже как-то сильно специфично и неоднозначно. Но точно помню, что в ранних версиях, в настройках поля можно было указывать fetch запрос прямо из интерфейса системы. Сейчас мы имеем нечто весьма упрощенное.Запись от Артем Enot Грунин размещена 12.04.2012 в 20:41