activiti

Migrating Activiti tasks from old process to new process

[亡魂溺海] 提交于 2019-12-22 05:38:13
问题 I have an Activiti project for some business process. The problem is about migration. An existing process has some unfinished tasks. I want to modify the existing process by adding a new step. Now, when I create a new task, this new task will be processed according to the updated process. And unfinished tasks will be processed according to the old process. Let's take the following example: https://spring.io/blog/2015/03/08/getting-started-with-activiti-and-spring-boot In this example,

在springBoot项目中使用activiti

六月ゝ 毕业季﹏ 提交于 2019-12-22 01:38:39
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 依赖: 新建springBoot项目时勾选activiti,或者在已建立的springBoot项目添加以下依赖: <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>6.0.0</version> </dependency> 配置: 数据源和activiti配置: server: port: 8081 spring: datasource: url: jdbc:mysql://localhost:3306/act5?useSSL=true driver-class-name: com.mysql.jdbc.Driver username: root password: root # activiti default configuration activiti: database-schema-update: true check-process-definitions: true process-definition-location-prefix: classpath:/processes/ # process-definition

让Activiti记录变量历史信息

假如想象 提交于 2019-12-22 01:38:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 可能你在苦恼这个问题,因为在跟踪已结束流程的时候需要获取流程办理中设置的变量值(可以分析每个节点办理的详细状态),今天我们就来探索一下如何实现。 1.Activiti表结构设计 Activiti的表结构设计分为两种类型:运行时(ACT_RU)、历史(ACT_HI)。 1.1 运行时变量 所有运行时的变量都保存在表: ACT_RU_VARIABLE 中,这些变量可以在启动流程、完成任务、动态添加的方式插入到数据库,以便流程在处理中可以根据变量的值决定流程的走向。 1.2 历史变量呢? 为什么没有 ACT_HI_VARIABLE 这张表呢? 我在开始的时候也是苦恼为什么没有这张表,导致在跟踪历史流程信息的时候不能获取变量。 2.了解历史级别 Activit默认提供了4中历史级别: none : 不保存任何历史记录,可以提高系统性能; activity :保存所有的流程实例、任务、活动信息; audit :也是Activiti的 默认 级别,保存所有的流程实例、任务、活动、表单属性; full : 最完整的历史记录,除了包含 audit 级别的信息之外还能保存详细,例如:流程变量。 对于几种级别根据对功能的要求选择,如果需要日后跟踪详细可以开启 full 。 3.配置历史级别 3.1 在XML中配置 在引擎Bean

Activiti中的流程历史保存流程发起人的方法

寵の児 提交于 2019-12-22 01:34:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Activiti中流程的历史信息保存在ACT_HI_ACTINST表中,流程历史信息保存在ACT_HI_PROCINST表中,我们可以通过API或者直接写SQL进行查询,但是这里面并没有流程发起人的信息,流程发起人信息有的时候还是非常必要的,比如查询某人发起的流程或者做相关的统计等。 鉴于ACT_HI_ACTINST中保存了流程的活动历史信息,我们还是想在这个表上做文章,但是这个表中并没有发起人等相关的字段,这时候,我们发现,当一个流程刚发起时,ACT_TYPE_为startEvent,这时ASSIGNEE_为空,如果我们能借用这个字段,保存申请人,查询起来代码还是比较优雅的,虽然这个字段本身的含义不是申请人。 另外,ACT_HI_PROCINST表中还有一个START_USER_ID_字段,但是默认为空。通过上述两种保存流程发起人的方式,在不同的场景中都能够通过简单的方式查询到流程的发起人信息。 下一步,就是研究Activiti的代码了,看看能不能找到相应的扩展点,解决这个问题。 经过研究,找到了扩展点,开发起来还是比较方便的,下面进行详细描述,注意,本文的开发基于Activiti5.15.1版本,大体扫了下代码,更新的5.17版本应该也兼容,但未经过测试。 对于流程发起时保存ACT_HI

扩展activiti原表增加新字段

我的梦境 提交于 2019-12-22 01:24:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本人博客开始迁移,博客整个架构自己搭建及编码 http://www.cookqq.com/listBlog.action activiti自带了很多表,如图: Activiti工作流引擎的数据库表中的表名称都是以 ACT_.第二部分两个字母表示表的类型。使用模糊匹配的方式说明表的类型匹配activiti的服务API. · ACT_RE_*: RE代表仓储(Repository).这种表前缀以“static”表示流程定义信息或者流程资源信息(如流程的图表和规则等). · ACT_RU_*: RU标识为运行(Runtime)时表。包含流程实例,用户任务和变量任务等在运行时的数据信息。这些表只存储Activiti在流程实例运行执行的数据,在流程结束的时候从表中去除数据。从而保持运行时候数据的表的快速和小数据量. · ACT_ID_*:ID标识为唯一(Identity)的。包含一些唯一的信息如用户,用户做等信息。 · ACT_HI_*:HI表示历史数据(History)表,包括过期的流程实例,过期的变量和过期的任务等。 · ACT_GE_*:GE表示公用(General data)的数据库表类型。 ACT_GE_BYTEARRAY 表保存了开发时候的文件,在工作流部署的时候需要上传相关的工作流文件到相关的项目中

