Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
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. В прошлой статье речь шла о том как добавить фильтр при помощи кода. Теперь же речь пойдет о фильтрации производимой путем настройки.
Про это в сети написано не мало, так что буду краток: в настройках лукапа мы можем указать. по какой связи необходимо строить фильтр:
По сути, настройка говорит следующее: выбери мне все записи объекта в данном поле, которые связаны с объектом в поле Х по этой связи.
В результате, открыв лукап мы увидим следующее:
Второй чекбокс говорит нам о том, что наложен фильтр.
Баг заключается в том, что поле-лукап, которое используется для настройки фильтрации связанных записей, обязательно должно быть на форме. В противном случае фильтр не будет работать. Внешне об этом можно судить по отсутствию дополнительного фильтра на форме лукапа:
Очевидно, данный функционал задействует скрипты формы, поэтому поле, которое используется для фильтра должно быть в модели 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