diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-context.xml
new file mode 100644
index 0000000000..fc82db086e
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-context.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+ alfresco/module/org_alfresco_module_rm/demo/demo-model.xml
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-model.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-model.xml
new file mode 100644
index 0000000000..1168b571d7
--- /dev/null
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/demo/demo-model.xml
@@ -0,0 +1,64 @@
+
+
+
+
+ Demo Model
+ Roy Wetherall
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Purchase Order
+ cm:content
+
+
+
+
+ Order Id
+ d:text
+
+
+
+ Customer Id
+ d:text
+
+
+
+ Order Quantity
+ d:int
+
+
+
+ Delivery Date
+ d:date
+
+
+
+ Sales Confirmation Sent
+ d:boolean
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml
index 6c663e725c..80bbbf27d7 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/module-context.xml
@@ -131,6 +131,9 @@
+
+
+
diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-actions.properties b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-actions.properties
index 47a031717d..22ff6e9457 100644
--- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-actions.properties
+++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-actions.properties
@@ -86,3 +86,9 @@ editDispositionActionAsOfDate.description=Edit Disposition Action As Of Date
createDispositionSchedule.title=Create Disposition Schedule
createDispositionSchedule.description=Create Disposition Schedule
+
+file-record.title=File Record
+file-record.description=File a record into the file plan.
+
+create-record.title=Create A Record
+create-record.description=Create a record from a document.
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java
index f3febba383..d90443a337 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/CreateRecordAction.java
@@ -18,6 +18,7 @@
*/
package org.alfresco.module.org_alfresco_module_rm.action.dm;
+import java.util.Date;
import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
@@ -51,6 +52,7 @@ public class CreateRecordAction extends ActionExecuterAbstractBase
/** Record service */
private RecordService recordService;
+ /** Node service */
private NodeService nodeService;
/**
@@ -69,6 +71,9 @@ public class CreateRecordAction extends ActionExecuterAbstractBase
this.recordService = recordService;
}
+ /**
+ * @param nodeService node service
+ */
public void setNodeService(NodeService nodeService)
{
this.nodeService = nodeService;
@@ -100,6 +105,20 @@ public class CreateRecordAction extends ActionExecuterAbstractBase
// create record from existing document
recordService.createRecordFromDocument(filePlan, actionedUponNodeRef);
+ // DEMO CODE
+ if (nodeService.getProperty(actionedUponNodeRef, PROP_ORIGINATOR) == null)
+ {
+ nodeService.setProperty(actionedUponNodeRef, PROP_ORIGINATOR, "Michelle Smith");
+ }
+ if (nodeService.getProperty(actionedUponNodeRef, PROP_ORIGINATING_ORGANIZATION) == null)
+ {
+ nodeService.setProperty(actionedUponNodeRef, PROP_ORIGINATING_ORGANIZATION, "Customer Service");
+ }
+ if (nodeService.getProperty(actionedUponNodeRef, PROP_PUBLICATION_DATE) == null)
+ {
+ nodeService.setProperty(actionedUponNodeRef, PROP_PUBLICATION_DATE, new Date());
+ }
+
return null;
}
});
diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/FileRecordAction.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/FileRecordAction.java
index 5290b7d7b6..62c9242f15 100644
--- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/FileRecordAction.java
+++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/action/dm/FileRecordAction.java
@@ -2,8 +2,11 @@ package org.alfresco.module.org_alfresco_module_rm.action.dm;
import java.util.List;
+import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.action.ParameterDefinitionImpl;
import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
+import org.alfresco.repo.security.authentication.AuthenticationUtil;
+import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
@@ -39,16 +42,29 @@ public class FileRecordAction extends ActionExecuterAbstractBase
/**
* @see org.alfresco.repo.action.executer.ActionExecuter#execute(org.alfresco.repo.ref.NodeRef, org.alfresco.repo.ref.NodeRef)
*/
- public void executeImpl(Action ruleAction, NodeRef actionedUponNodeRef)
+ public void executeImpl(final Action ruleAction, final NodeRef actionedUponNodeRef)
{
- NodeRef destinationParent = (NodeRef)ruleAction.getParameterValue(PARAM_DESTINATION_RECORD_FOLDER);
- try
+ final NodeRef destinationParent = (NodeRef)ruleAction.getParameterValue(PARAM_DESTINATION_RECORD_FOLDER);
+
+ AuthenticationUtil.runAsSystem(new RunAsWork()
{
- fileFolderService.move(actionedUponNodeRef, destinationParent, null);
- }
- catch (FileNotFoundException e)
- {
- // Do nothing
- }
+ @Override
+ public Void doWork() throws Exception
+ {
+ try
+ {
+ fileFolderService.move(actionedUponNodeRef, destinationParent, null);
+ }
+ catch (FileNotFoundException e)
+ {
+ throw new AlfrescoRuntimeException("Could not file record.", e);
+ }
+
+ return null;
+ }
+
+ });
+
+
}
}