赵走x博客
网站访问量:151846
首页
书籍
软件
工具
古诗词
搜索
登录
28、API变量
27、查询API
26、API异常策略
25、 流程引擎API与服务
24、事件处理器
23、映射诊断上下文
22、日志
21、配置部署缓存
20、配置在表达式与脚本中可用的bean
19、配置异步历史
18、配置历史
17、作业执行器
16、数据库与表
15、支持的数据库
14、配置JNDI数据源
13、配置数据库
12、ProcessEngineConfiguration bean
11、创建ProcessEngine
10、开始使用Flowable REST API
9、使用历史数据
8、实现JavaDelegate
7、查询与完成任务
6、另一个话题:事务
5、启动流程实例
4、部署流程定义
3、构建命令行程序
2、Flowable是什么?
1、简介
3、构建命令行程序
资源编号:551104
热度:74
3、Flowable BPMN 用户手册 (v 6.3.0):构建命令行程序
>原文:https://tkjohn.github.io/flowable-userguide/#_creating_a_process_engine # 2.3.1. 创建流程引擎 在这个初步教程中,将构建一个简单的例子,以展示如何创建一个Flowable流程引擎,介绍一些核心概念,并展示如何使用API。 截图时使用的是Eclipse,但实际上可以使用任何IDE。我们使用Maven获取Flowable依赖及管理构建,但是类似的任何其它方法也都可以使用(Gradle,Ivy,等等)。 我们将构建的例子是一个简单的请假(holiday request)流程: - 雇员(employee)申请几天的假期 - 经理(manager)批准或驳回申请 我们会模拟将申请注册到某个外部系统,并给雇员发送结果邮件 首先,通过File → New → Other → Maven Project创建一个新的Maven项目  在下一界面中,选中'create a simple project (skip archetype selection)'  填入'Group Id'与'Artifact id':  这样就建立了空的Maven项目,然后添加两个依赖: - Flowable流程引擎。使我们可以创建一个ProcessEngine流程引擎对象,并访问Flowable API。 - 一个内存数据库。本例中为H2,因为Flowable引擎在运行流程实例时,需要使用数据库来存储执行与历史数据。 请注意H2依赖包含了数据库及驱动。如果使用其他数据库(例如PostgreSQL,MySQL等),需要添加对应的数据库驱动依赖。 在pom.xml文件中添加下列行: ```
org.flowable
flowable-engine
6.3.0
com.h2database
h2
1.3.176
``` 如果由于某些原因,依赖JAR无法自动获取,可以右键点击项目,并选择'Maven → Update Project'以强制手动刷新(一般不会需要这么操作)。 在这个项目中的'Maven Dependencies'下,可以看到flowable-engine与许多其他(传递的)依赖。 创建一个新的Java类,并添加标准的Java main方法: ``` package org.flowable; public class HolidayRequest { public static void main(String[] args) { } } ``` 首先要做的是初始化ProcessEngine流程引擎实例。这是一个线程安全的对象,因此通常只需要在一个应用中初始化一次。 ProcessEngine由ProcessEngineConfiguration实例创建。该实例可以配置与调整流程引擎的设置。 通常使用一个配置XML文件创建ProcessEngineConfiguration,但是(像在这里做的一样)也可以编程方式创建它。 ProcessEngineConfiguration所需的最小配置,是数据库JDBC连接: ``` package org.flowable; import org.flowable.engine.ProcessEngine; import org.flowable.engine.ProcessEngineConfiguration; import org.flowable.engine.impl.cfg.StandaloneProcessEngineConfiguration; public class HolidayRequest { public static void main(String[] args) { ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:h2:mem:flowable;DB_CLOSE_DELAY=-1") .setJdbcUsername("sa") .setJdbcPassword("") .setJdbcDriver("org.h2.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); ProcessEngine processEngine = cfg.buildProcessEngine(); } } ``` 在上面的代码中,第10行创建了一个独立(standalone)配置对象。这里的'独立'指的是引擎是完全独立创建及使用的(而不是在Spring环境中使用,这时需要使用SpringProcessEngineConfiguration类代替)。第11至14行中,传递了一个内存H2数据库实例的JDBC连接参数。 重要:请注意这样的数据库在JVM重启后会消失。如果需要永久保存数据,需要切换为持久化数据库,并相应切换连接参数。 第15行中,设置了true,确保在JDBC参数连接的数据库中,数据库表结构不存在时,会创建相应的表结构。 另外,Flowable也提供了一组SQL文件,可用于手动创建所有表的数据库表结构。 然后使用这个配置创建ProcessEngine对象(第17行)。 这样就可以运行了。在Eclipse中最简单的方法是右键点击类文件,选择Run As → Java Application :  应用运行没有问题,但也没有在控制台提供有用的信息,只有一条消息提示日志没有正确配置:  Flowable使用SLF4J作为内部日志框架。在这个例子中,我们使用log4j作为SLF4J的实现。因此在pom.xml文件中添加下列依赖: ```
org.slf4j
slf4j-api
1.7.21
org.slf4j
slf4j-log4j12
1.7.21
``` Log4j需要一个配置文件。在src/main/resources文件夹下添加log4j.properties文件,并写入下列内容: ``` log4j.rootLogger=DEBUG, CA log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n ``` 重新运行应用。应该可以看到关于引擎启动与创建数据库表结构的提示日志:  这样就得到了一个启动可用的流程引擎。接下来为它提供一个流程!