diff options
Diffstat (limited to 'src/main/resources/boot/SC')
| -rw-r--r-- | src/main/resources/boot/SC/CreateNewNumberedVersionFromLast.xml | 27 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/InstantiateItem.xml | 28 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/LocalObjectDefCreator.xml | 54 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/New.xml | 7 | ||||
| -rw-r--r-- | src/main/resources/boot/SC/SetWorkflow.xml | 41 |
5 files changed, 157 insertions, 0 deletions
diff --git a/src/main/resources/boot/SC/CreateNewNumberedVersionFromLast.xml b/src/main/resources/boot/SC/CreateNewNumberedVersionFromLast.xml new file mode 100644 index 0000000..321855a --- /dev/null +++ b/src/main/resources/boot/SC/CreateNewNumberedVersionFromLast.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="CreateNewNumberedVersionFromLast"><![CDATA[
+
+ var viewName = job.getActPropString("ViewName");
+
+ if (viewName.equals(""))
+ throw "ViewName not specified. Cannot create new version.";
+
+ var lastView = -1;
+ var existingViews = item.getContents("/ViewPoint/"+viewName);
+ for (i=0; i<existingViews.length; i++) {
+ var thisView = parseInt(existingViews[i]);
+ if (thisView!=NaN && lastView < thisView) lastView = thisView;
+ }
+ lastView++;
+ try {
+ var existingLast = agent.unmarshall(item.queryData("/ViewPoint/"+viewName+"/last"));
+ } catch (e) {
+ throw "No data found. You must submit at least one version before executing this activity.";
+ }
+ existingLast.setName(lastView);
+ agent.execute(item, "AddC2KObject", existingLast);
+
+ ]]></script>
+</cristalscript>
diff --git a/src/main/resources/boot/SC/InstantiateItem.xml b/src/main/resources/boot/SC/InstantiateItem.xml new file mode 100644 index 0000000..4e80e9d --- /dev/null +++ b/src/main/resources/boot/SC/InstantiateItem.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="InstantiateItem"><![CDATA[
+ importClass(Packages.com.c2kernel.lookup.DomainPath);
+
+ // Get parameters from outcome + var name = job.getOutcome().getField("ObjectName"); + var folder = job.getOutcome().getField("SubFolder"); + var domPath = "/" + (folder != null?folder:""); +
// Create new Item
+ var params = new Array(2); + params[0] = name; + params[1] = domPath; + + try { + agent.execute(item, "CreateItemFromDescription", params); + } catch (e) { + throw "Could not create "+name+": "+e.message; + } +
+ // If this script is running in the Cristal GUI, open the new item.
+ var tree = Packages.com.c2kernel.gui.MainFrame.treeBrowser;
+ if (tree != null)
+ tree.push(new DomainPath(domPath+"/"+name));
+
+ ]]></script>
+</cristalscript>
diff --git a/src/main/resources/boot/SC/LocalObjectDefCreator.xml b/src/main/resources/boot/SC/LocalObjectDefCreator.xml new file mode 100644 index 0000000..32b154c --- /dev/null +++ b/src/main/resources/boot/SC/LocalObjectDefCreator.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="LocalObjectDefCreator"><![CDATA[
+ importClass(Packages.com.c2kernel.utils.CastorXMLUtility);
+ importClass(Packages.com.c2kernel.utils.Resource);
+ importClass(Packages.com.c2kernel.process.Bootstrap);
+ importClass(Packages.com.c2kernel.lifecycle.CompositeActivityDef);
+ importClass(Packages.com.c2kernel.lifecycle.ActivityDef);
+
+ var type = job.getActPropString("NewType");
+ 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
+ try {
+ agent.execute(item, "CreateItemFromDescription", params);
+ } catch (e) {
+ throw "Could not create "+name+": "+e.message;
+ }
+
+ // Store a fresh one in the new item
+
+ 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 {
+ // 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);
+
+ ]]></script>
+</cristalscript>
diff --git a/src/main/resources/boot/SC/New.xml b/src/main/resources/boot/SC/New.xml new file mode 100644 index 0000000..a07a7b9 --- /dev/null +++ b/src/main/resources/boot/SC/New.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name=""><![CDATA[
+
+ ]]></script>
+</cristalscript>
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>
|
