public boolean execute(ProcessInstance processInstance) { log.debug("{}",this); for (ProcessDefinition subProcess:m_subProcess) { ProcessInstance subprocessInstance = new ProcessInstance(); subprocessInstance.setBundleName(processInstance.getBundleName()); subProcess.startProcess(subprocessInstance); processInstance.getChildProcesses().add(subprocessInstance); subprocessInstance.setObjectInstance(processInstance.getObjectInstance()); subprocessInstance.setParentProcess(processInstance); log.debug("subprocess launched: {}",subprocessInstance.getProcessDefinitionName()); } ProcessInstanceUtils.clearQueue(processInstance); processInstance.setWaitCount(m_subProcess.size()); log.debug("{} subprocesses launched for: {} {}",processInstance.getWaitCount(),processInstance.getProcessDefinitionName(),processInstance.getId()); return false; }
protected void launchOneCyclicSubprocess(ProcessInstance processInstance) { ProcessInstance subProcess = new ProcessInstance(); subProcess.setBundleName(processInstance.getBundleName()); getSubProcess().startProcess(subProcess); processInstance.getChildProcesses().add(subProcess); subProcess.setObjectInstance(processInstance.getObjectInstance()); subProcess.setParentProcess(processInstance); log.debug("subprocess launched: {}",subProcess.getProcessDefinitionName()); ProcessInstanceUtils.clearQueue(processInstance); processInstance.setWaitCount(1); log.debug("subprocess launched for: {} {}",processInstance.getProcessDefinitionName(),processInstance.getId()); }
public boolean execute(ProcessInstance processInstance) { log.debug("{}",this); WorkflowManager workflowManager = getOwnerProcess().getWorkflowManager(); List<?> list = (List<?>)workflowManager.getField(processInstance, getFd()); if (!list.isEmpty()) { for (Object o:list) { ProcessInstance subProcess = new ProcessInstance(); subProcess.setBundleName(processInstance.getBundleName()); getSubProcess().startProcess(subProcess); processInstance.getChildProcesses().add(subProcess); subProcess.setObjectInstance(workflowManager.createContextDescriptor(o)); subProcess.setParentProcess(processInstance); log.debug("subprocess launched: {}",subProcess.getProcessDefinitionName()); } ProcessInstanceUtils.clearQueue(processInstance); processInstance.setWaitCount(list.size()); log.debug("{} subprocesses launched for: {} {}",processInstance.getWaitCount(),processInstance.getProcessDefinitionName(),processInstance.getId()); } return false; } }