diff options
Diffstat (limited to 'resources/boot/SC')
| -rw-r--r-- | resources/boot/SC/InstantiateItem.xml | 30 | ||||
| -rw-r--r-- | resources/boot/SC/LocalObjectDefCreator.xml | 4 | ||||
| -rw-r--r-- | resources/boot/SC/SetWorkflow.xml | 47 |
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>
|
