summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java')
-rw-r--r--src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java20
1 files changed, 13 insertions, 7 deletions
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);
}