When using workflow you better make sure performance does not become an issue. It's a serious system killer to have poor performance in Workflow...
Slow selections are normally less likely to happen on Workflow, because of the Business Object setup: any flow runs on a Business Object e.g. a Purchase Order and any action workflow needs to do should be quite fast because the main key fields are available. Normally. And this is how it should be.
If you do have tasks in a workflow that can consume quite a bit of processing time because of a big selection or sequence of updates, think again: no task should consume more than 10 seconds to complete. The effect of triggering tasks that do run a long time is "quite killing": user WF-BATCH
will start dialog tasks that will run in the background. When triggering 20 of these tasks within one minute, Workflow will consume all available dialogs, effectively making the system unavailable for anything else. That's expensive !
A few striking tips on Workflow performance:
- Make sure the number of tasks in your flow is limited, regard a task as processing time consuming business: gather all required information in a single task rather than bits of it in several tasks
- Could the information your task is getting be made available as aAttribute ? This way other tasks can quite easily get to the information as well... (use the
swc_get_property
macro on include<CNTN01>
- Where triggering events are started, do they really need to be processed immediately ? Make good use of the Event queuewhenever possible (it's a setting on the triggering event "Allow event queue usage"
- Check the process overview and beware of long running processes with user name
WF-BATCH
- potential problems ? - Make sure your tasks are not triggered too often. Checking whether your flow starts more often than necessary is defenitely something that must not be overlooked. Your end user may not complain when the same check is done several times, so you may well be the only one that can check this...