From 72a7501d5ebb208f2c4c4068c397684369e1272c Mon Sep 17 00:00:00 2001 From: roxana Date: Mon, 24 Oct 2016 10:16:58 +0300 Subject: [PATCH] When the last step of the current disposition is completed, no more calculation is needed. (cherry picked from commit 606e91545c0725b5523770b1c3cb1cffd38c0ce0) --- .../disposition/DispositionServiceImpl.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java index 38ff47a0af..918446f742 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java @@ -287,6 +287,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) @@ -1152,6 +1159,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