flowable工作流子流程调用

本文介绍了Flowable工作流中的子流程调用,包括内部子流程和外部子流程(call activity)。通过示例展示了如何在Flowable 6.5.06版本中实现子流程,并解释了流程变量的共享、子流程结束后的自动跳转以及外部子流程的配置方法。同时提到了设计子流程时的注意事项,如子流程连线不能指向外部节点。
摘要由CSDN通过智能技术生成

flowable工作流子流程介绍

工作流提供了子流程的调用,一种是内部子流程,可以让用户主要看主流程,保持业务清晰,另一种是引用外部子流程(call activity),复用外部流程功能。

工作中有用到flowable 6.5.06版本。

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="sub">
  <process id="subProcess" name="子流程调研" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <userTask id="usertask1" name="【主管审批】"></userTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    <subProcess id="subprocess1" name="【子流程】">
      <documentation>测试子流程</documentation>
      <startEvent id="startevent2" name="Start"></startEvent>
      <userTask id="usertask3" name="【初审】"></userTask>
      <sequenceFlow id="flow5" sourceRef="startevent2" targetRef="usertask3"></sequenceFlow>
      <userTask id="usertask4" name="【复核】"></userTask>
      <sequenceFlow id="flow6" sourceRef="usertask3" targetRef="usertask4">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${outcome=='同意'}]]></conditionExpression>
      </sequenceFlow>
      <endEvent id="endevent2" name="End"></endEvent>
      <sequenceFlow id="flow7" sourceRef="usertask4" targetRef="endevent2">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${outcome=='同意'}]]></conditionExpression>
      </sequenceFlow>
      <sequenceFlow id="flow9" sourceRef="usertask4" targetRef="usertask3">
        <conditionExpression xsi:type="tFormalExpression"><![CDATA[${outcome=='驳回'}]]></conditionExpression>
      </sequenceFlow>
    </subProcess>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="subprocess1"></sequenceFlow>
    <userTask id="usertask2" name="【经理审批】"></userTask>
    <sequenceFlow id="flow3" sourceRef="subprocess1" targetRef="usertask2"></sequenceFlow>
    <endEvent id="endevent1" name="End">
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
调用 Flowable 工作流引擎的序列图可以帮助我们理解 Flowable工作流程。下面是一个简单的示例序列图,展示了调用 Flowable 工作流引擎的过程: ``` participant Application participant Flowable Engine participant Database Application->Flowable Engine: 创建流程引擎 Flowable Engine->Database: 连接数据库 Application->Flowable Engine: 部署流程定义 Flowable Engine->Database: 存储流程定义 Application->Flowable Engine: 启动流程实例 Flowable Engine->Database: 存储流程实例数据 Application->Flowable Engine: 执行流程任务 Flowable Engine->Database: 更新流程任务状态 Application->Flowable Engine: 完成流程任务 Flowable Engine->Database: 更新流程任务状态 Application->Flowable Engine: 结束流程实例 Flowable Engine->Database: 更新流程实例状态 ``` 上述序列图简要描述了通过应用程序调用 Flowable 引擎来处理工作流的过程。具体步骤包括: 1. 应用程序创建流程引擎并连接到数据库。 2. 应用程序部署流程定义,将工作流定义存储到数据库中。 3. 应用程序启动流程实例,创建一个具体的工作流实例。 4. Flowable 引擎根据流程定义和实例数据执行工作流任务。 5. Flowable 引擎更新数据库中的任务状态。 6. 应用程序完成流程任务,将任务标记为已完成。 7. Flowable 引擎再次更新数据库中的任务状态。 8. 应用程序结束流程实例,将流程实例标记为已结束。 9. Flowable 引擎最终更新数据库中的流程实例状态。 这个序列图展示了 Flowable 工作流引擎的基本调用过程,帮助我们理解在应用程序中如何与 Flowable 引擎进行交互来处理工作流任务。请注意,具体实现细节可能因应用程序和业务需求而有所不同。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值