/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/

Activiti6 示例1--部署流程、启动流程、查询第一个流程节点、查询第二个流程节点等信息

* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* @author Alan
* @Email no008@foxmail.com

 

正文

 

Activiti6 示例1--部署流程、启动流程、查询第一个流程节点、查询第二个流程节点等信息

 

一、项目代码框架

image

 

该eclipse 版本为2017年版本的,配置工作流插件 请参考《Eclipse 下 Activiti Designer 插件安装教程

 

 

 

image

 

二:项目代码:

复制代码
package com.alan.activiti6Demo.fristAct;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

public class FirstAct {


	public static void main(String[] args) throws Exception {
		//创建引擎,这步骤会进行数据库表的创建或者更新操作
		ProcessEngine engine=ProcessEngines.getDefaultProcessEngine();
		//部署流程文件至 数据库表中。
		RepositoryService rs=engine.getRepositoryService();//资源服务
		RuntimeService  rts = engine.getRuntimeService();//运行时服务
		TaskService ts=engine.getTaskService();//流程任务处理服务
		/*
		 * 一次部署,可以包含多个文件:流程图、流程定义文件
		 * 部署的文件信息放入在act_ge_bytearray 中
		 * 部署记录信息 放入在act_re_deployment 中
		 */
		rs.createDeployment().addClasspathResource("first.bpmn").deploy();
		ProcessInstance pi=rts.startProcessInstanceByKey("myProcess");//每启动流程一次,则可以获取一个流程实例对象。流程定义文件可以启动多次

		// 查询第一个任务
		Task task = ts.createTaskQuery().singleResult();
		System.out.println("第一个任务完成前,当前任务名称:" + task.getName());
		// 完成第一个任务
		ts.complete(task.getId());
		// 查询第二个任务
		task = ts.createTaskQuery().singleResult();
		System.out.println("第二个任务完成前,当前任务名称:" + task.getName());
		// 完成第二个任务(流程结束)
		ts.complete(task.getId());
		task = ts.createTaskQuery().singleResult();
		engine.close();//关闭引擎
		System.exit(0);//退出
	}



}
复制代码

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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 流程引擎配置的bean -->
	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<!--  <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/activiti6demo" />-->
		<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/activiti6act" />
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUsername" value="root" />
		<property name="jdbcPassword" value="123456" />
		<property name="databaseSchemaUpdate" value="true" />
	</bean>
</beans>
复制代码

 

first.bpmn

image

复制代码
<?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/test">
  <process id="myProcess" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <endEvent id="endevent1" name="End"></endEvent>
    <userTask id="usertask1" name="Write Vaction"></userTask>
    <userTask id="usertask2" name="Audit"></userTask>
    <sequenceFlow id="flow1" sourceRef="usertask2" targetRef="endevent1"></sequenceFlow>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    <sequenceFlow id="flow3" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
    <bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="470.0" y="130.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="1160.0" y="130.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
        <omgdc:Bounds height="55.0" width="105.0" x="650.0" y="120.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
        <omgdc:Bounds height="55.0" width="105.0" x="940.0" y="120.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="1045.0" y="147.0"></omgdi:waypoint>
        <omgdi:waypoint x="1160.0" y="147.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="755.0" y="147.0"></omgdi:waypoint>
        <omgdi:waypoint x="940.0" y="147.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
        <omgdi:waypoint x="505.0" y="147.0"></omgdi:waypoint>
        <omgdi:waypoint x="650.0" y="147.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>
复制代码

 

log4j.properties

复制代码
log4j.rootLogger=INFO, stdout

# Console Appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

# Custom tweaks
log4j.logger.com.codahale.metrics=WARN
log4j.logger.com.ryantenney=WARN
log4j.logger.com.zaxxer=WARN
log4j.logger.org.apache=WARN
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.engine.internal=WARN
log4j.logger.org.hibernate.validator=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.springframework.web=WARN
log4j.logger.org.springframework.security=WARN
复制代码

 

LIb 文件查看此群文件

image

image

 

执行结果

复制代码
11:55:11,544 [main] INFO  org.activiti.engine.ProcessEngines  - Initializing process engine using configuration 'file:/E:/softCode/activiti6/activitiDemo_firstAct/bin/activiti.cfg.xml'
11:55:11,546 [main] INFO  org.activiti.engine.ProcessEngines  - initializing process engine for resource file:/E:/softCode/activiti6/activitiDemo_firstAct/bin/activiti.cfg.xml
11:55:12,607 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - Found 1 auto-discoverable Process Engine Configurators
11:55:12,608 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - Found 1 Process Engine Configurators in total:
11:55:12,608 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - class org.activiti.management.jmx.JMXConfigurator (priority:10000)
11:55:12,608 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - Executing beforeInit() of class org.activiti.management.jmx.JMXConfigurator (priority:10000)
Sun Jun 02 23:55:12 CST 2024 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
11:55:15,553 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - Found compatibility handler instance : class org.activiti.compatibility.DefaultActiviti5CompatibilityHandler
11:55:15,554 [main] INFO  org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl  - Executing configure() of class org.activiti.management.jmx.JMXConfigurator (priority:10000)
11:55:15,868 [jmxConnectorStarterThread] INFO  org.activiti.management.jmx.DefaultManagementAgent  - JMX Connector thread started and listening at: service:jmx:rmi:///jndi/rmi://RuiLian-PC:1099/jmxrmi/activiti
11:55:15,893 [main] INFO  org.activiti.engine.impl.ProcessEngineImpl  - ProcessEngine default created
11:55:15,905 [main] INFO  org.activiti.engine.ProcessEngines  - initialised process engine default
第一个任务完成前,当前任务名称:Write Vaction
第二个任务完成前,当前任务名称:Audit
复制代码

 

 

 

数据库

image

 

数据库表执行上述代码,自动生成

 

 

 

 

 

 


posted @   一品堂.技术学习笔记  阅读(131)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-06-03 博客园随笔中添加目录导航悬浮框
2021-06-03 mysql 8 集群搭建
点击右上角即可分享
微信分享提示

目录导航