SSH------------activit设置流程变量的方式
设置流程变量的方式
activiti把这些数据称为流程变量,内部提供了一张act_ru_variable 表来存这些数据
- 重新创建一个Java项目和数据库,这次用个报销流程讲解
|
第一种:【启动流程实例时设置流程变量】
//1.获取流程引擎 ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();
@Test public void test1(){
//2.获取部署构建器对象 DeploymentBuilder db = pe.getRepositoryService().createDeployment();
//3.添加流程资源 db.addClasspathResource("com/gyf/activiti/variable/bxlc.bpmn"); db.addClasspathResource("com/gyf/activiti/variable/bxlc.png");
//4.部署 Deployment deployment = db.deploy(); System.out.println(deployment.getId()); } /** * 启动流程实例时设置流程变量 * */ @Test public void test2(){ Map<String,Object> variables = new HashMap<String,Object>(); variables.put("bxyy", "成都出差机机票"); variables.put("bxje", "890"); pe.getRuntimeService().startProcessInstanceByKey("bxlc", variables); } |
第二种:【办理任务时设置流程变量】
/** *办理任务时流程变量 * */ @Test public void test3(){ String taskId = "304"; Map<String,Object> variables = new HashMap<String,Object>(); variables.put("bxyy", "北京出差机机票"); variables.put("bxje", "891"); pe.getTaskService().complete(taskId,variables); } |
第三种:【使用RuntimeService的set方法流程变量】
@Test public void test4(){ Map<String,Object> variables = new HashMap<String,Object>(); //variables.put("bxyy", "上海出差机票"); variables.put("审批意见", "同意");
pe.getRuntimeService().setVariables("301", variables); } |
第四种:【用TaskService的set方法设置】
@Test public void test5(){
Map<String,Object> variables = new HashMap<String,Object>(); variables.put("审批意见", "不同意"); pe.getTaskService().setVariables("404", variables); } |
注意:
- 如果设置的是自定义的类型,需要实现***接口
|
|