墨 禹
一个追求有道有术的非典型程序员
展开
-
Camunda 7.x 系列【68】实战篇之我的待办任务
本篇文档实现的效果如下,点击我的待办进入待办列表,显示任务信息、处理按钮。原创 2024-06-18 13:30:39 · 565 阅读 · 0 评论 -
Camunda 7.x 系列【67】实战篇之撤销流程
撤销流程 即撤销当前已发起的流程实例。这是一个常见的需求,Camunda本身不提供直接的方法来撤销正在执行的流程,需要自定义处理逻辑。原创 2024-06-18 09:42:29 · 479 阅读 · 0 评论 -
Camunda 7.x 系列【66】实战篇之我发起的
我发起的流程功能主要包含以下几部分:查询我发起的流程实例列表查询详情,包含提交的表单信息、动态流程图、流转记录等原创 2024-06-04 15:11:31 · 479 阅读 · 0 评论 -
Camunda 7.x 系列【65】实战篇之发起流程
发起流程功能主要分为以下几步:按照分类查询可用的流程点击流程,跳转到业务表单填写表单并提交原创 2024-06-04 15:10:37 · 311 阅读 · 0 评论 -
Camunda 7.x 系列【64】实战篇之挂起、删除流程模型
在Camunda 7.x 系列【39】挂起 & 激活中,我们已经了解流程模型、流程实例的挂起和激活,在实际场景中,这是一个较为常用的功能。原创 2024-05-29 15:21:38 · 419 阅读 · 0 评论 -
Camunda 7.x 系列【63】实战篇之查询、新建、发布流程模型
流程模型主要提供给以下角色使用:管理员:维护流程模型,包括查询、新建、修改、发布、禁用等普通用户:发起流程实例,包括查询可用的模型、发起等原创 2024-05-15 16:42:26 · 413 阅读 · 0 评论 -
Camunda 7.x 系列【62】启动流程实例源码解析
为了更好的了解Camunda,接下来我们简单分析下启动流程实例相关源码原创 2024-01-16 15:53:15 · 626 阅读 · 1 评论 -
Camunda 7.x 系列【61】模型元素校验器
在设计流程模型时,需要符合相关规范,否则将会导致流程无法正常运行。所以模型在发布之前,需要进行相关校验。Camunda本身在流程部署解析XML时,会进行相关校验,也支持自定义的校验规则。在实际开发中,流程设计器进行初步校验,设计完成后再调用校验接口进行验证,双重校验后,确保流程模型的正确性。除了模型,流程实例运行时,往往也需要进行校验,例如设置的审批人一般都是用户ID,在执行时,并不能确保设置的用户是否已被删除(后续讲解)。原创 2024-01-16 15:50:52 · 371 阅读 · 0 评论 -
Camunda 7.x 系列【60】实战篇之流程分类
企业级的业务流程管理中,流程是多种类型的,比如办公类就有人事行政、考勤、财务等,仓库存库系统有入库、出库、损耗报销等。在实际开发中,可以根据某种维度对流程进行分类,方便管理。等开源流程引擎默认没有提供流程分类功能,需要自定义扩展。整体效果如下所示:原创 2023-12-06 20:37:06 · 2398 阅读 · 0 评论 -
Camunda 7.x 系列【59】BPMN 模型对象 API
提供轻量级的模型,可用于解析、创建、修改流程模型文件,无需手动进行解析,并支持使用创建流程定义。原创 2023-12-06 20:34:39 · 1891 阅读 · 0 评论 -
Camunda 7.x 系列【58】实战篇之自定义表单设计器
在之前我们初步了解了Camunda中表单的相关知识,在实际开发场景中,需要开发自定义表单设计器,设计好表单后,将表单绑定到流程模型,发起申请时,查询流程及对应的表单数据并渲染页面,然后提交表单启动流程。原创 2023-11-29 15:47:00 · 2890 阅读 · 0 评论 -
Camunda 7.x 系列【57】实战篇之流程设计器
在之前的案例中,我们都是使用来设计流程图,在实际项目开发中,需要提供基于Web页面的流程设计器。用户可以使用图形化的界面,通过拖拽、连接、配置来设计自定义的流程。流程设计器用于设计流程模型,包含了画板、元素库(节点和连线)、配置等核心组件,并支持模型和XML/JSON格式的转换,和后端进行交互。基于官方开源做二次开发,完全的BPMN 2.0标准,基本适用于所有业务流程需求,支持很复杂的流程图,但是对流程设计人员有一定的技术要求。原创 2023-11-29 11:49:13 · 1879 阅读 · 0 评论 -
Camunda 7.x 系列【56】数据库表结构
Camunda支持主流的一些数据库,如果是需要集成国产数据库,需要进行相关改造原创 2023-09-12 13:28:46 · 795 阅读 · 0 评论 -
Camunda 7.x 系列【55】运行时指标
Camunda流程引擎支持记录相关运行时指标,通过指标可以监控平台的运行状态、使用负载、性能。原创 2023-09-12 10:47:48 · 549 阅读 · 0 评论 -
Camunda 7.x 系列【54】管理服务 ManagementService
ManagementService管理服务,负责流程引擎的管理和维护操作,允许用户获取关于数据库表及其元数据的信息,以及关于作业的查询能力和管理操作。原创 2023-09-11 13:51:43 · 507 阅读 · 0 评论 -
Camunda 7.x 系列【53】Job 执行器
Job Executor即任务执行器,是Camunda中的一个调度组件,负责执行异步后台作业。Job表示Job Executor执行的某一作业,例如,在定时器事件创建时,或者标记为异步执行的任务时,会创建一个Job去执行调度。原创 2023-09-11 11:31:39 · 776 阅读 · 1 评论 -
Camunda 7.x 系列【52】历史服务 HistoryService
RuntimeService用于管理流程运行时相关动态数据,当运行结束后,对应act_ru_xx开头表中的数据都会被删除,历史数据会保存在act_hi_xx开头的表中,进行独立永久性存储,并经过优化处理利于查询。原创 2023-09-08 09:21:28 · 607 阅读 · 0 评论 -
Camunda 7.x 系列【51】运行时服务 RuntimeService
RuntimeService运行时服务,提供了对执行对象、流程实例、流程变量等动态数据的管理,是核心组件之一。本篇文档包含了RuntimeService中所有的方法API。原创 2023-09-07 11:25:18 · 483 阅读 · 0 评论 -
Camunda 7.x 系列【50】任务服务 TaskService
TaskService用于管理流程引擎中的任务,是核心组件之一。本篇文档包含了TaskService中所有的方法API。原创 2023-09-06 20:39:19 · 638 阅读 · 0 评论 -
Camunda 7.x 系列【49】存储服务 RepositoryService
RepositoryService存储服务是核心组件之一。提供了流程定义和部署相关的操作API,用于管理静态资源。本篇文档包含了RepositoryService中所有的方法API。原创 2023-09-06 20:38:30 · 605 阅读 · 0 评论 -
Camunda 7.x 系列【48】候选用户和用户组
用户任务除了流程启动时设置固定的处理人外,还支持通过候选的方式,从候选用户中动态选择任务处理人。Camunda支持配置候选用户和候选用户组。原创 2023-09-06 15:42:48 · 1306 阅读 · 0 评论 -
Camunda 7.x 系列【47】泳池 & 泳道
在BPMN 2.0中,可以使用泳池(Pool)和泳道(Lane)划分流程的参与者,以便更容易的理解和维护流程模型。泳道描述的是流程的参与者,也就是执行一系列特定任务的具有相同特性的人或组织。泳池描述的是整个组织,它可以划分成多个泳道,泳道具有分层结构。原创 2023-09-06 14:46:17 · 514 阅读 · 0 评论 -
Camunda 7.x 系列【46】ID 生成器
由流程引擎管理的所有持久性实体,例如流程定义、流程实例、任务等,他们都有唯一的ID,当这些实体被持久化到数据库时,这些ID被用作相应数据库表中的主键。原创 2023-09-05 13:52:50 · 551 阅读 · 0 评论 -
Camunda 7.x 系列【45】重启流程实例
在流程实例终止后,可以重启流程实例,例如撤销流程后,可以重新发起。原创 2023-09-05 10:50:26 · 689 阅读 · 0 评论 -
Camunda 7.x 系列【44】修改流程实例
流程模型中,执行活动需要按照指定顺序执行,但是某些情况下,需要灵活地再次启动一个活动或取消一个正在运行的活动,例如以下业务场景。原创 2023-09-05 09:59:25 · 881 阅读 · 0 评论 -
Camunda 7.x 系列【43】事务子流程
事务子流程是一个嵌入式子流程,用来处理一组必须在同一个事务中完成的活动,使它们共同成功或失败。如果有一个活动失败或者取消,整个事务子流程的所有活动回滚。原创 2023-09-04 11:32:40 · 1351 阅读 · 0 评论 -
Camunda 7.x 系列【42】事件子流程
事件子流程是由事件触发的子流程,可存在于在流程级别,或者任何子流程级别。事件子流程不能直接启动,只能由启动事件被动触发,所以事件子流程不支持空启动事件,可以通过消息事件、错误事件、信号事件、定时器事件或补偿事件等进行触发。事件子流程可以是中断的,也可以是非中断的。中断子流程取消当前作用域内的任何执行,非中断事件子流程则生成一个新的并发执行。原创 2023-09-03 16:46:50 · 667 阅读 · 0 评论 -
Camunda 7.x 系列【41】调用活动
调用活动和嵌入式子流程,从概念的角度来看,当流程执行到达活动时,两者都将调用子流程。不同之处在于,调用活动引用流程定义外部的流程,而嵌入式子流程嵌入在原始流程定义中。原创 2023-09-01 14:19:44 · 442 阅读 · 0 评论 -
Camunda 7.x 系列【40】嵌入式子流程
Subprocess子流程是包含了其他活动、网关、事件等的节点,其本身组成了更大流程的一部分。子流程完全在父流程中定义,通常所以一般被称为嵌入式子流程。原创 2023-09-01 10:53:51 · 384 阅读 · 0 评论 -
Camunda 7.x 系列【39】挂起 & 激活
Camunda支持流程定义和流程实例的挂起和激活。挂起是指将一个正在进行的程序暂停,当后续需要恢复该程序时,将其从挂起状态转变到激活状态,然后接着继续运行。在工作流实际应用场景中,也需要支持挂起功能,比如发现某个流程本身存在问题时,可以直接挂起暂停使用,待修复后再继续运行。原创 2023-08-31 10:42:41 · 789 阅读 · 0 评论 -
Camunda 7.x 系列【38】表单服务 FormService
Camunda提供的表单功能,十分简单,对于复杂的业务场景并不适用,一般都需要自定义实现表单功能。例如对于嵌入式、外部表单实际都是需要将流程模型和表单文件部署在流程服务后台中,然后通过Key引用,扩展性很差,一般不会使用这种方式。原创 2023-08-30 17:31:23 · 1634 阅读 · 0 评论 -
Camunda 7.x 系列【37】表单设计器
在上篇文档中,我们学习了嵌入式表单的相关知识,接下来我们学习使用Camunda Modeler提供的表单设计器设计一个表单,并绑定到流程中。原创 2023-08-30 14:20:18 · 676 阅读 · 0 评论 -
Camunda 7.x 系列【36】嵌入式任务表单
在工作流中,业务数据使用表单的形式展示,例如请假流程中,首先需要填写请假表单,输入各种请假信息,然后启动流程。用户任务节点在审批表单中查看请假信息,并执行审批操作。Camunda支持各种类型的表单,将表单资源与流程图中的BPMN2.0元素连接起来,一般用于StartEvent启动事件和UserTask用户任务。原创 2023-08-30 11:37:04 · 521 阅读 · 0 评论 -
Camunda 7.x 系列【35】会签
会签是指联合发文后,由各发文机关的领导共同签发文件,也就是多个人一起处理签发任务。在工作流中,多个人同时处理一个任务,称之多实例用户任务,可以使用这个特性完成会签功能。原创 2023-08-29 16:36:40 · 1201 阅读 · 0 评论 -
Camunda 7.x 系列【34】外部任务
外部任务不是BPMN 2.0中的规范,是Camunda独有的基于服务任务的一种扩展,也就是远程服务任务。原创 2023-08-29 14:06:49 · 706 阅读 · 1 评论 -
Camunda 7.x 系列【33】事件网关
排他网关能通过数据处理来把流程导向不同的分支。除此之外,BPMN还提供了另外一种流程分叉方式,那就是基于事件的网关,简称事件网关。原创 2023-08-28 15:16:13 · 318 阅读 · 0 评论 -
Camunda 7.x 系列【32】包含网关
包含网关可以看作排他网关和并行网关的结合体。与排他网关类似,可以定义传出序列流的条件,而包含这些条件的网关将对它们进行评估。此外,还可以接收多个序列流,就像并行网关一样。原创 2023-08-28 14:47:18 · 309 阅读 · 0 评论 -
Camunda 7.x 系列【31】并行网关
并行网关用于在一个流程里用来对并发进行建模处理,将把单条线路拆分成多个路径并行执行,或者将多个路径合并处理。原创 2023-08-28 13:47:06 · 447 阅读 · 0 评论 -
Camunda 7.x 系列【30】中间事件
Intermediate Event中间事件,顾名思义就是发生在开始和结束事件之间的事情,中间事件会影响流程的流转,单不会启动或直接终止流程的执行。原创 2023-08-28 11:28:36 · 297 阅读 · 0 评论 -
Camunda 7.x 系列【29】结束事件
结束事件表示流程将在何处结束,结束事件时抛出型的,当流程执行到结束事件时,会抛出一个结果,BPMN2.0定义了多种类型的结束事件。原创 2023-08-26 15:42:44 · 781 阅读 · 0 评论