Activiti6 示例1--部署流程、启动流程、查询第一个流程节点、查询第二个流程节点等信息
Activiti6 示例1--部署流程、启动流程、查询第一个流程节点、查询第二个流程节点等信息
一、项目代码框架
该eclipse 版本为2017年版本的,配置工作流插件 请参考《Eclipse 下 Activiti Designer 插件安装教程》
二:项目代码:
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
<?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 文件查看此群文件
执行结果
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
数据库
数据库表执行上述代码,自动生成
为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/