SharePoint 2013: Call OData Web Service End Point Using SharePoint Designer 2013 Workflows

In this article we are going to explore Call HTTP Web Service Workflow Action which is newly introduced in SharePoint 2013. In order to test this action will make use of OData Web Service End Point and target the following scenario where Customer Data needs to be auto populated based on the Customer ID using SharePoint Designer Workflow and OData Web Services.

Prerequisites

  1. As this is going to be a List Workflow, make sure you must have a Custom List containing three columns “Customer ID”, “Full Name” and “Employer” already created on the site which you are going to select in Step 2 down the line. For the sake of this demo I have created a List with the name “Fill Customer Using Web Service” containing all the required columns.

  2. OData Web Service

  3. End Point should be accessible from the system which is running SharePoint Designer.

  4. Fiddler Web Proxy should be installed. You can get Fiddler.

Following are the steps involved in the development of Workflow Calling OData Web Service End Point:

Step 1 : Start SharePoint Designer 2013

Step 2 : Select the site in which you want to create the workflow,

workflow

Step 3 : Go to left navigation pane and select Workflows,

workflow

Step 4 : Select List Workflow (From Ribbon) - Select List (In our case it would be “Fill Customer Using Web Service”),

Fill Customer

Step 5 : On the Workflow Designer select “Call HTTP Web Service” Action from the Action Ribbon Menu,

Call HTTP Web Service

Step 6 : Create the Workflow variables as shown below,

workflow

Step 7 : Specify the Web Service End Point, and HTTP Method as shown below,

HTTP Method

Step 8 : Specify the variable of type Dictionary as placeholder for the incoming response data from the Web Service End Point,

Web Service End Point

Step 9:

Now before proceeding any further let's analyze the response from the Web Service End Point. Please note that this step is of high importance and must not be neglected. Fiddler Web Proxy is your best friend when it comes to dealing with Web Services. Analysis using Fiddler will provide us with the following Vital Information out of the response,

  1. Structure of Data returned as a part of the response
  2. Properties Exposed by the Web Service End Point
  3. Data Types of the Properties
  4. Additional information on Error & Exceptions (If any)

error

Step 10:

After analyzing the data we come across the fact that we have got the required data in form of Key Value Pairs and the result set can be accessed by using the path “d/PropertyName”. So based on this knowledge we can now set the values for variable “CustomerName” & “CompanyName” using “Get an Item from a Dictionary” Action as shown below.

action

Step 11:

As we have got the data from the Web Service End Point and stored in a set of variables, now it is time to update our list using “Set Field in Current Item” Action. We should use two instances of the same Action in order to set the value for both the fields using the variables as shown below

Set Field in Current Item

Step 12 : With this we are good to go. Now let's save the Workflow Definition, Check for the Errors and if everything is fine Publish the Workflow.

13

workflow

15

workflow

17

Step 13:

In order to test the Workflow let's visit our List “Fill Customer Using Web Service” and quickly add a new item. We need to add the Customer ID only and rest of the field will be populated by the Workflow,

Workflow

Step 14 : Specify the Customer ID and Save the item.

item

Step 15 : Start the Workflow on the newly added item.

Workflow

Workflow

Step 16:

And sure enough you will get the desired output with “FullName” and “Employer” Columns populated by our workflow using OData Web Service Call.

new

Though the scenario I mentioned here is quite simple, this new add-on to SharePoint Designer 2013 is very powerful and could be utilized to cater  to complex business requirements without any need of writing modules.

Hope this will help someone in need.

Read more articles on SharePoint: