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

发布时间:2021-12-02 14:31:31

本节我们以生活中一个简单的请假流程来初步体验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文件夹下。并*鬞omcat,看到webapps文件夹下这三个war包被自动解压成了文件夹说明部署完毕。在浏览器中输入http://localhost:8080/activiti-app/即可看到activiti-app的登录界面。默认账号为:admin密码为test登录后会看到如下界面:我们点开Kickstart App->Create Process,输入Model name和Model key点击create就可以打开流程图的绘*缑妗6晕颐堑囊滴窳鞒探谢嬷啤>咛宓幕嬷品椒āN颐巧院笙晔觯陨暇褪茿ctiviti Modeler的安装过程Activiti提供的eclipse插件。具体的安装过程可以参考博客,笔者不再赘述,在此给出一个链接,但是提示一下,eclipse的版本不要太高,可能会安装失败,笔者选用的是eclipse的oxygen版本。

2、用流程设计工具绘制业务流程图
考虑到eclipse安装Activiti流程设计插件时的繁琐,本节我们使用Activiti Modeler进行设计。我们创建一个model name和modal key均为studentLeaveProcess的流程图。在工作流的概念中,任何一个流程都会有开始和结束,所以我们首先绘制这两个元素:


有不同的开始事件,我们本节只选择第一个。启动事件开始后,代表一个流程的开始,反应到我们的业务模型上,就是学生可以开始请假申请了,而这个申请的动作,需要学生人为的去完成,在BPMN2.0中,需要人为完成的任务,定义为用户任务(UserTask),如下图:
同理教师审批以及校长审批都是用户任务,于是我们把三个用户添加到流程图绘*缑妗2⒂眉妨诱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可以完成当前任务。任务流程自动结转到校长审批节点,校长的操作同理。以上我们就完成了整个流程的流转演示

相关文档

  • 写历史的官是什么
  • Linux私房菜学习-第3章主机规划与磁盘分区
  • 中物院软件中心北京总部研发部2021校园招聘启事
  • 固定长度List,超长自动删除队尾数据
  • excel妆前乳色号excel妆前乳试色?
  • Intellij Idea 15中开发Maven+osgi项目(Apache felix环境)
  • 《茉莉姐姐话禁毒》动漫宣传片观后感
  • 宝宝爱喝汤怎么喝好宝宝应该怎么喝汤
  • 人的价值剧情分集介绍,人的价值剧情介绍***3-5集***
  • 培训方案策划书模板合集8篇
  • 幸福树的养殖方法及注意事项是什么
  • 两个月婴儿干呕的原因
  • 红糖马拉糕的做法图解
  • 网络运营推广经理求职简历范文
  • 哪些行为可以提高记忆力
  • 导游资格考试的基础知识点
  • 幼儿园中班教案《太阳小鸟夸奖我》
  • 【热门】过年日记范文集合六篇
  • 婴儿车和伞车区别有哪些
  • iphone6s怎么投屏到电视
  • 源度大师预知时日归往西方
  • 个人总结范文教师
  • vue学习笔记??组件手动挂载
  • 什么穴位瘦脸好呢
  • 二年级科技作文
  • Python文字云图安装包
  • Unity3D-terrain brush地形画刷无法出现在Scene中,无法刷地图2
  • 给退休职工慰问信推荐3篇
  • 《新建文本文档》贾瑜
  • 成功认识的修养和习惯
  • 猜你喜欢

  • 2004年江西定额说明及工程量计算规则资料
  • 项目材料采购计划(建筑工程)
  • 十二星座动漫卡通头像
  • 2013年执业药师考试中药学专业知识(二)试卷(二套)
  • 常州市骏力恒新焊割五金厂(企业信用报告)- 天眼查
  • 儿童闭塞性细支气管炎临床分析 -王雪艳
  • 庆祝建党90周年红色经典歌曲演唱会主持词[1]
  • 安徽省长丰县实验高级中学人教版高中数学选修1-2教案:1.1回归分析的基本思想及其初步应用(1)
  • 教案(理论力学C 60学时)第02章 *面汇交力系
  • win10使用无边框鼠标 (mouse without border)-局域网共享鼠标键盘
  • 案例1 对中国燃油的经济学思考
  • 幼儿园中班每月老师评语
  • 雷锋精神永放光芒雷锋日记节选
  • 山东天慧广告艺术发展有限公司企业信用报告-天眼查
  • 外研版高中英语必修5 Module 5《The Great Sports Personality》(Period 5)课时作业
  • 炒核桃的做法炒核桃怎么做好吃炒核桃的家常做法
  • 九年级语文下册第三单元11《送东阳马生序》同步练*新人教版
  • 江苏省海安高级中学2018-2019学年高一3月月考物理试卷(创新班)
  • 2017新苏教版一年级语文下册看拼音写汉字第五单元
  • 记录一次springboot程序假死问题
  • 军队励志经典短句语录
  • 2018年5月大学生预备党员转正申请书2500字
  • 电气检修月度培训计划表
  • 贵州省省级财政专项资金管理实施细则
  • 月饼吃多了会怎么样?哪些人不宜吃月饼?
  • 超职数配备整改方案鸡泽.doc
  • 机床电气控制技术复*ppt课件
  • 人教版高二地理必修三第二章知识点归纳
  • 【人教版】2020年春六年级下册数学:导学案设计-第4单元-第11课时 图形的放大与缩小(例4)
  • 小学数学北师大版三年级下册 一 除法《商是几位数》公开课优质课教案比赛讲课获奖教案
  • 【范文】纪念一二九运动诗歌朗诵稿(二人版)
  • 第九章 植物组织培养技术及其在育种中的应用
  • 【教育学*文章】开学第一课《中国少年儿童幸福成长宣言》
  • 写给青年艺术家的一封信
  • 温州市岩土工程有限公司(企业信用报告)- 天眼查
  • 闽发证券有限责任公司南京龙蟠中路证券营业部企业信用报告-天眼查
  • 宁乡县凤菊林木种植专业合作社企业信用报告-天眼查
  • 四川省2017年瑟肽炅俅惨窖Ъ煅榧际醺呒吨俺剖蕴
  • 随州市曾都区土壤肥料管理站东方红农资经营部企业信用报告-天眼查
  • 学习笔记:volatile为什么不能保证原子性
  • LED灯饰项目投资申请报告
  • 本钢汽运公司福利厂企业信用报告-天眼查
  • 电脑版