Как добавить строки комментариев в бизнес-правило, созданное на языке бизнес-действий - PullRequest
2 голосов
/ 23 января 2012

Я использую JRules для написания бизнес-правил. Я хочу добавить комментарии к правилам, как показано в очень простом примере ниже. Я понимаю, что для правила есть раздел документации, но это не то, что мне нужно

// comments needed here

definitions 
set 'an existing customer' to a customer
where the category of 'an existing customer' is "gold"

if 
the city of 'an existing customer' is "London"

then
give a 5% discount to 'an existing customer'

else
// and more comments needed here
give a 10% discount to 'an existing customer'

Очевидно, что использование обычного c ++ и c # double forwardslash // не будет работать в приведенном выше примере, поэтому мой вопрос заключается в том, как комментарии добавляются в правила в BAL.

Ответы [ 3 ]

7 голосов
/ 27 февраля 2012

К сожалению, вы не можете добавлять комментарии в правилах.Правила должны быть понятны, если вербализация хороша.

Но вы можете использовать функцию документирования, если хотите документировать обоснование бизнеса для каждого из правил.

3 голосов
/ 20 сентября 2012

Существует простой обходной путь:

Вы можете создать 2 статических виртуальных метода в своей спецификации: один для комментирования условий и один для действий.

В случае условий:

  • Создать статический метод, который принимает параметр String и возвращает логическое значение
  • Вербализируйте это так "// {0}" (без кавычек)
  • В B2X верните true
  • Затем вы можете прокомментировать условие с помощью // "your_condition" и ...

В предыдущем примере:

if 
the city of 'an existing customer' is "London" and
// "blablabla" and
the age of 'an existing customer' is greater than 18

then ...

Поскольку метод возвращает true, это не повлияет на тест. Он должен быть окружен "и", а не "или".

В случае действий:

  • Создать статический метод, который принимает параметр String и возвращает void
  • Вербализируйте это так "// {0}" (без кавычек)
  • В B2X добавить «return;»
  • Затем вы можете прокомментировать действие с помощью // "your_action";

В предыдущем примере:

else
// "and more comments needed here" ;
give a 10% discount to 'an existing customer' ;
1 голос
/ 18 апреля 2012

Вы можете сделать это, но это означает чертовски много настроек.Так что забудьте об этом
И это будет возможно только через интерфейс браузера, а не Eclipse.
Только потому, что вы будете обманывать.

Как это сделать:
Готов? ... Постоянно?...
Вам необходимо воссоздать собственный веб-интерфейс RTS (teamserver)!если это кажется слишком большим усилием, тогда прекратите чтение:)
Используя API, вы можете извлечь правила из RTS (базы данных), если есть (как упомянуто в ответе Тито) документация, приложенная к любому правилу.
ИтакВы можете обработать отображение своего правила и добавить комментарий соответствующим образом.
Конечно, вам нужно найти способ правильно разместить комментарий в правиле
Номер строки может помочь.
Это дляотобразить ...
Десять, когда вы сохраняете правило (нажав красивую кнопку, которую вы закодировали для фактического сохранения), вам нужно удалить комментарии (и знать, где они находятся в следующий раз, когда вы хотите отобразитьправило) и сохраните как тело правила, так и прилагаемую документацию.

Звучит безумно?Один клиент сделал это, и я работал над этим :), но мы не изменили тело правила.Боюсь, почти все, кроме тела правила.

Это займет месяцы, независимо от количества людей, работающих над ним.

Подводя итог: вы можете сделатьэто да!
Стоит ли реализация усилий?NO WAY !!!

Будет ли эта функция доступна в следующей версии?НЕТ!Как упоминал Тито, правило должно быть самоочевидным.

Извините: (

...