Activiti6.0(一)Activiti-app的安装使用及流程入门

14 篇文章 0 订阅
13 篇文章 44 订阅

目录

一、前言

二、Activiti简介

三、Activiti-app安装使用

四、创建第一个流程

1、创建用户

2、创建流程定义

3、测试流程

五、使用Activiti-admin查看历史记录

六、获取xml文件

七、工作流小结


一、前言

在流程服务方面也工作了挺长时间,项目上的工作流框架也在中途重构了一下子,底层工作流也从原先的手写到之后的重构成开源工作流框架Activiti,因此也一直想稍稍总结下Activiti,作一个入门知识留作储备。由于原先的项目在框架上还是选择的Spring,当时Activiti6也才刚面世,考虑到不太稳定以及相应文档资料过少因此最终项目上使用的5.22的版本,本系列演示的Activiti版本则为6.0。这第一篇则是介绍工作流的基本概念以及Activiti-app的使用。

 

二、Activiti简介

Activiti简而言之就是一款开源的工作流引擎,是由JBPM的创建者Tom Baeyens在离开JBOSS之后建立的项目,其同样实现了BPMN2.0规范,可以发布设计好的流程定义,并通过api进行流程调度。那么何为工作流呢?对于没有接触过的人来说可能不是很清楚,其实特别简单,以烂透了的请假流程为例,每一个过程都是事先定义好的且都是按照规则一步步执行,从提交流程开始->部门经理审批->总经理审批,三个过程独立执行且应用这种模型也提高了请假效率。既然有了工作流,那么自然就有大牛设计了工作流引擎,即将一系列业务场景通通抽象出来做成标准流程图,然后放入流程引擎中即可按照流程定义约定逐步流转,因此工作流引擎主要用于解决复杂的业务场景。

 

三、Activiti-app安装使用

首先,如果需要使用Activiti-app简易流程软件,必须先按照jdk以及tomcat,若未安装读者可自行google,这里我提供Activiti6.0的整包下载地址:https://pan.baidu.com/s/1iXzTmBOZCsV4Z7_LQErbSQ  密码:4ufc

下载完毕后,解压Activiti6.0,然后将wars目录下的activiti-admin.war、activiti-app.war两个war包拷贝到tomcat的webapps目录下,然后进到tomcat的bin目录下启动tomcat

sh startup.sh

接着就可以在浏览器访问Activiti-app了,http://localhost:8080/activiti-app,默认密码为:admin/test,首页展示如下说明登陆成功:

 

四、创建第一个流程

在工作流中,通常所说的流程是指流程定义,当使用这个流程定义去创建工单的时候,同时会创建一个流程实例,用于保存此时此刻的流程信息,防止工单在流转过程中流程发生变化而导致工单走不下去的情况。由于流程需要人员审批,因此首先我们需要创建人员

1、创建用户

从首页选择第三个模块即 Identity management(身份管理),进去之后选择Users标签页,如下

然后点击Create user,填写用户信息即可,此处我新增了三个用户

2、创建流程定义

然后点击左上角的标志回到首页,选择第一个模块即Kickstart App,开始创建流程定义

填好基本信息,点击创建即可

 

此时进入流程图编辑页面,如下:

第一次进来的话会有一些基本介绍,小白可以跟着学习下,这边我直接使用最简单的人工节点来画这第一个模型即User Task和End event

画好流程图之后还需要指定各流程的审批人员,人员是工作流中最为重要的一环,许多复杂流程往往会出现人员分配错误的情况,这边直接赋值即可

选中需赋值的流程环节,然后点击Assignments后的选项值,选择第一阶段我们所创建的人员,最后保存即可

全部编辑完后点击左上角的保存按钮保存当前流程,在流程界面就能看到我们刚才创建的流程模型啦

在Acitiviti-app中,创建流程还不够,还需要创建一个app来暴露给其余用户使用,相当于包了一层而已,因此我们需要创建一个app,进到Apps标签下新建一个app后然后关联我们刚才创建的请假流程即可

然后保存发布后,在首页就能看到我们新增的app啦

3、测试流程

测试的话就比较简单了,使用test03账号登陆Activiti-app后就能看到我们刚才创建的请假app,然后创建单子即可,可以带上备注信息,之后分别切换各环节审批人员的账号上去进行审批,全部完成后流程自动结束。

 

五、使用Activiti-admin查看历史记录

当流程走完后,我们可以使用Activiti-admin来查看我们的工单历史记录,进入http://localhost:8080/activiti-admin,默认密码为:admin/admin,

进去之后需要修改配置信息,否则始终会报错,需要将端口号改成Tomcat默认的8080,同时这里的账号和密码是Activiti-app的账号密码,即admin/test

然后点击Check就能看到绿色的通行证啦~可以分别切换不同的标签页查看不同的内容

 

六、获取xml文件

进入流程模型详情点击下载即可得到该模型对应的xml文件xxxx.bpmn20.xml,这也就是一份完整的流程文件,可在代码中用于发布并最终作为流程运转。

