How Recurrence Works in Method
The Recurrence Widget gives the option for a user to schedule a recurring activity: an activity that repeats on different dates.
It is an object that can be found in the designer when customizing the screen. This document covers how to customize this widget to include in custom screen and is not intended to instruct how to use the widget as a Method User. Furthermore, it is intended for those familiar with customization.
The recurrence widget is easy enough to customize, you simply drag it onto the screen. There are no events or actions for it. It automatically takes care of making an activity recurring.
There are a few restrictions, however, for using the recurrence widget.
This control will only show up if the base table of your screen is the Activities table. In effect, this means the recurrence widget only makes recurring activities. You will be unable to create recurring transactions, for example.
This widget is intended to work on screens that create activities. If you put the recurrence widget on a screen that does not create an activity, it won’t do anything.
The recurrence widget allows a user to have an activity repeat for a set amount of times.
In the below example (which has been customized for this document) a user can create an activity and set up whether or not the activity is recurring.
Note the pencil circled above? By clicking on this pencil, the user can configure how the the activity repeats. The right side panel opens up and a dropdown appears with different options for repeating:
There are four options by which an activity can repeat:
For all of them, you can select a start date, a time duration, and an end date. The below image shows you a side by side comparison of each of the types of repeats.
Every activity, regardless of whether or not it is recurring, has a field called Recurrence Type. If you were to show this field on an activities grid, you would see a normal activity has the type OneTime.
When you create recurring activities, there are two more recurrence types, giving us a total of three:
In the below image, there is one Series (with a Record ID of 452), and five Occurrences.
When a user creates an activity and sets it up with recurrence, they are making one activity with a recurrence type of series. Doing so automatically generate all the activities for that series giving them a recurrence type of occurrence.
An occurrence will have the same details as the series, except for the date and, eventually, status. In the above image, the start date for each occurrence changes, but other fields remain the same. This occurrence is tied to its series by the Recurrence Record ID.
As mentioned above, the Series recurrence type has a Record ID of 452. Each occurrence is tied to this series by its Recurrence Record ID, which is also set to 452. If you were to make a change to the series, for example the activity type, then this will also change each of its occurrences!
In the below image, we have changed the series to type Meeting. In doing so, all of the occurrences turn into Meetings as well.
However, what if you wish to change one occurrence? Maybe a scheduling conflict has come up and you need to alter the time of one. You definitely can change it, and this updates another field called IsChangedOccurrence.
In the below example, I have changed one occurrence's time to start at 2pm and its activity type to Other (Record ID 455). I've displayed the IsChangeOccurrence field, and notice it is the only one set to True? This is automatically set when a change is made to an occurrence and indicates it's been changed from the original Series template. (Note: Changing the status does not affect the IsChangedOccurrence field. So you can set an activity to Cancelled or In Progress.)
Now, what happens if we were to change the series? Let's change it back to a To-Do activity type:
And look! All the occurrences, except for the one where IsChangedOccurence is True, has been automatically updated to a To-Do activity type.
One final note, you will be unable to delete a series if there are existing occurrences for it. If you wish to remove a series, you will need to delete all of its occurrences first.