mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
RM-7051 running the find records and update as system
This commit is contained in:
@@ -63,6 +63,7 @@ import org.alfresco.module.org_alfresco_module_rm.record.RecordService;
|
|||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
import org.alfresco.repo.domain.qname.QNameDAO;
|
import org.alfresco.repo.domain.qname.QNameDAO;
|
||||||
import org.alfresco.repo.policy.BehaviourFilter;
|
import org.alfresco.repo.policy.BehaviourFilter;
|
||||||
|
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||||
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
import org.alfresco.repo.transaction.RetryingTransactionHelper;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeService;
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
@@ -353,42 +354,53 @@ public class UpdateRecordScheduleGet extends AbstractWebScript implements Record
|
|||||||
|
|
||||||
private int updateRecordFolder(final NodeRef recordFolder)
|
private int updateRecordFolder(final NodeRef recordFolder)
|
||||||
{
|
{
|
||||||
return transactionService.getRetryingTransactionHelper()
|
return transactionService.getRetryingTransactionHelper()
|
||||||
.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Integer>()
|
.doInTransaction(new RetryingTransactionHelper.RetryingTransactionCallback<Integer>()
|
||||||
{
|
{
|
||||||
public Integer execute() throws Throwable
|
public Integer execute() throws Throwable
|
||||||
{
|
{
|
||||||
int recordCount = 0;
|
int recordCount = 0;
|
||||||
|
|
||||||
behaviourFilter.disableBehaviour(recordFolder);
|
behaviourFilter.disableBehaviour(recordFolder);
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
logger.info("Checking folder: " + recordFolder);
|
logger.info("Checking folder: " + recordFolder);
|
||||||
}
|
}
|
||||||
DispositionSchedule schedule = dispositionService.getDispositionSchedule(recordFolder);
|
recordCount = AuthenticationUtil.runAsSystem(new AuthenticationUtil.RunAsWork<Integer>()
|
||||||
if (schedule.isRecordLevelDisposition())
|
{
|
||||||
{
|
@Override
|
||||||
List<NodeRef> records = recordService.getRecords(recordFolder);
|
public Integer doWork() throws Exception
|
||||||
for (NodeRef record : records)
|
{
|
||||||
{
|
DispositionSchedule schedule = dispositionService.getDispositionSchedule(recordFolder);
|
||||||
if (!nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE))
|
int innerRecordCount = 0;
|
||||||
{
|
if (schedule.isRecordLevelDisposition())
|
||||||
if (logger.isDebugEnabled())
|
{
|
||||||
{
|
|
||||||
logger.info("updating record: " + record);
|
|
||||||
}
|
|
||||||
behaviourFilter.disableBehaviour(record);
|
|
||||||
dispositionService.updateNextDispositionAction(record, schedule);
|
|
||||||
recordCount ++;
|
|
||||||
behaviourFilter.enableBehaviour(record);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
nodeService.addAspect(recordFolder, ASPECT_DISPOSITION_PROCESSED, null);
|
|
||||||
behaviourFilter.enableBehaviour(recordFolder);
|
|
||||||
|
|
||||||
return recordCount;
|
List<NodeRef> records = recordService.getRecords(recordFolder);
|
||||||
}
|
for (NodeRef record : records)
|
||||||
}, false, true);
|
{
|
||||||
|
if (!nodeService.hasAspect(record, ASPECT_DISPOSITION_LIFECYCLE))
|
||||||
|
{
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.info("updating record: " + record);
|
||||||
|
}
|
||||||
|
behaviourFilter.disableBehaviour(record);
|
||||||
|
dispositionService.updateNextDispositionAction(record, schedule);
|
||||||
|
innerRecordCount++;
|
||||||
|
behaviourFilter.enableBehaviour(record);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return innerRecordCount;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
nodeService.addAspect(recordFolder, ASPECT_DISPOSITION_PROCESSED, null);
|
||||||
|
behaviourFilter.enableBehaviour(recordFolder);
|
||||||
|
return recordCount;
|
||||||
|
}
|
||||||
|
}, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user