logo

Настройка фильтра для переменной типа

Часто при проектировании бизнес-процессов возникает необходимость ограничить диапазон отображаемых значений для переменных, в качестве типа которых выбран какой-либо объект. Например, если добавить в контекст задачи переменную типа Контакт, то в выпадающем списке по умолчанию будут отображены все имеющиеся в базе данных контакты. Но, допустим, необходимо отображать только контакты, относящиеся к конкретному, заранее выбранному контрагенту. Для этого можно в сценарии установить соответствующий фильтра на переменную типа Контакт.

Пусть в процессе есть две переменные: Контрагент (Kontragent) и Контакт (Kontakt). Нужно чтобы при выборе контрагента в списке контактов отражались только контакты выбранного контрагента. Установим в настройках контекста задачи сценарий при изменении переменной Контрагент ( https://www.elma-bpm.ru/kb/help/ProcessWebHelp/scr/Designer/Task_form_dynamic/index.html ) . Сценарий будет выглядеть следующим образом:

1
2
3
var contactSettings = (EntitySettings)context.GetSettingsFor(c => c.Kontakt);
contactSettings.FilterQuery = context.Kontragent != null ? "Contractor=" + context.Kontragent.Id : "Id > 0";
contactSettings.Save();

Если Контрагент не выбран, то список Контактов будет полным:

 
Если Контрагент выбран, то список будет отфильтрован: