public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) { SubProcessNode subProcessNode = (SubProcessNode) node; writeNode("callActivity", subProcessNode, xmlDump, metaDataType); if (subProcessNode.getProcessId() != null) { xmlDump.append("calledElement=\"" + XmlBPMNProcessDumper.replaceIllegalCharsAttribute(subProcessNode.getProcessId()) + "\" "); } if (!subProcessNode.isWaitForCompletion()) { xmlDump.append("tns:waitForCompletion=\"false\" "); } if (!subProcessNode.isIndependent()) { xmlDump.append("tns:independent=\"false\" "); } xmlDump.append(">" + EOL); writeExtensionElements(subProcessNode, xmlDump); writeIO(subProcessNode, xmlDump); endNode("callActivity", xmlDump); }
public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) { SubProcessNode subProcessNode = (SubProcessNode) node; writeNode("subProcess", subProcessNode, xmlDump, includeMeta); String processId = subProcessNode.getProcessId(); if (processId != null) { xmlDump.append("processId=\"" + processId + "\" ");
@Test public void testLoadProcessTaskReferenceCase() throws Exception { KieBase kbase = createKnowledgeBase("CMMN-ProcessTaskReferenceCase.cmmn"); assertThat(kbase).isNotNull(); Process process = kbase.getProcess("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(process).isNotNull(); assertThat(process).isInstanceOf(RuleFlowProcess.class); RuleFlowProcess caseProcess = (RuleFlowProcess) process; assertThat(caseProcess.isDynamic()).isTrue(); assertThat(caseProcess.getId()).isEqualTo("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(caseProcess.getName()).isEqualTo("ProcessTaskCase"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(1); SubProcessNode processNode = (SubProcessNode) nodes[0]; assertThat(processNode.getName()).isEqualTo("call my process"); assertThat(processNode.getProcessId()).isEqualTo("_4e0c5178-c886-4a14-ab6b-6ec6c940194b"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse(); assertThat(processNode.getInAssociations()).hasSize(0); assertThat(processNode.getOutAssociations()).hasSize(0); }
private void postProcessNodes(RuleFlowProcess process, NodeContainer container, ProcessBuildData buildData, ExtensibleXmlParser parser) { for (Node node : container.getNodes()) { if (node instanceof SubProcessNode) { Map<String, String> processes = (Map<String, String>) buildData.getMetaData("ProcessElements"); if (processes != null) { SubProcessNode subprocessNode = (SubProcessNode) node; subprocessNode.setProcessId(processes.getOrDefault(subprocessNode.getProcessId(), subprocessNode.getProcessId())); } } else if (node instanceof RuleSetNode) { Map<String, Decision> decisions = (Map<String, Decision>) buildData.getMetaData("DecisionElements"); RuleSetNode ruleSetNode = (RuleSetNode) node; if (decisions != null && decisions.containsKey(ruleSetNode.getRuleFlowGroup())) { Decision decision = decisions.get(ruleSetNode.getRuleFlowGroup()); ruleSetNode.setRuleFlowGroup(null); ruleSetNode.setLanguage(RuleSetNode.DMN_LANG); ruleSetNode.setNamespace((String) parser.getNamespaceURI(decision.getNamespace())); ruleSetNode.setModel(decision.getModel()); ruleSetNode.setDecision(decision.getDecision()); } } if (node instanceof NodeContainer) { postProcessNodes(process, (NodeContainer) node, buildData, parser); } } }
assertThat(processNode.getProcessId()).isEqualTo("_4e0c5178-c886-4a14-ab6b-6ec6c940194b"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse();
assertThat(processNode.getProcessId()).isEqualTo("subprocessId"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse();
String processId = getSubProcessNode().getProcessId(); if (processId == null) {
if (subProcess.getProcessId() == null && subProcess.getProcessName() == null) { addErrorMessage(process, node,
public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) { SubProcessNode subProcessNode = (SubProcessNode) node; writeNode("callActivity", subProcessNode, xmlDump, metaDataType); if (subProcessNode.getProcessId() != null) { xmlDump.append("calledElement=\"" + XmlBPMNProcessDumper.replaceIllegalCharsAttribute(subProcessNode.getProcessId()) + "\" "); } if (!subProcessNode.isWaitForCompletion()) { xmlDump.append("tns:waitForCompletion=\"false\" "); } if (!subProcessNode.isIndependent()) { xmlDump.append("tns:independent=\"false\" "); } xmlDump.append(">" + EOL); writeExtensionElements(subProcessNode, xmlDump); writeIO(subProcessNode, xmlDump); endNode("callActivity", xmlDump); }
@Override protected void handleNode(Node node, Element element, String uri, String localName, ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); String mainProcessId = repositoryHelper.getProcess().getId(); SubProcessNode subProcess = (SubProcessNode) node; repository.getProcessDesc(mainProcessId).getReusableSubProcesses().add(subProcess.getProcessId()); }
public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) { SubProcessNode subProcessNode = (SubProcessNode) node; writeNode("subProcess", subProcessNode, xmlDump, includeMeta); String processId = subProcessNode.getProcessId(); if (processId != null) { xmlDump.append("processId=\"" + processId + "\" ");
@Test public void testLoadProcessTaskReferenceCase() throws Exception { KieBase kbase = createKnowledgeBase("CMMN-ProcessTaskReferenceCase.cmmn"); assertThat(kbase).isNotNull(); Process process = kbase.getProcess("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(process).isNotNull(); assertThat(process).isInstanceOf(RuleFlowProcess.class); RuleFlowProcess caseProcess = (RuleFlowProcess) process; assertThat(caseProcess.isDynamic()).isTrue(); assertThat(caseProcess.getId()).isEqualTo("Case_636d4bea-4d52-46fb-b1ad-9ceeddf1be69"); assertThat(caseProcess.getName()).isEqualTo("ProcessTaskCase"); Node[] nodes = caseProcess.getNodes(); assertThat(nodes).hasSize(1); SubProcessNode processNode = (SubProcessNode) nodes[0]; assertThat(processNode.getName()).isEqualTo("call my process"); assertThat(processNode.getProcessId()).isEqualTo("_4e0c5178-c886-4a14-ab6b-6ec6c940194b"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse(); assertThat(processNode.getInAssociations()).hasSize(0); assertThat(processNode.getOutAssociations()).hasSize(0); }
private void postProcessNodes(RuleFlowProcess process, NodeContainer container, ProcessBuildData buildData, ExtensibleXmlParser parser) { for (Node node : container.getNodes()) { if (node instanceof SubProcessNode) { Map<String, String> processes = (Map<String, String>) buildData.getMetaData("ProcessElements"); if (processes != null) { SubProcessNode subprocessNode = (SubProcessNode) node; subprocessNode.setProcessId(processes.getOrDefault(subprocessNode.getProcessId(), subprocessNode.getProcessId())); } } else if (node instanceof RuleSetNode) { Map<String, Decision> decisions = (Map<String, Decision>) buildData.getMetaData("DecisionElements"); RuleSetNode ruleSetNode = (RuleSetNode) node; if (decisions != null && decisions.containsKey(ruleSetNode.getRuleFlowGroup())) { Decision decision = decisions.get(ruleSetNode.getRuleFlowGroup()); ruleSetNode.setRuleFlowGroup(null); ruleSetNode.setLanguage(RuleSetNode.DMN_LANG); ruleSetNode.setNamespace((String) parser.getNamespaceURI(decision.getNamespace())); ruleSetNode.setModel(decision.getModel()); ruleSetNode.setDecision(decision.getDecision()); } } if (node instanceof NodeContainer) { postProcessNodes(process, (NodeContainer) node, buildData, parser); } } }
assertThat(processNode.getProcessId()).isEqualTo("_4e0c5178-c886-4a14-ab6b-6ec6c940194b"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse();
@Override public void onNodeAdded(Node node) { if (node instanceof RuleSetNode) { RuleSetNode ruleSetNode = (RuleSetNode) node; String ruleFlowGroup = ruleSetNode.getRuleFlowGroup(); if (ruleFlowGroup != null) { addSharedReference(ruleFlowGroup, PartType.RULEFLOW_GROUP); } } else if (node instanceof WorkItemNode) { String taskName = ((WorkItemNode) node).getWork().getName(); addSharedReference(taskName, PartType.TASK_NAME); } else if (node instanceof SubProcessNode) { SubProcessNode subProcess = (SubProcessNode) node; String processName = subProcess.getProcessName(); if (!StringUtils.isEmpty(processName)) { addResourceReference(processName, getProcessNameResourceType()); } String processId = subProcess.getProcessId(); if (!StringUtils.isEmpty(processId)) { addResourceReference(processId, getProcessIdResourceType()); } } }
assertThat(processNode.getProcessId()).isEqualTo("subprocessId"); assertThat(processNode.isWaitForCompletion()).isTrue(); assertThat(processNode.isIndependent()).isFalse();
if (subProcessNode.isWaitForCompletion()) { testCode += " // invoking subprocess " + subProcessNode.getProcessId() + ", if necessary make sure it is completed\n";
String processId = getSubProcessNode().getProcessId(); if (processId == null) {
if (subProcess.getProcessId() == null && subProcess.getProcessName() == null) { addErrorMessage(process, node,