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

时间:2016-03-31 02:24:31   收藏:0   阅读:1215

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

?

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

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

?

?

?

?

?

?

?

?

?

?

?

?

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

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

?

?

?

?


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

startProcessInstanceById(String?processDefinitionId,?String?businessKey,?

Map<String,Object>?variables)?

startProcessInstanceByKey(String?processDefinitionKey)?
startProcessInstanceByKey(String?processDefinitionKey,?Map<String,Object>?variables)?
startProcessInstanceByKey(String?processDefinitionKey,?String?businessKey)?

startProcessInstanceByKey(String?processDefinitionKey,?String?businessKey,?

Map<String,Object>?variables)?


startProcessInstanceByKeyAndTenantId(String?processDefinitionKey,?

Map<String,Object>?variables,?String?tenantId)?

startProcessInstanceByKeyAndTenantId(String?processDefinitionKey,?String?tenantId)?

startProcessInstanceByKeyAndTenantId(String?processDefinitionKey,?String?businessKey,?

Map<String,Object>?variables,?String?tenantId)?

startProcessInstanceByKeyAndTenantId(String?processDefinitionKey,?String?businessKey,?

String?tenantId)?

startProcessInstanceByMessage(String?messageName)?
startProcessInstanceByMessage(String?messageName,?Map<String,Object>?processVariables)?
startProcessInstanceByMessage(String?messageName,?String?businessKey)?

startProcessInstanceByMessage(String?messageName,?String?businessKey,?

Map<String,Object>?processVariables)?

startProcessInstanceByMessageAndTenantId(String?messageName,?

Map<String,Object>?processVariables,?String?tenantId)?

startProcessInstanceByMessageAndTenantId(String?messageName,?String?tenantId)?

startProcessInstanceByMessageAndTenantId(String?messageName,?String?businessKey,?

Map<String,Object>?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();  
?

原文:http://yuanpp4521.iteye.com/blog/2287479

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!