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/LocalObjectDefCreator.xml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'resources/boot/SC/LocalObjectDefCreator.xml') diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml index cce559e..445a517 100644 --- a/resources/boot/SC/LocalObjectDefCreator.xml +++ b/resources/boot/SC/LocalObjectDefCreator.xml @@ -13,18 +13,17 @@ var agent = bsf.lookupBean("agent"); var errorBuffer = bsf.lookupBean("errors"); var type = job.getActPropString("NewType"); - var name = job.getOutcome().getDOM().getDocumentElement(). - getElementsByTagName("ObjectName").item(0).getFirstChild().getData(); - var folder = job.getOutcome().getDOM().getDocumentElement(). - getElementsByTagName("SubFolder").item(0).getFirstChild(); + var name = job.getOutcome().getField("ObjectName"); + var folder = job.getOutcome().getField("SubFolder"); + // Find the root of that object type var domPath = Bootstrap.getTypeRoot(type).toString(); if (folder != null) domPath = domPath + "/" + folder.getData(); var params = new Array(2); params[0] = name; - params[1] = domPath; + // Create the new item if (!(errorBuffer.getFatal())) { try { agent.execute(item, "CreateItemFromDescription", params); @@ -34,20 +33,26 @@ } } - if (!(errorBuffer.getFatal())) { // store an outcome in the new desc + // Store a fresh one in the new item + if (!(errorBuffer.getFatal())) { var newObj; + // Activities are serialized new instances if (type.equals("EA") || type.equals("CA")) { var newAct = type.equals("CA")?new CompositeActivityDef(): new ActivityDef(); newAct.setName(name); newObj = CastorXMLUtility.marshall(newAct); } - else { + else { + // Empty schemas and scripts are stored as outcomes of the factory. var fileType = type.equals("OD")?"Schema":"Script"; newObj = item.getObject("/ViewPoint/"+fileType+"/last").getOutcome().getData(); } + // Store the new object with the 'EditDefinition' activity var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name); var newItem = agent.getItem(newPath); newItem.requestAction(agent.getSystemKey(), "workflow/domain/EditDefinition", 4, newObj); + + // If this script is running in the Cristal GUI, open the new item. var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser; if (tree != null) // open new item in the gui tree.push(newPath); -- cgit v1.2.3