Workflows play a big role in everyday’s Sharepoint ‘Business as Usual’ activities. Users need to get things approved by stakeholders before publishing the content to others. In Sharepoint, there’s a built in Approval workflow template that you can enable on any list or library (this template will only be visible once you activated the Workflows Site Collection Feature). Once enabled, we can setup an Approval workflow by configuring some settings as below:

The Approval workflow initiation form, without any default values, looks like this.

Initiator will fill in the list of approvers and set either serial or parallel approval. For the approvers listed in the workflow, they receive a task assigned to them, and they receive an email notification. For further information on how approval workflow works, read:
Modifying existing workflow
What i would like to bring up in this topic, is that with workflows setup using these existing templates, you could actually go in and change the list of approvers by clicking on the Add or update assignees of Approval in the workflow in progress dashboard.

In this example, workflow has already started and currently it is pending approval from Test User1, which is why the first stage is blank. You can modify the next two stages by adding Test User4 into the last stage.

Custom List Workflow
Now, the above showcases how you could make use of Global Reusable Workflows (i.e. Approval template) to quickly create an approval workflow for a list. What happen if you would like to customise these workflows (i.e. email messages, subject line, approval logics, task forms). You can’t unless you create a custom workflow in Sharepoint Designer.
What most people would do, is creating a custom Sharepoint Approval Workflow in Sharepoint Designer, and make use of the Approval Process action:

This action works the same way as the built in approval process, in which it would start a series of approvals. You could add an assignment parameter to the initiation form to collect the list of approvers:

By doing so, we create the same initiation form as the built in approval workflow.
Bug! Cannot edit the workflow approval assignees
While this would all work great, there’s one issue. Editing existing assignees will not work in this case. As soon as new changes are saved, the flow of the approval will mess up. Sharepoint will save the last row of approvers into the next stage of approvers, causing duplication.

i.e. Adding Test User4 into the last stage will cause Sharepoint to save it to the first stage.
And i have tested this on Sharepoint Online and Sharepoint 2013 on premise. The behaviour exists in both environments.
Confirmation from Microsoft support regarding the bug:
After liaising with Microsoft support, it’s been confirmed that this is a bug from Sharepoint Designer and they have this in their backlog. (Hopefully there will be an update for SP Designer sometime in the future to address this…?)

Use Reusable Workflow instead
If the business does require the functionality of changing existing flow of a workflow, then what you will need to use is customise the existing global reusable workflow. You can do so by copying and pasting the existing Approval Workflow in Sharepoint Designer and customize it. This will copy all the existing functions of the built in workflow and give you the ability to customize it just like creating a custom workflow. The only difference is these will be published at the site collection level, and then on your lists you will have to add it from there.


, , ,