I am looking to have a Form's process that assigns a form to a person to work on. This person may have it assigned to them for a few minutes or a few months but they want it to automatically end should a related process in another application be canceled. This can be accomplished by:
- Putting a timer on the approval task that runs every 15 minutes (does not interrupt the task)
- Having that call a workflow that looks up the process status in the other application and updates the variables
- Then going through an exclusive gateway to see if the status is canceled
- If the status is unchanged the path ends at an end event
- If the status is canceled then it calls a signal throw event
- The original approval task also has a signal catch event that is triggered that interrupts the approval task
- The path then goes to an end event
- The process looks like this:
My question is about the workload this puts on the Forms routing service and it's SQL database. Is Forms designed to have this kind of frequent interaction done over long periods of time with hundreds, possibly thousands of forms functioning like this at once?
In Laserfiche I would not write a scheduled workflow to run against one document at a time but instead would have it search for all that qualify and run against them all so that is is more efficient. As we do not have the capability in Workflow to search Forms or to update the variables directly without being called first by Forms, I've not found another way to do this other than the way listed above. Has anyone else found a more efficient process for updating variables across hundreds of Forms on a schedule? Direct calls to SQL?