Activiti架构分析及源码详解

做~自己de王妃 提交于 2019-12-22 01:08:50
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Activiti架构分析及源码详解 [TOC] 引言 工作流引擎,应用于解决流程审批和流程编排方面等问题,有效的提供了扩展性的支撑。而目前来说,工作流领域也有了相对通行化的标准规范,也就是BPMN2.0。支持这个规范的开源引擎主要有:Activiti,flowable,Jbpm4等。本文着重对Activiti的架构设计进行分析和梳理,同时对流程启动和原子操作的相关代码进行完整走读。 本文的阅读对象需要对Activiti有一定的理解并且已经能够初步的使用Activiti进行流程流转方面开发。 如果对文章内容有疑惑,欢迎加入技术交流群186233599,作者会不定时解答相关问题。 一、Activiti设计解析-架构&领域模型 1.1 架构 Activiti采用了一个分层架构完成自底向上的包装。架构图如下 大致包括: 核心接口层,被PVM接口定义。PVM会在后面的章节中详细讲述。 核心实现层,基于PVM的思想和接口,定义了一些关键实体包含ActivityImpl(该类抽象了节点实现),FlowElementBehavior实现(该类抽象了节点指令动作),ExecutionImpl(流程执行实体类) 命令层,Activiti在编码模式上直接限定整体风格为命令模式。也就是将业务逻辑封装为一个个的Command接口实现类

problem during schema create,statement create sequence act_evt_log_seq

一曲冷凌霜 提交于 2019-12-21 16:24:32
今天在调试程序的时候出现“problem during schema create,statement create sequence act_evt_log_seq”这个错误,跟踪发现是这样造成的。 很早之前的activiti数据表中村里很多数据,我就把表删了,重新建个空的,重新建后,一运行就报上面的错误。 最后发现是删表的时候,没有删除 act_evt_log_seq。使用语句 "drop sequence act_evt_log_seq"删除这个序列就解决问题了。 补充: databaseSchemaUpdate 属性的取值:   flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。   true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。   create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。   drop_create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)。 来源: https://www.cnblogs.com/manny151213/p/6050376.html

POST request to Activiti REST API causes CORS issue when using Content-Type:application/json

拟墨画扇 提交于 2019-12-20 06:22:42
问题 I'm using AngularJS to consume Activit REST resources. All GET operations works as expected but, when I try to POST to /runtime/process-instances with Content-Type:application/json, it fails on the preflight. As you can see, there's no 'Access-Control-Allow-Origin' in the response header. When I change the Content-Type to application/x-www-form-urlencoded;charset=utf-8, for example, the 'Access-Control-Allow-Origin' comes in the response header but as we know, my POST won't work as API

Activiti工作流的应用示例

纵然是瞬间 提交于 2019-12-20 01:13:50
Activiti工作流的应用示例 1、新建流程模型 模型管理->模型工作区 点击“创建”后会立即跳转到“流程在线设计器”页面,请参考下一节 2、在线流程设计器 模型管理->模型工作区->编辑 3、设置流程属性 l 名称:流程定义名称 l 描述信息:流程定义描述 l 流程标识:流程定义KEY,对应procDefKey,用来标识一个流程 4、拖拽元素介绍  Start event:开始事件  End entit:结束事件  User task:用户任务活动  Service task:服务任务活动  Exclusive gateway:独家网关,排它网关通道,只能有一条分支执行,如if else  Parallel gateway:并行网关,并行网关通道,所有分支一块执行 更多介绍请参考: http://www.mossle.com/docs/activiti/#bpmnConstructs 5、流程发起人的流程变量 在开始节点的属性中设置“启动器”(流程发起人)的变量,例如:applyUserId 设置以后,在某个任务的属性中,可以设置参与者为${applyUserId},这样可以实现【谁发起谁执行】,请参考下图: 当发起人发起某个流程,在某个环节被驳回的时候,如果希望流程驳回到发起人,可使用方法。 6、表单概念 普通表单:每个节点的表单内容都写死在JSP或者HTML中。

Integrate Activiti Modeler using Maven

我只是一个虾纸丫 提交于 2019-12-19 10:22:37
问题 How one can integrate Activiti Modeler into their own web application and keep all the advantages Maven suggests? The probem is that Activiti Modeler in Maven is part of Activiti Explorer. There are several questions online from people who want to develop their own web applications, use Modeler to edit the processes, but don't need other Explorer features. For example, Activiti BPM without activiti-explorer or How To Integrate Activiti Modeller Into own Web Application 回答1: I have managed to