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 boolean isAttachedToNodeActive(Collection<NodeInstance> nodeInstances, String attachedTo, String type, Object event) { if (nodeInstances != null && !nodeInstances.isEmpty()) { for (NodeInstance nInstance : nodeInstances) { String nodeUniqueId = (String) nInstance.getNode().getMetaData().get("UniqueId"); boolean isActivating = ((WorkflowProcessInstanceImpl)nInstance.getProcessInstance()).getActivatingNodeIds().contains(nodeUniqueId); if (attachedTo.equals(nodeUniqueId) && !isActivating) { // in case this is timer event make sure it corresponds to the proper node instance if (type.startsWith("Timer-")) { if (Long.valueOf(nInstance.getId()).equals(event)) { return true; } } else { return true; } } if (nInstance instanceof CompositeNodeInstance) { boolean hasActive = isAttachedToNodeActive(((CompositeNodeInstance) nInstance).getNodeInstances(), attachedTo, type, event); if (hasActive) { return true; } } } } return false; }
private ContextInstanceContainer getEnclosingContextInstanceContainer(NodeInstance nodeInstance) { NodeInstanceContainer nodeInstanceContainer = nodeInstance.getNodeInstanceContainer(); while (true) { if (nodeInstanceContainer instanceof ContextInstanceContainer) { return (ContextInstanceContainer) nodeInstanceContainer; } if (nodeInstanceContainer instanceof NodeInstance) { nodeInstanceContainer = ((NodeInstance) nodeInstanceContainer).getNodeInstanceContainer(); } else { return null; } } }
public Object writeNodeInstance(MarshallerWriteContext context, NodeInstance nodeInstance) throws IOException { ObjectOutputStream stream = context.stream; stream.writeLong(nodeInstance.getId()); stream.writeLong(nodeInstance.getNodeId()); writeNodeInstanceContent(stream, nodeInstance, context); return null; }
@Override public void afterNodeLeft(ProcessNodeLeftEvent event) { if (event.getNodeInstance().getNodeName() .equals("Script Task 1")) { executednodes.add(event.getNodeInstance().getId()); } }
public SimulationEvent simulate(Object activity, SimulationContext context) { NodeInstance gateway = (NodeInstance) activity; long startTime = context.getClock().getCurrentTime(); Map<String, Object> metadata = gateway.getNode().getMetaData(); ProcessInstance pi = gateway.getProcessInstance(); Node node = gateway.getNode(); String bpmn2NodeId = (String) metadata.get("UniqueId"); // todo long duration = 0; long endTime = startTime + duration; context.getClock().advanceTime(duration, TimeUnit.MILLISECONDS); // set end time for processinstance end time context.setMaxEndTime(context.getClock().getCurrentTime()); SimulationDataProvider provider = context.getDataProvider(); String type = (String) provider.getProcessDataForNode(node).get("node.type"); return new GatewaySimulationEvent(pi.getProcessId(), context.getProcessInstanceId(), startTime, endTime, bpmn2NodeId, node.getName(), type); }
pi.signalEvent("signal", null); assertEquals( 20, processEventList.size() ); assertEquals( "org.drools.core.process.event", ((ProcessStartedEvent) processEventList.get(0)).getProcessInstance().getProcessId()); assertEquals( "Start", ((ProcessNodeTriggeredEvent) processEventList.get(1)).getNodeInstance().getNodeName()); assertEquals( "Start", ((ProcessNodeLeftEvent) processEventList.get(2)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeTriggeredEvent) processEventList.get(3)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeLeftEvent) processEventList.get(4)).getNodeInstance().getNodeName()); assertEquals( "Event", ((ProcessNodeTriggeredEvent) processEventList.get(5)).getNodeInstance().getNodeName()); assertEquals( "Event", ((ProcessNodeTriggeredEvent) processEventList.get(6)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeLeftEvent) processEventList.get(7)).getNodeInstance().getNodeName()); assertEquals( "Print", ((ProcessNodeTriggeredEvent) processEventList.get(8)).getNodeInstance().getNodeName()); assertEquals( "Start", ((ProcessNodeLeftEvent) processEventList.get(9)).getNodeInstance().getNodeName()); assertEquals( "Start", ((ProcessNodeTriggeredEvent) processEventList.get(10)).getNodeInstance().getNodeName()); assertEquals( "org.drools.core.process.event", ((ProcessStartedEvent) processEventList.get(11)).getProcessInstance().getProcessId()); assertEquals( "Event", ((ProcessNodeLeftEvent) processEventList.get(12)).getNodeInstance().getNodeName()); assertEquals( "End", ((ProcessNodeTriggeredEvent) processEventList.get(13)).getNodeInstance().getNodeName()); assertEquals( "End", ((ProcessNodeLeftEvent) processEventList.get(14)).getNodeInstance().getNodeName()); assertEquals( "org.drools.core.process.event", ((ProcessCompletedEvent) processEventList.get(15)).getProcessInstance().getProcessId()); assertEquals( "org.drools.core.process.event", ((ProcessCompletedEvent) processEventList.get(16)).getProcessInstance().getProcessId()); assertEquals( "End", ((ProcessNodeLeftEvent) processEventList.get(17)).getNodeInstance().getNodeName()); assertEquals( "Event", ((ProcessNodeLeftEvent) processEventList.get(19)).getNodeInstance().getNodeName()); assertEquals( "End", ((ProcessNodeTriggeredEvent) processEventList.get(18)).getNodeInstance().getNodeName());
public SimulationEvent simulate(Object activity, SimulationContext context) { NodeInstance nodeInstance = (NodeInstance) activity; long startTime = context.getClock().getCurrentTime(); ProcessInstance pi = nodeInstance.getProcessInstance(); Node node = nodeInstance.getNode(); String bpmn2NodeId = (String) node.getMetaData().get("UniqueId"); String processName = pi.getProcessName(); String processVer = pi.getProcess().getVersion(); if (processVer == null) { processVer = ""; } // set end time for processinstance end time context.setMaxEndTime(context.getClock().getCurrentTime()); return new EndSimulationEvent(pi.getProcessId(), context.getProcessInstanceId(), startTime, context.getClock().getCurrentTime(), context.getStartTime(), bpmn2NodeId, node.getName(), processName, processVer); }
@Override public void afterNodeTriggered(ProcessNodeTriggeredEvent event) { if (nodeName.equals(event.getNodeInstance().getNodeName())) { countDown(); } }
assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); processInstance = ksession.getProcessInstance(processInstance.getId()); assertTrue(processInstance.getState() == ProcessInstance.STATE_ACTIVE); ksession.signalEvent("slaViolation:" + userTaskNode.getId(), null, processInstance.getId());
if (nodeInstance.getNode() == null) { continue; upgradedNodeId = upgradedNode.getId(); ((NodeInstanceImpl) nodeInstance).setNodeId(upgradedNodeId); nodeInstanceIdQuery .setParameter("oldNodeId", oldNodeId) .setParameter("processInstanceId", nodeInstance.getProcessInstance().getId()); "where nodeInstanceId in (:ids) and processInstanceId = :processInstanceId"); nodeLogQuery .setParameter("nodeId", (String) upgradedNode.getMetaData().get("UniqueId")) .setParameter("nodeName", VariableUtil.resolveVariable(upgradedNode.getName(), nodeInstance)) .setParameter("nodeType", upgradedNode.getClass().getSimpleName()) .setParameter("ids", nodeInstanceIds) .setParameter("processInstanceId", nodeInstance.getProcessInstance().getId()); report.addEntry(Type.INFO, "Mapping: Node instance logs updated = " + nodesUpdated + " for node instance id " + nodeInstance.getId());
@Override public void beforeNodeLeft(ProcessNodeLeftEvent event) { if (reactOnBeforeNodeLeft && nodeName.equals(event.getNodeInstance().getNodeName())) { countDown(); } } }
@Override public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { logger.info("{} {}", event.getNodeInstance().getNodeName(), ((NodeInstanceImpl) event.getNodeInstance()).getLevel()); Integer value = nodeInstanceExecutionCounter.get(event.getNodeInstance().getNodeName()); if (value == null) { value = new Integer(0); } value++; nodeInstanceExecutionCounter.put(event.getNodeInstance().getNodeName(), value); }
public final void trigger(NodeInstance from, String type) { boolean hidden = false; if (getNode().getMetaData().get("hidden") != null) { hidden = true; ((org.jbpm.workflow.instance.NodeInstanceContainer)getNodeInstanceContainer()).setCurrentLevel(level); Collection<Connection> incoming = getNode().getIncomingConnections(type); for (Connection conn : incoming) { if (conn.getFrom().getId() == from.getNodeId()) { this.metaData.put("IncomingConnection", conn.getMetaData().get("UniqueId")); break;
if (event.getNodeInstance() != null) { long nodeInstanceId = event.getNodeInstance().getId(); long processInstanceId = event.getProcessInstance().getId(); NodeInstanceLog log = (NodeInstanceLog) ((NodeInstanceImpl) event.getNodeInstance()).getMetaData().get("NodeInstanceLog"); if (log == null) { List<NodeInstanceLog> result = em.createQuery( long processInstanceId = event.getProcessInstance().getId(); ProcessInstanceLog log = (ProcessInstanceLog) ((ProcessInstanceImpl) event.getProcessInstance()).getMetaData().get("ProcessInstanceLog"); if (log == null) {
@Override public void afterNodeTriggered(ProcessNodeTriggeredEvent event) { if(event.getNodeInstance().getNodeName().equals("CreateAgent")){ pi.signalEvent("Signal_1", null); } }
public void afterNodeTriggered(org.kie.api.event.process.ProcessNodeTriggeredEvent event) { if ("Task2".equals(event.getNodeInstance().getNodeName())) { list.add(event.getNodeInstance().getNodeId()); } } });
public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) { logger.debug("before node"); Map<String, Object> metaData = event.getNodeInstance().getNode().getMetaData(); for (Map.Entry<String, Object> entry: metaData.entrySet()) { logger.debug(entry.getKey() + " " + entry.getValue()); } String customTag = (String) metaData.get("customTag"); if (customTag != null) { list1.add(customTag); } String customTag2 = (String) metaData.get("customTag2"); if (customTag2 != null) { list2.add(customTag2); } } public void afterVariableChanged(ProcessVariableChangedEvent event) {
private static void updateNodeInstances(NodeInstanceContainer nodeInstanceContainer, Map<String, Long> nodeMapping) { for (NodeInstance nodeInstance : nodeInstanceContainer.getNodeInstances()) { String oldNodeId = ((NodeImpl) ((org.jbpm.workflow.instance.NodeInstance) nodeInstance).getNode()).getUniqueId(); Long newNodeId = nodeMapping.get(oldNodeId); if (newNodeId == null) { newNodeId = nodeInstance.getNodeId(); } // clean up iteration levels for removed (old) nodes Map<String, Integer> iterLevels = ((WorkflowProcessInstanceImpl) nodeInstance.getProcessInstance()).getIterationLevels(); String uniqueId = (String) ((NodeImpl) nodeInstance.getNode()).getMetaData("UniqueId"); iterLevels.remove(uniqueId); // and now set to new node id ((NodeInstanceImpl) nodeInstance).setNodeId(newNodeId); if (nodeInstance instanceof NodeInstanceContainer) { updateNodeInstances((NodeInstanceContainer) nodeInstance, nodeMapping); } } }