Setting up calendar schedules that aren’t simply reoccurring, such as a specific date in a month like 28th or third Friday, become more of a challenge with the OIC Scheduler. The calendar works with the ical standard set by the IETF standard 2445. If you review the standard’s section 4.3.0, this describes the reoccurrence options, whilst able, not able to address these needs.
Reoccurring on specific dates can, in theory, be set. If you review section 4.3.4, you will see a date has the potential to be defined as a comma-separated list. So multiple dates for month-end can be provided as a list. Note, this is predicated on the calendar attribute supporting date-mday (DATE). The DTSTART and DTEND attributes accept DATE with no indication that the date-mday is not supported.
Specifying the dates explicitly overcomes the problems of national holidays. The downside is that you need to know when the list needs to be extended and, in the case of OIC, the means to edit the scheduler format safely.
NOTE: we have not tested whether the OIC scheduler is compliant with the use of date-mday at the time of writing.
Complex formulas for scheduling and more manageable scheduling..
There are several options for managing reoccurring events, such as month-end, year-end accounting, payroll and expenses payments etc.
In most options, we assume that we have a simple reoccurring schedule that triggers an integration that determines whether the trigger is legitimate. This could be as simple as daily. If valid, then invoking the main integration with the business process.
Defining Dates in the database, we can wrap it with JET, Visual Builder or APEX to create a presentation layer. The task of managing the schedule to be taken on by the business.
This approach makes it very easy to adjust and test. Whether there are any more future schedule dates can also be overcome by having an integration that queries the table for the next date being set. If not date set, then the generate relevant alerts using OCI native tools.
The schedule is triggered regularly, e.g. daily, and the scheduler trigger invokes an integration then looks up the DB to see if the date appears in the list. When the date appears, then the integration is executed. It would be straightforward to extend this to trigger different schedules.
If an algorithm can be described for when the month-end processes should be performed, we eliminate the need to manage a list of dates. There are some ways to implement a formula, and you have the option of trying to do it OIC, but using OCI Functions – the formula is coded in the language of your choice and then packaged and deployed. The Function is then invoked using a REST web service to confirm whether the process should run (more on how here).
Handling public and national holidays. Not all national holidays are locked into an algorithm, or the holiday is fairly complex. That said, there are several API sources available that can tell you these dates, for example, https://holidayapi.com; this makes things easier.
The beauty of this process is that the same Function could keep a company website up to date with the next run date. Be integrated into corporate notifications and so on. As a result, one point of truth.
Enhanced Automation (feature wish …)
Unfortunately, OIC doesn’t provide an API to add new schedules. We can’t simplify the integration logic until it does, which adds the next calculated date for the process to run as a one-off schedule.
iCal Resources (inc Tools)
- https://icalendar.org/validator.html – validates ical contents
- https://ical.marudot.com/ – tool for defining iCal entries
- https://www.textmagic.com/free-tools/rrule-generator – another iCal format generator