public static final BpmnModelInstance subProcessProcess(String key) { return Bpmn.createExecutableProcess(key) .startEvent() .subProcess() .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, InstantiationListener.class.getName()) .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, RemovalListener.class.getName()) .embeddedSubProcess() .startEvent() .userTask("userTask") .endEvent() .subProcessDone() .endEvent() .done(); }
@Override public BpmnModelInstance getSourceProcess() { return modify(ProcessModels.SUBPROCESS_PROCESS) .addSubProcessTo(EventSubProcessModels.SUB_PROCESS_ID) .triggerByEvent() .embeddedSubProcess() .startEvent(EVENT_SUB_PROCESS_START_ID).signal(EventSubProcessModels.SIGNAL_NAME) .userTask(EVENT_SUB_PROCESS_TASK_ID) .endEvent() .subProcessDone() .done(); }
@Override public BpmnModelInstance getSourceProcess() { return modify(ProcessModels.SUBPROCESS_PROCESS) .addSubProcessTo(EventSubProcessModels.SUB_PROCESS_ID) .triggerByEvent() .embeddedSubProcess() .startEvent(EVENT_SUB_PROCESS_START_ID).timerWithDate(TIMER_DATE) .userTask(EVENT_SUB_PROCESS_TASK_ID) .endEvent() .subProcessDone() .done(); }
@Override public BpmnModelInstance getSourceProcess() { return modify(ProcessModels.SUBPROCESS_PROCESS) .addSubProcessTo(EventSubProcessModels.SUB_PROCESS_ID) .triggerByEvent() .embeddedSubProcess() .startEvent(EVENT_SUB_PROCESS_START_ID) .condition(EventSubProcessModels.VAR_CONDITION) .userTask(EVENT_SUB_PROCESS_TASK_ID) .endEvent() .subProcessDone() .done(); }
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(); }
@Override public MigratingBpmnEventTrigger addEventSubProcess(ProcessEngine engine, BpmnModelInstance modelInstance, String parentId, String subProcessId, String startEventId) { ModifiableBpmnModelInstance.wrap(modelInstance) .addSubProcessTo(parentId) .id(subProcessId) .triggerByEvent() .embeddedSubProcess() .startEvent(startEventId).signal(SIGNAL_NAME) .subProcessDone() .done(); SignalTrigger trigger = new SignalTrigger(); trigger.engine = engine; trigger.signalName = SIGNAL_NAME; trigger.activityId = startEventId; return trigger; }
@Override public MigratingBpmnEventTrigger addEventSubProcess(ProcessEngine engine, BpmnModelInstance modelInstance, String parentId, String subProcessId, String startEventId) { ModifiableBpmnModelInstance.wrap(modelInstance) .addSubProcessTo(parentId) .id(subProcessId) .triggerByEvent() .embeddedSubProcess() .startEvent(startEventId).message(MESSAGE_NAME) .subProcessDone() .done(); MessageTrigger trigger = new MessageTrigger(); trigger.engine = engine; trigger.messageName = MESSAGE_NAME; trigger.activityId = startEventId; return trigger; }
@Override public MigratingBpmnEventTrigger addEventSubProcess(ProcessEngine engine, BpmnModelInstance modelInstance, String parentId, String subProcessId, String startEventId) { ModifiableBpmnModelInstance.wrap(modelInstance) .addSubProcessTo(parentId) .id(subProcessId) .triggerByEvent() .embeddedSubProcess() .startEvent(startEventId).timerWithDuration("PT10M") .subProcessDone() .done(); TimerEventTrigger trigger = new TimerEventTrigger(); trigger.engine = engine; trigger.activityId = startEventId; trigger.handlerType = TimerStartEventSubprocessJobHandler.TYPE; return trigger; }
public void testEmbeddedSubprocess() { deploymentForTenant("tenant1", Bpmn.createExecutableProcess(PROCESS_DEFINITION_KEY) .startEvent() .subProcess() .embeddedSubProcess() .startEvent() .serviceTask() .camundaClass(AssertingJavaDelegate.class.getName()) .endEvent() .subProcessDone() .endEvent() .done()); AssertingJavaDelegate.addAsserts(hasTenantId("tenant1")); startProcessInstance(PROCESS_DEFINITION_KEY); }
public static BpmnModelInstance subProcessBpmnCallActivityProcess(String calledProcessKey) { return ProcessModels.newModel() .startEvent() .subProcess("subProcess") .embeddedSubProcess() .startEvent() .callActivity("callActivity") .calledElement(calledProcessKey) .userTask("userTask") .endEvent() .subProcessDone() .endEvent() .done(); }
private BpmnModelInstance prepareFailingSubProcess() { BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess(PROCESS_ID) .startEvent() .subProcess() .embeddedSubProcess() .startEvent() .serviceTask() .camundaClass(FAILING_CLASS) .camundaAsyncBefore() .endEvent() .subProcessDone() .endEvent() .done(); return bpmnModelInstance; } }
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 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(); }
@Test public void testSetLocalScopeInSubprocessWithStartExecutionListener() { testHelper.deploy(Bpmn.createExecutableProcess("process") .startEvent() .subProcess().embeddedSubProcess() .startEvent().id("activityId") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, ExecutionListener.class) .endEvent() .subProcessDone() .endEvent() .done()); engineRule.getRuntimeService().startProcessInstanceByKey("process"); }
@Test public void testSetLocalScopeInSubprocessWithEndExecutionListener() { testHelper.deploy(Bpmn.createExecutableProcess("process") .startEvent() .subProcess().embeddedSubProcess() .startEvent() .endEvent().id("activityId") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, ExecutionListener.class) .subProcessDone() .endEvent() .done()); engineRule.getRuntimeService().startProcessInstanceByKey("process"); }
@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(); }
@Test public void testSetLocalScopeInSubprocessWithJavaDelegate() { testHelper.deploy(Bpmn.createExecutableProcess("process") .startEvent() .subProcess().embeddedSubProcess() .startEvent() .serviceTask().id("activityId") .camundaClass(JavaDelegate.class) .endEvent() .subProcessDone() .endEvent() .done()); engineRule.getRuntimeService().startProcessInstanceByKey("process"); }
@Test public void testSetLocalScopeInSubprocessWithTaskListener() { testHelper.deploy(Bpmn.createExecutableProcess("process") .startEvent() .subProcess().embeddedSubProcess() .startEvent() .userTask().id("activityId") .camundaTaskListenerClass(TaskListener.EVENTNAME_CREATE, TaskListener.class) .endEvent() .subProcessDone() .endEvent() .done()); engineRule.getRuntimeService().startProcessInstanceByKey("process"); }
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()); }