Start a Workflow Manually- Programatically
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = site.OpenWeb())
{
SPUtility.ValidateFormDigest();
SPList list = web.Lists["Implementation Details"];
SPListItem lstitem;
SPQuery q = new SPQuery();
q.Query = "<Where><Eq><FieldRef Name='KaizenID' /><Value Type='Text'>" + itemID + "</Value></Eq></Where>";
SPListItemCollection collection = list.GetItems(q);
lstitem = collection[0];
string GroupName = ddlKazienApprovelGroup.SelectedItem.Text.Trim();
SPGroup group = web.Groups[GroupName];
lstitem["Department"] = group;
web.AllowUnsafeUpdates = true;
lstitem.Update();
web.AllowUnsafeUpdates = false;
UpdateKaizenTask();
foreach (SPListItem listitem in collection)
{
SPWorkflowManager objWorkflowManager = null;
SPWorkflowAssociationCollection objWorkflowAssociationCollection = null;
objWorkflowManager = listitem.Web.Site.WorkflowManager;
objWorkflowAssociationCollection = listitem.ParentList.WorkflowAssociations;
foreach (SPWorkflowAssociation objWorkflowAssociation in objWorkflowAssociationCollection)
{
web.AllowUnsafeUpdates = true;
objWorkflowManager.StartWorkflow(listitem, objWorkflowAssociation, objWorkflowAssociation.AssociationData, true);
web.AllowUnsafeUpdates = false;
message = "\\\"Mail has been sent to " + mailUsers.TrimEnd('.') + ", Workflow started.\\\"";
break;
}
}
}
}
});
Comments