Wednesday, March 3, 2010

Programmatically associate workflow to SharePoint list

SPList MySPList = MyWeb.Lists[DocumentLibraryName];
SPList TheTaskList = MyWeb.Lists["Tasks"];
SPList TheHistoryList = MyWeb.Lists["Workflow History"];
SPWorkflowTemplate MyTemplate = null;
foreach (SPWorkflowTemplate template in MyWeb.WorkflowTemplates)
{
if (template.Name == "My Workflow Name")
{
MyTemplate = template;
break;
}
}
SPWorkflowAssociation TheAssociation = SPWorkflowAssociation.CreateListAssociation(MyTemplate, MyTemplate.Name, TheTaskList, TheHistoryList);

MySPList.AddWorkflowAssociation(TheAssociation);
MySPList.Update();


associateWorkflow.AutoStartChange = true ;