【Activiti工作流引擎】官方快速入门demo |
您所在的位置:网站首页 › workflow官网中文规则 › 【Activiti工作流引擎】官方快速入门demo |
Activiti官方快速入门demo
地址: https://www.activiti.org/quick-start 0. 版本activiti 5.22.0 JDK 1.8 1. 介绍这个快速入门指南用于介绍如何在你编写的应用程序中嵌入BPM(Business Process Management)框架Activiti,你可以构建一个基于命令行的BPMN(业务流程建模与标注)逻辑应用程序。 Activiti拥有先进的流程设计工具,可将更复杂的BPM逻辑嵌入到您的应用程序中。这些工具包括基于Eclipse和基于Web的BPMN编辑器等等。为简洁起见,本快速入门只使用Activiti的Java API。 2. 创建设设置Maven项目使用以下Maven依赖项创建一个名为“ActivitiDeveloperQuickStart”(以下称为)的Java项目: pom.xml文件内容为: 4.0.0 activiti activiti-demo 1.0-SNAPSHOT org.activiti activiti-engine 5.22.0 org.slf4j slf4j-api 1.7.21 org.slf4j slf4j-log4j12 1.7.21 com.h2database h2 1.4.193 mysql mysql-connector-java 6.0.6 org.apache.maven.plugins maven-assembly-plugin 2.4.1 jar-with-dependencies com.example.OnboardingRequest UTF-8 make-assembly package single官方使用的数据库是H2,由于我想看一下表结构,所以这里我自己使用的是mysql数据库 3. 创建流程引擎配置日志 D:\IDEAProject\activitidemo\src\main\resources\log4j.properties log4j.rootLogger=DEBUG, ACT log4j.appender.ACT=org.apache.log4j.ConsoleAppender log4j.appender.ACT.layout=org.apache.log4j.PatternLayout log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n创建一个带main方法的类 D:\IDEAProject\activitidemo\src\main\java\com\example\OnboardingRequest.java package com.example; public class OnboardingRequest { public static void main(String[] args) { } }使用Java代码的方式创建流程引擎 public class OnboardingRequest { public static void main(String[] args) throws ParseException { ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:mysql://localhost:3306/activiti?serverTimezone=UTC") .setJdbcUsername("root") .setJdbcPassword("123456") .setJdbcDriver("com.mysql.jdbc.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); ProcessEngine processEngine = cfg.buildProcessEngine(); String pName = processEngine.getName(); String ver = ProcessEngine.VERSION; System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]"); } }FatJar也就叫做UberJar,是一种可执行的Jar包(Executable Jar)。FatJar和普通的jar不同在于它包含了依赖的jar包。 在第一步中已经把中加入了fatjar的配置 运行OnboardingRequest.java,运行成功后数据库会出现25张表 4. 部署流程实例官方提供的Onboarding(入职)流程是: 1. 输入数据 2. 经验大于3年,发布个性化入职欢迎消息 3. 工作经验3年或者以下,直接把数据存入后端系统 官方提供的是xml配置文件 / src / main / resources / onboarding.bpmn20.xml var dateAsString = new Date().toString(); execution.setVariable("autoWelcomeTime", dateAsString);]]> 3}]]>这里要注意的是: “Enter Data”节点有2个参数fullName和yearsOfExperience,candidate groups设置为managers “Personalized Introduction and Data Entry”节点有1个参数personalWelcomeTime,candidate groups设置为managers “Years of Experience”网关判断节点的条件是${yearsOfExperience > 3},默认走automatedIntroPath 修改OnboardingRequest.java,部署流程实例 package com.example; import java.text.ParseException; import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.RepositoryService; import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration; import org.activiti.engine.repository.Deployment; import org.activiti.engine.repository.ProcessDefinition; public class OnboardingRequest { public static void main(String[] args) throws ParseException { ProcessEngineConfiguration cfg = new StandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000") .setJdbcUsername("sa") .setJdbcPassword("") .setJdbcDriver("org.h2.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); ProcessEngine processEngine = cfg.buildProcessEngine(); String pName = processEngine.getName(); String ver = ProcessEngine.VERSION; System.out.println("ProcessEngine [" + pName + "] Version: [" + ver + "]"); RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment() .addClasspathResource("onboarding.bpmn20.xml").deploy(); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .deploymentId(deployment.getId()).singleResult(); System.out.println( "Found process definition [" + processDefinition.getName() + "] with id [" + processDefinition.getId() + "]"); } } 5. 启动流程实例已经部署的流程实例,可以通过Activiti API来启动,运行,查看历史记录,并以其他方式管理流程实例 日志级别可以继续使用DEBUG,这里不修改,比较方便可以看到修改和查询了哪些表格 修改OnboardingRequest.java,启动一个流程 package com.example; import java |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |