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.
- 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.
- OData Web Service End Point http://services.odata.org/V2/Northwind/Northwind.svc should be accessible from the system which is running SharePoint Designer.
- 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
Step-3 : Go to left navigation pane and select Workflows
Step-4 : Select List Workflow [From Ribbon] > Select List [In our case it would be “Fill Customer Using Web Service”]
Step-5 : On the Workflow Designer select “Call HTTP Web Service” Action from the Action Ribbon Menu
Step-6 : Create the Workflow variables as shown below
Step-7 : Specify the Web Service End Point, and HTTP Method as shown below
Step-8 : Specify the variable of type Dictionary as placeholder for the incoming response data from the Web Service End Point
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
- Structure of Data returned as a part of the response
- Properties Exposed by the Web Service End Point
- Data Types of the Properties
- Additional information on Error & Exceptions (If any)
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.
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
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.
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
Step-14 : Specify the Customer ID and Save the item.
Step-15 : Start the Workflow on the newly added item.
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.
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…