Как определить функцию для использования в таблице решений ODM без изменения XOM?

Я использую ODM 8.5 (преемник JRules). В моем домене Java есть строка из трех символов field это число от "000" до "999". Я хотел бы иметь таблицу решений, которая представляет логику, такую ​​как:

if field is between "000" and "012" then set the result to "tiny"
if field is between "013" and "060" then set the result to "less tiny"
...

Документация IBM по определению состояний столбцов - "Оператор условия - это неполное выражение предиката BAL...". Есть ли что-то в BAL, что делает сравнение строк, которое я хочу сделать? Если нет, возможно ли вызвать функцию, определенную в IRL, из BAL? Если так, то как? Я также открыт для других предложений о том, как справиться с этой простой проблемой в ODM (без изменения существующего Java XOM). Сейчас мне кажется, что я не могу использовать таблицу решений ODM, хотя базовая логика кажется хорошо подходящей для таблицы решений.

1 ответ

Решение

Этот ответ в значительной степени основан на хорошем ответе Джастина Филлипса на этот вопрос, обновленном для ODM 8.5. Пожалуйста, добавьте его ответ.

Основная идея заключается в создании функции в модели бизнес-объектов (BOM), которую можно вызывать из ваших правил. Чтобы добавить функцию спецификации:

  1. Щелкните правой кнопкой мыши bom папка в проекте правил Eclipse.
  2. Выбрать New -> BOM Entry из меню.
  3. Выберите Create an empty BOM entry вариант, а затем нажмите Finish,
  4. Дважды щелкните новую запись спецификации, чтобы открыть представление редактора спецификации, а затем нажмите New Class,
  5. Введите имя класса и затем нажмите Finish,
  6. Дважды щелкните новый класс спецификации из списка, затем под Members раздел нажмите New кнопка.
  7. в New Memberвыберите Method вариант, введите Name (isBetween), вернуть Type для метода (boolean) и добавьте три параметра String (testee - проверяемая стоимость, min а также max). Нажмите на Finish кнопка.
  8. Дважды щелкните новый метод под Members раздел и выберите Static а также Final опции.
  9. Нажмите ссылку "Создать" в разделе "Вербализация элемента" и заполните текстовое поле "Шаблон" {0} is between {1,min} to {2,max}
  10. Под BOM to XOM Mapping введите ваш код Java.

введите описание изображения здесь 11. Вернитесь к редактору спецификации уровня класса и установите Execution name к стоимости void в разделе "Отображение спецификации в XOM". Это указывает на то, что класс спецификации не связан с классом Java (XOM).

Вербализация для вновь созданного члена теперь должна быть доступна при заполнении Test в Condition Column для таблицы решений.

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