10 2022 档案

摘要:LHS (left hand side) 部分 Drools 作为规则引擎, 最重要的功能就是完成 pattern match, 即按照 LHS 对工作内存的fact进行匹配, 老版Drools使用的匹配算法是RETE(读音[reetee]), 该算法的核心策略是分而治之+以空间换时间, 基于该算法 阅读全文
posted @ 2022-10-24 19:53 harrychinese 阅读(68) 评论(0) 推荐(0) 编辑
摘要:rule 标准格式: 一个 rule 的标准定义格式如下, attributes 用来进行rule的配置,比如设定优先级. rule "name" attributes when LHS then RHS end 常用的attributes salience :设置优先级, int 型取值, 可正可 阅读全文
posted @ 2022-10-24 19:00 harrychinese 阅读(24) 评论(0) 推荐(0) 编辑
摘要:在drl文件定义function 在drl规则文件中可定义函数, 这些函数可以在规则中被使用. 示例: package com.sample.rules import com.sample.Order; function void printInfo(String name){ System.out 阅读全文
posted @ 2022-10-24 18:56 harrychinese 阅读(35) 评论(0) 推荐(0) 编辑
摘要:RHS中的drools 对象 在 RHS 中我们可以使用 drools 对象, 该对象是 KnowledgeHelper 接口的一个实例, 它是在rule被执行时被自动注入. KnowledgeHelper 接口的官方文档: https://repository.jboss.org/nexus/co 阅读全文
posted @ 2022-10-24 11:30 harrychinese 阅读(53) 评论(2) 推荐(0) 编辑
摘要:KieSession 除了提供丰富的API外, 还提供三个event listener, 方便对于规则执行状况的监控. AgendaEventListener 该接口可以监控 rule 被fire, 所以这个listener最常用, 对于规则的计算, 我们很可能需要做logging, 常见的做法是在 阅读全文
posted @ 2022-10-23 13:45 harrychinese 阅读(98) 评论(0) 推荐(0) 编辑
摘要:delete()和retract() 宏函数 delete() 用于在rule RHS中将对象从工作内存中删除, retract()函数有同样的作用, 不过已经被标记为废弃状态. insert() 宏函数 insert() 用于在rule RHS中增加新的fact对象, 新的fact对象会自动完成模 阅读全文
posted @ 2022-10-22 21:55 harrychinese 阅读(31) 评论(0) 推荐(0) 编辑
摘要:06_stateless_vs_stateful stateless session 适用场景: 适合一次启动规则引擎完成全量fact的计算, 它不支持增量计算. execution() 方法通常传入一个对象清单, 要计算的全量入参数据, drools将这些对象推入工作内存, 然后执行规则, 最后会 阅读全文
posted @ 2022-10-21 07:21 harrychinese 阅读(43) 评论(0) 推荐(0) 编辑
摘要:query 作用和语法 Drools 因其他灵活的 LHS 语法, 能实现非常强大的模式匹配功能, 这是 drools 规则的核心. Drools 通过提供 query 这种方式, 使得我们的java程序也可直接利用其强大的模式匹配功能. query 定义很简单, 只要写 LHS 部分即可, 语法为 阅读全文
posted @ 2022-10-20 07:40 harrychinese 阅读(29) 评论(0) 推荐(0) 编辑
摘要:关于 global 属性 drl 文件中可以设置任意多个 global 对象, 语法是 global dataType variable , dataType 不能 是int/double等原始类型. global 作用: 用于Java和规则之间传递数据, 或者规则之间传递数据, 比如我们在 jav 阅读全文
posted @ 2022-10-20 07:09 harrychinese 阅读(20) 评论(0) 推荐(0) 编辑
摘要:关于 dialect 属性 drools 支持两种dialect, 即 java 和 mvel dialect 缺省为 java, 当然我们也推荐统一使用 java dialect, 以降低维护成本. dialect 属性仅用于设定 RHS 部分语法, LHS 部分并不受 dialect 的影响. 阅读全文
posted @ 2022-10-18 20:35 harrychinese 阅读(94) 评论(0) 推荐(0) 编辑
摘要:Drools 7 的产品组合 Drools Engine: 包含 Drools Expert(规则引擎) 和 Drools Fusion(complex event processing-CEP) Drools and jBPM integration: Drools/jBPMN 和 Spring等 阅读全文
posted @ 2022-10-15 22:14 harrychinese 阅读(44) 评论(0) 推荐(0) 编辑
摘要:官方文档 Drools Documentation Drools tutorial 原理 规则引擎 Drools 执行流程浅析 drools规则引擎从入门到精通_Maxiao1204的博客-CSDN博客_drools从入门到精通 drools RETE算法_lihuayong的博客-CSDN博客_d 阅读全文
posted @ 2022-10-14 07:35 harrychinese 阅读(42) 评论(0) 推荐(0) 编辑
摘要:rest client rest client 是什么 除了内置流程引擎应用, 有时候我们其他应用也需要访问 camunda platform, 这时候可以通过 camunda rest API实现, 为了简化rest api的调用, 开源社区已经有了两个 rest client 包. 能做什么: 阅读全文
posted @ 2022-10-12 07:39 harrychinese 阅读(263) 评论(0) 推荐(0) 编辑
摘要:本文内容转载, 下面内容转载自 使用Camunda流程引擎开发,【取回】、【撤销】代码实现 - a周周 - 博客园 camunda驳回到第一个任务节点示例 - 李兵~ - 博客园 流程打回到起始节点 //获取流程起始节点和发起人 String toActId = historicActivityIn 阅读全文
posted @ 2022-10-12 07:16 harrychinese 阅读(669) 评论(0) 推荐(0) 编辑
摘要:Camunda 后台数据库内建有几个人员/组织数据表, 但在User task assignment方便, 并不强制我们要将自己的人员/组织数据导入到这些table中. 举例讲, 我们需要将某个user task指派给 demo123 这个用户, 直接在该user task设定 assignee 为 阅读全文
posted @ 2022-10-11 21:59 harrychinese 阅读(554) 评论(0) 推荐(0) 编辑
摘要:整体架构: 规则处理层处理范式: 架构特点: 1. 业务实现统一采用Java+SQL+Drools规则, 业界主流技术 2. 高性能 阅读全文
posted @ 2022-10-10 07:27 harrychinese 阅读(61) 评论(0) 推荐(0) 编辑
摘要:external task 是 Camunda 中Service task设计非常好的一种实现, 最大程度地做到了和流程引擎的解耦. 如果我们的流程是全自动的, 甚至可以完全使用 external task实现整个流程业务处理. 本文目的 学习 SpringBoot 版external-task-c 阅读全文
posted @ 2022-10-09 21:04 harrychinese 阅读(653) 评论(0) 推荐(0) 编辑
摘要:Java 调用方式 对于内置流程引擎的应用, 可以在流程流转时调用 Java 逻辑, 最主要有三种形式的 Java 调用方式: Java Delegate: Service Task 组件如选择 Java class, 即是 Java Delegate, 该类需要实现 JavaDelegate 接口 阅读全文
posted @ 2022-10-09 15:27 harrychinese 阅读(265) 评论(0) 推荐(0) 编辑
摘要:按照Camunda官方文档, 生产环境优先推荐Oracle 和 Postgresql, 当然MySQL和SQL Server也是支持的. 官方参考架构文档 前面博文已经介绍了使用Postgresql作为数据库, camunda_13_postgresql - harrychinese - 博客园 这 阅读全文
posted @ 2022-10-09 11:01 harrychinese 阅读(242) 评论(0) 推荐(0) 编辑
摘要:预编译软件包支持Swagger 命令行启动官方预编译, 缺省情况下就已经启动了 swagger ui. PS C:\my_program\camunda-bpm-run-7.17.0> .\start.bat Setting JAVA property to "C:\Program Files\Re 阅读全文
posted @ 2022-10-08 07:18 harrychinese 阅读(412) 评论(0) 推荐(0) 编辑
摘要:前面都是使用H2数据库, 体验功能非常方便, 但分析table数据就比较麻烦了, 下面介绍如何使用postgresql作为后台数据库. 按照Camunda官方文档, 生产环境优先推荐Oracle 和 Postgresql, 当然MySQL和SQL Server也是支持的. 官方参考架构文档 下载并安 阅读全文
posted @ 2022-10-07 16:00 harrychinese 阅读(504) 评论(0) 推荐(0) 编辑
摘要:User task 和 Start event的 form 类型 Camunda forms: 使用 Modeler 创建的外部form文件, Camunda TaskList 应用能自动渲染该form. Embeded or External Task forms: 手写js +html, Emb 阅读全文
posted @ 2022-10-06 17:07 harrychinese 阅读(634) 评论(0) 推荐(0) 编辑
摘要:Camunda 的 service task 推荐使用 external task, 它有很多优点: 流程引擎可以做到轻量级, 流程引擎实例可以支持更多的业务. 解耦流程引擎和业务代码, 以后的升级和部署将非常方便. 借助external task SDK, 业务代码实现也非常简单 external 阅读全文
posted @ 2022-10-04 22:42 harrychinese 阅读(296) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示