Flowable-结束事件-错误结束事件

news2024/11/20 15:21:02

目录

      • 定义
      • 图形标记
      • XML内容
      • 界面操作
      • 使用示例
      • 视频教程

定义

错误结束事件会在流程到达错误结束事件的时候抛出错误,并结束当前的流程分支。异常结束
事件是有抛出结果的,它需要定义抛出错误码,如果找到了异常开始事件错误码,就会触发异常开
始事件。
错误结束事件只适用于子流程结束抛出错误事件,由父流程的错误边界事件捕获。

图形标记

错误结束事件是一个标准的结束事件(粗边圆圈),内部有错误图标。错误图标是全黑的,表
示触发语法,如图所示

在这里插入图片描述

XML内容

错误结束事件,表示为结束事件,加上 errorEventDefinition 子元素,errorRef 属性可以引用在
流程外定义的 error 元素:

 <error id="theError" />
 <process id="errorEndEventProcess">
     <endEvent id="myErrorEndEvent">
     <errorEventDefinition errorRef="theError" />
     </endEvent>
 </process>

在以上 xml 代码片段中,首先定义了一个 id 属性值为 theError 的错误,然后在结束事件中使
用 errorEventDefinition 元素引用该 error,从而构成了一个错误结束事件。

界面操作

在这里插入图片描述

使用示例

错误结束事件一般和错误边界事件(Intermediate Boundary Error Event)搭配一起使用,错误
结束事件触发错误边界事件,错误边界事件捕获错误结束事件抛出的错误信息,通常在嵌套子流程
和调用子流程中使用。如果找不到匹配的错误边界事件,将会抛出异常。
用户启动流程,下单之后进入付款子流程,如果付款成功,子流程到达空结束事件从而子流程
结束,进入后续的发货节点;如果付款失败,到达错误结束事件,抛出错误并结束子流程,子流程
上的错误边界事件捕获到错误信息,重新启动付款子流程。对应的流程图如图所示:

在这里插入图片描述

<error id="payError" errorCode="payErrorCode" />
  <process id="ErrorEndEventProcess" name="错误结束事件" isExecutable="true">
    <userTask id="a9485eda61d534bd5a6bf059c359637cf" name="下单">
      <extensionElements>
        <flowable:formData />
        <flowable:assigneeType>static</flowable:assigneeType>
      </extensionElements>
    </userTask>
    <sequenceFlow id="aaeb88fef071f4fa88aea70b5ce4cefd5" sourceRef="ac0a8178a92164c37b8be22cc6023b8aa" targetRef="a9485eda61d534bd5a6bf059c359637cf" />
    <sequenceFlow id="Flow_01p5dv8" sourceRef="a9485eda61d534bd5a6bf059c359637cf" targetRef="Activity_0vse4d1" />
    <subProcess id="Activity_0vse4d1" name="付款子流程">
      <extensionElements>
        <flowable:assigneeType>static</flowable:assigneeType>
        <flowable:formData />
      </extensionElements>
      <startEvent id="Event_1u7pw9m">
        <extensionElements>
          <flowable:formData />
        </extensionElements>
      </startEvent>
      <userTask id="Activity_08d9gg7" name="付款">
        <extensionElements>
          <flowable:assigneeType>static</flowable:assigneeType>
          <flowable:formData />
        </extensionElements>
      </userTask>
      <sequenceFlow id="Flow_07eodwu" sourceRef="Event_1u7pw9m" targetRef="Activity_08d9gg7" />
      <exclusiveGateway id="Gateway_1e8ts1f" />
      <sequenceFlow id="Flow_0bzye5t" sourceRef="Activity_08d9gg7" targetRef="Gateway_1e8ts1f" />
      <endEvent id="Event_1v4gxpv" />
      <sequenceFlow id="Flow_0on37gt" name="支付成功" sourceRef="Gateway_1e8ts1f" targetRef="Event_1v4gxpv">
        <conditionExpression xsi:type="tFormalExpression">${payResult == true}</conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="Flow_0dqc8u3" name="支付失败" sourceRef="Gateway_1e8ts1f" targetRef="Event_1w3dv09">
        <conditionExpression xsi:type="tFormalExpression">${payResult == false}</conditionExpression>
      </sequenceFlow>
      <endEvent id="Event_1w3dv09">
        <errorEventDefinition errorRef="payError" flowable:errorVariableLocalScope="false" flowable:errorVariableTransient="false" />
      </endEvent>
    </subProcess>
    <userTask id="Activity_062xb68" name="发货">
      <extensionElements>
        <flowable:assigneeType>static</flowable:assigneeType>
        <flowable:formData />
      </extensionElements>
    </userTask>
    <sequenceFlow id="Flow_0spxrt9" sourceRef="Activity_0vse4d1" targetRef="Activity_062xb68" />
    <userTask id="Activity_067yadn" name="收货" />
    <sequenceFlow id="Flow_0y2xpmk" sourceRef="Activity_062xb68" targetRef="Activity_067yadn" />
    <endEvent id="Event_0b3nzse" />
    <sequenceFlow id="Flow_1aiwj8e" sourceRef="Activity_067yadn" targetRef="Event_0b3nzse" />
    <boundaryEvent id="Event_00bbo9x" attachedToRef="Activity_0vse4d1">
      <errorEventDefinition errorRef="payError" flowable:errorVariableLocalScope="false" flowable:errorVariableTransient="false" />
    </boundaryEvent>
    <sequenceFlow id="Flow_14f59h2" name="重新付款" sourceRef="Event_00bbo9x" targetRef="Activity_0vse4d1" />
    <startEvent id="ac0a8178a92164c37b8be22cc6023b8aa">
      <extensionElements>
        <flowable:formData />
      </extensionElements>
    </startEvent>
  </process>

