When designing a fairly complex workflow/business process it is common for a workflow to become overly complex (in programming this is often referred to as a god object). This can lead to issues down the road such as:
Workflows should be broken up into more manageable bits whenever possible (in computer science this is called Separation of Concerns). An example of this would be a workflow that has multiple stages of approval and logic inside of each approval branch:
There are several approaches that can be taken to mitigate these issues:
User defined actions are a great tool for encapsulating a piece of workflow code/logic. Additionally, user defined actions provide a way to design your workflows to interfaces which helps to decouple your logic in a way that makes it easily maintainable and reusable.
Utilizing the Start Workflow action you can call subroutines (child workflows) to perform some work and report back as soon as they complete. Utilizing multiple workflows instead of one enables you to keep your workflow size down as well as avoiding performance issues that come with large workflows.
In the above example, the following could be done to break the workflow into smaller bits that could be independently updated without affecting the rest of the workflow:
When designing a workflow, keep in mind the following: Smaller is better (and more efficient). While there is no hard limit on how large a workflow can be (the limit is dependent on your SharePoint farm configuration and overall performance), we generally start to see issues when a workflow is around 500Kb or 100 actions (these typically correlate with each other well).
To determine how large your workflow is, export the workflow from the Nintex Workflow Designer to an ‘*.nwf’ file. The size (not size on disk) of this file is the value we are looking for.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.