1. 设置任务处理人的方式
现在,假设我有如下一个简单的流程图
那么我该如何设置这个用户节点的处理人呢?
1.1. 指定具体用户(硬编码)
第一种方式,是我们在绘制流程图的时候,可以选中这个节点,然后直接设置流程的处理人,像下面这样
然后在打开的窗口中选择固定值,设置具体分配的用户是 javaboy
,如下图
好了,现在这个节点就固定的由一个名为 javaboy
的用户去处理了。对应的 XML
文件如下
<process id="demo01" name="demo01" isExecutable="true">
<documentation>demo01</documentation>
<startEvent id="startEvent1" flowable:formFieldValidation="true"></startEvent>
<userTask id="sid-5F901234-AFF1-480E-9D66-2D196B910BA3" flowable:assignee="javaboy" flowable:formFieldValidation="true">
<extensionElements>
<modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]> </modeler:initiator-can-complete>
</extensionElements>
</userTask>
<sequenceFlow id="sid-71FB3A81-F753-419D-9A0A-2FC6E5361CED" sourceRef="startEvent1" targetRef="sid-5F901234-AFF1-480E-9D66-2D196B910BA3"></sequenceFlow>
<endEvent id="sid-D0B9E5BF-8C1A-4F8F-B2C2-F423F5DC556D"></endEvent>
<sequenceFlow id="sid-DEBE03CD-F247-4EF3-BB67-ABBA94739B0A" sourceRef="sid-5F901234-AFF1-480E-9D66-2D196B910BA3" targetRef="sid-D0B9E5BF-8C1A-4F8F-B2C2-F423F5DC556D"></sequenceFlow>
</process>
- 在上面这段
XML
中,可以看到UserTask
节点中有一个flowable:assignee="javaboy"
,这句话就是设置这个UserTask
的处理人
接下来,我们部署并启动这个流程
// 部署流程
@Test
public void test1() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deploy = repositoryService.createDeployment()
.addClasspathResource("processes/demo01.bpmn20.xml")
.name("员工请假流程")
.category("请假")// 分类
.tenantId("javaboyId")// 租户id
.deploy();
System.out.println("deploy.getId() = " + deploy.getId());
System.out.println("deploy.getName() = " + deploy.getName());
System.out.println("deploy.getCategory() = " + deploy.getCategory());
}
// 启动流程
@Test
public void test2() {
ProcessEngine process