How to 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 End Point http://services.odata.org/V2/Northwind/Northwind.svc should be accessible from the system which is running SharePoint Designer.
  3. Fiddler Web Proxy should be installed. You can get Fiddler from http://www.telerik.com/download/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

1

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

2

Step-4 : Select List Workflow [From Ribbon] > Select List [In our case it would be “Fill Customer Using Web Service”]

3

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

4

Step-6 : Create the Workflow variables as shown below

5

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

6

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

7

Step-9 : Now before proceeding any further lets’ 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 deal 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)

8

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.

9

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

10

Step-12 : With this we are good to go. Now lets’ Save the Workflow Definition, Check for the Errors and if everything is fine Publish the Workflow.

13

14

15

16

17

Step-13 : In order to test the Workflow lets 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 field will be populated by the Workflow

18

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

19

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

20

21

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.

22

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

Hope this will help someone in need…

Advertisements

2 thoughts on “How to call OData Web Service End Point Using SharePoint Designer 2013 Workflows

  1. Hi Prashant ,

    I did the same steps , but I am not able to retrieve the values in the list .

    Web service is getting accessed through the browser.

    In workflow , added a action- log “Response code ” . In log history its showing message Bad Response .

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s