diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java index 2111674ec5..91cb2be3bd 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java @@ -278,6 +278,13 @@ public class DispositionServiceImpl extends ServiceBaseImpl NodeRef dsNodeRef = null; if (isRecord(nodeRef)) { + DispositionSchedule originDispositionSchedule = getOriginDispositionSchedule(nodeRef); + // if the initial disposition schedule of the record is folder based + if (isNotTrue(originDispositionSchedule.isRecordLevelDisposition())) + { + return null; + } + final NextActionFromDisposition dsNextAction = getDispositionActionByNameForRecord(nodeRef); if (dsNextAction != null) @@ -1143,6 +1150,13 @@ public class DispositionServiceImpl extends ServiceBaseImpl if (nextDispositionAction == null) { + DispositionAction lastCompletedDispositionAction = getLastCompletedDispostionAction(record); + if (lastCompletedDispositionAction != null) + { + // all disposition actions upon the given record were completed + return null; + } + return getFirstDispositionAction(record, recordFolders); } else