drools workbench引导的规则在一个文件中包含多个规则

drools workbench引导的规则在一个文件中包含多个规则,drools,rules,rule-engine,kie-workbench,Drools,Rules,Rule Engine,Kie Workbench,我正在做一个Drools项目,其中包括很多规则。我们使用Drools规则进行验证。有许多字段和各种错误组合。在Drools workbench 6.4.0中,我们使用Guided Rules(带DSL)向导提供业务友好的UI来创建规则。问题是,每个新的引导规则操作只允许您创建一个规则,并将其保存为一个规则文件.rdslr文件 如果我手动创建drools规则,我可以简单地将它们组合在一起,比如10或20条规则,放入一个规则文件中。使用web引导规则UI,有没有一种方法可以将新规则添加到现有的引导规

我正在做一个Drools项目,其中包括很多规则。我们使用Drools规则进行验证。有许多字段和各种错误组合。在Drools workbench 6.4.0中,我们使用Guided Rules(带DSL)向导提供业务友好的UI来创建规则。问题是,每个新的引导规则操作只允许您创建一个规则,并将其保存为一个规则文件.rdslr文件

如果我手动创建drools规则,我可以简单地将它们组合在一起,比如10或20条规则,放入一个规则文件中。使用web引导规则UI,有没有一种方法可以将新规则添加到现有的引导规则文件中?否则,我将不得不为每个规则创建一个规则文件,结果是有大量的规则文件,很难在web UI中导航

如果我必须将每个规则保存在自己的规则文件中,那么规则文件的数量是否有限制?是否存在性能问题

如果我手动创建drools规则,我可以简单地将它们组合在一起,比如10或20条规则,放入一个规则文件中。使用web引导规则UI,有没有一种方法可以将新规则添加到现有的引导规则文件中?否则,我将不得不为每个规则创建一个规则文件,结果是有大量的规则文件,很难在web UI中导航

如果条件几乎相同,我建议使用引导决策表。一行就是一条规则

如果我必须将每个规则保存在自己的规则文件中,那么规则文件的数量是否有限制

实际的限制,不是真的-数千是很容易与适当的计算机硬件(CPU,RAM)

是否存在性能问题

对于多个规则文件,否。在启动时,Drools会将规则处理到内部缓存的表中,因此无论原始规则格式如何(例如,一个大的规则文件,都在单独的规则文件中),最终结果实际上是相同的

关于规则组织的性能问题,更多地取决于规则数量。运行时性能仍然很好,有很多规则。正如预期的那样,我注意到系统中的规则越多,构建时间就越长,但执行速度就越慢

但数量规则从来不是我见过的问题。糟糕的规则体系结构是关键的性能和维护问题,而不是规则数量

如果我手动创建drools规则,我可以简单地将它们组合在一起,比如10或20条规则,放入一个规则文件中。使用web引导规则UI,有没有一种方法可以将新规则添加到现有的引导规则文件中?否则,我将不得不为每个规则创建一个规则文件,结果是有大量的规则文件,很难在web UI中导航

如果条件几乎相同,我建议使用引导决策表。一行就是一条规则

如果我必须将每个规则保存在自己的规则文件中,那么规则文件的数量是否有限制

实际的限制,不是真的-数千是很容易与适当的计算机硬件(CPU,RAM)

是否存在性能问题

对于多个规则文件,否。在启动时,Drools会将规则处理到内部缓存的表中,因此无论原始规则格式如何(例如,一个大的规则文件,都在单独的规则文件中),最终结果实际上是相同的

关于规则组织的性能问题,更多地取决于规则数量。运行时性能仍然很好,有很多规则。正如预期的那样,我注意到系统中的规则越多,构建时间就越长,但执行速度就越慢


但数量规则从来不是我见过的问题。糟糕的规则体系结构是关键的性能和维护问题,而不是规则数量。

不幸的是,决策表不支持DSL,我们的大多数验证规则无法用默认的操作符集表示。我看不到像最大长度字段这样的简单示例的支持。我希望用户可以在行中键入数字,然后我们可以构建一个类似myfield.length()>maxLength的规则,然后添加错误代码。引导决策表有很多弱点/不足之处。关于这一点,有两点:1。使用BRL或DRL条件或操作,因为它允许编码所需的代码片段;2.使用电子表格获取决策表的全部功能,并将其上传。我发现超级终端用户能够很好地适应决策表,并且喜欢它。不需要DSL。最后,你的最后一句话意味着你应该考虑DROLLS模板。他们做得很好-只为数据定义一个电子表格(一行是一个规则的数据),并创建一个模板规则(参数化规则),每个电子表格行生成一个规则。我们可以通过在guided rule editor中扩展其他规则来实现这一点吗?我们如何在kie workbench中实际使用规则模板?不幸的是,决策表不支持DSL,我们的大多数验证规则不能用默认的操作符集表示。我看不到像最大长度字段这样的简单示例的支持。我希望用户可以在行中键入数字,然后我们可以构建一个类似myfield.length()>maxLength的规则,然后添加错误代码。引导决策表有很多弱点/不足之处。关于这一点,有两点:1。使用BRL或DRL条件或操作,因为它允许编码所需的代码片段;2.使用电子表格获取决策表的全部功能,并将其上传。我发现超级终端用户能够很好地适应决策表,并且喜欢它。不需要DSL。最后,你的最后一句话意味着你应该考虑DROLLS模板。他们做得很好-只为数据定义一个电子表格(1行是1个规则的数据),并创建一个模板规则(参数化规则),每个电子表格行生成一个规则。我们可以通过在guided rule editor中扩展其他规则来实现这一点吗?我们如何在kie workbench中实际使用规则模板?