这次分享的是从一个开源项目的代码里面学来的,有兴趣的同学可以去阅读一下该项目的源码,还是有很多可以参考的地方,项目地址如下:
https://gitee.com/threefish/NutzFw.git
首先,存储办理人的表:act_ru_identitylink。如果想为一个Task分配办理人,可以使用以下的API:
task.addCandidateGroup(String groupId);task.addCandidateUser(String userId);task.addCandidateGroup...
Flowable6.4 – Behavior改变ConditionExpression
上一篇简单介绍了一下如何自定义Behavior,此篇就试验一个稍微复杂一些的:使用Behavior改变ExclusiveGateway的Outgoing条件。
先上流程图:
设置一下分支节点(ExclusiveGateway)后面两条路径(SequenceFlow)的执行条件:
第一条路径
第二条路径
然后,扩展一个ExclusiveGatewayActivityBehavior,源码如下:
public class ExtExclusiveGatewayActivityBehavior ...
Flowable6.4 – Behavior使用初探
通过之前分析Behavior的源码,基本上搞清楚了它的作用,这次就简单试验一下它的用法。
如果看过ProcessEngineConfigurationImpl的源码,会在其中的init()方法中发现BehaviorFactory的初始化方法。由此入手,就能够了解如何定制Behavior。
这块的源码暂时先不分析,本次直接使用一个简单的Demo介绍一下如何定制UserTaskActivityBehavior。
首先,声明一个自定义类,直接继承自UserTaskActivityBeh...
Flowable6.4 – Behavior的用途分析(execute)
上一篇分析了一下Behavior的用途,不过只是追踪到leave()方法就结束了。后来在实际工作当中发现,其内部的execute也挺重要,所以本次就看一下execute()方法的主要作用。
在上一篇中,调用了super.leave()方法后,其实就会离开当前节点,主要是通过下面的代码实现的:
/** * Default way of leaving a BPMN 2.0 activity: evaluate the ...
Flowable6.4 – Behavior的用途分析
Flowable和Activiti里面有一个很重要的部分 - Behavior,接下来分析一下这部分的主要作用是什么。
首先,要找一个切入点,看一下在调用TaskServiceImpl.complete()时发生了什么。下面是该函数的源码:
@Overridepublic void complete(String taskId) { commandExecutor.execute(new CompleteTaskCmd(taskId, null));}
这里可以看到执行了...