activiti完整教程

activiti完整教程完整文档下载地址:http://download.csdn.net/download/qq_29582193/10266221 Activiti教程1. activiti介绍Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。Activiti基于Apache…

大家好,又见面了,我是你们的朋友全栈君。



完整文档下载地址:

http://download.csdn.net/download/qq_29582193/10266221

 

Activiti教程

1. activiti介绍

Activiti是由Alfresco软件在2010517日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。

Activiti基于Apache许可的开源BPM平台,创始人Tom BaeyensJBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。

activiti完整教程 

 

1.1 工作流引擎

ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。

 

 

1.2 BPMN

业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

2. 准备环境

2.1 activiti软件环境

  1.  JDK1.6或者更高版本

  2.  支持的数据库有:h2,mysql,oracle,mysql,db2

  3.  支持activiti运行的jar包,可以通过maven依赖引入

  4.  开发环境为Eclipse3.7或者以上版本,myeclipse8.6版本

2.2安装流程设计器(eclipse插件)

1)打开Help àInstall New Software àAdd

输入 Name:   Activiti Designer

 Location: http://activiti.org/designer/update/

输入完成后,单击OK按钮等待下载完成后安装。

安装完成后在菜单选项中会出现activiti的目录选项

activiti完整教程 

2.3 设置eclipse activit插件的画流程图 选项

打开菜单Windows –> Preferences –> Activiti –>Save 下流程图片的生成方式

activiti完整教程 

勾选上Create process definition image when saving  the diagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。

2.4 准备开发环境

2.4.1 创建maven web项目,在maven中添加activiti依赖

eclipse左边工作栏右键New选择创建Maven Project项目,创建一个名为ActivitiTest的项目

activiti完整教程 

activiti完整教程 

activiti完整教程 

点击Finish完成。

右键项目选择Properties,选择Project Facets 勾选上图中的选项,点击Apply,再点击OK

 

然后将项目转换成web项目,右键项目选择Properties,Project Facets中做如下勾选,然后点击Appy应用和OK确定

activiti完整教程 

 

然后右键项目Properties ,选择Deployment Assembly,test相关目录Remove掉之保留main下面需要发布的内容,如下图

activiti完整教程 

 

然后点击AppplyOK

然后在pom.xml文件中添加以下依赖

<project

xmlns=”http://maven.apache.org/POM/4.0.0″ xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”>

  <modelVersion>4.0.0</modelVersion>

  <groupId>ActivitiTest</groupId>

  <artifactId>ActivitiTest</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  <dependencies>

<dependency>

<groupId>org.activiti</groupId>

<artifactId>activiti-engine</artifactId>

<version>5.22.0</version>

</dependency>

<dependency>

<groupId>org.activiti</groupId>

<artifactId>activiti-spring</artifactId>

<version>5.22.0</version>

</dependency>

<dependency>

<groupId>org.codehaus.groovy</groupId>

<artifactId>groovy-all</artifactId>

<version>2.4.3</version>

</dependency>

 

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>1.7.6</version>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-jdk14</artifactId>

<version>1.7.6</version>

</dependency>

 

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

 

<!– postgresql数据库驱动包开始 根据数据库选择 –>

<dependency>

<groupId>org.postgresql</groupId>

<artifactId>postgresql</artifactId>

<version>9.3-1103-jdbc41</version>

</dependency>

<!– postgresql数据库驱动包结束 –>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

</dependency>

</dependencies>

  

</project>

更新maven项目下载jar

2.4.2 初始化数据库

1src/main/resource目录下创建activiti.cfg.xml文件,内容如下

 

<?xml version=“1.0” encoding=“UTF-8”?>

<beans xmlns=“http://www.springframework.org/schema/beans” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

  xmlns:context=“http://www.springframework.org/schema/context” xmlns:tx=“http://www.springframework.org/schema/tx”

  xmlns:jee=“http://www.springframework.org/schema/jee” xmlns:aop=“http://www.springframework.org/schema/aop”

  xsi:schemaLocation=“http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd

       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd”>

       

<bean id=”processEngineConfiguration”

class=”org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration”>

<property name=”jdbcDriver” value=”com.mysql.jdbc.Driver” />

<property name=”jdbcUrl” value=”jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8″ />

<property name=”jdbcUsername” value=”root” />

<property name=”jdbcPassword” value=”123456″ />

<property name=”databaseSchemaUpdate” value=”true”/>

</bean>

  

</beans>

 

jdbcUrl为你电脑数据库的url

jdbcUsername为数据库用户名

jdbcPassword为数据库密码

 

2)main/java目录下创建任意目录和类

编写创建activiti数据表方法

public class CreateTable {

/****

 * 创建流程表

 * */

@Test

public void createTable() {

ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(“activiti.cfg.xml”)

.buildProcessEngine();

System.out.println(“——processEngine:” + processEngine);

}

}

 

然后运行该测试方法,如果运行成功,在数据库中应该会产生25activiti的相关数据表

activiti完整教程 

2.4.3 activiti表说明

下面是概括了几个常用的数据表

 

流程部署相关表

act_re_deployement 部署对象表

act_rep_procdef  流程定义表

act_ge_bytearray 资源文件表

