Сносит таблицу решений - один столбец - два поля

Предположим, у нас есть некоторый класс, который связан с одним или несколькими кодами: основным и дополнительным. Каждый объект этого класса имеет как минимум основной код и может иметь неограниченное количество вторичных кодов:

class Something {

  private String mainCode;
  private List<String> secondaryCodes;
}

Я хочу создать правило в таблице решений Drools, которое позволяет мне проверить, равно ли значение, указанное в столбце, mainCode или содержится в secondCodes. Поэтому мне нужен один столбец для двух правил, связанных с двумя разными полями.

Это вообще возможно?

2 ответа

Ограничение может быть записано в виде составного логического выражения:

mainCode == $param || secondaryCodes contains $param

Нет ограничений в отношении полей, на которые вы ссылаетесь в таком выражении.

Вы можете сделать это в Guvnor, используя @{param} во фрагменте BRL Условие, например:

  $s : Something (maincode == "@{codes}" || secondaryCodes contains "@{codes}"

Это дает вам один столбец. -J

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