Requirement to build a multi-team business process. The process starts with a initiation request capturing basic information and then tasks are created for other teams to capture their own data points from the requester.
Not all teams participation is required , based on the initiation request we can decide whether to involve any team. Following the best practices "Separation of concerns" I think the workflow has be divided into sub workflows.
A main initiation list will be created to receive the initiation request, and each team will get their own list. Lets take Team-A, Team-B and Team-C. Each list content type will have common fields like Main Request ID ( lookup to the main initiation list) Status and Outcome column for tracking purpose. Each team has other fields that they have to enter as part of their process.
Master Workflow : The master workflow kicks starts when initiation request is submitted and based on the data it will create list items on the team lists which kick starts the team workflows configures on each team list ( A, B and C) and stores the item IDs in workflow variables. There are two ways to ensure that the sub workflows ( team workflows ) are completed so that the master workflow marks itself as completed.
1) Loops : Query the team lists items every 2 hours using the workflow variables and end loop when all are done.
2) Status for each Team in Main list : Each team will get a column in the initiation list ( Team-A Status, Team-B Status ), and Main workflow will wait until these columns are changed to Completed then completes itself.
Also, in terms of performance I know that loop run on timer job and wondering if the same goes "wait for item change action" ??
I can also use Site Workflows too
Please let me know your thoughts on this. Thanks for taking time to read this
Product Version : SharePoint 2010 and Nintex 2010 Enterprise