xml文件详情如下:

<?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/processdef">
  <process id="vocation" name="请假流程" isExecutable="true">
    <startEvent id="startEvent1"></startEvent>
    <userTask id="sid-EA9C8B20-4BA6-47D4-86D3-B21EBF0BD990" name="直属经理审批" activiti:assignee="test">
      <extensionElements>
        <modeler:activiti-idm-assignee xmlns:modeler="http://activiti.com/modeler"><![CDATA[true]]></modeler:activiti-idm-assignee>
        <modeler:assignee-info-email xmlns:modeler="http://activiti.com/modeler"><![CDATA[test@qq.com]]></modeler:assignee-info-email>
        <modeler:assignee-info-firstname xmlns:modeler="http://activiti.com/modeler"><![CDATA[test]]></modeler:assignee-info-firstname>
        <modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
      </extensionElements>
    </userTask>
    <userTask id="sid-926AAE81-063A-4D88-B509-362C3D96481E" name="总经理审批" activiti:assignee="test">
      <extensionElements>
        <modeler:activiti-idm-assignee xmlns:modeler="http://activiti.com/modeler"><![CDATA[true]]></modeler:activiti-idm-assignee>
        <modeler:assignee-info-email xmlns:modeler="http://activiti.com/modeler"><![CDATA[test@qq.com]]></modeler:assignee-info-email>
        <modeler:assignee-info-firstname xmlns:modeler="http://activiti.com/modeler"><![CDATA[test]]></modeler:assignee-info-firstname>
        <modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
      </extensionElements>
    </userTask>
    <endEvent id="sid-24F3BD99-87CC-4F2F-940A-062AC90838DD"></endEvent>
    <sequenceFlow id="sid-ACE554C1-6250-44D2-95CC-49200E2E943F" sourceRef="startEvent1" targetRef="sid-EA9C8B20-4BA6-47D4-86D3-B21EBF0BD990"></sequenceFlow>
    <sequenceFlow id="sid-8C609B42-C142-4C96-93A3-484818E67A8A" sourceRef="sid-EA9C8B20-4BA6-47D4-86D3-B21EBF0BD990" targetRef="sid-926AAE81-063A-4D88-B509-362C3D96481E"></sequenceFlow>
    <sequenceFlow id="sid-8E6039BD-0943-4D40-A6DE-3BD09A5A3008" sourceRef="sid-926AAE81-063A-4D88-B509-362C3D96481E" targetRef="sid-24F3BD99-87CC-4F2F-940A-062AC90838DD"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_vocation">
    <bpmndi:BPMNPlane bpmnElement="vocation" id="BPMNPlane_vocation">
      <bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1">
        <omgdc:Bounds height="30.0" width="30.0" x="100.0" y="155.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-EA9C8B20-4BA6-47D4-86D3-B21EBF0BD990" id="BPMNShape_sid-EA9C8B20-4BA6-47D4-86D3-B21EBF0BD990">
        <omgdc:Bounds height="80.0" width="100.0" x="199.0" y="130.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-926AAE81-063A-4D88-B509-362C3D96481E" id="BPMNShape_sid-926AAE81-063A-4D88-B509-362C3D96481E">
        <omgdc:Bounds height="80.0" width="100.0" x="420.0" y="130.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="sid-24F3BD99-87CC-4F2F-940A-062AC90838DD" id="BPMNShape_sid-24F3BD99-87CC-4F2F-940A-062AC90838DD">
        <omgdc:Bounds height="28.0" width="28.0" x="645.0" y="156.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="sid-ACE554C1-6250-44D2-95CC-49200E2E943F" id="BPMNEdge_sid-ACE554C1-6250-44D2-95CC-49200E2E943F">
        <omgdi:waypoint x="130.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="199.0" y="170.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-8E6039BD-0943-4D40-A6DE-3BD09A5A3008" id="BPMNEdge_sid-8E6039BD-0943-4D40-A6DE-3BD09A5A3008">
        <omgdi:waypoint x="520.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="645.0" y="170.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="sid-8C609B42-C142-4C96-93A3-484818E67A8A" id="BPMNEdge_sid-8C609B42-C142-4C96-93A3-484818E67A8A">
        <omgdi:waypoint x="299.0" y="170.0"></omgdi:waypoint>
        <omgdi:waypoint x="420.0" y="170.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

 

七、工作流小结

这里再对工作流做一个小结,工作流简单来说就是多个参与者,按照预定义的规则,传递业务信息进行审核功能的一个框架。工作流中常见的概念大概有如下几种:流程定义、流程实例、工单、任务。

流程定义:简单来说就是制定流程的所有信息,包含表单信息、人员分配信息、环节基本信息等。

流程实例:可以认为是某一时刻流程定义的副本集,是专门用来给某一工单所用。

工单:就是流转过程中的具体业务展现,整个流程一般只有一张单子。

