Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / All-Topics

Working with Workflow Service in JavaScript (JSOM) in SharePoint 2013 / Office 365 (SharePoint Online) – Part 1 (Iterate Workflow Deployments and Subscriptions)

4.50/5 (2 votes)
6 Jun 2014CPOL 21.1K  
Iterate Workflow Deployments and Subscriptions

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.

HTML
<script src="/_layouts/15/sp.workflowservices.js"></script>

Following are few examples of using the library:

  1. Get all workflows deployed to current web
  2. Get all workflow subscriptions attached to a list
  3. Get all workflow subscriptions in current web
  4. 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.

JavaScript
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.

JavaScript
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.

JavaScript
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.

JavaScript
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)