Правила в jBPM 6

Я создал процесс в jbpm 6. Существует класс Person с атрибутами name и age. В форме процесса вводятся имя и возраст человека. Первый узел в процессе - это человеческая задача для просмотра деталей. Второй узел - это XOR-шлюз с выражением drools на его дугах, таких как Person(возраст> 20) и Person(возраст< 20). Теперь, когда я выполняю экземпляр процесса, первые неавтоматизированные задачи работают нормально, но когда он достигает шлюза, я вижу эту ошибку - "Разделение XOR не может найти хотя бы одно допустимое исходящее соединение для разделенного шлюза". Любая идея, что не так.

2 ответа

Решение

Шлюзы, содержащие выражения drools, работают только с фактами, а не с переменными процесса. Если вы хотите использовать выражение drools в своих шлюзах, вам нужно будет вставить переменную процесса (или весь экземпляр процесса) как факт. Вы можете сделать это, используя узел сценария, исходящее действие в вашей человеческой задаче.

Из документации:

Ограничения правил не имеют прямого доступа к переменным, определенным внутри процесса. Однако можно сослаться на текущий экземпляр процесса внутри ограничения правила, добавив экземпляр процесса в рабочую память и сопоставив его с экземпляром процесса в своем ограничении правила........ Обратите внимание, что вы сами несете ответственность за вставку экземпляра процесса в сеанс и, возможно, за его обновление, например, с использованием кода Java или действия при входе, выходе или явном действии в вашем сеансе. процесс.

Надеюсь, поможет,

Не сумев решить проблему с проверкой правил и проверкой параметров свойств, я удалил узел XOR и добавил новый с новыми настройками. Тогда это решило проблему.

Как упоминалось на https://access.redhat.com/solutions/1756423, «эта проблема может быть вызвана множеством причин в зависимости от использования шлюза XOR».

Другие вопросы по тегам