protected void readIOParameter(XMLStreamReader xtr, boolean isInParameter, ConversionHelper conversionHelper) { if (!(conversionHelper.getCurrentCmmnElement() instanceof ProcessTask)) { return; } ProcessTask processTask = (ProcessTask) conversionHelper.getCurrentCmmnElement(); String source = xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_IOPARAMETER_SOURCE); String sourceExpression = xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_IOPARAMETER_SOURCE_EXPRESSION); String target = xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_IOPARAMETER_TARGET); String targetExpression = xtr.getAttributeValue(null, CmmnXmlConstants.ATTRIBUTE_IOPARAMETER_TARGET_EXPRESSION); IOParameter parameter = new IOParameter(); if (StringUtils.isNotEmpty(sourceExpression)) { parameter.setSourceExpression(sourceExpression); } else { parameter.setSource(source); } if (StringUtils.isNotEmpty(targetExpression)) { parameter.setTargetExpression(targetExpression); } else { parameter.setTarget(target); } if (isInParameter) { processTask.getInParameters().add(parameter); } else { processTask.getOutParameters().add(parameter); } }
@Override public List<IOParameter> getOutputParametersOfCaseTask(String executionId) { ExecutionEntity execution = (ExecutionEntity) processEngineConfiguration.getRuntimeService().createExecutionQuery().executionId(executionId).singleResult(); if (execution == null) { throw new FlowableException("No execution could be found for id " + executionId); } FlowElement flowElement = execution.getCurrentFlowElement(); if (!(flowElement instanceof CaseServiceTask)) { throw new FlowableException("No execution could be found with a case service task for id " + executionId); } List<IOParameter> cmmnParameters = new ArrayList<>(); CaseServiceTask caseServiceTask = (CaseServiceTask) flowElement; List<org.flowable.bpmn.model.IOParameter> parameters = caseServiceTask.getOutParameters(); for (org.flowable.bpmn.model.IOParameter ioParameter : parameters) { IOParameter parameter = new IOParameter(); parameter.setSource(ioParameter.getSource()); parameter.setSourceExpression(ioParameter.getSourceExpression()); parameter.setTarget(ioParameter.getTarget()); parameter.setTargetExpression(ioParameter.getTargetExpression()); cmmnParameters.add(parameter); } return cmmnParameters; }