public void addDynamicSubprocess(String containerId, String caseId, String stageId, String processId, String payload, String marshallingType) { verifyContainerId(containerId, caseId); logger.debug("About to unmarshal process data from payload: '{}'", payload); Map<String, Object> subProcessParameters = marshallerHelper.unmarshal(containerId, payload, marshallingType, Map.class, new ByCaseIdContainerLocator(caseId)); logger.debug("SubProcess data '{}'", subProcessParameters); if (stageId != null && !stageId.isEmpty()) { logger.debug("Adding dynamic subprocess to stage {} within case {}", stageId, caseId); caseService.addDynamicSubprocessToStage(caseId, stageId, processId, subProcessParameters); } else { logger.debug("Adding dynamic subprocess to case {}", caseId); caseService.addDynamicSubprocess(caseId, processId, subProcessParameters); } }