盘古BPM体验地址    盘古BPM交流群盘古BPM交流群号:963222735

Flowable设置流程发起人

分享牛 8850℃

    Flowable设置流程发起人。在Flowable中启动流程实例的时候,往往打算设置当前的流程实例是谁发起的,也就是流程启动者,这样可以很方便的进行后续的操作,比如获取流程实例的发起者进行统计以及一些审计信息。本文重点讲解一下设置流程启动者的不同方式。

第一种方式

    直接调用原生的api设置流程的启动人即可。示例代码如下:

Authentication.setAuthenticatedUserId("分享牛");
String processDefinitionId="myProcess:2:10004";
runtimeService.startProcessInstanceById(processDefinitionId);
Authentication.setAuthenticatedUserId(null);

首先,调用Authentication.setAuthenticatedUserId方法即可,

注意一点:这个方法最终使用一个ThreadLocal类型的变量进行存储,也就是与当前的线程绑定,所以流程实例启动完毕之后,需要设置为null,防止多线程的时候出问题。

上述的代码执行完毕之后,act_hi_procinst表中中的START_USER_ID_字段值已经变为“分享牛”了,

效果图如下:

第二种方式

   第一种方式是最原生的方式,如果不想使用,可以使用该方式。示例代码如下:

        @Test
public void start2() {
identityService.setAuthenticatedUserId("分享牛");
String processDefinitionId="myProcess:2:10004";
runtimeService.startProcessInstanceById(processDefinitionId);
identityService.setAuthenticatedUserId(null);
}

    identityService.setAuthenticatedUserId("分享牛")方法内部实现会直接调用第一种方式,源码如下:

public void setAuthenticatedUserId(String authenticatedUserId) {
Authentication.setAuthenticatedUserId(authenticatedUserId);
}

通常情况下,我们直接使用第一种方式就可以了。

转载请注明:分享牛 » Flowable设置流程发起人