视频教程

错误结束事件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/851455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络编程(一)】Socket入门实操与BIO详讲

Socket 两台计算机使用Socket套接字进行 TCP 连接数据传输时过程如下&#xff1a; 服务器实例化一个 ServerSocket 对象&#xff0c;表示通过服务器上的端口通信。服务器调用 ServerSocket 类的 accept() 方法&#xff0c;该方法一直会等待&#xff0c;直到客户端连接到服务器…

[编程开发工具-6]:master 分支和 dev 分支区别

目录 Git 中的 master 分支和 dev 分支之间有几个重要的区别&#xff1a; Git分支实践&#xff1a; master: develop: Feature: feature/{故障号_description}。 hotfix: Git 中的 master 分支和 dev 分支之间有几个重要的区别&#xff1a; 功能&#xff1a;master 分支是…

2.5D游戏是如何做出来的呢,2.5D游戏快速制作教程

前言 【Unity实战篇 】 | 如何制作一款2.5D游戏&#xff0c;2.5D游戏制作案例一、2.5D 游戏概念二、绘制地图三、添加玩家动画和移动等操作四、视角配置4.1 调整摄像机与场景对象的角度4.2 增加镜头旋转功能 五、游戏效果展示 总结 前言 玩过游戏的朋友都知道&#xff0c;市面…

sql注入漏洞

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 原因危害如何挖寻找注入点测试是否有绕过实质分类sqli靶场盲注时间盲注别人的总结UA注入referer注入DNSlog外带cookie注入宽字节注入堆叠注入sqlmap工具getshellacc…

网络防御(8)

根据以下问题总结当天内容 1.什么是数据认证&#xff0c;有什么作用&#xff0c;有哪些实现的技术手段? 2.什么是身份认证&#xff0c;有什么作用&#xff0c;有哪些实现的技术手段? 3.什么VPN技术? 4.VPN技术有哪些分类? 5.IPSEC技术能够提供哪些安全服务? 6.IPSEC的技术…

Elastic Stack 8.9:更快的跨集群搜索和指标聚合

作者&#xff1a;Tyler Perkins, Gilad Gal, Teresa Soler, Shani Sagiv, Bernhard Suhm, George Kobar Elastic Stack 8.9 在多个方面实现了显着的性能改进&#xff1a;Kibana 中更快的跨集群搜索、Elasticsearch 更快的聚合&#xff0c;以及更快、更相关的向量搜索&#xff0…

C++ ModBUS TCP客户端工具 qModMaster 介绍及使用

qModMaster工具介绍 QModMaster是一个基于Qt的Modbus主站&#xff08;Master&#xff09;模拟器&#xff0c;用于模拟和测试Modbus TCP和RTU通信。它提供了一个直观的图形界面&#xff0c;使用户能够轻松设置和发送Modbus请求&#xff0c;并查看和分析响应数据。 以下是QModM…

互联网时代下如何搞好网络口碑?

移动互联网时代到来&#xff0c;网络口碑对于任何一家企业都不可忽视&#xff0c;没有口碑的企业广告满天飞但是成交的客户寥寥无几&#xff0c;口碑好的企业没有广告但是仍然能保持业绩增长&#xff0c;这是一个不争的事实。 有人会说&#xff0c;业绩好的是人家产品好所以口碑…

选读SQL经典实例笔记20_Oracle语法示例

