flowable跳过发起人
时间: 2023-08-30 18:05:33 浏览: 136
对于 flowable,可以通过设置流程变量来跳过发起人的环节。在流程启动时,可以设置一个特殊的流程变量,例如 "skipStarter",将其值设置为 true。在需要跳过的环节中,可以使用条件网关来判断该变量的值,如果为 true,则直接跳过该环节,进入下一个环节。
以下是一个示例的流程定义的 XML 配置:
```xml
<process id="myProcess" name="My Process" isExecutable="true">
<!-- ...其他流程元素... -->
<startEvent id="startEvent" name="Start Event">
<!-- 设置流程变量 skipStarter 为 true -->
<extensionElements>
<activiti:executionListener event="start">
<activiti:field name="variables">
<activiti:map>
<activiti:entry key="skipStarter" value="${true}" />
</activiti:map>
</activiti:field>
</activiti:executionListener>
</extensionElements>
</startEvent>
<!-- ...其他流程元素... -->
<!-- 使用条件网关判断是否跳过发起人环节 -->
<exclusiveGateway id="gateway" name="Skip Starter Gateway" default="toNextTask">
<conditionExpression xsi:type="tFormalExpression">${!skipStarter}</conditionExpression>
</exclusiveGateway>
<!-- 发起人环节 -->
<userTask id="starterTask" name="Starter Task">
<!-- ...任务配置... -->
<incoming>fromStartEvent</incoming>
<outgoing>toGateway</outgoing>
</userTask>
<!-- 下一个环节 -->
<userTask id="nextTask" name="Next Task">
<!-- ...任务配置... -->
<incoming>fromGateway</incoming>
<outgoing>toEndEvent</outgoing>
</userTask>
<!-- ...其他流程元素... -->
<!-- 流程结束事件 -->
<endEvent id="endEvent" name="End Event">
<incoming>fromNextTask</incoming>
</endEvent>
</process>
```
在上述示例中,通过设置流程变量 "skipStarter" 的值为 true,在条件网关中判断该变量的值,如果为 true,则直接跳过发起人环节,进入下一个环节。这样就实现了跳过发起人的功能。
阅读全文