【问题标题】:How do I add comment lines to a business rule authored in Business Action Language如何向使用业务操作语言编写的业务规则添加注释行
【发布时间】:2012-01-23 17:35:56
【问题描述】:

我正在使用 JRules 来编写业务规则。我想将 cmets 添加到规则中,如下面非常简单的示例所示。我意识到该规则有一个文档部分,但这不是我需要的

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

【问题讨论】:

    标签: business-rules jrules


    【解决方案1】:

    很遗憾,您不能在规则中添加 cmets。如果语言表达得好,规则应该是不言自明的。

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

    【讨论】:

      【解决方案2】:

      有一个简单的解决方法:

      您可以在 BOM 中创建 2 个静态虚拟方法:一个用于注释条件,一个用于操作。

      条件情况下:

      • 创建一个接受参数字符串并返回布尔值的静态方法
      • 像这样表述它“// {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,所以不会影响测试。它必须被“and”包围,而不是“or”。

      在动作的情况下:

      • 创建一个接受参数 String 并返回 void 的静态方法
      • 像这样表述它“// {0}”(不带引号)
      • 在B2X中,添加“return;”
      • 然后,您可以使用 //"your_action" ;
      • 评论操作

      在前面的例子中:

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

      【讨论】:

      • 这是一件很聪明的事情,除非人们在阅读时不应将其与规则混淆。
      【解决方案3】:

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

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

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

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

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

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

      对不起:(

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-23
        • 2019-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多