Scenario:
A user wants to be able to define jobs or workflows to run every x minutes without overlapping.
They have come across an issue where intermittent failures occur due to multiple instances running within x minutes of each other.
They have tried using the "recurring" execution to create a Period object, but also experienced intermittent aborts.
Suggestion:
Control the activation from a script or an event.
For example, if you had a time event that ran every hour with the following:
:IF SYS_STATE_ACTIVE(JOBP, "WORKFLOW_GO") = "Y"
: P "WORKFLOW IS ACTIVE"
:ELSE
: SET &RUN_WF# = ACTIVATE_UC_OBJECT("WORKFLOW_GO")
:ENDIF
This would only activate the WORKFLOW_GO if it currently was not in an active state in the system.
This could be set to run every x minutes (or a tighter scheme) if you wanted to have the WF activate closer after the previous activation.
This scenario would stop a second from even being queued and would stop the need to cancel any activations.