act_ge_prperty  主键生成策略表(对于部署对象表的主键ID

 

流程实例相关表

act_ru_execution 正在执行的执行对象表(包含执行对象ID和流程实例ID,如果有多个线程可能流程实例ID不一样)

act_hi_procinst 流程实例历史表

act_hi_actinst 存放历史所有完成的任务

 

 

Task 任务相关表

act_ru_task 代办任务表 (只对应节点是UserTask的)

act_hi_taskinst 代办任务历史表 (只对应节点是UserTask的)

 

act_hi_actinst  所有节点活动历史表 (对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)

 

 

流程变量表

act_ru_variable 正在执行的流程变量表

act_hi_variable 流程变量历史表

3.核心API

3.1 ProcessEngine

说明:

1) Activiti中最核心的类,其他的类都是由他而来。

2) 产生方式

ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

如果是spring配置文件可以配置bean注入:

<!– activiti 开始 –>

     <bean id=”processEngineConfiguration” class=”org.activiti.spring.SpringProcessEngineConfiguration”>

         <property name=”dataSource” ref=”dataSource” />

         <property name=”transactionManager” ref=”transactionManager” />

         <property name=”databaseSchemaUpdate” value=”true” />

         <property name=”jobExecutorActivate” value=”false” />

     </bean>

 

    <bean id=”processEngineFactory” class=”org.activiti.spring.ProcessEngineFactoryBean”>

         <property name=”processEngineConfiguration” ref=”processEngineConfiguration” />

    </bean>

 

    <bean id=”repositoryService” factory-bean=”processEngineFactory” factory-method=”getRepositoryService” />

    <bean id=”runtimeService” factory-bean=”processEngineFactory” factory-method=”getRuntimeService” />

    <bean id=”formService” factory-bean=”processEngineFactory” factory-method=”getFormService” />

    <bean id=”identityService” factory-bean=”processEngineFactory” factory-method=”getIdentityService” />

    <bean id=”taskService” factory-bean=”processEngineFactory” factory-method=”getTaskService” />

    <bean id=”historyService” factory-bean=”processEngineFactory” factory-method=”getHistoryService” />

<bean id=”managementService” factory-bean=”processEngineFactory” factory-method=”getManagementService” />

<!– activiti 结束 –>

 

3)可以产生RepositoryService

RepositoryService repositoryService =processEngine.getRepositoryService();

 

4) 可以产生 RuntimeService

RuntimeService runtimeService = processEngine.getRuntimeService();

 

5) 可以产生TaskService

TaskService taskService =processEngine.getTaskService();

 

 

各个Service的作用

RepositoryService

管理流程定义

RuntimeService

执行管理,包括启动,推进,删除流程实例等操作

TaskService

任务管理

 

 

3.2 RepositoryService

Activiti的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn文件和流程图片

service可以用来删除部署的流程定义。

3.3 RuntimeService

activiti的流程执行服务类,可以从这个服务类中获取很多关于流程执行的相关的信息。

3.4 TaskService

activiti的任务服务类。可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务。

3.5 HistoryService

activiti的查询历史信息的类,在一个流程执行完成后,这个对象为我们提供查询历史信息,可以跟踪流程实例对应所有待办节点的运行情况。

3.6 ProcessDefinition

流程定义类,可以从这里获得资源文件等。

3.7 ProcessInstance

代表流程定义的执行实例,当一个部署的流程图启动后,该流程只有一条流程实例数据,但是它的流程任务可以有多个,每个任务对应流程图中相应的流程节点。

 

 

4.入门HelloWorld程序

4.1创建流程图方法

点击ActivitiTest项目,在src/main/java目录下创建一个diagrams目录用来存放流程图

在当前项目右键选择Activiti Diagram流程图输入流程图名称HelloWorld,然后点击OK

activiti完整教程 

在控制面板的右边栏有相关的画图图标操作

activiti完整教程 

其中一个流程必须包含一个开始节点和一个结束节点,结束节点可以有多个。

然后使用StartEvent, UserTask,EndEvent画出下面的流程图,然后用Connection中的SequenceFlow连线连接起来。

 

4.2创建流程图,如下图

activiti完整教程 

 

完整文档下载地址:

http://download.csdn.net/download/qq_29582193/10266221

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162640.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle修改用户密码永不过期_oracle查看密码过期时间

    oracle修改用户密码永不过期_oracle查看密码过期时间Oracle用户登录密码过期的修改1、查看用户的proifle是哪个,一般是default:sqlgt;SELECTusername,PROFILEFROMdba_useOracle用户登录密码过期的修改1、查看用户的proifle是哪个,,一般是default:sql>SELECTusername,PROFILEFROMdba_users;2、查看指定概要文件(如defau…

    2022年7月28日
    31
  • mac 激活navicat15【最新永久激活】

    (mac 激活navicat15)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    324
  • python aes ecb_python简单加密

    python aes ecb_python简单加密前言AES加密的模式有很多种,下面来介绍ECB模式的加密解密importbase64fromCrypto.CipherimportAESclassAESECB:def__init

    2022年7月29日
    20
  • pycharm 2021.12.12激活码-激活码分享

    (pycharm 2021.12.12激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    49
  • Django(50)drf异常模块源码分析

    Django(50)drf异常模块源码分析异常模块源码入口APIView类中dispatch方法中的:response=self.handle_exception(exc)源码分析我们点击handle_exception跳转,查看该

    2022年7月30日
    6
  • FEC原理及其实现[通俗易懂]

    FEC原理及其实现[通俗易懂]感谢原作者:http://blog.csdn.net/rootusers/article/details/49097257视频会议中通常使用的FEC/QOS技术,这方面的资料比较复杂和稀少,根据这么多年的工作经验,做一下分享。 在IP视频通话中丢包造成的影响多种多样。其中对视频质量的影响主要有:马赛克现象、局部变形(图像的某些区域不清晰)、图像模糊、屏幕频繁刷新或闪

    2022年8月11日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号