1. 计算一年有多少天 1.1. sql select Days in 2005: ||to_char(add_months(trunc(sysdate,y),12)-1,DDD)as reportfrom dualunion allselect Days in 2004: ||to_char(add_months(trunc(to_date(01-SEP-2004),y),12)-1,DDD)from dual REPORT ----------------- Days in 200…

Java中的SimpleDateFormat方法分析

Java中的SimpleDateFormat方法分析 先进行专栏介绍SimpleDateFormat方法分析 常用方法构造方法格式化&#xff08;从Date到String&#xff09;举例分析 解析(从String到Date)举例分析 设置方法&#xff1a;注意 代码示例代码结果 综合案例效果 先进行专栏介绍 本专栏是自己学J…

服装行业多模态算法个性化产品定制方案 | 京东云技术团队

一、项目背景 AI赋能服装设计师&#xff0c;设计好看、好穿、好卖的服装 传统服装行业痛点 • 设计师无法准确捕捉市场趋势&#xff0c;抓住中国潮流 • 上新周期长&#xff0c;高库存滞销风险大 • 基本款居多&#xff0c;难以满足消费者个性化需求 解决方案 • GPT数据…

封装统一Api接口

第一步 第二步 第三步 因为是新的页面&#xff0c;所以需要在路由上面写 第四步 操作商品的所有接口 第五步 浏览器结果

14.3.6 【Linux】LVM 相关指令汇整与 LVM 的关闭

至于文件系统阶段 &#xff08;filesystem 的格式化处理&#xff09; 部分&#xff0c;还需要以 xfsgrowfs 来修订文件系统实际的大小才行。至于虽然 LVM 可以弹性的管理你的磁盘容量&#xff0c;但是要注意&#xff0c;如果你想要使用 LVM 管理您的硬盘时&#xff0c;那么在安…

性能分析5部曲:瓶颈分析与问题定位,如何快速解决瓶颈?

一、引言 很多做性能测试的同学都问过我这样一个问题&#xff1a;鱼哥(Carl_奕然)&#xff0c;你说性能测试的重点是什么? 我的回答很简单&#xff1a;瓶颈分析与问题定位。 在性能项目的整个周期&#xff0c;不管是脚本设计&#xff0c;脚本编写还是脚本执行&#xff0c;都…

深入探索 Spring MVC:构建优雅的Web应用

文章目录 前言一、什么是 Spring MVC1.1 什么是 MVC1.2 什么是 Spring MVC 二、Spring MVC 项目的创建2.1 项目的创建2.2 第一个 Spring MVC 程序 —— Hello World 三、RequestMapping 注解3.1 常用属性3.2 方法级别和类级别注解3.3 GetMapping、PostMapping、PutMapping、Del…

贝叶斯深度学习的温和介绍

一、说明 欢迎来到令人兴奋的概率编程世界&#xff01;本文是对这个领域的温和介绍&#xff0c;你只需要对深度学习和贝叶斯统计有一个基本的了解。如果像我一样&#xff0c;你听说过贝叶斯深度学习&#xff0c;并且你猜它涉及贝叶斯统计&#xff0c;但你不知道它是如何使用的&…

SaaS化大型微服务架构智慧工地云平台源码

智慧工地云平台建设是采用先进的移动互联、物联网、云计算、大数据等新一代信息技术&#xff0c;主要由信息采集层、网络接入层、网络传输层、信息储存与处理层组成&#xff0c;主要包括云管理平台、综合管理系统、质量管理系统、安全管理系统等模块。施工管理人员可通过PC端&a…

【2.1】Java微服务: Nacos的使用

目录 Nacos介绍 Nacos安装 下载和安装 修改端口 启动 服务注册与发现 导入Nacos管理依赖 导入服务依赖 配置Nacos的服务地址 启动服务&#xff0c;查看已注册的服务 服务分级存储模型 分级存储模型介绍 具体结构 配置实例集群 同集群优先的负载均衡策略 服务权重配置…

spring-boot webservice的例子

webservice发布服务 源码下载地址 spring-boot-webservice例子资源-CSDN文库 webservice cilent调用 源码下载地址 spring-boot-clintwebservice调用服务的例子资源-CSDN文库

CSS的引入方式有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 内联样式&#xff08;Inline Styles&#xff09;⭐ 内部样式表&#xff08;Internal Stylesheet&#xff09;⭐ 外部样式表&#xff08;External Stylesheet&#xff09;⭐ 导入样式表&#xff08;Import Stylesheet&#xff09;⭐ 写在最…