diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-06-04 15:37:34 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-06-04 15:37:34 +0200 |
| commit | 388a76a73c8a8131c7af8df2ba03cf16511c8ea5 (patch) | |
| tree | 473206237625785b7828dd73c7e7be8b184bfba0 /src/main/resources/boot/SC/SetWorkflow.xml | |
| parent | eac30db6329f05cc7cf2a35613497e357b4db3aa (diff) | |
Mavenized
Diffstat (limited to 'src/main/resources/boot/SC/SetWorkflow.xml')
| -rw-r--r-- | src/main/resources/boot/SC/SetWorkflow.xml | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/main/resources/boot/SC/SetWorkflow.xml b/src/main/resources/boot/SC/SetWorkflow.xml new file mode 100644 index 0000000..88a061f --- /dev/null +++ b/src/main/resources/boot/SC/SetWorkflow.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="SetWorkflow"><![CDATA[
+
importClass(Packages.com.c2kernel.lookup.DomainPath); + + // Fetch the requested name from the outcome field
+ var wfDefName = job.getOutcome().getField("WorkflowDefinitionName"); + // Look up the description
+ var root = new DomainPath("/desc/ActivityDesc"); + var wfItem; + try { + var wfPath = root.find(wfDefName); + wfItem = agent.getItem(wfPath); + } catch (e) {
+ throw wfDefName+" is not a valid item";
+ } +
+ // Make sure it has the right properties to be a composite activity desc + var itemType = wfItem.getProperty("Type"); + var complex = wfItem.getProperty("Complexity"); + if (!itemType.equals("ActivityDesc")) + throw wfDefName+" is not an activity description"; + if (!complex.equals("Composite")) + throw wfDefName+" is not a composite activity description"; +
+ // Fetch the 'Workflow' collection
+ var coll = item.getObject("/Collection/Workflow"); + if (coll.size() > 0) { // if there's already a member, remove it + var member = coll.getMembers().list.get(0); + coll.removeMember(member.getID()); + } + // add the new member
+ coll.addMember(wfItem.getSystemKey()); + // save it back to the item + var params = new Array(1); + params[0] = agent.marshall(coll); + agent.execute(item, "AddC2KObject", params); +
+ ]]></script>
+</cristalscript>
|
