We can easily get all the lists and document libraries that are associated with workflow in SharePoint Online using CSOM. In this article, I am going to write C# code example to find and get all workflow enabled lists in a given site using CSOM (Client-Object Model).
Get all workflow enabled lists in a given site
using Microsoft.SharePoint.Client;
//-------------------------------------
static void GetWorkFlowAssociatedListsInSPO()
{
string siteUrl = "https://tenant-name.sharepoint.com";
var siteCtx = new ClientContext(siteUrl);
var secPwd = new SecureString();
foreach (char c in "MyPassword".ToCharArray()) secPwd.AppendChar(c);
siteCtx.Credentials = new SharePointOnlineCredentials("[email protected]", secPwd);
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 enabled 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 SharePoint Online site
using Microsoft.SharePoint.Client;
//-------------------------------------
static void GetWorkFlowAssociatedLibrariesInSPO()
{
string siteUrl = "https://tenant-name.sharepoint.com/sites/contosopartners/News";
var siteCtx = new ClientContext(siteUrl);
var secPwd = new SecureString();
foreach (char c in "MyPassword".ToCharArray()) secPwd.AppendChar(c);
siteCtx.Credentials = new SharePointOnlineCredentials("[email protected]", secPwd);
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 enabled Document Libraries
foreach (List list in site.Lists.Where(a => a.WorkflowAssociations.Count > 0
&& a.BaseType == BaseType.DocumentLibrary))
{
Console.WriteLine("List Name: " + list.Title);
Console.WriteLine("SubscribedWorkflows: " +
string.Join(";", list.WorkflowAssociations.Select(a => a.Name)));
Console.WriteLine("---------------------");
}
}
Advertisement