Activiti 6.x【9】BoundaryEvent【上】

简介: 版权声明:转载注明出处就OK的说,有些东西会转载,都会注明的说= =如果有冒犯麻烦见谅 https://blog.csdn.net/Pan1458689676/article/details/82717765 ...
版权声明:转载注明出处就OK的说,有些东西会转载,都会注明的说= =如果有冒犯麻烦见谅 https://blog.csdn.net/Pan1458689676/article/details/82717765

BoundaryEvent组件


BoundaryEvent总述

这里写图片描述

BoundaryEvent分为六种,第一种为时间Boundary事件,第二种为错误Boundary事件,第三种消息Boundary事件,第四种为取消Boundary事件,第五种为补偿Boundary事件,第六种为信号Boundary事件。边界事件依附于事件存在。

TimerBoundaryEvent

流程图总览

这里写图片描述

【设置参数与时间开始组件的三个设置相同】
这里写图片描述

Cancel activity 代表是否取消当前流程转向边界事件

并行问题,只能采用网关形式,如下图图示
这里写图片描述

【官网典型应用】
这里写图片描述

XML代码

<?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="TimerBoundary" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <userTask id="usertask1" name="User Task"></userTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    <boundaryEvent id="boundarytimer1" name="Timer" attachedToRef="usertask1" cancelActivity="true">
      <timerEventDefinition>
        <timeDuration>R1/PT5S</timeDuration>
      </timerEventDefinition>
    </boundaryEvent>
    <serviceTask id="servicetask1" name="Service Task" activiti:class="com.ptm.prdemo.servicetask.TimerBoundary"></serviceTask>
    <sequenceFlow id="flow2" sourceRef="boundarytimer1" targetRef="servicetask1"></sequenceFlow>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow3" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_TimerBoundary">
    <bpmndi:BPMNPlane bpmnElement="TimerBoundary" id="BPMNPlane_TimerBoundary">
      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="211.0" y="190.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
        <omgdc:Bounds height="55.0" width="105.0" x="290.0" y="180.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="boundarytimer1" id="BPMNShape_boundarytimer1">
        <omgdc:Bounds height="30.0" width="30.0" x="328.0" y="224.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="servicetask1" id="BPMNShape_servicetask1">
        <omgdc:Bounds height="55.0" width="105.0" x="420.0" y="270.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="510.0" y="190.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="246.0" y="207.0"></omgdi:waypoint>
        <omgdi:waypoint x="290.0" y="207.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="343.0" y="254.0"></omgdi:waypoint>
        <omgdi:waypoint x="472.0" y="270.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
        <omgdi:waypoint x="395.0" y="207.0"></omgdi:waypoint>
        <omgdi:waypoint x="510.0" y="207.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

ServiceTask
这里写图片描述

TimerBoundary

public class TimerBoundary implements JavaDelegate {
    @Override
    public void execute(DelegateExecution execution) {
        System.out.println("TimerBoundary");
    }
}

测试代码

@Test
public void TimerBoundary() throws InterruptedException{
    Deployment deployment = repositoryService.createDeployment()
                    .name("TimerBoundary")
                    .addClasspathResource("bpmn/TimerBoundary.bpmn")
                    .addClasspathResource("bpmn/TimerBoundary.png")
                    .deploy();
    System.out.println("部署ID:"+deployment.getId());
    System.out.println("部署名称:"+deployment.getName());
    runtimeService.startProcessInstanceByKey("TimerBoundary");
    Thread.sleep(1000 * 15);
}

这里写图片描述

ErrorBoundaryEvent【大多用于子流程】

  • 如果errorRef被省略,边界错误事件将捕获任何错误事件,而不管的的errorCode的错误。
  • 如果提供了errorRef并且它引用了现有错误,则边界事件将仅捕获具有相同错误代码的错误。
  • 如果提供了errorRef,但BPMN 2.0文件中没有定义错误,则errorRef用作errorCode(类似于错误结束事件)。

流程图总览
这里写图片描述

usertask绑定

这里写图片描述

ErrorBoundary

public class ErrorBoundary implements JavaDelegate {
    @Override
    public void execute(DelegateExecution execution) {
        System.out.println("ErrorBoundary");
    }
}

测试代码

@Test
public void ErrorBoundary() throws InterruptedException{
    Deployment deployment = repositoryService.createDeployment()
                    .name("ErrorBoundary")
                    .addClasspathResource("bpmn/ErrorBoundary.bpmn")
                    .addClasspathResource("bpmn/ErrorBoundary.png")
                    .deploy();
    System.out.println("部署ID:"+deployment.getId());
    System.out.println("部署名称:"+deployment.getName());
    runtimeService.startProcessInstanceByKey("ErrorBoundary");
}

这里写图片描述

目录
相关文章
|
7月前
|
XML 数据可视化 安全
一文了解Activiti7
一文了解Activiti7
154 0
|
数据可视化 Java 关系型数据库
01-认识Activiti
类似如请假、离职、出差、报销这种有审批流程的业务,我们都可以称之为工作流(也叫流程引擎),它可以帮助用户实现一个审批流程的可视化,借助于工作流引擎可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。
114 0
|
7月前
|
XML Java API
Activiti应用
Activiti应用
99 0
|
安全 Java 测试技术
Activiti-Activiti整合篇
Activiti-Activiti整合篇
Activiti-Activiti整合篇
|
架构师 应用服务中间件 API
Activiti就是这么简单(四)
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务 流程图。.
228 0
Activiti就是这么简单(四)
|
架构师 Java 应用服务中间件
Activiti就是这么简单(一)
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务 流程图。.
398 0
Activiti就是这么简单(一)
|
架构师 应用服务中间件 Apache
Activiti就是这么简单(三)
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务 流程图。.
291 0
Activiti就是这么简单(三)
|
架构师 应用服务中间件 Apache
Activiti就是这么简单(二)
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务 流程图。.
216 0
Activiti就是这么简单(二)
|
XML 数据格式
Activiti 6.x【10】BoundaryEvent【下】
版权声明:转载注明出处就OK的说,有些东西会转载,都会注明的说= =如果有冒犯麻烦见谅 https://blog.csdn.net/Pan1458689676/article/details/82720556 ...
2521 0
|
XML 数据格式
Activiti 6.x【11】IntermediateEvent
版权声明:转载注明出处就OK的说,有些东西会转载,都会注明的说= =如果有冒犯麻烦见谅 https://blog.csdn.net/Pan1458689676/article/details/82728835 ...
1758 0