问题标签 [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.

0 投票
1 回答
720 浏览

drools - 什么是流口水?Drools、Guvnor、Expert、jBPM、Drools Fusion 和 optaPlanner 都有什么关系?

我对 Drools 完全陌生,尽管我编写了非常小的规则并部署在 Guvnor 中。

我所做的只是编写一系列 if 和 else 语句并部署在 Guvnor 中。

  1. 我想知道这个产品有什么用?

  2. 为什么同一个banner中会有不同的产品,它们之间的关系是什么?

  3. 重要的是 Drools、Guvnor、Expert、jBPM、Drools Fusion 和 optaPlanner 都与什么相关?

  4. 为什么我们需要很多?

0 投票
0 回答
210 浏览

drools - 在 Drools 中调用返回类型为 Map 的函数时出错

我在 Drools 中使用了一个返回类型为 map 的函数。在使用 Guvnor 中的验证按钮对其进行验证时,它给了我错误

下面给出了与我的代码类似的示例代码

我在验证时遇到的错误是

0 投票
1 回答
2733 浏览

java - 比较流口水工作记忆中的对象(事实)

我正在通过 DRT(规则模板)读取 excel 表,然后通过 Java 类中的静态方法将其转换为类的对象。并将其插入到工作内存中。这样,工作记忆就被 Excel 表中的所有事实填满了。

现在,我通过会话通过 INSERT() 中的 Java 类发送事实。我需要匹配两个相似的对象并从工作内存中返回匹配的对象。例如:

从 Excel 中读取并插入到工作内存中。

现在在 Java 类中,通过会话我插入以下对象:

然后我需要Status = true通过比较两个对象来设置。

我需要编写将比较两个对象的规则。

请提出一些方法。

谢谢肖拉夫

0 投票
0 回答
655 浏览

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 应该只执行。

谢谢库马尔·肖拉夫

0 投票
1 回答
491 浏览

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 控制台一切正常。

请帮我解决这个问题?我不确定我的代码中的以下行。

我一直坚持这一点。请帮我 ???

0 投票
1 回答
240 浏览

drools - 面临迭代流口水列表的问题

面临流口水列表迭代的问题

GoodsShipment有 GoodsItems 列表 GoodsItem Documents列表

我的要求是,需要检查至少一份文件是否可用。

我试过这个但失败了

写了一个类来检查目的

谁能帮帮我..提前谢谢

0 投票
2 回答
2605 浏览

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 中则更少,我会很感激有关此错误的起源以及如何纠正它的任何想法。

0 投票
1 回答
2347 浏览

drools - 检查列表中的总和是否大于 100

我必须在列表上写一个流口水函数,它必须做以下事情

  1. 创建总和
  2. 检查总和是否大于 100。

下面是我创建的流口水规则

我无法检查 $total 是否大于 100

谢谢

0 投票
1 回答
471 浏览

drools - 如何根据 jbpm 中的条件重新启动进程?

iam 在 jbpm 中面临问题,因为 iam 是 jbpm 的新手。我需要重新启动该过程或需要跳回上一个过程。你能告诉我怎么做吗?我的流程是

在保存之前,根据条件,我需要从 getDeclaration 重新处理流程。任何人都可以指导我这样做。

如果需要任何额外信息,请告诉我

0 投票
0 回答
1271 浏览

java - 在 Drools 中激活规则流组

当 .drl 文件中的规则被分组到“规则流组”中时,需要在外部激活它以触发这些规则。但是如何在知识会话中激活它呢?

我尝试使用以下内容:

运行此代码时,使用第一行没有任何影响。我可以知道我需要在哪里更改代码吗?