Start workflow programatically in SharePoint 2013
23 June 2013

I had a business requirement where I need to start SharePoint 2013 workflow on demand. We have a form to validate some data on a list item before starting the workflow. When user click on continue button of validation form it first validate all field, once it is validated it will trigger a workflow associated with the list
Below is the code example on how to start SharePoint 2013 workflow programatically.
var workflowServiceManager = new WorkflowServicesManager(web);
var workflowSubscriptionService = workflowServiceManager.GetWorkflowSubscriptionService();
//Get all workflows associated with a list
var subscriptions = workflowSubscriptionService.EnumerateSubscriptionsByList(listId);
//Run all workflows associated with the list
foreach (var workflowSubscription in subscriptions)
{
var inputParameters = new Dictionary<string, object>();
inputParameters.Add("MyProperty", "MyValue");
workflowServiceManager.GetWorkflowInstanceService().StartWorkflowOnListItem(workflowSubscription, itemId, inputParameters);




