任务:就是流程流转到某一环节或某个步骤所产生的任务信息。

这边给出这些概念之间的比例关系,流程定义:流程实例=1:n,流程实例:工单=1:1,工单:任务=1:n

当然在流程流转过程中,还有一个东西特别重要,那就是流程变量。流程变量在项目中主要用来传递业务参数,在连线的条件中也可以设置流程变量,它的另一个作用就是用来指定个人任务和组任务的处理人。

工作流 Activiti 的学习总结(六) Activiti安装详细过程 activiti-5.6 的安装 项目中采用最新的 Activiti 版本为 5.6GA 的 activiti REST 方式访问相关的 REST WebService 服务, activiti 提供了 对 mysql 、 oracle 、 postgres 的全面支持。 demo 的安装脚本比之前的版本都有 了很大的优化,基本上按教程就能顺利 demo , 真正达到了 GA 的效果了。为此我将在使用 mysql 的安装过程及遇到的一些小问 题总结记录了下来。但是我们项目采用 H2 数据库 ( Generic H2 Server )方式存储数据(安装成功之后在 ${activiti_home}\apps\h2 目下保存数据文件 {activiti_db}.h2.db ) 和 {activiti_db}.lobs.db. 如下是在 windows XP 环境下使用 mysql 数据库的安装实录: 一)下载 activiti-5.6.zip 二)将 activiti-5.6zip 解压到指定目录,假设为“C: \mash_activiti- 5.6”, 注意下面提到的路径均是相对于该路径而言 三)检查数据库类型 打开文件“setup \ build.properties”修改 db=h2 (采用默认为 h2 )。 四)配置 H2 数据库 创建名称为 activiti 的空数据库,连接帐号设为 sa ,密码也设为 activiti 。 ( 如果不喜欢默认的连接配置,可以修改文件“setup \ build.h2.properties”中 相应的属性值) 五)预下载一些必需的文件到“C: \ downloads”(备注这一步可以不执行,非必 须的,在网络比较好的情况下,使用 ant 自动下载 ) “C: \ downloads”这个路径是在 build.properties 中通过属性 “downloads.dir”定义的,也可以手动修改指定其他位置。 如果确保网络环境很顺畅, 这一步也可以不做, 安装脚本会自动下载, 由于之前 的版本我安装时经常下载中断, 导致文件损坏、 安装异常, 所以我习惯了先预先 下载,保证安装顺畅点。主要下载如下 2 个文件,左侧为下载地址,右侧为下载 后保存的文件名: 1 ) http://mirrors.enquira.co.uk/apache/apache-tomcat-6.0.32.zip (http://activiti.org/downloads/apache-tomcat-6.0.32.zip) --> apache-tomcat-6.0.32.zip ( 2.71MB ) 2 ) http://activiti.org/downloads/activiti-modeler-5.6.war --> activiti-modeler-5.6.war ( 31.8MB ) 六)修改浏览器的可执行文件路径(非必须) 打开文件“setup \ build.xml”修改属性 windows.browser 的值为浏览器的启动 文件对应的位置。如我一直使用 chrome ,配置如下: 修改这个的目的是方便下面的 "ant demo.start" 结束后自动打开浏览器访问相 关演示模块的首页。 七)检查一下你的电脑是否已经使用了 tomcat 服务 如果使用了 tomcat 服务, 得停掉, 否测会冲突。 顺便检查一下 8080 端口有没有 被占用,否测也会冲突导致安装失败。 八)安装 apache-ant-1.8.2 和 jdk1.5+ 环境 主要是设置环境变量 ANT_HOME 和 JAVA_HOME ,并 将 %ANT_HOME%\bin 、 %JAVA_HOME%\bin 设置到 path 环境变量中。 九)一切就绪后就可以开始体验了 命令行切换到“setup/",运行 "ant demo.start" ,等待整个安装过程自动完成 吧,安装完毕后默认会自动打开浏览器 十)测试是否安装成功 http://localhost:8080/activiti-probe 采用默认 admin 用户登录: 登录名称: kermit 登录密码: kermit 十一) activiti 手工启动方式如下: activiti 默认下载的 tomcat 和 h2 的安装目录为 ${activiti_home}/apps 目录如 (C:\mash_activiti-5.6\apps) 下面。 启动的 activit 服务需要 1. 先启动 H2 数据库控制台 ( C:\mash_activiti-5.6\apps\h2\h2_console.start.bat ,控制台 web 访问开 放端口为 8082 ) 2. 再启动 H2 数据库访问服务 ( C:\mash_activiti-5.6\apps\h2\h2.start.bat , H2 程序访问开放端口为 9092 ) 我在安装使用过程中遇到如下一些问题: tomcat 控制台显示的中文乱码 解决办法:修改文件 apps\apache-tomcat-6.0.32\conf\logging.properties , 增加如下一行的配置: java.util.logging.ConsoleHandler.encoding = GBK
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清茶_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值