【Activiti工作流】(二)Activiti工作流初体验

本节我们以生活中一个简单的请假流程来初步体验Activiti工作流引擎给我们带来的申请-审批这个流程上的便利。
**【业务需求】**开发一个简单的学生请假审批系统,请假的具体流程为,学生发起请假申请,首先由班主任签字审批,之后由校长签字审批,校长审批完之后,整个审批流程结束。
【开发步骤】
1、用工作流的思想对业务流程进行建模
1.1准备流程设计工具
上文中我们提到了可以运用BPMN2.0规范定义好的符号语言对业务流程进程建模,而Activiti不仅实现了BPMN2.0规范,而且在其基础上作了扩充。并且Activiti给我们提供了两款非常好用的流程设计工具。

  • 基于B/S架构的Activiti Modeler。Activiti Modeler包含于Activiti官方提供的开发包中,并且该开发包中的activiti-app是我们本节要使用的重点。所以需要我们去Activiti的官网下载该开发包,下面给出下载链接我们采用Activiti6.0。下载完成解压后,我们会看到如下的目录结构在这里插入图片描述在wars文件夹下给我们提供了三个webApp,我们将这三个包拷贝到Tomcat的webapps文件夹下。并重启Tomcat,看到webapps文件夹下这三个war包被自动解压成了文件夹说明部署完毕。在浏览器中输入http://localhost:8080/activiti-app/即可看到activiti-app的登录界面。默认账号为:admin密码为test登录后会看到如下界面:在这里插入图片描述我们点开Kickstart App->Create Process,输入Model name和Model key点击create就可以打开流程图的绘制界面。对我们的业务流程进行绘制。具体的绘制方法。我们稍后详述,以上就是Activiti Modeler的安装过程
  • Activiti提供的eclipse插件。具体的安装过程可以参考博客,笔者不再赘述,在此给出一个链接,但是提示一下,eclipse的版本不要太高,可能会安装失败,笔者选用的是eclipse的oxygen版本。

2、用流程设计工具绘制业务流程图
考虑到eclipse安装Activiti流程设计插件时的繁琐,本节我们使用Activiti Modeler进行设计。我们创建一个model name和modal key均为studentLeaveProcess的流程图。在工作流的概念中,任何一个流程都会有开始和结束,所以我们首先绘制这两个元素:
启动实践
结束实践
有不同的开始事件,我们本节只选择第一个。启动事件开始后,代表一个流程的开始,反应到我们的业务模型上,就是学生可以开始请假申请了,而这个申请的动作,需要学生人为的去完成,在BPMN2.0中,需要人为完成的任务,定义为用户任务(UserTask),如下图:在这里插入图片描述
同理教师审批以及校长审批都是用户任务,于是我们把三个用户添加到流程图绘制界面。并用箭头连接这5个元素。初步的流程图如下。
在这里插入图片描述
对于用户任务我们可以编辑用户任务的属性,选中第一个用户任务,该任务为学生请假申请,我们进行属性编辑。我们仅编辑如下三个属性:
在这里插入图片描述
在这里插入图片描述
id:当前任务的唯一标识id
name:当前任务的名称
Assignments:我们以assignee的方式指定了该任务的办理人为xialuo,当然了,这里一般不会写死,目前是初学,我们暂时写死。
同理,我们给出其他两个用户任务的属性。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
最后给出完成的流程图:
在这里插入图片描述
至此流程图绘制完毕。
【特别注意】或许有的同学会有这样的疑问,这么简单的一个流程图我在“画图”工具里就可以画,为什么还要在这里绘制。笔者想提示的是,这个图不仅仅是个像素文件,大家可以试试在这个界面中,下载该文件。在这里插入图片描述
将下载后的文件打开,你会发现这其实是个xml文件,在这个xml文件中定义了我们图中的所有元素和元素的属性以及元素之间的关系。Activiti流程引擎正是通过解析这个xml文件;来实现对业务流程的驱动。
3、使用官方应用activiti-app演示审批流程
3.1创建App
我们回到首页在这里插入图片描述
我们解释下这三个模块的作用:
Kickstart App:Create process models, forms and app definitions, then share your models and definitions with other people.(创建流程模型,表单以及app定义,然后与别人分享你的模型和app,我们方才绘制的流程图就是这个模块里绘制的)
Task App:Access your full task list and work on any tasks assigned to you from any process app. Also, start new processes and tasks.(访问流程app指定给你的所有任务列表,并且可以启动一个流程和新建一个任务,该模块里可以查看你当前账户的待办任务列表,并且可以自行发起一次流程和任务)
Identity management:Manage your profile: change your picture, name and other settings. As an admin user, manage users and groups(编辑app中的身份信息).
刚刚我们完成了业务流程图的绘制,要知道,单独的一个业务流程图是不能进行任何的操作的,它需要有一个app作为载体,运行在这个app中,所以我们在kickstart App->apps中创建一个app。
在这里插入图片描述
App创建完成后,需要将方才绘制的业务流程图(或称为业务模型)与该App绑定。
在这里插入图片描述
绑定后点击左上角的保存按钮之后关闭当前界面。我们会看到刚刚的app已经在列表里:
在这里插入图片描述
点开学生请假管理系统->publish,将该App发布。
【注意】当前的App对于我们来说,仅仅是概念层面创建了一个App
3.2设定用户信息
在Identity management的Users选项卡中编辑模型中用到的身份信息。比如学生:xialuo 班主任:teacherWang 校长:schoolMasterZhang(注:创建用户时Email一定要写)。之后便可使用该身份信息,登录系统。进行请假申请以及审批操作。身份信息列表如下;
在这里插入图片描述3.3测试流程
使用xialuo账户登录系统,找到学生管理系统,在processes中选定一个流程并启动该流程的一个流程实例。这里提到了流程实例的概念,流程实例就是整个业务模型中的一次执行过程。我们刚刚为整个请假流程定义了一个业务模型,就好比在Java中定义了一个Java类,而创建业务流程的一条流程实例,就好比创建了Java类的一个对象一样。我们点击start process后就可以创建一条流程实例。
在这里插入图片描述
在界面中我们可以看到当前正在活动中任务。是需要学生来处理的。点击该任务后,进入任务详情,点击complete即可完成当前任务。
在这里插入图片描述
之后我们退出当前用户。切换到teacherWang的账号。就可以看到当前账户有待办任务。同样,我们点击complete可以完成当前任务。任务流程自动结转到校长审批节点,校长的操作同理。以上我们就完成了整个流程的流转演示

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值