Activiti(新手)工作流如何开启流程

阅读更多

本文中简单介绍如何开启Activiti工作流引擎,百度上已经有了N多环境搭建的栗子,这边就不再介绍。

 

在开始之前先看看下图,对整个对象结构有个了解,再结合下面的详细介绍理解。 

核心 API 介绍 作用
ProcessEngineConfiguration 流程引擎配置对象 添加数据库连接配置和数据库建表策略
ProcessEngine 核心对象, 流程引擎对象 大管家, 管理各种服务
ProcessDefinition 流程定义对象 规定了流程包含了哪些活动, 以及各种活动的执行顺序
ProcessInsctance 流程实例对象 按照规则实际的一次执行

 

 

 

 

 

 

 

 

 

 

 

 

 对以上有了解之后会更快的理解下面的内容

RuntimeService 执行管理, 启动, 推进, 删除流程实例

 

 

 

 

  • 首先是 RuntimeService 服务
  • org.activiti.engine.impl 
    类 RuntimeServiceImpl

    java.lang.Object
      
    继承者
    org.activiti.engine.impl.ServiceImpl
          
    继承者
    org.activiti.engine.impl.RuntimeServiceImpl
    
    所有已实现的接口:
    RuntimeService

API为我们提供了20种开启流程的方法,总有一种是你的菜。
startProcessInstanceById(String processDefinitionId) 
startProcessInstanceById(String processDefinitionId, Map variables) 
startProcessInstanceById(String processDefinitionId, String businessKey) 

startProcessInstanceById(String processDefinitionId, String businessKey, 

Map variables) 

startProcessInstanceByKey(String processDefinitionKey) 
startProcessInstanceByKey(String processDefinitionKey, Map variables) 
startProcessInstanceByKey(String processDefinitionKey, String businessKey) 

startProcessInstanceByKey(String processDefinitionKey, String businessKey, 

Map variables) 


startProcessInstanceByKeyAndTenantId(String processDefinitionKey, 

Map variables, String tenantId) 

startProcessInstanceByKeyAndTenantId(String processDefinitionKey, String tenantId) 

startProcessInstanceByKeyAndTenantId(String processDefinitionKey, String businessKey, 

Map variables, String tenantId) 

startProcessInstanceByKeyAndTenantId(String processDefinitionKey, String businessKey, 

String tenantId) 

startProcessInstanceByMessage(String messageName) 
startProcessInstanceByMessage(String messageName, Map processVariables) 
startProcessInstanceByMessage(String messageName, String businessKey) 

startProcessInstanceByMessage(String messageName, String businessKey, 

Map processVariables) 

startProcessInstanceByMessageAndTenantId(String messageName, 

Map processVariables, String tenantId) 

startProcessInstanceByMessageAndTenantId(String messageName, String tenantId) 

startProcessInstanceByMessageAndTenantId(String messageName, String businessKey, 

Map processVariables, String tenantId) 

startProcessInstanceByMessageAndTenantId(String messageName, String businessKey, String tenantId) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
    开启流程相关代码
//设置流程开启人,这个是必要方法  
Authentication.setAuthenticatedUserId(startUser);  
  
//这边使用的是多租户 tenantId  
//variables 是流程需要的集合变量  
//id 是uuid 唯一  
//key 是流程部署的key  
ProcessInstance processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(key, id, variables,tenantId);  
  
//取得流程当前任务信息  
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskTenantId(tenantId).singleResult();  
 
  • 本次介绍完。如有不足和疑问请留言,共同讨论

你可能感兴趣的:(Activiti,java,工作流)