Lets say I have a helper method that takes SPListItem and workfow association name.
private SPWorkflowAssociation GetWorkflowAssociationByName(SPListItem item, string workflowAssociationName)
{
return item.ContentType.WorkflowAssociations.GetAssociationByName(workflowAssociationName,
new System.Globalization.CultureInfo("en-US"));
}
public void StartWorkflow(SPListItem item, string associationName)
{
try
{
//get workflow association object
workflowAssociation = GetWorkflowAssociationByName(item, associationName);
if (workflowAssociation == null)
throw new Exception(string.Format ("Workflow association '{0}' could not be found in the list '{1}'", workflowAssociationName, item.ParentList.Title));
//start your workflow...
item.Web.Site.WorkflowManager.StartWorkflow(item, workflowAssociation, workflowAssociation.AssociationData);
}
catch (SPException spEx)
{
//log your exception
}
}
//that kicks off a associated workflow.
StartWorkflow(anInstanceOfSPListItem, "Masood - Approval workflow")
Below is the picture where higlighted box is the association name.
That's it. Happy coding.
Hi Muhamamd,
ReplyDeletei am very new to sharepoint and have no idea how things work there.
i am preparing a very simple notification for birthday wishes. i have created a data base for my team and i want sharepoint to send the emails to everyone if Birthday= today and also update it automatically for next time and keep repeating it without my intervention.
please help me?
sandhya
Hi Sandhya,
ReplyDeleteYou can write custom timer job that will read your list of users (who you want to send wishes) and match with current date and if it matches, send all of them to your custom message.
I have created a project called "Template Manager" in codeplex and also I have written a blog about how to use it.
If you need further assistance, you can post your queries in comments and I will reply you.
Thanks,
Muhammad Masood
http://blog.mmasood.com