Camunda脚本任务可用在ServiceTask和线上,支持内部脚本Inline script和外部脚本External resource,支持JavaScript、groovy、Jython等常用脚本语言。
Activiti和Flowable不支持外部脚本,也不支持在线上指定脚本。
一:bpmn
线上的脚步返回值条件必须是boolean。
脚本返回值赋值给Result variable。
二:src/main/resources/test.js
var result1 = execution.getVariable("result1");
result1 - 1;
三:test
repositoryService.createDeployment().name("ScriptTask流程").addClasspathResource("bpmn/diagram_5.bpmn").deploy();
identityService.setAuthenticatedUserId("huihui");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("ScriptTaskProcess");
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();Map<String,Object> variables = new HashMap<>();
variables.put("days", 10);taskService.complete(task.getId(), variables);