Настройка фильтра для переменной типа
Часто при проектировании бизнес-процессов возникает необходимость ограничить диапазон отображаемых значений для переменных, в качестве типа которых выбран какой-либо объект. Например, если добавить в контекст задачи переменную типа Контакт, то в выпадающем списке по умолчанию будут отображены все имеющиеся в базе данных контакты. Но, допустим, необходимо отображать только контакты, относящиеся к конкретному, заранее выбранному контрагенту. Для этого можно в сценарии установить соответствующий фильтра на переменную типа Контакт.
Пусть в процессе есть две переменные: Контрагент (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(); |
Если Контрагент не выбран, то список Контактов будет полным:
