protected BpmnModelInstance createProcessWithUserTask(String key) { double random = Math.random(); return Bpmn.createExecutableProcess(key) .name("name_" + key) .startEvent() .userTask(key + "_" + random + "_task1") .name(key + " Task 1") .endEvent() .done(); }
protected BpmnModelInstance createProcessWithUserTask(String key) { return Bpmn.createExecutableProcess(key) .startEvent() .userTask(key + "_task1") .name(key + " Task 1") .endEvent() .done(); }
protected BpmnModelInstance createProcessWithUserTask(String key) { return Bpmn.createExecutableProcess(key) .startEvent() .userTask(key + "_task1") .name(key + " Task 1") .endEvent() .done(); }
protected BpmnModelInstance createModelTaskListener(String listener) { return Bpmn.createExecutableProcess(PROCESS_KEY) .startEvent("startEvent") .userTask("userTask1").name("User task") .camundaTaskListenerClass(listener, SetBusinessKeyListener.class) .userTask("userTask2") .endEvent("endEvent") .done(); }
protected BpmnModelInstance createModelExecutionListener(String listener) { return Bpmn.createExecutableProcess(PROCESS_KEY) .startEvent("startEvent") .userTask("userTask1").name("User task") .camundaExecutionListenerExpression(listener, "${execution.setProcessBusinessKey(execution.getVariable(\"" + BUSINESS_KEY_VARIABLE + "\"))}") .userTask("userTask2") .endEvent("endEvent") .done(); }
@Test public void testCompleteTaskInCreateTaskListenerWithIdentityLinks() { // given process with user task, identity links and task create listener BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("startToEnd") .startEvent() .userTask() .camundaTaskListenerClass(TaskListener.EVENTNAME_CREATE, TaskCreateListener.class.getName()) .name("userTask") .camundaCandidateUsers(Arrays.asList(new String[]{"users1", "user2"})) .camundaCandidateGroups(Arrays.asList(new String[]{"group1", "group2"})) .endEvent().done(); testRule.deploy(modelInstance); // when process is started and user task completed in task create listener runtimeService.startProcessInstanceByKey("startToEnd"); // then task is successfully completed without an exception assertNull(taskService.createTaskQuery().singleResult()); }
protected BpmnModelInstance createModel(boolean isCancelActivity, String date) { BpmnModelInstance model = Bpmn.createExecutableProcess() .startEvent("startEvent") .userTask("userTask").name("User Task") .boundaryEvent("timer") .cancelActivity(isCancelActivity) .timerWithDate(date) .userTask("afterTimer") .endEvent("endEvent") .done(); return model; } }
protected BpmnModelInstance addConditionalEventSubProcess(BpmnModelInstance model, String parentId, String conditionExpr, String userTaskId, boolean isInterrupting) { return modify(model) .addSubProcessTo(parentId) .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(isInterrupting) .condition(conditionExpr) .userTask(userTaskId) .name(TASK_AFTER_CONDITION) .endEvent().done(); }
@Test public void testCompleteTaskInCreateTaskListener() { // given process with user task and task create listener BpmnModelInstance modelInstance = Bpmn.createExecutableProcess("startToEnd") .startEvent() .userTask() .camundaTaskListenerClass(TaskListener.EVENTNAME_CREATE, TaskCreateListener.class.getName()) .name("userTask") .endEvent().done(); testRule.deploy(modelInstance); // when process is started and user task completed in task create listener runtimeService.startProcessInstanceByKey("startToEnd"); // then task is successfully completed without an exception assertNull(taskService.createTaskQuery().singleResult()); }
protected BpmnModelInstance addBoundaryEvent(BpmnModelInstance modelInstance, String activityId, String userTaskName, boolean isInterrupting) { return modify(modelInstance) .activityBuilder(activityId) .boundaryEvent() .cancelActivity(isInterrupting) .conditionalEventDefinition() .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask() .name(userTaskName) .endEvent() .done(); }
protected BpmnModelInstance addConditionalBoundaryEvent(BpmnModelInstance model, String activityId, String conditionExpr, String userTaskId, boolean isInterrupting) { return modify(model) .activityBuilder(activityId) .boundaryEvent() .cancelActivity(isInterrupting) .condition(conditionExpr) .userTask(userTaskId) .name(TASK_AFTER_CONDITION) .endEvent() .done(); } }
@Override public BpmnModelInstance getProcessWithVarName(boolean interrupting, String condition) { return modify(TASK_MODEL) .userTaskBuilder(TASK_BEFORE_CONDITION_ID) .boundaryEvent() .cancelActivity(interrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(condition) .camundaVariableName(VARIABLE_NAME) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
protected void deployBoundaryEventProcess(AbstractActivityBuilder builder, String conditionExpr, boolean isInterrupting) { final BpmnModelInstance modelInstance = builder .boundaryEvent() .cancelActivity(isInterrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(conditionExpr) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); engine.manageDeployment(repositoryService.createDeployment().addModelInstance(CONDITIONAL_MODEL, modelInstance).deploy()); }
@Override public BpmnModelInstance getProcessWithVarEvents(boolean interrupting, String varEvent) { return modify(TASK_MODEL) .userTaskBuilder(TASK_BEFORE_CONDITION_ID) .boundaryEvent() .cancelActivity(interrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(CONDITION_EXPR) .camundaVariableEvents(varEvent) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
protected BpmnModelInstance addEventSubProcess(BpmnModelInstance model, String parentId, String userTaskName, boolean isInterrupting) { return modify(model) .addSubProcessTo(parentId) .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(isInterrupting) .conditionalEventDefinition() .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask() .name(userTaskName) .endEvent() .done(); }
@Override public BpmnModelInstance getProcessWithVarNameAndEvents(boolean interrupting, String varEvent) { return modify(TASK_MODEL) .userTaskBuilder(TASK_BEFORE_CONDITION_ID) .boundaryEvent() .cancelActivity(interrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(CONDITION_EXPR) .camundaVariableName(VARIABLE_NAME) .camundaVariableEvents(varEvent) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
@Override public BpmnModelInstance specifyConditionalProcess(BpmnModelInstance modelInstance, boolean isInterrupting) { return modify(modelInstance) .addSubProcessTo(CONDITIONAL_EVENT_PROCESS_KEY) .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(isInterrupting) .conditionalEventDefinition() .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
@Override public BpmnModelInstance getProcessWithVarName(boolean interrupting, String condition) { return modify(TASK_MODEL) .addSubProcessTo(CONDITIONAL_EVENT_PROCESS_KEY) .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(interrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(condition) .camundaVariableName(VARIABLE_NAME) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
@Override public BpmnModelInstance getProcessWithVarEvents(boolean interrupting, String varEvent) { return modify(TASK_MODEL) .addSubProcessTo(CONDITIONAL_EVENT_PROCESS_KEY) .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(interrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(CONDITION_EXPR) .camundaVariableEvents(varEvent) .conditionalEventDefinitionDone() .userTask() .name(TASK_AFTER_CONDITION) .endEvent() .done(); }
protected void deployConditionalEventSubProcess(BpmnModelInstance model, String parentId, boolean isInterrupting) { final BpmnModelInstance modelInstance = modify(model) .addSubProcessTo(parentId) .id("eventSubProcess") .triggerByEvent() .embeddedSubProcess() .startEvent() .interrupting(isInterrupting) .conditionalEventDefinition(CONDITIONAL_EVENT) .condition(CONDITION_EXPR) .conditionalEventDefinitionDone() .userTask("taskAfterCond") .name(TASK_AFTER_CONDITION) .endEvent().done(); engine.manageDeployment(repositoryService.createDeployment().addModelInstance(CONDITIONAL_MODEL, modelInstance).deploy()); }