protected void processPendingEventSubProcessesStartEvents(ProcessInstanceChangeState processInstanceChangeState, CommandContext commandContext) { ProcessInstanceHelper processInstanceHelper = CommandContextUtil.getProcessEngineConfiguration(commandContext).getProcessInstanceHelper(); for (Map.Entry<? extends StartEvent, ExecutionEntity> pendingStartEventEntry : processInstanceChangeState.getPendingEventSubProcessesStartEvents().entrySet()) { StartEvent startEvent = pendingStartEventEntry.getKey(); ExecutionEntity parentExecution = pendingStartEventEntry.getValue(); if (!processInstanceChangeState.getCreatedEmbeddedSubProcesses().containsKey(startEvent.getSubProcess().getId())) { processInstanceHelper.processEventSubProcess(parentExecution, (EventSubProcess) startEvent.getSubProcess(), commandContext); } } }
@Override protected void convertElementToJson(ObjectNode propertiesNode, BaseElement baseElement) { StartEvent startEvent = (StartEvent) baseElement; if (StringUtils.isNotEmpty(startEvent.getInitiator())) { propertiesNode.put(PROPERTY_NONE_STARTEVENT_INITIATOR, startEvent.getInitiator()); } if (StringUtils.isNotEmpty(startEvent.getFormKey())) { if (formKeyMap != null && formKeyMap.containsKey(startEvent.getFormKey())) { ObjectNode formRefNode = objectMapper.createObjectNode(); ModelInfo modelInfo = formKeyMap.get(startEvent.getFormKey()); formRefNode.put("id", modelInfo.getId()); formRefNode.put("name", modelInfo.getName()); formRefNode.put("key", modelInfo.getKey()); propertiesNode.set(PROPERTY_FORM_REFERENCE, formRefNode); } else { setPropertyValue(PROPERTY_FORMKEY, startEvent.getFormKey(), propertiesNode); } } if (startEvent.getSubProcess() instanceof EventSubProcess && !startEvent.isInterrupting()) { propertiesNode.put(PROPERTY_INTERRUPTING, false); } else { propertiesNode.put(PROPERTY_INTERRUPTING, true); } addFormProperties(startEvent.getFormProperties(), propertiesNode); addEventProperties(startEvent, propertiesNode); }
@Override public void execute(DelegateExecution execution) { StartEvent startEvent = (StartEvent) execution.getCurrentFlowElement(); EventSubProcess eventSubProcess = (EventSubProcess) startEvent.getSubProcess(); execution.setScope(true); // initialize the template-defined data objects as variables Map<String, Object> dataObjectVars = processDataObjects(eventSubProcess.getDataObjects()); if (dataObjectVars != null) { execution.setVariablesLocal(dataObjectVars); } }
@Override public void execute(DelegateExecution execution) { StartEvent startEvent = (StartEvent) execution.getCurrentFlowElement(); EventSubProcess eventSubProcess = (EventSubProcess) startEvent.getSubProcess(); execution.setScope(true); // initialize the template-defined data objects as variables Map<String, Object> dataObjectVars = processDataObjects(eventSubProcess.getDataObjects()); if (dataObjectVars != null) { execution.setVariablesLocal(dataObjectVars); } }
@Override public void execute(DelegateExecution execution) { StartEvent startEvent = (StartEvent) execution.getCurrentFlowElement(); EventSubProcess eventSubProcess = (EventSubProcess) startEvent.getSubProcess(); execution.setScope(true); // initialize the template-defined data objects as variables Map<String, Object> dataObjectVars = processDataObjects(eventSubProcess.getDataObjects()); if (dataObjectVars != null) { execution.setVariablesLocal(dataObjectVars); } }
@Override protected void executeParse(BpmnParse bpmnParse, StartEvent element) { if (element.getSubProcess() != null && element.getSubProcess() instanceof EventSubProcess) { if (CollectionUtil.isNotEmpty(element.getEventDefinitions())) { EventDefinition eventDefinition = element.getEventDefinitions().get(0); if (element.getSubProcess() == null && (CollectionUtil.isEmpty(element.getEventDefinitions()) || bpmnParse.getCurrentProcess().getInitialFlowElement() == null)) {