Выражения (expressions)
Используется в:
- Фильтры категорий файлового хранилища
- Фильтры печатных форм
- Фильтрах коллекций в FormBuilder
- Выражения в FormBuilder
Синтаксис у них одинаковый, но контекст(набор доступных переменных для работы) отличается
Полезные ссылки
Синтаксис выражений(используемая библиотека)
Булева алгебра логики — таблица истинности ( конъюнкция ) и логические операции
Булева алгебра (wiki)
Доступные переменные (не влияют на скорость загрузки)
scope | На какой странице находимся. Варианты: client, loanApp, contract, depositContract, shareContract |
clientId | |
loanAppId | |
contractId | |
depositContractId | |
shareContractId |
Переменные с ленивой загрузкой (влияют на скорость загрузки)
loanApp
Пример 1: 3 залога, 2 из них записаны на 1 клиента, в итоге будет 2 залогодателья. Пример 2: клиенты в loanApp.coborrowers технически могут повторяться, а loanApp.coborrowersQty вернет кол-во уникальных записей |
contract |
Стараться использовать свойства из как можно меньшего кол-ва объектов, тк каждый запрос увеличивает время загрузки
Примеры
Выражение | Что происходит |
---|---|
loanApp.collateralQty > 5 && loanApp.loanAmount >= 500 || contract.forIssue == true | (Кол-во уникальных залогов > 5 И Сумма займа больше либо равна 500) ИЛИ (Контракт к выдаче) |
loanApp.coborrowers.count() > 5 | Кол-во созаемщиков > 5 |
loanApp.coborrowersQty > 5 | Кол-во уникальных созаемщиков больше 5. Технически созаемщики в коллекции могут повторяться |
loanApp.hasCollateralTypes([1,2,3,4]) | Заявка имеет залог из списка типов |
false | Всегда будет скрыта |
scope == 'client' | Форма будет доступна только на клиенте |
scope in ['client', 'loanApp'] | Форма будет доступна только на клиенте и заявке |
scope not in ['client', 'loanApp'] | Форма будет недоступна на клиенте и заявке |