Activiti7-事件网关

前言

基于activit7.0.M4使用过程中,发现实际使用效果与网上描述不一致,特此记录。

事件网关(eventBasedGateway)

图标:

​说明:事件网关是专门为中间捕获事件设置的,它允许设置多个输出流指向多个不同的中间捕获事件(最少两个)。在流程执行到事件网关后,流程处于“等待”状态。等待捕获事件的触发。

使用注意点:

事件网关时专门使用与中间捕获事件的排斥网关,跟排斥网关决定流程走向的区别是基于捕获的顺序,谁先捕获事件,流程就运行到哪个捕获事件所在的流程。当其中一个中间捕获事件触发后,其余输出流的中间捕获事件便不在进行监听,自动销毁。

例如如下流程,当流程启动后,便在信号捕获事件和定时捕获事件处处于等待,如果在10秒内没接收到信号testsignal,事件网关自动销毁了信号捕获事件,执行用户任务1节点,用户任务2节点就不再触发。

如果在10分钟内接收到信号testsignal,捕获事件被触发,定时捕获事件自动销毁,不再执行用户任务1,而是执行用户任务2

部分代码
<bpmn2:eventBasedGateway id="Gateway_1xg8ktq">
      <bpmn2:extensionElements>
        <custom:customProperties />
      </bpmn2:extensionElements>
      <bpmn2:incoming>Flow_1notrqy</bpmn2:incoming>
      <bpmn2:outgoing>Flow_05rzdfz</bpmn2:outgoing>
      <bpmn2:outgoing>Flow_1yz8jzi</bpmn2:outgoing>
    </bpmn2:eventBasedGateway>
    <bpmn2:intermediateCatchEvent id="Event_0ywagrb">
      <bpmn2:incoming>Flow_05rzdfz</bpmn2:incoming>
      <bpmn2:outgoing>Flow_1yh31zh</bpmn2:outgoing>
      <bpmn2:timerEventDefinition>
        <bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression">PT10S</bpmn2:timeDuration>
      </bpmn2:timerEventDefinition>
    </bpmn2:intermediateCatchEvent>
    <bpmn2:sequenceFlow id="Flow_05rzdfz" sourceRef="Gateway_1xg8ktq" targetRef="Event_0ywagrb" />
    <bpmn2:intermediateCatchEvent id="Event_03dkqpz">
      <bpmn2:incoming>Flow_1yz8jzi</bpmn2:incoming>
      <bpmn2:outgoing>Flow_1o1r30z</bpmn2:outgoing>
      <bpmn2:signalEventDefinition signalRef="Signal0.7560552897034409" />
    </bpmn2:intermediateCatchEvent>
    <bpmn2:sequenceFlow id="Flow_1yz8jzi" sourceRef="Gateway_1xg8ktq" targetRef="Event_03dkqpz" />
    <bpmn2:userTask id="Activity_0iiplyc" name="用户任务1" activiti:assignee="admin">
      <bpmn2:incoming>Flow_1yh31zh</bpmn2:incoming>
      <bpmn2:outgoing>Flow_06d15o8</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:sequenceFlow id="Flow_1yh31zh" sourceRef="Event_0ywagrb" targetRef="Activity_0iiplyc" />
    <bpmn2:userTask id="Activity_0aio57q" name="用户任务2" activiti:assignee="admin">
      <bpmn2:incoming>Flow_1o1r30z</bpmn2:incoming>
      <bpmn2:outgoing>Flow_0qm6yxk</bpmn2:outgoing>
    </bpmn2:userTask>
<bpmn2:signal id="Signal0.3024538477809273" name="testsignal" />

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
activiti-eclipse-plugin是一个用于在Eclipse中集成和使用Activiti工作流引擎的插件。Activiti是一个开源的Java工作流引擎,它提供了一个完整的工作流管理解决方案,用于在企业应用中设计、执行和管理各种类型的工作流程。 使用activiti-eclipse-plugin,开发人员可以在Eclipse中方便地创建、编辑和部署Activiti的流程定义文件。该插件提供了一个可视化的图形编辑器,可以通过拖拽和连接不同的活动元素(如任务、网关事件等)来定义工作流程。开发人员还可以在插件中设置和配置各种属性,如任务分配、流程变量、事件监听器等。 activiti-eclipse-plugin还提供了与Activiti引擎的无缝集成。开发人员可以在Eclipse中运行和调试Activiti的流程实例,查看流程执行的状态和变量。通过插件中的任务列表,开发人员可以管理和处理工作流程中的各种任务,并与其他系统进行集成。 此外,activiti-eclipse-plugin还提供了一些辅助工具和功能,如流程图导出、流程定义验证、任务候选人管理等。这些功能可以帮助开发人员更好地使用Activiti引擎,并提高工作流程的开发效率和质量。 总而言之,activiti-eclipse-plugin是一个强大的工具,可以帮助开发人员在Eclipse中使用Activiti工作流引擎,快速开发和管理各种类型的工作流程。它提供了方便的图形编辑器、流程运行调试功能和其他辅助工具,使开发人员能够更加轻松地使用Activiti来实现复杂的工作流应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿孟呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值