From 3c03e9fd00619e44dff85f9e523663b7323f3746 Mon Sep 17 00:00:00 2001 From: abranson Date: Fri, 16 Mar 2012 16:56:45 +0100 Subject: Comments and changelog --- resources/boot/SC/SetWorkflow.xml | 52 ++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 23 deletions(-) (limited to 'resources/boot/SC/SetWorkflow.xml') diff --git a/resources/boot/SC/SetWorkflow.xml b/resources/boot/SC/SetWorkflow.xml index 0fb2a30..5dbfa6d 100644 --- a/resources/boot/SC/SetWorkflow.xml +++ b/resources/boot/SC/SetWorkflow.xml @@ -9,37 +9,43 @@ var agent = bsf.lookupBean("agent"); var errorBuffer = bsf.lookupBean("errors"); + // 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); + var wfPath = root.find(wfDefName); + wfItem = agent.getItem(wfPath); } catch (e) { errorBuffer.addError(wfDefName+" is not a valid item"); errorBuffer.setFatal(); } - + + // Make sure it has the right properties to be a composite activity desc 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(); - } + 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); + // 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); } errorBuffer; -- cgit v1.2.3