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.