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; + } + + }); + + } }