summaryrefslogtreecommitdiff
path: root/resources/boot/SC
diff options
context:
space:
mode:
Diffstat (limited to 'resources/boot/SC')
-rw-r--r--resources/boot/SC/InstantiateItem.xml30
-rw-r--r--resources/boot/SC/LocalObjectDefCreator.xml4
-rw-r--r--resources/boot/SC/SetWorkflow.xml47
3 files changed, 79 insertions, 2 deletions
diff --git a/resources/boot/SC/InstantiateItem.xml b/resources/boot/SC/InstantiateItem.xml
new file mode 100644
index 0000000..4cd84b5
--- /dev/null
+++ b/resources/boot/SC/InstantiateItem.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<cristalscript>
+ <output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
+ <script language="javascript" name="InstantiateItem"><![CDATA[
+
+ var job = bsf.lookupBean("job");
+ var item = bsf.lookupBean("item");
+ var agent = bsf.lookupBean("agent");
+ var errorBuffer = bsf.lookupBean("errors");
+
+ var name = job.getOutcome().getDOM().getDocumentElement().
+ getElementsByTagName("ObjectName").item(0).getFirstChild().getData();
+ var folder = job.getOutcome().getDOM().getDocumentElement().
+ getElementsByTagName("SubFolder").item(0).getFirstChild();
+ var domPath = "/" + (folder != null?folder.getData():"");
+
+ var params = new Array(2);
+ params[0] = name;
+ params[1] = domPath;
+
+ try {
+ agent.execute(item, "CreateItemFromDescription", params);
+ } catch (e) {
+ errorBuffer.addError("Could not create "+name+": "+e.message);
+ errorBuffer.setFatal();
+ }
+
+ errorBuffer;
+ ]]></script>
+</cristalscript>
diff --git a/resources/boot/SC/LocalObjectDefCreator.xml b/resources/boot/SC/LocalObjectDefCreator.xml
index c70ee72..cce559e 100644
--- a/resources/boot/SC/LocalObjectDefCreator.xml
+++ b/resources/boot/SC/LocalObjectDefCreator.xml
@@ -42,8 +42,8 @@
newObj = CastorXMLUtility.marshall(newAct);
}
else {
- var fileType = type.equals("OD")?"xsd":"xml";
- newObj = Resource.getTextResource("dev", "boot/"+type+"/New."+fileType);
+ var fileType = type.equals("OD")?"Schema":"Script";
+ newObj = item.getObject("/ViewPoint/"+fileType+"/last").getOutcome().getData();
}
var newPath = new Packages.com.c2kernel.lookup.DomainPath(domPath+"/"+name);
var newItem = agent.getItem(newPath);
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>