I was working on a proof of concept with a client. They used SharePoint 2003 and were looking at a new farm for 2007. There was one catch however. They had a complex change control workflow they wanted to implement. Out of box functionality was out of the question, and as you know from my post on developing in SharePoint and if it is necessary, I like to try to use out of box functionality, or at most SharePoint designer to design solutions. This keeps a SharePoint environment as close as one can to an out of box install which in the future will save the company both time and money when a new version of SharePoint is released and the desire and time to upgrade is present.
I have heard a lot… ok, a LOT! of bashing SharePoint Designer workflows. Some of the arguments are indeed valid, however, it should not devalue the ability of workflow creation for SharePoint lists and libraries. There are also simple workarounds for some of the complaints. Yes, workarounds are not always fun or start to make one feel sketchy, as if we just ran through the exit door of a movie theater to crash a movie. (No I am not condoning this behavior) When you see the true power of it all, that feeling will go away pretty quickly. I am digressing… as usual. You will find I love bunny trails. I will try and stay focused on my blog topics. Or I may actually put it in a side bars.
I will change names to protect the innocent. The client, Recksalot Cars has a change request workflow. After talking with the Lead I was working with, we were able to understand the workflow. Being a large car company with lots of computers, they had a large IT staff. They were split into many teams, networking and DBA’s are an example. To create a change on one of the server would require several people to sign off and accept the change, or accept being put onto duty the day that the change was to take place. The size of the IT department was roughly 150 users. What made this workflow extremely complex was the fact that there was clear cut path between the people. One time could have four people part of the workflow, the next two and the following seven. Pile on to that fact, different people could be called on through each workflow, trying to map out every permutation would be painful at best. Mapping a beginning to end workflow was not feasible. Trying different ways with SharePoint designer it seemed that I would have to go against my out of box soapbox and break out Visual Studio’s .NET. When I was sitting in my other office (don’t ask) I had an epiphany. Less is more. Think of the workflow in sections like a caterpillar. Instead of a complex workflow with multiple steps, break it down into one step workflows. Tie that along with the ability to cascade workflows you have the power of a full solution. To define cascade workflows, one workflow can trigger a second workflow which must be completed, before the first workflow can complete.
First you have the head. You need a place to begin. In this case Recksalot Cars started the workflow in a customized Calendar out of box template on the creation OR modification of a list item. The workflow creates a task in the task list. This triggers the second workflow that is a part the task list. So now our little caterpillar looks like:
The task not only asks for approval, but information about who is next in line for the particular process the change order is trying to accomplish. The email is sent out to the task owner and the second workflow waits for resolution. Once the end user enters in the necessary information it finishes the Task Workflow and goes back to the Custom List Workflow. The Custom List Workflow process the information makes the necessary changes to the item that initially began the workflow then completes. The change of course triggers the Custom List Workflow to fire again. It sees, the item is still on route, so it creates another task. Our little caterpillar friend grows yet again.
The creation of the task fires off the Workflow Task requesting information from the next in line indicated by the previous ‘approver’. The workflow then waits for the information from that person. This brings our growing buddy to look like this.
When the Task Workflow completes, the Custom List Workflow picks back up and process the information. This cycle will continue until one of the directors specified in the workflow give their approval. When this happens the next time the Custom List Workflow triggers, it knows to stop immediately, stopping the cascading effect. And our happy little caterpillar has created a very complex, multiple permutation possible workflow, into a manageable workflow.
When working with workflows, understanding your workflows is a big part of it. Many times, companies don’t realize that their processes and workflows can be inefficient (causes wasted company resources), riddled with exceptions (degrades the integrity of the process), or incomplete (a layoff took out a middle man in the workflow causing the process to be broken, not allowing thing that enter to finish the process at all). SharePoint is a very powerful tool, as is SharePoint Designer, but if the proper planning is not a part of deploying the solution it will just become part of the problem you are trying to solve.
David J. Pileggi Jr.
Insight
0 Comments