summaryrefslogtreecommitdiff
path: root/resources/boot/SC/CreateNewNumberedVersionFromLast.xml
blob: bb66f4c80cf757d6958a0f4efe7cdcb4c2c2781d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="UTF-8"?>
<cristalscript>
	<output name="errors" type="com.c2kernel.scripting.ErrorInfo"/>
	<script language="javascript" name="CreateNewNumberedVersionFromLast"><![CDATA[

		var job = bsf.lookupBean("job");
		var item = bsf.lookupBean("item");
		var agent = bsf.lookupBean("agent");
		var errorBuffer = bsf.lookupBean("errors");

		var viewName = job.getActPropString("ViewName");
		
		if (viewName.equals("")) {
			errorBuffer.addError("ViewName not specified. Cannot create new version.");
			errorBuffer.setFatal();
		}
			
		if (!(errorBuffer.getFatal())) {
			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) {
				errorBuffer.addError("No data found. You must submit at least one version before executing this activity.");
				errorBuffer.setFatal();
			}
			if (!(errorBuffer.getFatal())) {
				existingLast.setName(lastView);
				agent.execute(item, "AddC2KObject", existingLast);
			}
		}
		errorBuffer;
		]]></script>
</cristalscript>