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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Word 在试图打开文件时遇到错误 解决办法

    Word 在试图打开文件时遇到错误 解决办法Word在试图打开文件时遇到错误,通过属性设置解除锁定可解决。

  • blob类型字段[通俗易懂]

    blob类型字段[通俗易懂]1、在mysql中,bolb是一个二进制大型对象,是一个储存大量数据的容器,例如图片,音频。2、插入blob类型数据比如使用preparedStatement,而不能使用Statment,因为blob类型数据不能使用字符串拼接。有关preparedStatement的使用请参考https://blog.csdn.net/weixin_46457946/article/details/1197812273、mysql的四种blob类型类型大小TinyBlob255byte.

    2022年10月27日
  • vulnhub~汇总

    vulnhub~汇总https://pjchender.github.io/2019/04/26/is-webgoat-%E5%8F%83%E8%80%83%E8%A7%A3%E7%AD%94-solution/<

  • ARM的中断向量表,及DCD伪指令

    ARM的中断向量表,及DCD伪指令当中断或异常发生的时候,CPU自动将PC指向一个特定的地址,这个地址就是中断向量表。在32位ARM系统中,一般都是在中断向量表中放置一条分支指令或PC寄存器加载指令,实现程序跳转到中断服务例程的功能。例如: IRQEntryBHandleIRQ;跳转范围较小 LDRPC,=HandleFIQ   ;LDR伪指令等效生成1条存储读取指令和1条32位常数定义

    2022年10月29日
  • 用c语言编写银行家算法,C语言实现银行家算法

    用c语言编写银行家算法,C语言实现银行家算法《C语言实现银行家算法》由会员分享,可在线阅读,更多相关《C语言实现银行家算法(8页珍藏版)》请在人人文库网上搜索。1、C语言实现银行家算法(源码、运行结果)一、源码/*银行家算法10-22*/#include/函数声明voidinit(int*pcount,int*scount,intAllocation1010,intNeed1010,intAvailable10);vo…

  • 应用程序无法正常启动0xc000012d_0xc000007b怎么解决

    应用程序无法正常启动0xc000012d_0xc000007b怎么解决【问题背景】用vs2008写了一个MySql(MySQL的版本号:8.0.11.0)的测试程序,在搞定MySQL所需要的x64平台后,问题又来了:编译一切都好,就是在程序启动的时候报了下面这个错!【解决方案】1、网上找了很多资料,大多数都说是direct_x的问题,于是用360软件管家下了个dx9,再次编译运行,问题依旧!2、用depends.exe软件查看了libmysql.dll的依赖…

发表回复

您的电子邮箱地址不会被公开。

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