文章目录

  • 1. 结束事件
    • 1.1 简介
  • 2. 错误结束事件
    • 2.1 简介
    • 2.2 流程设计
    • 2.3 测试类
    • 2.4 运行
      • 2.4.1 启动流程
  • 3. 终止结束事件
    • 3.1 简介
    • 3.2 流程设计
    • 3.3 测试类
    • 3.4 运行
      • 3.4.1 启动流程

1. 结束事件

版权声明:本文部分为CSDN博主「司马缸砸缸了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接

1.1 简介

结束事件都是触发事件。 这是说当流程达到结束事件,会触发一个结果。
分为无指定结束事件,错误结束事件,取消结束事件,终止结束事件等。

2. 错误结束事件

2.1 简介

当流程到达错误结束事件时会结束执行流并且抛出错误,该错误可以被错误边界事件捕获,如果没有被捕获,那么他就相当于无指定结束事件。一般用在子流程中。

2.2 流程设计


流程文件bpmn

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 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" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1596088558202" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema"><error errorCode="error" id="ERR_1" name="error"/><process id="myProcess_1" isClosed="false" isExecutable="true" processType="None"><startEvent id="_2" name="开始"/><subProcess activiti:exclusive="true" id="_3" name="子流程" triggeredByEvent="false"><startEvent id="_5" name="开始2"/><userTask activiti:assignee="user1" activiti:exclusive="true" id="_6" name="服务执行"/><exclusiveGateway gatewayDirection="Unspecified" id="_7" name="ExclusiveGateway"/><endEvent id="_8" name="结束2"/><endEvent id="_9" name="结束3"><errorEventDefinition errorRef="ERR_1" id="_9_ED_1"/></endEvent><sequenceFlow id="_12" sourceRef="_5" targetRef="_6"/><sequenceFlow id="_13" sourceRef="_6" targetRef="_7"/><sequenceFlow id="_14" name="无指定结束" sourceRef="_7" targetRef="_8"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == false}]]></conditionExpression></sequenceFlow><sequenceFlow id="_15" name="错误结束" sourceRef="_7" targetRef="_9"><conditionExpression xsi:type="tFormalExpression"><![CDATA[${flag == true}]]></conditionExpression></sequenceFlow></subProcess><sequenceFlow id="_4" sourceRef="_2" targetRef="_3"/><boundaryEvent attachedToRef="_3" cancelActivity="true" id="_10" name="错误边界事件"><errorEventDefinition errorRef="ERR_1" id="_10_ED_1"/></boundaryEvent><userTask activiti:assignee="user2" activiti:exclusive="true" id="_11" name="错误任务"/><sequenceFlow id="_16" sourceRef="_10" targetRef="_11"/></process><bpmndi:BPMNDiagram documentation="background=#000000;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram"><bpmndi:BPMNPlane bpmnElement="myProcess_1"><bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2"><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="175.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3" isExpanded="true"><omgdc:Bounds height="267.0" width="610.0" x="110.0" y="65.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="267.0" width="610.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_11" id="Shape-_11"><omgdc:Bounds height="55.0" width="85.0" x="525.0" y="400.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10"><omgdc:Bounds height="32.0" width="32.0" x="440.0" y="315.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="330.0" y="250.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5"><omgdc:Bounds height="32.0" width="32.0" x="165.0" y="170.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_6" id="Shape-_6"><omgdc:Bounds height="55.0" width="85.0" x="275.0" y="160.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7" isMarkerVisible="false"><omgdc:Bounds height="32.0" width="32.0" x="485.0" y="170.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_8" id="Shape-_8"><omgdc:Bounds height="32.0" width="32.0" x="620.0" y="110.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9"><omgdc:Bounds height="32.0" width="32.0" x="620.0" y="240.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_6" targetElement="_7"><omgdi:waypoint x="360.0" y="187.5"/><omgdi:waypoint x="485.0" y="186.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_12" id="BPMNEdge__12" sourceElement="_5" targetElement="_6"><omgdi:waypoint x="197.0" y="186.0"/><omgdi:waypoint x="275.0" y="187.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_7" targetElement="_9"><omgdi:waypoint x="517.0" y="186.0"/><omgdi:waypoint x="620.0" y="256.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_7" targetElement="_8"><omgdi:waypoint x="517.0" y="186.0"/><omgdi:waypoint x="620.0" y="126.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_16" id="BPMNEdge__16" sourceElement="_10" targetElement="_11"><omgdi:waypoint x="472.0" y="331.0"/><omgdi:waypoint x="525.0" y="427.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_4" id="BPMNEdge__4" sourceElement="_2" targetElement="_3"><omgdi:waypoint x="32.0" y="191.0"/><omgdi:waypoint x="110.0" y="198.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

2.3 测试类

