Working with Workflow Service in JavaScript (JSOM) in SharePoint 2013 / Office 365 (SharePoint Online) – Part 1 (Iterate Workflow Deployments and Subscriptions)
Jun 6, 2014
3 min read
All-Topics

by Melick
Contributor
Introduction
SharePoint 2013 provides a set of JavaScript libraries that can be used to manage workflows. First, you need to refer to sp.workflowservices.js which is available in _layouts/15/sp.workflowservices.js.
<script src="/_layouts/15/sp.workflowservices.js"></script>
Following are few examples of using the library:
- Get all workflows deployed to current web
- Get all workflow subscriptions attached to a list
- Get all workflow subscriptions in current web
- Get all workflow subscriptions for workflow definition
Apart from these things, you can get subscriptions by:
enumerateSubscriptionsByEventSource
enumerateSubscriptionsByListAndParentContentType
enumerateSubscriptionsByListWithContentType
Get all Workflows deployed to current web.
var context = SP.ClientContext.get_current(); var web = context.get_web(); var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web); var wDefs = sMgr.getWorkflowDeploymentService().enumerateDefinitions(); context.load(wDefs); context.executeQueryAsync( function(){ var e = wDefs.getEnumerator(); while (e.moveNext()) { var def = e.get_current(); alert(def.get_displayName() + " id: " + def.get_id()); } }, function(a,b){ alert(args.get_message()); } );
Get all workflow subscriptions attached to a list.
For this, you need to have List Guide related to relevant list.
var listGuid = "93A65752-DB60-496F-B9F5-CD864050DB39"; var context = SP.ClientContext.get_current(); var web = context.get_web(); var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web); var sservice = sMgr.getWorkflowSubscriptionService(); var ssubs = sservice.enumerateSubscriptionsByList(listGuid); context.load(ssubs); context.executeQueryAsync( function(){ var e = ssubs.getEnumerator(); while(e.moveNext()) { var c = e.get_current(); alert("Name :" + c.get_name() + " sID: " + c.get_id()); }; }, function(){ alert("error")} ;
Get all workflow subscriptions in current web.
var context = SP.ClientContext.get_current(); var web = context.get_web(); var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web); var sservice = sMgr.getWorkflowSubscriptionService(); var ssubs = sservice.enumerateSubscriptions(); context.load(ssubs); context.executeQueryAsync( function(){ var e = ssubs.getEnumerator(); while(e.moveNext()) { var c = e.get_current(); alert("Name :" + c.get_name() + " sID: " + c.get_id()); }; }, function(){ alert("error")} );
Get all workflow subscriptions for workflow definition.
var wfdefinitionId = "c791c3cb-abcd-4022-bc06-6fcc6ca4f6bc"; var context = SP.ClientContext.get_current(); var web = context.get_web(); var sMgr =new SP.WorkflowServices.WorkflowServicesManager(context, web); var sservice = sMgr.getWorkflowSubscriptionService(); var ssubs = sservice.enumerateSubscriptionsByDefinition(wfdefinitionId); context.load(ssubs); context.executeQueryAsync( function(){ var e = ssubs.getEnumerator(); while(e.moveNext()) { var c = e.get_current(); alert("Name :" + c.get_name() + " sID: " + c.get_id()); }; }, function(){ alert("error")} );
License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)