Skip to main content

How to get taskid in workflow for assigning task programmatically

Hi Friends,
I am posting my blog after long time. After busy schedule finally I got time post my blog.
In this blog I just want to share my experience that I faced while creating workflow and assigning task and sending the link to assign task programmatically.
My requirement was that I need to create task and send custom email body.In the body of email,I need to send a link for assign task.I googled the solution no success.Finally I tried with the below approach:

public static int GetNextAvailableIdFromList(SPSite site, Guid listId)

{

int NextAvailableId = -1;

if (site.WebApplication.ContentDatabases.Count > 0)

{

string DBConnString = site.WebApplication.ContentDatabases[0].DatabaseConnectionString;

SqlConnection con = new SqlConnection(DBConnString);

try

{

con.Open();

SqlCommand com = con.CreateCommand();

com.CommandText = String.Format("select tp_NextAvailableId from AllLists where tp_ID = '{0}'", listId.ToString());



NextAvailableId = (int)com.ExecuteScalar();

}

finally

{

con.Close();

}

}

return NextAvailableId;

}

Once You add the code in your workflow code file.You just need to call the method like below:

createTask_TaskProperties.EmailBody = workflowProperties.List.Title + " Request has been raised by " + workflowProperties.OriginatorUser.Name + " . Click "(ANCHOR TAG OPEN) href=\"" + workflowProperties.WebUrl + "/_layouts/WrkTaskIP.aspx?ID=" + Convert.ToString(GetNextAvailableIdFromList(workflowProperties.Site, workflowProperties.TaskListId)) + "&List=" + HttpUtility.UrlEncode(workflowProperties.TaskListId.ToString()) + "\">here to confirm the " + workflowProperties.List.Title.ToString();

createTask_TaskProperties.HasCustomEmailBody = true;

Thats Done..Try this.It will help you when you need that type of requirement. :)

Comments