如何将注释行添加到业务操作语言中创建的业务规则中

时间:2012-01-23 17:35:57

标签: business-rules jrules

我使用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 个答案:

答案 0 :(得分:7)

很遗憾,您无法在规则中添加评论。如果语言表达良好,则规则应该是自我解释的。

但是,如果您想记录每个规则的业务理由,您可以使用文档功能。

答案 1 :(得分:3)

有一个简单的解决方法:

您可以在BOM中创建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' ;

答案 2 :(得分:1)

你可以做到,但这意味着很多自定义。所以忘了它 只有通过浏览器界面才能实现,而不是Eclipse 只因为你会作弊。

怎么做:
准备好了...... ......稳定吗?... 您需要重新创建自己的RTS(teamserver)Web界面!如果听起来太费劲,那就停止阅读:) 使用API​​,您可以从RTS(数据库)中检索规则(如Tito的答案中所述)附加到任何规则的文档。
因此,您可以处理规​​则的显示并相应地添加注释 当然,您需要找到一种方法在规则中正确定位评论。行号可以解决问题 这是为了显示...
十,当您保存规则时(通过单击一个可编码的可爱按钮进行实际保存),您需要删除注释(并在下次要显示规则时知道它们的位置)并保存两者规则正文和随附的文件。

听起来很疯狂?一个客户完成了它,我正在研究这个:)但我们没有修改规则体。几乎所有东西,除了规则体。

这会花费你几个月的时间,与我工作的人数无关,我很害怕
总结一下:你能做到吗,是的! 实施是否值得付出努力?没有办法!!!

这个功能是否可以在下一个版本中使用?没有!正如铁托提到的那样,规则应该是自我解释的
对不起:(