From e99ed30f6cae36c5f3fa03007d991e67894a01bb Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 23 Jul 2013 09:41:43 +0200 Subject: More --- .../com/c2kernel/lifecycle/instance/OrSplit.java | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java') diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java index aea34b2..cadf3a0 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java @@ -1,6 +1,7 @@ package com.c2kernel.lifecycle.instance; import java.util.StringTokenizer; +import com.c2kernel.common.InvalidDataException; import com.c2kernel.graph.model.DirectedEdge; import com.c2kernel.lookup.AgentPath; import com.c2kernel.scripting.ScriptingEngineException; @@ -19,12 +20,17 @@ public class OrSplit extends Split super(); } @Override - public void runNext(AgentPath agent) throws ScriptingEngineException + public void runNext(AgentPath agent, int itemSysKey) throws InvalidDataException { - String nexts = - this - .evaluateScript((String) getProperties().get("RoutingScriptName"), (String) getProperties().get("RoutingScriptVersion")) - .toString(); + String nexts; + String scriptName = (String) getProperties().get("RoutingScriptName"); + String scriptVersion = (String) getProperties().get("RoutingScriptVersion"); + try { + nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString(); + } catch (ScriptingEngineException e) { + Logger.error(e); + throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, null); + } StringTokenizer tok = new StringTokenizer(nexts, ","); Logger.msg(7, tok.countTokens() + " nexts to activate:" + nexts); int active = 0; @@ -42,7 +48,7 @@ public class OrSplit extends Split if (thisNext != null && thisNext.equals(nextEdge.getProperties().get("Alias"))) { WfVertex term = nextEdge.getTerminusVertex(); - term.run(agent); + term.run(agent, itemSysKey); Logger.msg(7, "Running " + nextEdge.getProperties().get("Alias")); active++; } @@ -55,7 +61,7 @@ public class OrSplit extends Split Logger.error(e); } if (active == 0) - throw new ScriptingEngineException("No nexts were activated!"); + throw new InvalidDataException("No nexts were activated!", null); } -- cgit v1.2.3