AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Фильтрация лукап в CRM 2011. Интересная особенность.

Запись от Артем Enot Грунин размещена 12.04.2012 в 07:00
Обновил(-а) Артем Enot Грунин 12.04.2012 в 20:37
Теги bug, customization, lookup

В одной из прошлых статей я писал о тонкостях использования функционала фильтрованных полей выбора в CRM. В прошлой статье речь шла о том как добавить фильтр при помощи кода. Теперь же речь пойдет о фильтрации производимой путем настройки.

Про это в сети написано не мало, так что буду краток: в настройках лукапа мы можем указать. по какой связи необходимо строить фильтр:

Нажмите на изображение для увеличения
Название: FilterSettings.png
Просмотров: 543
Размер:	5.6 Кб
ID:	213

По сути, настройка говорит следующее: выбери мне все записи объекта в данном поле, которые связаны с объектом в поле Х по этой связи.

В результате, открыв лукап мы увидим следующее:

Нажмите на изображение для увеличения
Название: FilterApplyed.png
Просмотров: 594
Размер:	14.4 Кб
ID:	214

Второй чекбокс говорит нам о том, что наложен фильтр.

Баг заключается в том, что поле-лукап, которое используется для настройки фильтрации связанных записей, обязательно должно быть на форме. В противном случае фильтр не будет работать. Внешне об этом можно судить по отсутствию дополнительного фильтра на форме лукапа:

Нажмите на изображение для увеличения
Название: FilterNotApplyed.png
Просмотров: 538
Размер:	15.3 Кб
ID:	215

Очевидно, данный функционал задействует скрипты формы, поэтому поле, которое используется для фильтра должно быть в модели Xrm.Page.
Обратите внимание, что к полям колонтитулов через нее нет доступа, так как по сути они представляют собой статические текстовые метки. Поэтому вынести требуемое поле в колонтитул не достаточно - поле может быть скрыто, но оно должно быть размещено в теле формы.

Надеюсь мне удалось сэкономить вам несколько часов головной боли в поисках причины, почему однажды настроенный функционал внезапно перестал работать. Удачной работы!
Размещено в CRM
Просмотров 43762 Комментарии 4
Всего комментариев 4

Комментарии

  1. Старый комментарий
    Аватар для a33ik
    На самом деле логично. Ты же можешь менять это основное поле с гуи, а база об этом ни сном ни духом.
    Запись от a33ik размещена 12.04.2012 в 16:16 a33ik is offline
  2. Старый комментарий
    Аватар для Артем Enot Грунин
    Согласен, но было бы неплохо как-то залочить это поле на форме, а еще лучше добавить автоматически.
    Короче суть поста: будьте внимательны!
    Запись от Артем Enot Грунин размещена 12.04.2012 в 16:25 Артем Enot Грунин is offline
  3. Старый комментарий
    Аватар для Konstantin Katsovich
    Фильтр также не будет работать в случае, если поле-лукап на форме, но оно пустое. (видим все записи).
    Я кстати не уверен что это баг.
    Я так понимаю фильтер может быть двух типов.
    1. Отобрази мне записи по определенному фильтру и только их. (обычно фильтр не связан со связью, а фильтруется по пиклисту флагу или …).
    2. Отобрази мне записи по определенному фильтру либо все. (связь контакт -фирма. я выберу фирму отобрази мне её работников. если поле фирма не заполнен я выберу из всего списка работника, а фирма заполнится автоматически.) это то что они и организовали только как обычно не до конца.
    Запись от Konstantin Katsovich размещена 12.04.2012 в 19:20 Konstantin Katsovich is offline
    Обновил(-а) Konstantin Katsovich 14.04.2012 в 23:48
  4. Старый комментарий
    Аватар для Артем Enot Грунин
    Спасибо! Тоже интересное наблюдение. Вообще, наверно, я бы ожидал другое поведение: если лукап пустой, мне не должно вернуться ничего. Ведь мне нужны все кто связан. С другой стороны, простым запросом так не сделать, так что я сам должен чистить и отключать зависимый лукам при очистке мастера.
    Не думаю что изначально была идея заполнять зависимое поле автоматически - это уже как-то сильно специфично и неоднозначно. Но точно помню, что в ранних версиях, в настройках поля можно было указывать fetch запрос прямо из интерфейса системы. Сейчас мы имеем нечто весьма упрощенное.
    Запись от Артем Enot Грунин размещена 12.04.2012 в 20:41 Артем Enot Грунин is offline
 


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