Activiti7工作流引擎:进阶篇 CallActivityTask

Posted vbirdbest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activiti7工作流引擎:进阶篇 CallActivityTask相关的知识,希望对你有一定的参考价值。

方法之间可以相互调用,同理,流程定义之间也可以相关调用,达到流程定义复用的目的。

一:流程定义1

二:流程定义2

Called Element: 调用其它流程,值为其它流程Id。

三:启动和启动流程

@Test
public void delopyAllBpmn() 
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    processEngine.getRepositoryService()
            .createDeployment()
            .addClasspathResource("bpmn/LeaveProcess2.bpmn")
            .name("请假流程")
            .deploy();

    processEngine.getRepositoryService()
            .createDeployment()
            .addClasspathResource("bpmn/LeaveProcess1.bpmn")
            .name("请假流程2")
            .deploy();



@Test
public void startProcessInstance() 
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    processEngine.getRuntimeService()
            .startProcessInstanceByKey("LeaveProcess1");

四:发起申请

@Test
public void testApplyTask() 
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    TaskService taskService = processEngine.getTaskService();
    Task task = taskService
            .createTaskQuery()
            .singleResult();
    taskService.setAssignee(task.getId(), "zhangsan");
    taskService.complete(task.getId());

张三发起请假流程,然后并审核自己,进入下一个节点,直接进入了LeaveProcess2.bpmn文件中定义的第一个流程。

五:经理审批

@Test
public void testPMTask() 
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    TaskService taskService = processEngine.getTaskService();
    Task task = taskService
            .createTaskQuery()
            .singleResult();
    taskService.setAssignee(task.getId(), "pm");
    taskService.complete(task.getId());

经理审批完,又回到了LeaveProcess1.bpmn中的人事审批了。

以上是关于Activiti7工作流引擎:进阶篇 CallActivityTask的主要内容,如果未能解决你的问题,请参考以下文章

Activiti7工作流引擎:进阶篇 SpringBoot整合工作流Activiti7

Activiti7工作流引擎:进阶篇 多实例

Activiti7工作流引擎:进阶篇 ServiceTask

Activiti7工作流引擎:进阶篇 MailTask

Activiti7工作流引擎:进阶篇 ScriptTask

Activiti7工作流引擎:进阶篇 CallActivityTask