The Template is an enhanced version of the Robotic Enterprise Framework, which includes a mechanism that gets pending jobs in between processing transaction items. The framework will then stop the running job in favor of the pending job based on 'JobPriority' and reschedule it to be resumed after successful processing of the prioritized job.
By default the mechanism is deactivated, so that the template can be used as a normal REFramework.
The template also includes several configurable attributes in the config file to customize the mechanism for increased performance and efficiency:
- OrchestratorFolder: Defines a specific folder in Orchestrator which should be checked for pending jobs with its respective subfolders. By default, the workflow will get pending jobs from all folders.
Note: getting Jobs from different folders than the running folder will only work in case of modern folders.
- JobPriority: Defines the priority of pending jobs which causes the running process to interrupt. By default this will be the value 'High'.
- TransactionCounter: Defines after how many transactions the workflow should get jobs from Orchestrator. By default the worflow will get pending jobs after every transaction.
Process A: You have an unattended Performer Process which processes multiple transaction items from the queue and takes a total of 3 hours to process all items but is not time-sensitive.
Process B: You have another Process, which has to process a smaller number of transaction items, but has to be executed within 2 hours after the request as per company SLA (i.e. a certain ticket). This job could be triggered manually from Orchestrator, via the Orchestrator API (i.e. by a chatbot or via a schedule that interferes with the running job.
As the license will be blocked for 3 hours by Process A, Process B will be stuck in 'Pending' State and be started after the successful execution of Process A, causing it to miss the SLA of 1 hour processing time by 2 hours. Alternatively you would require an additional license to enable immediate execution and avoid missing SLA in case of blocked license.
Using the present Template for Process A, Process A will check Orchestrator for pending jobs with high priority after defined number of transactions, then interrupt Process A in favor of Process B and resume with Process A after successful execution.
Having heard this kind of requirement multiple times in the forum, I thought I would share my solution with you.
This is my solution to a recent requirement, which I am sharing hoping to help some of you.