diff options
Diffstat (limited to 'resources/boot/SC/SetWorkflow.xml')
| -rw-r--r-- | resources/boot/SC/SetWorkflow.xml | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/resources/boot/SC/SetWorkflow.xml b/resources/boot/SC/SetWorkflow.xml new file mode 100644 index 0000000..0fb2a30 --- /dev/null +++ b/resources/boot/SC/SetWorkflow.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name=""><![CDATA[
+
importClass(Packages.com.c2kernel.lookup.DomainPath); + + var job = bsf.lookupBean("job");
+ var item = bsf.lookupBean("item");
+ var agent = bsf.lookupBean("agent");
+ var errorBuffer = bsf.lookupBean("errors");
+
+ var wfDefName = job.getOutcome().getField("WorkflowDefinitionName"); + var root = new DomainPath("/desc/ActivityDesc"); + var wfItem; + try { + var wfPath = root.find(wfDefName); + wfItem = agent.getItem(wfPath); + } catch (e) { errorBuffer.addError(wfDefName+" is not a valid item"); errorBuffer.setFatal(); } + + if (!errorBuffer.getFatal()) { + var itemType = wfItem.getProperty("Type"); + var complex = wfItem.getProperty("Complexity"); + if (!itemType.equals("ActivityDesc")) { + errorBuffer.addError(wfDefName+" is not an activity description"); + errorBuffer.setFatal(); + } + if (!complex.equals("Composite")) { + errorBuffer.addError(wfDefName+" is not a composite activity description"); + errorBuffer.setFatal(); + } + } + + if (!errorBuffer.getFatal()) { + var coll = item.getObject("/Collection/Workflow"); + if (coll.size() > 0) { + var member = coll.getMembers().list.get(0); + coll.removeMember(member.getID()); + } + coll.addMember(wfItem.getSystemKey()); + var params = new Array(1); + params[0] = agent.marshall(coll); + agent.execute(item, "AddC2KObject", params); + } + + errorBuffer;
+ ]]></script>
+</cristalscript>
|
