cancel
Showing results for 
Search instead for 
Did you mean: 

How does Retention Action work in retention schedule?

zhihailiu
Champ on-the-rise
Champ on-the-rise

https://docs.alfresco.com/rm/tasks/rm-dispschedule-createsteps.html

Retention Action = The date when the last retention action took place. Don't select this for the first step in the schedule.

RM documentation above says you can select Retention Action in defining retention schedule steps. I am not clear what exactly it means and how it works. For example, let's say my retention schedule is defined as 

1. Cut off 5 days after Created Date

2. Destroy 5 days from Retention Action

It seems to me that the record should be destroyed 5 days after cut off date, which is "The date when the last retention action took place". However it didn't work out that way in the tests - the disposition date for Destroy is not set.

Cut Off Date: Fri Jul 20 2018 
Disposition as of Date: (None) 

I looked it up and found that Retention Action is backed by rma:dispositionAsOf property. 

https://github.com/Alfresco/records-management/blob/master/rm-community/rm-community-repo/config/alf...

<bean id="disposition.properties.dispositionasof" parent="disposition.properties.base">
<property name="name" value="rma:dispositionAsOf" />
</bean>

records-management/recordsModel.xml at master · Alfresco/records-management · GitHub 

rma:dispositionAsOf is a property defined in type rma:dispositionAction. When RM executes the disposition, it will try to get the value of rma:dispositionAsOf from the record node, not the associated record action node. However the record node does not have rma:dispositionAsOf and thus "(None)" as a result?

Could anyone explain how Retention Action is supposed to work and what is a use case/example for it? Thanks.

8 REPLIES 8

tpage
Star Contributor
Star Contributor

I think you've understood exactly how "Retention Action" is meant to work.  The rma:dispositionAsOf field is updated as the record (or record folder) moves through the retention schedule.

The issue you're describing sounds like [RM-5733] "Retention as of date" is null for steps that use "Retention Action" - Alfresco JIRA  which was fixed in 2.7.a along with a handful of other retention schedule bugs.  If you're not yet using 2.7 then please consider upgrading to 2.7.b (which also contains that fix).

Hope this helps!

Tom.

zhihailiu
Champ on-the-rise
Champ on-the-rise

Hi Tom,

Thank you for your reply. I tested it in Alfresco 5.2.3 and RM 2.7.0. "Disposition as of Date" has value now but it was not what I expected.

Let me add some context to the question. I have a record level retention schedule consists of:

1. Cut off at the end of Financial Year from Created Date

2. Destroy 3 years from Cut Off Date

It turns out that this doesn't work with documents with old Created Date migrated from other system. For example, assuming a document created on 05/01/2017, it should be cut off on 09/30/2017 and destroyed on 09/30/2020 according to the retention schedule. However, when I turn the document to record and it is ready for cut off, the scheduled disposition job (runs every 5 minutes) executes cut off and set cut off date as system date (today) 07/23/2018 and therefor the destroy date as 07/23/2021. This date is different from 09/30/2020 as expected.

That's when I started looking into replacing Created Date with Retention Action in the Destroy step. aka

2. Destroy 3 years from Retention Action

However, my test in Alfresco 5.2.3 and RM 2.7.0 (with the fix for RM-5733) still showed the Destroy date set as 07/23/2021, which is the same when using Cut Off Date in the definition. I checked the data in Node Browser and see 

Node rma:dispositionActionHistory
rma:dispositionAction - cutoff

rma:dispositionActionCompletedAt - 23 Jul 2018
rma:dispositionAsOf - 30 Sep 2017 23:59:59 GMT-0400 (EDT)

Node rma:nextDispositionAction
rma:dispositionAction - destroy
rma:dispositionAsOf - 23 Jul 2021 11:00:00 GMT-0400 (EDT)

I was expecting that by using Retention Action, RM would look up rma:disposititionAsOf from Node rma:dispositionActionHistory and find 09/30/2017 and use that to calculate rma:dispositionAsOf for Node rma:nextDispositionAction. It would have resulted in 09/30/2020. Is it the correct understanding? What could be the discrepancy here?

