In older versions of Epicor’s ERPs, one of the regular requests that was tricky to solve sounded quite simple: just getting something to happen on a schedule.

It’s still one of the most common things we see users search for, but it’s now much easier.

How to schedule an Epicor Function

All versions of Epicor Kinetic have a screen called “Schedule Epicor Function”, which is intended for exactly this, as you might expect from the name.

It works like Kinetic printing – the timing uses the same functionality and is selected in the same way. You can opt for “immediate”, in which case it will run once, as soon as you submit it, or at a time and repetition gap you select, including pre-set named schedules. In the background, this sets up System Agent tasks which call your selected function.

You select the function library (which doesn’t need to be promoted to production, unlike for use in Application Studio or via API), pick the function from the dropdown, and enter any required input parameters. These all need to be in string (text) form. Output parameter values will effectively be lost since there’s nothing to pick them up, so any outputs should be set to be recorded within the function itself if they’re needed.

The technical part is the Epicor Function itself, which is out of the scope of this short explainer.

Functions, though, are not basically any more complex than BPMs, only with more modern restrictions for safety and control. If you can define what you want to happen, you can make it happen.

Bonus use

As a developer, I use Epicor Functions a lot. They have become the most robust and clean way of achieving custom capabilities in Kinetic. And, since you can use Schedule Epicor Function, also very simple to test.

My standard code template for a blank function relies on this, in fact, and can be set to populate the task log with messages about what the function is doing to clear up ambiguity and edge cases. Running it directly allows you to then check Kinetic’s System Monitor and see exactly what happened (and how long it took, if that’s useful).

Advanced possibilities in scheduling functions

If you need more sophistication, you can actually use the scheduled function service within functions and BPMs, opening up things like adding new scheduled actions – one off after a delay or at a particular time, or regular – or altering ones that already exist.

Older Epicor versions

If you’re on a version of Epicor before Kinetic, Epicor Functions may not exist in your system. In that case you may want to read the older post Setting a Custom Task or Process to run on an Epicor Schedule.