public Object getVariable(String variableName) { VariableScopeInstance variableScope = (VariableScopeInstance) resolveContextInstance(VariableScope.VARIABLE_SCOPE, variableName); if (variableScope == null) { variableScope = (VariableScopeInstance) ((ProcessInstance) getProcessInstance()).getContextInstance(VariableScope.VARIABLE_SCOPE); } return variableScope.getVariable(variableName); }
public void setVariable(String variableName, Object value) { VariableScopeInstance variableScope = (VariableScopeInstance) resolveContextInstance(VariableScope.VARIABLE_SCOPE, variableName); if (variableScope == null) { variableScope = (VariableScopeInstance) getProcessInstance().getContextInstance(VariableScope.VARIABLE_SCOPE); if (variableScope.getVariableScope().findVariable(variableName) == null) { variableScope = null; } } if (variableScope == null) { logger.error("Could not find variable {}", variableName); logger.error("Using process-level scope"); variableScope = (VariableScopeInstance) ((ProcessInstance) getProcessInstance()).getContextInstance(VariableScope.VARIABLE_SCOPE); } variableScope.setVariable(variableName, value); }
VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance( VariableScope.VARIABLE_SCOPE );
public Object execute(Context context) { KieSession ksession = ((RegistryContext) context).lookup( KieSession.class ); org.jbpm.process.instance.ProcessInstance processInstance = (org.jbpm.process.instance.ProcessInstance) ksession.getProcessInstance(processInstanceId); VariableScopeInstance variableScope = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE); Object variable = variableScope.getVariable(variableName); return variable; }
private void initialize(NodeInstance nodeInstance, ProcessInstance processInstance) { this.processInstanceId = processInstance.getId(); this.processId = processInstance.getProcessId(); this.setDeploymentId(((ProcessInstanceImpl)processInstance).getDeploymentId()); if( nodeInstance != null ) { this.nodeInstanceId = nodeInstance.getId(); this.nodeId = nodeInstance.getNodeId(); if( ((ProcessInstanceImpl) processInstance).getKnowledgeRuntime() != null ) { this.nodeName = nodeInstance.getNodeName(); } } VariableScopeInstance variableScope = (VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE ); // set input parameters if( variableScope != null ) { this.variables = variableScope.getVariables(); } else { this.variables = new HashMap<String, Object>(0); } }
private void handleOutMappings(ProcessInstance processInstance) { VariableScopeInstance subProcessVariableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE); SubProcessNode subProcessNode = getSubProcessNode(); if (subProcessNode != null) {
@Test public void testInternalNodeSignalEvent() { Reader source = new StringReader(process); builder.addRuleFlow(source); KieSession session = createKieSession(builder.getPackages()); final List<ProcessEvent> processEventList = new ArrayList<ProcessEvent>(); final ProcessEventListener listener = createProcessEventListener(processEventList); ((InternalWorkingMemory)session).getProcessRuntime().addEventListener(listener); ProcessInstance processInstance = ((InternalWorkingMemory)session).getProcessRuntime().startProcess("org.drools.core.event"); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance) .getContextInstance(VariableScope.VARIABLE_SCOPE)).getVariable("MyVar")); assertEquals( 28, processEventList.size() ); for (ProcessEvent e: processEventList) { logger.debug(e.toString()); } assertEquals( "org.drools.core.event", ((ProcessStartedEvent) processEventList.get(2)).getProcessInstance().getProcessId()); }
@Test public void testVariableMapping() throws Exception { KieSession workingMemory = createStatefulKnowledgeSessionFromRule(true); Map<String, Object> map = new HashMap<String, Object>(); map.put("x", "x-value"); org.jbpm.process.instance.ProcessInstance processInstance = ( org.jbpm.process.instance.ProcessInstance ) workingMemory.startProcess("com.sample.ruleflow", map); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(2, workingMemory.getProcessInstances().size()); for (ProcessInstance p: workingMemory.getProcessInstances()) { VariableScopeInstance variableScopeInstance = (VariableScopeInstance) (( org.jbpm.process.instance.ProcessInstance )p).getContextInstance(VariableScope.VARIABLE_SCOPE); if ("com.sample.ruleflow".equals(p.getProcessId())) { assertEquals("x-value", variableScopeInstance.getVariable("x")); } else if ("com.sample.subflow".equals(p.getProcessId())) { assertEquals("x-value", variableScopeInstance.getVariable("y")); assertEquals("z-value", variableScopeInstance.getVariable("z")); assertEquals(7, variableScopeInstance.getVariable("n")); assertEquals(10, variableScopeInstance.getVariable("o")); } } workingMemory.insert(new Person()); workingMemory.fireAllRules(); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); VariableScopeInstance variableScopeInstance = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE); assertEquals("z-value", variableScopeInstance.getVariable("x")); assertEquals(10, variableScopeInstance.getVariable("m")); assertEquals(0, workingMemory.getProcessInstances().size()); }
assertEquals(1, session.getProcessInstances().size()); VariableScopeInstance variableScopeInstance = (VariableScopeInstance) (( ProcessInstance )session.getProcessInstances().iterator().next()).getContextInstance(VariableScope.VARIABLE_SCOPE); assertEquals("ThisIsMyValue", variableScopeInstance.getVariable("myVariable"));
assertEquals(1, session.getProcessInstances().size()); VariableScopeInstance variableScopeInstance = (VariableScopeInstance) (( ProcessInstance )session.getProcessInstances().iterator().next()).getContextInstance(VariableScope.VARIABLE_SCOPE); assertEquals("ThisIsMyValue", variableScopeInstance.getVariable("myVariable")); assertEquals(myPerson, variableScopeInstance.getVariable("myPerson"));
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals("Process did not complete!", ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals("SomeText", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar")); assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals("SomeText", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState()); assertEquals("MyValue", ((VariableScopeInstance) ((org.jbpm.process.instance.ProcessInstance) processInstance).getContextInstance( VariableScope.VARIABLE_SCOPE)).getVariable("MyVar"));
Map<String, Object> variables = ksession.execute(new GenericCommand<Map<String, Object>>() { public Map<String, Object> execute(Context context) { StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession(); ProcessInstance processInstance = (ProcessInstance) ksession.getProcessInstance(piId); VariableScopeInstance variableScope = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE); Map<String, Object> variables = variableScope.getVariables(); return variables; } });
public Object getVariable(String variableName) { VariableScopeInstance variableScope = (VariableScopeInstance) resolveContextInstance(VariableScope.VARIABLE_SCOPE, variableName); if (variableScope == null) { variableScope = (VariableScopeInstance) ((ProcessInstance) getProcessInstance()).getContextInstance(VariableScope.VARIABLE_SCOPE); } return variableScope.getVariable(variableName); }
public Object execute(Context context) { KieSession ksession = ((RegistryContext) context).lookup( KieSession.class ); org.jbpm.process.instance.ProcessInstance processInstance = (org.jbpm.process.instance.ProcessInstance) ksession.getProcessInstance(processInstanceId); VariableScopeInstance variableScope = (VariableScopeInstance) processInstance.getContextInstance(VariableScope.VARIABLE_SCOPE); Object variable = variableScope.getVariable(variableName); return variable; }