Nov 09, 2013

SharePoint 2013 Approval Workflow With Dynamic Approvers From Another List

In this article, we will create a simple approval workflow in which approver is selected dynamically from another list using Sharepoint Designer 2013. We will implement the following approver hierarchy:

approver hierarchy

In a document library, if User1 or User2 creates any document then it will be approved by Manager1. Similarly, Administrator will approve documents created by Manager1 and Manager2.

Video:

Here is the full video tutorial:

Creating Approver List:

To define the approver for the user, we create a list.

Click "Settings" icon > Add an app > Custom List

Enter Name "Approver Info" > click Create

Open "Approver Info" list

In Top Ribbon List > List Settings

Click "Title" in Columns and rename to Department > OK

Click "Create Column" and enter following information

Name: "Editor"

Type: "Person or Group"

Require that this column contains information: Yes

Allow multiple selections: No

Allow selection of: People Only

Choose from: All Users

Similarly create "Approver" column and enter data.

approver hierarchy

Creating Workflow:

1. Open Document Library > In Library Ribbon: Workflow Settings > Click "Create a Workflow in Sharepoint Designer"

2. Click "Allow", It will open Sharepoint designer, Enter Name "Approval Workflow" and description > OK

approver hierarchy

3. In Workflow Ribbon > Action > "Set Workflow Status" > Enter "Pending"

4. just below of this action, add new action "Set Workflow Variable"

click "Workflow Variable" > "Create a new variable" > Set Name "Approver" and Type "String".

click value > click function icon > set following values:

Find Data to Retrieve:

Data source: Approver Info

Field from source: Approver

Return field as: Login Name

Find the List Item

Field: Editor

Value: click function icon > select Datasource : Current Item, Field from source: Created By, Return field as "Login Name"

approver hierarchy

5. just below of this action, add new action > "Start a task process"

Click "these users", click ... for participants

Select "Workflow Lookup for a User" > Add

Select Data Source "Workflow Variables and Parameters", Field from source : Variable :Approver, Return field as: String > OK

OK

Enter Task Title and Description

click OK

approver hierarchy

6. After this action, click Condition > "if any value equals value"

click first value, click function icon

Data source: "Workflow Variables and Parameters"

Field from source : Variable : Outcome

click second value, select approved

7. In If condition, Add action "Set Workflow Status" > Enter "Approved"

8. In workflow ribbon > click "Else Branch", Add action "Set Workflow Status" > Enter "Rejected"

9. below of "Transition to stage"

Add Action > "Go to a stage"

click "a stage" > select "End of Workflow"

Save it. Now the workflow looks like below:

approver hierarchy

10. Click on "Workflow Settings" in ribbon and check "Start workflow automatically when an item is created" in Start options.

11. Publish the workflow.

Filtering Task List:

Now user wants to see their tasks only. So In the view, to display the tasks of the current user only:

Open Task library > List ribbon > List Settings

Click "All Tasks" in Views

In filter section, select "Show items only when the following is true:" and set condition "Assigned to is equal to [Me].

approver hierarchy

When user1 creates any document, A task is assigned to Manager1. When Manager1 approves the request then the status will become approved.

Conclusion:

We have implemented a very simple Sharepoint designer 2013 workflow where approver is defined by another custom Sharepoint list.

Enjoy Sharepoint !!