I already sent a more detailed report of this problem to our partner, but I thought this might be interesting for others as well.
We have certain trainings that need to be retaken each year before the end of the year and I have created a certification for this.
The certification uses a dynamic audience to enroll users to the certification and I used the fixed expiry date option (fixed, 1 year validity, 5 months window, 5 months minimum active) in the certification. At first I set the "complete by"-date to 31/12/2014 for the audience to be able to have the last year's recurrent training in the system and for it to trigger the certification. This of course resulted in an exception, which was then dealt with so that the certification actually showed 31/12/14 as the due date.
After this, I triggered course completion for the last year's recurrent training, which was successful. What's interesting, now the certification shows a completion date of 24/08/2014 but the new due date is 31/12/2016. This means I will not be able to have course completion for this year's recurrent training as the window opens next year.
As this was not what was expected, I deleted the certification and created it again, this time with the due date of 31/12/2015 to be able to have this year's recurrent training in the system. This worked as expected, but now I will not be able to get course completion for the last year's recurrent trainings.
I also tried to import the certification details for people not yet certified. The CSV file had completion date of 24/08/14 and due date set to 31/12/15. This also produced a certification with a due date of 31/12/2016.
Is this how this is supposed to be working? Any ideas on how I could get an audit trail in the certification so that it would show both last year's and this years completion dates? The fixed due date of 31/12/YEAR would be ideal as the actual training also expires at the end of the year, but can be completed 5 months prior to expiry.
Running 2.7.6 (Build: 20150818.00)