问题标签 [drools-flow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
drools - 什么是流口水?Drools、Guvnor、Expert、jBPM、Drools Fusion 和 optaPlanner 都有什么关系?
我对 Drools 完全陌生,尽管我编写了非常小的规则并部署在 Guvnor 中。
我所做的只是编写一系列 if 和 else 语句并部署在 Guvnor 中。
我想知道这个产品有什么用?
为什么同一个banner中会有不同的产品,它们之间的关系是什么?
重要的是 Drools、Guvnor、Expert、jBPM、Drools Fusion 和 optaPlanner 都与什么相关?
为什么我们需要很多?
drools - 在 Drools 中调用返回类型为 Map 的函数时出错
我在 Drools 中使用了一个返回类型为 map 的函数。在使用 Guvnor 中的验证按钮对其进行验证时,它给了我错误
下面给出了与我的代码类似的示例代码
我在验证时遇到的错误是
java - 比较流口水工作记忆中的对象(事实)
我正在通过 DRT(规则模板)读取 excel 表,然后通过 Java 类中的静态方法将其转换为类的对象。并将其插入到工作内存中。这样,工作记忆就被 Excel 表中的所有事实填满了。
现在,我通过会话通过 INSERT() 中的 Java 类发送事实。我需要匹配两个相似的对象并从工作内存中返回匹配的对象。例如:
从 Excel 中读取并插入到工作内存中。
现在在 Java 类中,通过会话我插入以下对象:
然后我需要Status = true
通过比较两个对象来设置。
我需要编写将比较两个对象的规则。
请提出一些方法。
谢谢肖拉夫
java - 更新事实的停止规则流口水
我在 Drools 中有一个场景。我有一些规则。例如 :
在规则 1 中:我在某些条件后来自会话的事实 pojo 中设置 ProductName。在规则 2 中:我正在计算等级值,即 X1、X2、X3、X4。所以对于每个年级,我都有一个规则来计算。
来自用户的 Fact pojo 可能会要求计算任何等级值。但是,假设用户要求 X4,那么从 X1 到 X3 的所有等级值也应该计算。
我所做的是,每当执行任何规则时;在这种情况下,我正在更新一个持有等级值属性的事实,并在最后一个规则中写入将检查从 Pojo 传入的等级和执行的规则等级的匹配。
但是,它并没有停止在特定的等级上并执行所有等级值。
请提出一些方法。
========编辑=======
规则 当 seq == true 时计算 X 然后计算 X;
规则 当 seq == true 时计算 x1 然后计算 X1;规则 当 seq == true 时计算 x2 然后计算 X2;
假设我要求计算 X2,那么规则 x 和 x1 也应该计算。如果 x1 则规则 x 和 x1 应该只执行。
谢谢库马尔·肖拉夫
workflow - 在 jbpm 5.4 中完成的任务表(已编辑)
我正在使用 jbpm 5.4 开发应用程序。我已经在 drools-guvnor 中部署了我的工作流。我添加了如下变量定义 task1_lname_out、task1_fname_out 然后我为 Task1 映射了 DataInputSet 和 DataOutputSet。在 Task1 中,我已经将 DataOutputSet 映射到了变量定义。
这是我的 Task1-taskform.ftl
现在我将在填写上述任务表后完成任务。我使用以下代码完成任务数据的任务。
从drools guvnor,我已经正确映射了DataInputSet和Association。(流程变量已映射到DataInputSet)。然后,我将访问下一个任务表单,Task2-taskform.ftl
接下来我将访问这样的结果。
我的问题是,Task2-taskform.ftl 没有显示 Task1-taskform 输出结果。数据输入和输出映射没有错误,因为通过 Jbpm 控制台一切正常。
请帮我解决这个问题?我不确定我的代码中的以下行。
我一直坚持这一点。请帮我 ???
drools - 面临迭代流口水列表的问题
面临流口水列表迭代的问题
GoodsShipment有 GoodsItems 列表, GoodsItem 有Documents列表
我的要求是,需要检查至少一份文件是否可用。
我试过这个但失败了
写了一个类来检查目的
谁能帮帮我..提前谢谢
drools - Drools 6.1.0.Final CEP 示例:无法创建字段提取器
我在尝试将 CEP 示例从 Drools 5X 转换为 6X 时遇到了一个奇怪的错误: - 准确地说是 Drool 6.1.0.Final。
我对这个小项目的灵感来源可以在以下链接中找到:=> PlugTree。
我得到的错误表明 Drools无法创建字段提取器- 当他们忘记在其域 POJO 中创建 setter/getter 时会出现错误。
严重:无法构建 KieBaseModel:规则 无法为类“com.sample.Sale”找不到“amount”字段/方法“amount”创建字段提取器:[Rule name='StoreOne - Has Passed it's Sales Record'] java .lang.RuntimeException:找不到类“com.sample.Sale”的字段/方法“金额”
我已经将问题追溯到规则文件中的“声明”语句(我将在下面列出完整列表):
仅使用它会导致错误(顺便说一句,在 V5 中不会发生),但是使用下一个“更改的”声明语句不会导致错误。它只是什么都不做......
它所做的 - 什么都不是。它编译,运行,但事实只是没有被插入(或识别)。
这是我的 Java 测试工具:
这是我的规则文件:
还有我的 kmodule.xml 文件:
我确实认为这也是相关的 - 使用侦听器的咨询输出(用于更改的声明语句(列出属性):
由于 V5 中的 CEP 示例很少在网络上流传,而在 V6 KIE 中则更少,我会很感激有关此错误的起源以及如何纠正它的任何想法。
drools - 检查列表中的总和是否大于 100
我必须在列表上写一个流口水函数,它必须做以下事情
- 创建总和
- 检查总和是否大于 100。
下面是我创建的流口水规则
我无法检查 $total 是否大于 100
谢谢
drools - 如何根据 jbpm 中的条件重新启动进程?
iam 在 jbpm 中面临问题,因为 iam 是 jbpm 的新手。我需要重新启动该过程或需要跳回上一个过程。你能告诉我怎么做吗?我的流程是
在保存之前,根据条件,我需要从 getDeclaration 重新处理流程。任何人都可以指导我这样做。
如果需要任何额外信息,请告诉我
java - 在 Drools 中激活规则流组
当 .drl 文件中的规则被分组到“规则流组”中时,需要在外部激活它以触发这些规则。但是如何在知识会话中激活它呢?
我尝试使用以下内容:
运行此代码时,使用第一行没有任何影响。我可以知道我需要在哪里更改代码吗?