Thursday, February 7, 2013

Get all the WorkflowTask associated with a ListItem

Sometimes, we need to access all the Task associated with an SPListItem for a particular workflow. Following quick code is helpful.

//using the namespace

using Microsoft.SharePoint.Workflow;

                        using(SPSite site = new SPSite(SPContext.Current.Web.Url))
                            using (SPWeb web = site.OpenWeb())
                                SPList lsPM = web.Lists["MyList"];
                                SPListItem lstMyList =   lsPM.GetItemById(IDOfTheListItem);
                                SPWorkflowFilter filter = new SPWorkflowFilter();
                               //Filter task based on the Workflow Status
                               filter.InclusiveFilterStates = SPWorkflowState.Running; 
                               SPWorkflowTaskCollection workTaskColl = web.Site.WorkflowManager.GetItemTasks(lstMyList , filter);
                              foreach (SPWorkflowTask task in workTaskColl)
                            if (task != null)
                                        // Loop through the Task Items

Hope this helps...........


Roopa said...


I am not getting any active tasks with this code. I am trying to get list of tasks associated with the list item in SharePoint 2013. could you please suggest.

Kamal Singh Kharayat said...

Hi Roopa,
This code shall get all the Tasks associated with an SPListItem.
//Filter task based on the Workflow Status
filter.InclusiveFilterStates = SPWorkflowState.Running; // This shall help you to filter tasks based on the status of the task.
This should work in all case if the List has any associated workflow tasks.


Visual Studio Build Error - The "GenerateResource" task failed unexpectedly

Error: "The GenerateResource task failed unexpectedly" This error is quite common while building the project in Visual Studio....