Flowable在开启工作流是设置各节点审批人
该方式用于流程固定并且明确知道每个节点什么人审批。
步骤一:
指定参数,比如某个节点设置的审批人为${AAAAA}如图:
步骤二:
在工作流启动前向启动工作流时使用的 startProcessInstanceByKeyAndTenantId()方法中填充 variables参数,variables中是键值对的形式,其中AAAAA这个参数需要给值。
这样在工作流到对应节点找审批人时,就会从variables 中找到这个AAAAA。
注意variables的 key值 这个AAAAA两边(代码+前端配置)一定要对应上
*************************** 对startProcessInstanceByKeyAndTenantId()方法中的variables参数解释**********************************************
在Activiti(一个流行的开源工作流和业务流程管理(BPM)平台,它是基于BPMN 2.0的)或类似的流程引擎中,RuntimeService的startProcessInstanceByKey()方法用于根据流程定义的键(key)启动一个新的流程实例。这个方法的一个常见重载版本允许你传递一个变量映射(map)作为参数,这个参数允许你在流程实例启动时设置流程变量。
流程变量是在流程执行期间可以访问的数据,它们可以用于多种目的,比如条件判断、任务分配、数据持久化等。在启动流程实例时设置流程变量,可以让流程在执行之初就具备必要的上下文信息。
使用方法
startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables)方法的variables参数是一个Map<String, Object>类型的对象,其中键(String)是变量的名称,值(Object)是变量的值。这个map中的每个键值对都会被设置为流程实例的上下文变量,可以在流程的任何地方(如用户任务、服务任务、脚本任务等)通过变量名来访问。
import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance;
import java.util.HashMap;
import java.util.Map;
// 假设runtimeService已经通过某种方式被初始化
RuntimeService runtimeService = ...;
// 创建变量映射
Map<String, Object> variables = new HashMap<>();
variables.put("applicantName", "John Doe");
variables.put("applicantAge", 30);
// 根据流程定义的键启动流程实例,并设置变量
String processDefinitionKey = "myProcess";
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);
// 现在,流程实例已经启动,并且带有名为applicantName和applicantAge的变量
在这个例子中,当流程执行到需要这些变量的地方时(如服务任务中的脚本或表达式),就可以通过变量名applicantName和applicantAge来访问这些值了