Thank you for your help.

rlucanu
Champ on-the-rise
Champ on-the-rise

Hi,
In the scenario you're describing for calculating the Cut Off Date it will be considered the Creation Date of the document,
but the document won't be elegible for Cut Off until it will be declared as record and completed.
So the date when Cut Off will be eligible is 09/30/2017 but for calculating the date for destroy action it will be considered the date when the Cut Off was done, in our case 07/23/2018.

Regarding the the difference between Retention Action and Cut Off Date (Destroy 3 years from Cut Off/Retention Action)it shouldn't be any when there is only one previous step: Cut Off.
I'll give an example, for a record level retention schedule, Created Date for the document is 07/24/2018:
1. Cut off after 1 Day from Created Date (07/25/2018)
2. Retain after 1 Day from Cut Off Date (07/26/2018)
3. Destroy 3 years from Cut Off Date

After completing the first two steps, the Destroy date is 07/25/2021, it is considered the date when the Cut Off action was done.
If we change step 3, Destroy 3 years from Retention Action, the Destroy date is 07/26/2021, it is considered the date when the Retain action was done.

Hoping this clears the things a bit!
Roxana

zhihailiu
Champ on-the-rise
Champ on-the-rise

Hi Roxana,

Thank you for your reply. I understand that Retention Action is the date of last disposition action, which is cut off in my case. The question is which date it uses between these two

1. the date when the last disposition ACTUALLY took place, or

2. rma:dispositionAsOf of the last disposition action

Again using the example in my test as shown below, it seems that it took the first date, not the second. rma:dispositionAsOf is the disposition property for Retention Action (rm-disposition-properties-context.xml), but somehow it is not used? 

Node rma:dispositionActionHistory
rma:dispositionAction - cutoff

rma:dispositionActionCompletedAt - 23 Jul 2018
rma:dispositionAsOf - 30 Sep 2017 23:59:59 GMT-0400 (EDT)

Thank you for your help.

rlucanu
Champ on-the-rise
Champ on-the-rise

Hi, 

It is used the date when the last disposition action took place/was completed, in your case when the Cut Off was done - 23 Jul 2018.

dispositionAsOf is the date when the disposition action became elegible, in your case Cut Off could've been performed starting from 30 Sep 2017 (but the document was declared as record in 2018 and became elegibile to be Cut Off after this date).

Don't esitate to ask me further if needed!

Roxana

zhihailiu
Champ on-the-rise
Champ on-the-rise

Thank you Roxana. I guess my confusion is that Retention Action has rma:dispositionAsOf as its disposition property definition but RM doesn't literally use that value (the eligible). Instead, it uses the (actual) date when the last disposition action takes place. Now I get it.

However, I think there is a use case for the eligible date. In my example, the destroy date is set as 07/23/2021, 3 years after the cut off date 07/23/2018. It would have been 09/30/2020 if rma:dispositionAsOf the eligible date 09/30/2017 was used. That means the record will be kept longer (07/23/2021 vs 09/30/2020) than the retention schedule defines. This could happen to a lot of "old" documents which are migrated from other systems. I wonder how Alfresco RM handles this scenario.

rlucanu
Champ on-the-rise
Champ on-the-rise

Hi,

The record is not kept longer than the retention schedule defines, if you want to keep it until 09/30/2020 than the retention schedule definition should be changed: the Destroy step should be changed to depend on Created Date and not on Cut Off Date.

zhihailiu
Champ on-the-rise
Champ on-the-rise

Roxana,

I understand the record is not kept longer than the retention schedule defines. I meant to say if there was a way to use the rma:dispositionAsOf eligible date in the retention schedule, the destroy date would have been set as 09/30/2020 instead of 07/23/2021. That's why I think there is a valid use case for using ram:dispositionAsOf the eligible date, particularly for old documents.