package com.yb.activiti6;import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @version 1.0* @date 2020/7/23*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class ActivitiDemoTest18 {@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate TaskService taskService;@Autowiredprivate IdentityService identityService;@Autowiredprivate RepositoryService repositoryService;@Autowiredprivate ProcessEngine processEngine;@Autowiredprivate HistoryService historyService;/*** 发布流程,测试错误结束事件* @throws IOException*/@Testpublic void deploymentProcesses_zip(){Deployment deploy = repositoryService.createDeployment().name("测试-错误结束事件-1")//创建流程名称.addClasspathResource("processes/activiti_errorEnd.bpmn")//指定zip完成部署.addClasspathResource("processes/activiti_errorEnd.png").deploy();System.out.println("部署id:"+deploy.getId());System.out.println("部署名称:"+deploy.getName());}/*** 启动流程,测试错误结束事件*/@Testpublic void startProcess(){//可根据id,key,message启动流程ProcessInstance msg = runtimeService.startProcessInstanceByKey("myProcess_1");System.out.println("流程实例id:"+msg.getId());System.out.println("流程定义id:"+msg.getProcessDefinitionId());System.out.println("=========================================================");List<Task> list = taskService.createTaskQuery().taskAssignee("user1").list();for (Task task : list) {System.out.println("任务ID:" + task.getId());System.out.println("任务名称:" + task.getName());System.out.println("任务创建时间:" + task.getCreateTime());System.out.println("任务委派人:" + task.getAssignee());System.out.println("流程实例ID:" + task.getProcessInstanceId());//完成任务Map<String, Object> variables = new HashMap<String, Object>();variables.put("flag", true);taskService.complete(task.getId(), variables);}try {// 睡一会Thread.sleep(1000 * 3);} catch (InterruptedException e) {e.printStackTrace();}// 查询任务List<Task> List2 = taskService.createTaskQuery() // 创建任务查询.taskAssignee("user2") // 指定某个人.list();for (Task task : List2) {System.out.println("任务ID:" + task.getId());System.out.println("任务名称:" + task.getName());System.out.println("任务创建时间:" + task.getCreateTime());System.out.println("任务委派人:" + task.getAssignee());System.out.println("流程实例ID:" + task.getProcessInstanceId());}}
}

2.4 运行

运行deploymentProcesses_zip()

2.4.1 启动流程

运行startProcess(), 设置flag=true

效果

3. 终止结束事件

3.1 简介

当流程到达终止结束事件时会结束当前执行流,如果activiti:terminateAll属性设置成true,那么该流程实例的所有执行流全部终止。如可以用在子流程,嵌入式子流程,调用子流程,事务字流程中。

3.2 流程设计

终止结束事件

流程文件bpmn

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" 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" xmlns:tns="http://www.activiti.org/test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" expressionLanguage="http://www.w3.org/1999/XPath" id="m1596091132413" name="" targetNamespace="http://www.activiti.org/test" typeLanguage="http://www.w3.org/2001/XMLSchema"><process id="terminationEnd" isClosed="false" isExecutable="true" name="TerminationEnd" processType="None"><startEvent id="_2" name="开始1"/><parallelGateway gatewayDirection="Unspecified" id="_3" name="ParallelGateway"/><subProcess activiti:exclusive="true" id="_4" name="子流程" triggeredByEvent="false"><startEvent id="_8" name="开始2"/><serviceTask activiti:class="com.yb.activiti6.delegate.NewEndDelegate" activiti:exclusive="true" id="_9" name="服务执行"/><endEvent id="_10"  name="结束2"><terminateEventDefinition  id="_10_ED_1"/></endEvent><sequenceFlow id="_14" sourceRef="_8" targetRef="_9"/><sequenceFlow id="_15" sourceRef="_9" targetRef="_10"/></subProcess><userTask activiti:assignee="user2" activiti:exclusive="true" id="_5" name="用户任务2"/><endEvent id="_6" name="结束1"/><userTask activiti:assignee="user1" activiti:exclusive="true" id="_7" name="用户任务1"/><sequenceFlow id="_11" sourceRef="_2" targetRef="_3"/><sequenceFlow id="_12" sourceRef="_3" targetRef="_4"/><sequenceFlow id="_13" sourceRef="_3" targetRef="_7"/><sequenceFlow id="_16" sourceRef="_4" targetRef="_5"/><sequenceFlow id="_17" sourceRef="_5" targetRef="_6"/><sequenceFlow id="_18" sourceRef="_7" targetRef="_5"/></process><bpmndi:BPMNDiagram documentation="background=#000000;count=1;horizontalcount=1;orientation=0;width=842.4;height=1195.2;imageableWidth=832.4;imageableHeight=1185.2;imageableX=5.0;imageableY=5.0" id="Diagram-_1" name="New Diagram"><bpmndi:BPMNPlane bpmnElement="terminationEnd"><bpmndi:BPMNShape bpmnElement="_2" id="Shape-_2"><omgdc:Bounds height="32.0" width="32.0" x="10.0" y="260.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_3" id="Shape-_3"><omgdc:Bounds height="32.0" width="32.0" x="130.0" y="260.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_4" id="Shape-_4" isExpanded="true"><omgdc:Bounds height="155.0" width="470.0" x="225.0" y="75.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="155.0" width="470.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_5" id="Shape-_5"><omgdc:Bounds height="55.0" width="85.0" x="780.0" y="245.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_6" id="Shape-_6"><omgdc:Bounds height="32.0" width="32.0" x="955.0" y="255.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_7" id="Shape-_7"><omgdc:Bounds height="55.0" width="85.0" x="425.0" y="405.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_8" id="Shape-_8"><omgdc:Bounds height="32.0" width="32.0" x="270.0" y="140.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_9" id="Shape-_9"><omgdc:Bounds height="55.0" width="85.0" x="420.0" y="130.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="55.0" width="85.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="_10" id="Shape-_10"><omgdc:Bounds height="32.0" width="32.0" x="625.0" y="135.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="32.0" width="32.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="_13" id="BPMNEdge__13" sourceElement="_3" targetElement="_7"><omgdi:waypoint x="162.0" y="276.0"/><omgdi:waypoint x="425.0" y="432.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_12" id="BPMNEdge__12" sourceElement="_3" targetElement="_4"><omgdi:waypoint x="162.0" y="276.0"/><omgdi:waypoint x="225.0" y="152.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_15" id="BPMNEdge__15" sourceElement="_9" targetElement="_10"><omgdi:waypoint x="505.0" y="157.5"/><omgdi:waypoint x="625.0" y="151.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_14" id="BPMNEdge__14" sourceElement="_8" targetElement="_9"><omgdi:waypoint x="302.0" y="156.0"/><omgdi:waypoint x="420.0" y="157.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_17" id="BPMNEdge__17" sourceElement="_5" targetElement="_6"><omgdi:waypoint x="865.0" y="272.5"/><omgdi:waypoint x="955.0" y="271.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_16" id="BPMNEdge__16" sourceElement="_4" targetElement="_5"><omgdi:waypoint x="695.0" y="152.5"/><omgdi:waypoint x="780.0" y="272.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_18" id="BPMNEdge__18" sourceElement="_7" targetElement="_5"><omgdi:waypoint x="510.0" y="432.5"/><omgdi:waypoint x="780.0" y="272.5"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="_11" id="BPMNEdge__11" sourceElement="_2" targetElement="_3"><omgdi:waypoint x="42.0" y="276.0"/><omgdi:waypoint x="130.0" y="276.0"/><bpmndi:BPMNLabel><omgdc:Bounds height="0.0" width="0.0" x="0.0" y="0.0"/></bpmndi:BPMNLabel></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

3.3 测试类

package com.yb.activiti6;import org.activiti.engine.*;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.io.IOException;/*** @version 1.0* @date 2020/7/23*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class ActivitiDemoTest19 {@Autowiredprivate RuntimeService runtimeService;@Autowiredprivate TaskService taskService;@Autowiredprivate IdentityService identityService;@Autowiredprivate RepositoryService repositoryService;@Autowiredprivate ProcessEngine processEngine;@Autowiredprivate HistoryService historyService;/*** 发布流程,测试终止结束事件* @throws IOException*/@Testpublic void deploymentProcesses_zip(){Deployment deploy = repositoryService.createDeployment().name("测试-错误结束事件-1")//创建流程名称.addClasspathResource("processes/activiti_terminationEnd.bpmn")//指定zip完成部署.addClasspathResource("processes/activiti_terminationEnd.png").deploy();System.out.println("部署id:"+deploy.getId());System.out.println("部署名称:"+deploy.getName());}/*** 启动流程,测试终止结束事件*/@Testpublic void startProcess(){//可根据id,key,message启动流程ProcessInstance msg = runtimeService.startProcessInstanceByKey("terminationEnd");System.out.println("流程实例id:"+msg.getId());System.out.println("流程定义id:"+msg.getProcessDefinitionId());System.out.println("=========================================================");try {// 睡一会Thread.sleep(1000 * 3);} catch (InterruptedException e) {e.printStackTrace();}// 查询执行流long exeCount = runtimeService.createExecutionQuery().processInstanceId(msg.getId()).count();System.out.println("执行流数量:" + exeCount);}
}

3.4 运行

运行deploymentProcesses_zip()

3.4.1 启动流程

运行startProcess()

当前测试,使用的是idea中的bpmn插件,无法设置activiti:terminateAll="true"属性,最终测试结果如下:

**说明:**无法设置activiti:terminateAll=“true”,该流程实例的所有执行流无法全部终止,正在寻找ideaBpmn插件该属性如何设置,之后后续在更新,如有知道该属性在该插件内如何设置,请评论留言,感谢!!!

Activiti6--入门学习--结束事件相关推荐

  1. 【弄nèng - Activiti6】Activiti6入门篇(十九)—— 结束事件

    文章目录 1. 结束事件 1.1 简介 2. 错误结束事件 2.1 简介 2.2 流程设计 2.3 测试类 2.4 运行 2.4.1 启动任务 3. 终止结束事件 3.1 简介 4.2 流程设计 3. ...

  2. 【弄nèng - Activiti6】Activiti6入门篇(二十四)—— 并行网关一个结束全部结束

    文章目录 1. 并行网关提前结束 1.1 流程设计 1.2 测试类 1.3 运行 1.3.1 启动任务 1.3.2 查询任务 1.3.3 完成任务 2. 终止结束事件terminateAll属性测试 ...

  3. lua语言入门学习(八)项目初体验之玩家事件(2)

    lua语言入门学习 今天是实习的第二周,前辈给我的任务是熟悉playerevent中每个函数的基本功能. 文章目录 lua语言入门学习 前言 一.代码 1.代码功能自己简析 1.代码功能自己简析 2. ...

  4. 【python教程入门学习】Python实现自动玩贪吃蛇程序

    这篇文章主要介绍了通过Python实现的简易的自动玩贪吃蛇游戏的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一学 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹 ...

  5. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui

    用户界面编程,即平时说的GUI(Graphical User Interface)编程,那些带有按钮.文本.输入框的窗口的编程 EasyGui是一个非常简单的GUI模块,一旦导入EasyGui模块,P ...

  6. 零基础学python pdf-Python pdf(零基础入门学习Python)V1.0 最新版

    Python pdf(零基础入门学习Python)是一款功能强劲专业实用的Python电子书籍.想要零基础入门学习Python?那就快试试绿色先锋小编推荐的Python pdf最新版下载使用.由作者小 ...

  7. 【python教程入门学习】第一个Pygame程序

    Pygame 作为一个入门级的游戏开发库,其实并不难学,只要掌握 Python 编程的相关知识就能很轻松地掌握它. Pygame 语法简单.明了,秉持了 Python 语言一贯的风格.同时,它作为一个 ...

  8. 复习步骤12- 16 BPMN事件(3)结束事件

    结束事件: --按照事件的位置,开始事件一般都市捕获事件,结束时间一般都是抛出事件 无指定结束事件 -- 什么都没指定直接就结束掉了 错误结束事件   --  往往和错误边界事件或错误开始事件一起使用 ...

  9. 最全面的openGL 入门学习

    自己在找openGL学习资料的时候,找到此篇openGL入门学习(虽然不是移动开发,但给我提供了非常好的思路),所以转一下让更多人知道,本文来自http://www.cppblog.com/doing ...

最新文章

  1. 重磅官宣:评职称将不做论文数量硬性要求!职称改革任务总体完成
  2. Spring MVC国际化
  3. 什么是梯度爆炸/梯度消失?
  4. MySql连接——内连接、外连接(左连接、右连接、全连接)
  5. Entity Framework 实体框架的形成之旅--基于泛型的仓储模式的实体框架(1)
  6. Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)
  7. 有趣的js匿名函数写法(function嵌套)
  8. 前端学习(2879):实现v-if和v-show设计分析 视图搭建
  9. Python3.5安装与ChatterBot聊天机器人使用
  10. P2044 [NOI2012]随机数生成器
  11. 【语音处理】基于matlab GUI声音信号频谱分析仪【含Matlab源码 325期】
  12. jQuery悬浮在线客服代码
  13. win10忘记开机密码
  14. Microsoft C++ 异常: dlib::serialization_error,位于内存位置 0x0133F818 处
  15. 线性代数的本质-基向量部分理解
  16. 用C语言打印一个菱形图案!
  17. jQuery砸金蛋抽奖活动php源码
  18. 物联网专业要学c语言吗,物联网应用技术专业是文科还是理科
  19. 清火茶疗方 食疗灭四火
  20. extension(类扩展)和 category(类别)

热门文章

  1. 记录自己激光打眼手术过程
  2. 小学老师工资多少一个月_当农村小学教师工资一年有多少,我给你们看一看
  3. 操作系统课程设计----读者-写者 问题(c语言)
  4. Beautiful Soup 中文文档
  5. 十大优秀企业管理网站
  6. android l 论坛,同步更新魔趣源码Android-L编译
  7. idea翻译成中文是什么意思_agoodidea翻译成中文是什么意思
  8. dp-最长公共子序列
  9. 小程序新能力-个人开发者尝鲜微信小程序
  10. 运维 05 Shell基本命令