Пока такой функции нет, но пару лет назад мы выпускали пост про датчики занятости парковочных мест, которые в дальнейшем могут позволить решить эту проблему.
Да, безусловно, можно суметь за несколько лет довести и правила до нечитаемого состояния.
Поэтому нужно структурировать и периодически выкидывать неактуальное. Плюс есть штатная возможность версионирования набора правил. Мы можем указать, что новая версия правил действует с определенной даты в будущем, а пока действует старая. Это позволяет переходить с версии на версию без нагромождения лишних ветвлений в правилах.
Вопрос разруливания противоречий и приоритетов решается также заданием соответствующих правил. Т.е. можно описать любую бизнес-логику определения приоритетов. Кстати, логические противоречия в правилах BRMS системы обычно ловят на этапе компиляции.
Наиболее распространенные интерфейсы для создания правил:
— Таблицы. Сначала идут колонки, в которых перечисляются входные параметры, а затем соответствующие им выводы.
— Естественный текст «если, то» с использованием подготовленного разработчиками словаря предметной области. Например, «Если приобретается больше 10 билетов и срок покупки более чем за 20 дней, то скидка составляет 10%».
— Традиционные блок-схемы. В них задаются комбинации условий и действий по каждому из сработавших условий. В качестве действий могут выступать другие правила. Таким образом, элементарные правила могут быть скомбинированы в сколько угодно сложные.
Поэтому нужно структурировать и периодически выкидывать неактуальное. Плюс есть штатная возможность версионирования набора правил. Мы можем указать, что новая версия правил действует с определенной даты в будущем, а пока действует старая. Это позволяет переходить с версии на версию без нагромождения лишних ветвлений в правилах.
— Таблицы. Сначала идут колонки, в которых перечисляются входные параметры, а затем соответствующие им выводы.
— Естественный текст «если, то» с использованием подготовленного разработчиками словаря предметной области. Например, «Если приобретается больше 10 билетов и срок покупки более чем за 20 дней, то скидка составляет 10%».
— Традиционные блок-схемы. В них задаются комбинации условий и действий по каждому из сработавших условий. В качестве действий могут выступать другие правила. Таким образом, элементарные правила могут быть скомбинированы в сколько угодно сложные.
В качестве иллюстрации: