activity工作流引擎

activity工作流引擎

2023年8月1日发(作者:)

activity⼯作流引擎⼯作流activity引擎⼊门案例1、⼯作流是什么?简单来说⼯作流就是将⼀条信息根据⾓⾊、分⼯、条件不同进⾏固定的向上传递,数据是按照固定的流向进⾏传输,⼀级⼀级传递下去,这种场景在OA , CRM / ERP中应⽤的⽐较多。通常这种操作⾃⼰本⾝也可以通过逻辑来实现,但是复杂度很⾼。⽽且不⽅便维护。所以通常都采⽤第三⽅引擎框架来实现,出了引擎本⾝简化了操作以外。更重要的是维护起来很⽅便。2、activity⼯作流引擎activity是⼀个⽐较简单容易上⼿的⼯作流,主要操作分为⼀下步骤利⽤activity插件画出需要的逻辑流程图部署流程启动流程迭代处理流程流程结束3、activity环境搭建1、新建⼀个maven项⽬2、导⼊maven依赖

jetty-util

${n}

provided

jetty-management

${n}

provided

ti

activiti-engine

5.21.0

ti

activiti-spring

5.21.0

groovy-all

2.4.3

4j

slf4j-api

1.7.6

4j

slf4j-jdk14

1.7.6

junit

junit

3.8.1

test

mysql

mysql-connector-java

5.1.38

3、安装画图插件,本操作⽐较简单, 百度能收到,建议采⽤离线安装略。。。。。。。。。。。4、activity是⼀套完成的体系,包含各种操作和数据库表都由框架本⾝提供,所以第⼀步先导⼊ativity需要的表结构在resources下新建⽂件: 新建⼀个java类 【】package ti;import sEngine;import sEngineConfiguration;public class CreateTable {

public static void main(String args[]){

ProcessEngine processEngine = ProcessEngineConfigurationFromResource("")

.buildProcessEngine();

n("processEngine="+processEngine);

}}然后运⾏就会在数据库中就会出现如下:有了画图插件和数据库的表结构,基本环境就算搭建完成。4、⼊门案例编写第⼀步:画流程图。 流程图是最核⼼的操作,后⾯的数据⾛向就会按流程图进⾏传递。这⾥以报销单为例:画图时要注意,提前吧⼏个模块加载出来properties可以通过window—showview加载出来,右边的为画图的控件,我们⼀共需要4个节点StartEvent : 启动事件选中图标拖拽到左边空⽩出即可然后点击右边箭头图标,表⽰新增⼀个⽤户任务[UserTask],同理在依次添加经理审批、财务审批、结束事件然后修改各个模块属性(properties):然后保存该流程图, 画图完成。注意,箭头路径就是数据流向。如下图:*此处注意:*如果⽆保存后⽆图⽚⽣成,则需要开启⼀个配置,然后重新保存5、编写代码,发布、启动、查询任务、处理任务 /** * 部署流程 */ private static ProcessEngine processEngine =aultProcessEngine();

public void delployFlow(){ Deployment deployment = ositoryService() .createDeployment() .name("报销流程") //流程名字 .addClasspathResource("") .addClasspathResource("") .deploy();

// 存在在数据库 act_re_procdef的DEPLOYMENT_ID_ n(()); n(e()); }运⾏很简单,⾃⼰建个main⽅法跑⼀下就OK,结果如下:部署后查看数据库注意此处的key值: 下⼀步需要使⽤它 【此处由于是demo,所以我们就不查询数据库,直接取值操作查看效果】启动流程代码: // 启动流程 public void flowStart(){ RuntimeService runtimeService = timeService(); //⽤key启动时按照最新的流程图版本定义启动 [数据库表=act_re_procdef流程定义表中的KEY_字段] ProcessInstance processInstance = rocessInstanceByKey("员⼯报销单据");

}运⾏代码后查看数据库act_ru_task表 红框位置表⽰节点信息我们在查询employe的任务: public void findEmployeeTask(){ //数据库关系》》》》ID【act_re_deployment】 == ID【act_ru_execution】 == ID【act_ru_task】 ==》【ASSIGNEE_(cwh)】 String assignee = "employee"; //节点的assignee_ List taskList= kService()//获取任务service .createTaskQuery()//创建查询对象 .taskAssignee(assignee)//指定查询⼈ .list();

if(()>0){ for (Task task : taskList){ n("代办任务ID:"+()); n("代办任务name:"+e()); n("代办任务创建时间:"+ateTime()); n("代办任务办理⼈:"+ignee()); n("流程实例ID:"+cessInstanceId()); n("执⾏对象ID:"+cutionId()); } } }我们查到employee下有⼀个5004的任务在等待处理,我们直接处理 /** * 处理流程 *

* @Description: */ public void completeTask(){ // ID【act_ru_task】 String taskId = "5004";

kService().complete(taskId);//完成任务

n("完成任务,任务ID"+taskId);

}然后查看数据库效果很明显,流程从employee流转到了 manager 下⾯, 当然这个过程⾃⼰分析⼀下会更清楚,,处理流程只需要看 ru相关的表, 这是在处理的任务信息表。 在为处理完之前不参与记录数据,剩下的就是 重复操作了。。1、获取经理的代办流程 – 处理流程2、获取财务的代办流程 – 处理流程 – 流程结束这只是⼀个很简单的初始demo,但基本可以搞清楚activity的运⾏流程和执⾏逻辑。以及⼤概会应⽤到那些 场景。⾄于后续操作,可以查看⽂档或者其他资料根据需求学习。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1690876028a452635.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信