diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml index 2c0e185594..39aecc3568 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml @@ -65,6 +65,7 @@ + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java index 3de61c94d0..2b7dd82a2d 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java @@ -30,6 +30,7 @@ package org.alfresco.module.org_alfresco_module_rm.model.rma.type; import static org.alfresco.module.org_alfresco_module_rm.record.RecordUtils.appendIdentifierToName; import org.alfresco.model.ContentModel; +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService; import org.alfresco.module.org_alfresco_module_rm.model.BaseBehaviourBean; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; @@ -70,6 +71,8 @@ public class RecordsManagementContainerType extends BaseBehaviourBean /** record folder service */ protected RecordFolderService recordFolderService; + + protected DispositionService dispositionService; /** I18N */ private static final String MSG_CANNOT_CAST_TO_RM_TYPE = "rm.action.cast-to-rm-type"; @@ -98,6 +101,14 @@ public class RecordsManagementContainerType extends BaseBehaviourBean this.recordFolderService = recordFolderService; } + /** + * @param dispositionService disposition service + */ + public void setDispositionService(DispositionService dispositionService) + { + this.dispositionService = dispositionService; + } + /** * Disable the behaviours for this transaction * @@ -172,10 +183,17 @@ public class RecordsManagementContainerType extends BaseBehaviourBean if (!nodeService.hasAspect(child, ASPECT_RECORD)) { recordService.makeRecord(child); - appendIdentifierToName(nodeService, child); } } + + if(isContentSubType && parentType.equals(RecordsManagementModel.TYPE_RECORD_FOLDER)&& !recordService.isFiled(child)) + { + recordService.file(child); + } } + + // recalculate disposition schedule for the child + dispositionService.recalculateNextDispositionStep(child); } return null; diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index b40485f3a8..316036a867 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -485,9 +485,6 @@ public class RecordServiceImpl extends BaseBehaviourBean validateLinkConditions(nodeRef, parentNodeRef); } } - - // recalculate disposition schedule for the record when linking it - dispositionService.recalculateNextDispositionStep(nodeRef); } } catch (RecordLinkRuntimeException e) @@ -1238,10 +1235,7 @@ public class RecordServiceImpl extends BaseBehaviourBean ownableService.setOwner(document, OwnableService.NO_OWNER); - if (TYPE_NON_ELECTRONIC_DOCUMENT.equals(nodeService.getType(document))) - { - appendIdentifierToName(nodeService, document); - } + appendIdentifierToName(nodeService, document); return null; } }); diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/MultipleSchedulesTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/MultipleSchedulesTest.java index 8d2b5c3c98..9babf86695 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/MultipleSchedulesTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/MultipleSchedulesTest.java @@ -179,6 +179,7 @@ public class MultipleSchedulesTest extends BaseRMTestCase // Create a record filed under category A and linked to category B. record = fileFolderService.create(folderA, RECORD_NAME, ContentModel.TYPE_CONTENT).getNodeRef(); + recordService.file(record); recordService.link(record, folderB); }) .when(() -> { @@ -212,6 +213,7 @@ public class MultipleSchedulesTest extends BaseRMTestCase setUpFilePlan(); // Create a record filed under category B and linked to category A. record = fileFolderService.create(folderB, RECORD_NAME, ContentModel.TYPE_CONTENT).getNodeRef(); + recordService.file(record); recordService.link(record, folderA); }) .when(() -> { @@ -243,6 +245,7 @@ public class MultipleSchedulesTest extends BaseRMTestCase setUpFilePlan(); // Create a record filed under category A and linked to category B and C. record = fileFolderService.create(folderA, RECORD_NAME, ContentModel.TYPE_CONTENT).getNodeRef(); + recordService.file(record); recordService.link(record, folderB); recordService.link(record, folderC); // Cut off the record. diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateDispositionScheduleTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateDispositionScheduleTest.java index f39da05237..14636db6d8 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateDispositionScheduleTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/integration/disposition/UpdateDispositionScheduleTest.java @@ -123,6 +123,7 @@ public class UpdateDispositionScheduleTest extends BaseRMTestCase // Create a folder containing a record within the category. folder = recordFolderService.createRecordFolder(category, FOLDER_NAME); record = fileFolderService.create(folder, RECORD_NAME, ContentModel.TYPE_CONTENT).getNodeRef(); + recordService.file(record); dispositionService.cutoffDisposableItem(record); // Ensure the update has been applied to the record.