Presentation is loading. Please wait.

Presentation is loading. Please wait.

WORKING WITH THE “CALL HTTP WEB SERVICE” WORKFLOW ACTIVITY Derek Nishino Nishino Consulting

Similar presentations


Presentation on theme: "WORKING WITH THE “CALL HTTP WEB SERVICE” WORKFLOW ACTIVITY Derek Nishino Nishino Consulting"— Presentation transcript:

1 WORKING WITH THE “CALL HTTP WEB SERVICE” WORKFLOW ACTIVITY Derek Nishino Nishino Consulting derek@nishinoconsulting.com

2 Agenda  What is the “Call HTTP Web Service” Workflow Activity?  What Can It Do?  SharePoint REST Web Services  SharePoint Designer Workflow Dictionary Variables  Retrieving Items from a SharePoint List  Writing to a SharePoint List  Gotchas

3 What Is It?  SharePoint Designer workflow activity for 2013-style workflows  Makes calls to REST web services, including the SharePoint web services  Allows looping through data such as items from a SharePoint list in a targeted way  NOT LIMITED TO CALLING SHAREPOINT’S REST WEB SERVICES  HTTP GET, PUT, POST, DELETE  Must support OData and JSON

4 Dictionaries  A new type of workflow variable  Used to hold data structures for calling REST web services  Similar to concept of arrays in software development  Can also think of them as lists of data within your workflow  Can have Dictionaries nested in Dictionaries

5 Dictionary Actions  Build Dictionary  Get an Item from a Dictionary  Count Items in Dictionary

6 Connecting to SharePoint 2013 On-Prem  Create variables  restURL (string) – contains URL to REST API call  Format is siteurl/_api/web/lists/getbytitle(‘list name’)/items  Can test to make sure your URL is correctly formed by pasting into web browser address bar, must be signed in to the tenant  requestHeaders (Dictionary) – contains two headers that you add using the “Build Dictionary” action  Name=Accept, Type=String, Value=application/json;odata=verbose  Name=Content-Type, Type=String, Value=application/json;odata=verbose  responseContent (Dictionary) – holds the list content that’s returned  reponseHeaders (Dictionary)

7 Connecting to SharePoint 2013 On-Prem  Add “Call HTTP Web Service” action  Should automatically create a String variable called responseCode  Set “Call HTTP Web Service” action properties as follows (easiest to set from properties window)  Address = restURL variable  RequestType = HTTP GET  RequestHeaders = requestHeaders variable  ResponseContent = responseContent variable  ReponseHeaders = responseHeaders variable  ResponseStatuesCode = responseCode variable

8 DEMO

9 Connecting to SharePoint 2013 Online  Lot’s of confusing blogs and other articles out there that tell you to  Use Fiddler to find authentication token and other headers  Add unnecessary headers (x-request, content-length)  Hard code your authentication token into the web service call!  Actually much easier than that if you’re just reading a list, just need to add the Host name to the RequestHeader  Just the URL to your SharePoint Online tenant  e.g. nishinoconsulting.sharepoint.com

10 Looping Through Items  List items are returned to dictionary variable responseContent  List items are stored in dictionary item called “d/results”  Create a variable called Results, it will be used to get a count of the number of list items returned  Use the “Get an Item from a Dictionary” action to get Results from responseContent  item by name or path = d/results  dictionary = responseContent variable  item = Results variable

11 Looping Through Items  Need to tell the loop how many times to run and a way to keep track of which item we’re working with  Create Integer variables to manage the loop  Count – tells the loop how many times to run, populate it with the “Count Items in Dictionary” action  Index – keeps track of which item we’re currently working with in resultsContent, set to have a default value of 0  IndexPlusOne – used to increment the Index when we (can’t just do an Index++ operation)

12 Looping Through Items  Create variables for each “column” from the results you’re going to be working with  Use “Get an Item from a Dictionary” to pull the column values from each row of results into your variables  Use the variables the same way you would use any workflow variable  Use in workflow email  Write a message to the log  Perform comparisons  etc…  Increment your Index by adding one to it  Need to use and intermediary variable (IndexPlusOne)

13 Filtering Results  Don’t always want all items in a list  REST supports use of logical operators in the URL to filter results  Less Than, Equal To, Greater Than or Equal To, etc.  REST has operations for numbers, strings, and dates – not all are supported by SharePoint  Can specify columns, sort order, and more  Add “?$filter=“ without quotes to the end of your REST URL with the logical operation after the “=“  e.g. “?$filter=ID gt 20” returns items in the list with an ID greater than 20  Use “and” to specify multiple filters  e.g. “?$filter=ID gt 20 and ID lt 50” returns list items with an ID greater than 20 but less than 50

14 Gotchas  Can be difficult to troubleshoot  Authentication requirements in SharePoint Online make it challenging to make REST calls outside of the immediate site  May not actually be possible to do cross-farm calls

15 Resources  Step-by-Step Guide for Reading List Items  http://weblogs.asp.net/ricardoperes/looping-through-list-items-in-sharepoint-2013 http://weblogs.asp.net/ricardoperes/looping-through-list-items-in-sharepoint-2013  OData Query Operations  https://msdn.microsoft.com/en-us/library/office/fp142385.aspx https://msdn.microsoft.com/en-us/library/office/fp142385.aspx  MSDN Intro to SharePoint 2013 REST  https://msdn.microsoft.com/en-us/library/office/fp142380.aspx https://msdn.microsoft.com/en-us/library/office/fp142380.aspx  Step-by-Step Guide for Updating List Items  http://blog.ctp.com/2014/03/12/updating-list-items-using-sharepoint-2013-workflow-engine/ http://blog.ctp.com/2014/03/12/updating-list-items-using-sharepoint-2013-workflow-engine/

16 THANK YOU!!!


Download ppt "WORKING WITH THE “CALL HTTP WEB SERVICE” WORKFLOW ACTIVITY Derek Nishino Nishino Consulting"

Similar presentations


Ads by Google