2

我正在使用 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# 双正斜杠 // 在上面的示例中不起作用,所以我的问题是如何将注释添加到 BAL 中的规则中。

4

3 回答 3

7

不幸的是,您不能在规则中添加评论。如果语言表达得好,规则应该是不言自明的。

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

于 2012-02-27T12:45:41.813 回答
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' ;
于 2012-09-20T16:31:25.947 回答
1

你可以做到,但这意味着大量的定制。所以算了吧
,它只能通过浏览器界面实现,而不是 Eclipse。
只是因为你会作弊。

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

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

恐怕这将花费你几个月的时间,与从事这项工作的人数无关。

总结一下:你能做到吗,是的!
实施是否值得付出努力?没门!!!

这个功能会在下一个版本中提供吗?不!正如铁托所说,一条规则应该是不言自明的。

对不起 :(

于 2012-04-18T12:32:24.023 回答