I approached this with the mindset that things are going to change... because they always do!
I created 3 lists:
- Request Types - used to identify all request types
- Request Steps - used to identify all request steps and associated type(s)
- Service Requests - used to capture requests and where the workflow will reside
The Types and Steps lists can be updated as needed, but for now, lets focus on the Inventory data that was provided.
Next we can develop our Request list to capture our different requests and track the overall progress via workflow.
The Request Type dropdown is a lookup to the Request Types list (the options will always be up-to-date if a new one is add!)
Once filled out, the list workflow will kickoff.
The list workflow is as follows:
- Query the Request Steps list to get all required steps for the request type.
- For Each Request Step
- Get Step Number
- Update current item with
- Current Step Number
- Current Step Name
- Assign Step
- After all steps are completed, update item as Completed
As the workflow moves through the steps, updates are made to the item to display what step number and step name the request is currently on.
Here is the list view of a request that is currently in flight:
I enjoyed this mission Brendan Murphy as it makes us think of how to approach a process that can (and will) change at any time. I designed the lists to enable users to add or remove steps as needed without adjusting the workflow. I would go back and make it so that the workflow grabs the next step each time rather than all at the beginning of the workflow. This would allow for changes to the process while items are in flight rather than having to stop/restart or miss all new updates completely.