private bool CreateWorkflowAssociation(string strContentTypeName, string strWorkflowName, string strTaskList, string strHistoryList, string strSiteCollection)
{
SPSite objSite = null;
SPWeb objWeb = null;
SPContentType objContentType = null;
bool blnReturn = false;
try
{
objSite = new SPSite(strSiteCollection);
objWeb = objSite.OpenWeb();
objWeb.AllowUnsafeUpdates = true;
objWeb.Update();
objContentType = objWeb.ContentTypes[strContentTypeName];
// Get the specific template for ReminderWorkflow
SPWorkflowTemplate workflowTemplate = null;
foreach (SPWorkflowTemplate template in objWeb.WorkflowTemplates)
{
workflowTemplate = template;
if (workflowTemplate.Name == strWorkflowName)
break;
}
// Create an association.
SPWorkflowAssociation workflowAssociation = SPWorkflowAssociation.CreateWebContentTypeAssociation(workflowTemplate, strWorkflowName, strTaskList, strHistoryList);
if (objContentType.WorkflowAssociations.GetAssociationByName(workflowAssociation.Name, objWeb.Locale) == null)
objContentType.WorkflowAssociations.Add(workflowAssociation);
else
objContentType.WorkflowAssociations.Update(workflowAssociation);
objWeb.Update();
blnReturn = true;
LogWindow.Text = "WORKFLOW ASSOCIATION DONE SUCCESSFULLY FOR " + strContentTypeName;
}
catch (Exception ex)
{
//throw;
LogWindow.Text = "ERROR DETECTED WHILE WORKFLOW ASSOCIATION FOR " +" " + strContentTypeName +" " + ex.Message.ToString();
}
finally
{
if (objSite != null) objSite.Close();
if (objWeb != null) objWeb.Close();
}
return (blnReturn);
}
Usage:-
bool AssociateWorkflow = CreateWorkflowAssociation(ContentType, "RetentionPolicy", "Tasks", "Workflow History", sitecollectionUrl);
No comments:
Post a Comment