Get all Workflow Associated Lists in SharePoint 2013

You can easily get all the lists and document libraries that are associated with workflow in a SharePoint farm server. In this article, I am going to write C# code example to find and get all the workflow enabled lists using CSOM (Client-Object Model).

Get all workflow enabled lists in a given site

using Microsoft.SharePoint.Client;
//-------------------------------------
static void GetWorkFlowAssociatedLists()
{
    string siteUrl = "http://sharepointsvr/sites/2/TestSite";

    var siteCtx = new ClientContext(siteUrl);
    siteCtx.Credentials = new NetworkCredential("SPAdministrator", "MyPassword");
    Web site = siteCtx.Web;
    siteCtx.Load(site.Lists, li => li.Include(w => w.WorkflowAssociations, 
                               w => w.Title, w => w.BaseType));
    siteCtx.ExecuteQuery();
    // Getting all workflow associated lists
    foreach (List list in site.Lists.Where(a => a.WorkflowAssociations.Count > 0 
                                           && a.BaseType == BaseType.GenericList))
    {
        Console.WriteLine("List Name: " + list.Title);
        Console.WriteLine("SubscribedWorkflows: " + 
                           string.Join(";", list.WorkflowAssociations.Select(a => a.Name)));
        Console.WriteLine("---------------------");
    }
}


Get all workflow enabled document libraries in a given SharePoint site

using Microsoft.SharePoint.Client;
//-------------------------------------
static void GetWorkFlowAssociatedLibraries()
{
    string siteUrl = "http://sharepointsvr/sites/2/TestSite";

    var siteCtx = new ClientContext(siteUrl);
    siteCtx.Credentials = new NetworkCredential("SPAdministrator", "MyPassword");
    Web site = siteCtx.Web;
    siteCtx.Load(site.Lists, li => li.Include(w => w.WorkflowAssociations,
                                             w => w.Title, w => w.BaseType));
    siteCtx.ExecuteQuery();
    // Getting all workflow associated Document Libraries
    foreach (List list in site.Lists.Where(a => a.WorkflowAssociations.Count > 0 
                                                 && a.BaseType == BaseType.DocumentLibrary))
    {
        Console.WriteLine("Libarary: " + list.Title);
        Console.WriteLine("SubscribedWorkflows: " + 
                      string.Join(";", list.WorkflowAssociations.Select(a => a.Name)));
        Console.WriteLine("---------------------");
    }
}

Advertisement

Leave a Comment