activiti

2018/3/4 Activiti教程之对于流程的基本操作以及从发起到完成还有相关注意事项(与Springboot整合版)三

一笑奈何 提交于 2020-04-26 23:52:56
写教程实在太累了,,,还浪费时间,Activiti教程就写到这好了,不过最近在玩区块链,到时候写几个区块链方面的教程。 这是一些流程的查询与删除api,删除这块,默认是级联删除(加个false参数,就可以取消级联,不过最好不要) 挂起流程与激活的api 挂起与激活流程操作 OK,基本的命令大家都知道了,那么现在我们该怎么去发起一个流程呢? 首先我们需要改下我们的流程模板 在发起人那里写上applyuser,它是一个activiti的一个保留关键字,下面代码中会解释它的用处 将之前的流程先删除,然后创建新的,因为我们新添加了东西 之后就可以开启流程并定义发起人了,这里面几个参数含义可以看代码注释 我们运行完后看下数据库 注意,一个已经发布的流程可以有多个流程实例,相当于我们一个类可以多个实例一样的道理,因为张三也可以走这个流程请假,李四也可以走这个流程请假 之后我们开始走流程 看下数据库 可以看到NAME_从一级任务变成了二级任务 我们再运行一次 流程实例信息消失了。 得出结论,在Activiti中没有完成任务和任务失败的概念,只有走流程的概念,一个流程要不然就是走完,要不然就是直接删除,也就是审批不通过 来源: oschina 链接: https://my.oschina.net/u/4331110/blog/4250015

驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式

三世轮回 提交于 2020-04-26 23:42:42
多重选择(Multiple Choice) 在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。 例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。 ACTIVITI 中的支持情况: 1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。 2.BPMN方式支持根据条件执行多个子分支。 JFLOW中的支持情况: 1.通过定义流程为异表单分合流来实现。 a通过条件控制发起子线程数量。设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。 b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。 2.通过父子流程也可以实现。 同步聚合(Synchronizing Merge) 在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。 这种模式的关键在于能够动态的根据分支的多少进行聚合。 ACTIVITI 中的支持情况: 可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量

工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比

喜欢而已 提交于 2020-04-26 23:40:52
为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按照如下几个方面做一次全面的、客观的对比。 首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与广泛,解决了BPM领域的很多问题,值得我们赞赏。他的boss是jbpm的前身。 JFlow是济南驰骋公司开放的一款工作流程引擎,JFlow的前身是CCFlow,ccflow是国内开源的一款老牌的工作流程引擎,承担过很多大型项目,适应于复杂的国内应用环境。 Activity 相对简单,仅有流程引擎,没有表单引擎。在BPM的研究领域, 很多的学者,专家都是把流程引擎与表单引擎分开的,对于这个观点我们并不很赞同。实现功能需要大量的代码开发。 JFlow是JFlow流程引擎+CCForm的表单引擎的有机结合,内容相对复杂,配置程度较高,实施周期短,上手快。 工作流程引擎 - 对比 以国外流行的工作流activiti的模式与当今中国开源的JFlow(ccflow和jflow的总称)流程引擎对照。以便让各位能够了解到中国国情的工作流引擎与国际流行的设计规则的差别、不同、与优缺点。 国外工作流比较通用的就是满足21种流程模式的支持。 5种基本控制流模式的对比 顺序流(Sequence) ACTIVITI : 就是按照流程设计的步骤,一步步的向下运行,这样的模式下每个节点有先后顺序

Activiti6系列(1)- 核心数据库表及字段注释说明

送分小仙女□ 提交于 2020-04-26 23:39:28
###前言 本文是根据《疯狂工作流讲义-Activiti6.0》一书中提取过来的,有兴趣的可以去当当网买这本书,讲的很不错,最后还有实战案例。 虽然是提取过来的,但完全靠手打梳理,觉得有用的小伙伴可以给予一定支持,谢谢。 <br> ###共分为六大部分 1、通用数据表 2、流程存储数据表 3、身份数据表 4、运行时数据表 5、历史数据表 6、DMN规则引擎数据表 <br> ###一、通用数据表 1、资源表,act_ge_bytearray 用于保存和流程引擎相关的资源,只要调用了Activiti存储服务的API,涉及的资源均会被转换为byte数组保存到这个表中。 一般情况下,Activiti使用这个表来保存字符串、流程文件的内容、流程图片内容。 主要包含如下字段: 字段 注释 REV_ 数据版本,Activiti为一些有可能会被频繁修改的数据表,加入该字段,用来表示该数据被操作的次数。 Name_ 资源名称,类型为varchar,长度为255字节。 DEPLOYMENT_ID_ 一次部署可以添加多个资源,该字段与部署表act_re_deployment的主键相关联。 BYTES_ 资源内容,数据类型为longblob,最大可存4GB数据。 GENERATED_ 是否由Activiti自动产生的资源,0表示false,1为true。 <br> 2、属性表,act_ge

springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离

℡╲_俬逩灬. 提交于 2020-04-26 14:01:33
1.代码生成器: [正反双向](单表、主表、明细表、树形表,快速开发利器) freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块 2.多数据源: (支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源 3. 阿里数据库连接池 druid ,安全权限框架 shiro( 菜单权限和按钮权限 ) , 缓存框架 ehcache 4. 代码编辑器, 在线模版编辑,仿开发工具编辑器 5.调用摄像头拍照 自定义裁剪编辑头像,头像图片色度调节 6.websocket 及时站内信并声音提醒、实时在线管理、websocket及时刷新页面(完胜ajax技术) 7.redis存储分布式缓存 自windows redis 绿色版,方便开发者本地开发测试 ----------------------------------------------------------------------------------------------------------------- 服务介绍 ( 各个服务单独运行,高可用、低耦合 ) 一:springcloud服务 ---------------------------------------------------------------------------------

Activiti的删除流程

倖福魔咒の 提交于 2020-04-26 11:43:11
一 代码 /** * Copyright (C), 2020-2020, 软件公司 * FileName: DeleteProcessInstance.java * Author: cakin * Date: 2020/4/25 * Description: 删除流程实例 */ package com.syc.activiti.chapter9; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.runtime.ProcessInstance; /** * @className: DeleteProcessInstance * @description: 删除流程实例 * @date: 2020/4/25 * @author: cakin */ @Slf4j public class DeleteProcessInstance { public static void

Activiti的中断和激活流程

丶灬走出姿态 提交于 2020-04-26 11:38:06
一 代码 /** * Copyright (C), 2020-2020, 软件公司 * FileName: SuspendProcess.java * Author: cakin * Date: 2020/4/25 * Description: 中断和激活流程 */ package com.syc.activiti.chapter9; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; import org.activiti.engine.runtime.ProcessInstance; /** * Copyright (C), 2020-2020, 软件公司 * FileName: SuspendProcess.java * Author: cakin * Date: 2020/4/25

activiti 工作流 动态 设置 指定 节点任务人、责任人、组 的实现方式

浪尽此生 提交于 2020-04-24 14:53:00
首先给大家看一下我的流程图: 流程文件leaveBill.bpmn <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"> <process id=

activiti 7 + springboot2(十二)组任务

自作多情 提交于 2020-04-24 14:52:19
(一)Candidate-users候选人 在流程定义中在任务结点的assignee固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn文件中,如果临时任务负责人变更则需要修改流程定义,系统可扩展性差。针对这种情况可以给任务设置多个候选人,可以从候选人中选择参与者来完成任务。 在流程图中任务节点的配置中设置candidate-users(候选人),多个候选人之间用逗号分开。 (二)办理组任务 1)启动任务 /** * 启动一个实例 */ @Test public void startProcessInstance() { // 启动流程实例,同时还要设置流程定义的变量值 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess_1" ); System.out.println( "流程实例id:" + processInstance.getProcessInstanceId()); } 数据库里生成下一个执行任务 2)执行填写请假单任务 /** * 填请假单任务执行 */ @Test public void step1(){ Task task = taskService.createTaskQuery() .processDefinitionKey(

activiti 7 + springboot2(八) Activiti流程实例动态设置assignee执行人

≯℡__Kan透↙ 提交于 2020-04-24 14:11:29
(一)activiti流程图用流程变量设置节点执行人 Activiti 使用 UEL 表达式, UEL 是 java EE6 规范的一部分, UEL(Unified Expression Language)即统一表达式语言, activiti 支持两个 UEL 表达式: UEL-value 和 UEL-method。 <!-- UEL-value: user1 是一个流程变量 --> < userTask activiti:assignee ="${user1}" activiti:exclusive ="true" id ="_3" name ="申请人提交申请" /> <!-- UEL-method: user 是一个流程变量对象, user1.assignee 表示通过调用 user1 的 getter 方法获取值 --> < userTask activiti:assignee ="${user1.assignee}" activiti:exclusive ="true" id ="_3" name ="申请人提交申请" /> (二)方法调用赋值 ${userService.findUserById(userId)} userService 是 spring 容器的一个 bean, findUserById 是该 bean 的一个方法, userId 是流程变量。 (三