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

Popular posts from this blog

Create a Web Part Page with a Web Part in Sharepoint 2010

Source code from codeplex In this blog I am going to explain how to create a web part page along with a web part. After using this feature, we just need to activate the feature; the rest will complete automatically. Steps for creating the functionality: Step 1: Create a project with Farm-Based solution: Step 2: Add a new item as webpart: Step 3: Add feature event receiver class, your solution should look like the following: Step 4: Add your logic to the web part: 01 [ToolboxItemAttribute( false )] 02 public class CustomWebPart : WebPart 03 { 04 protected override void CreateChildControls() 05 { 06 LiteralControl lt = new LiteralControl(); 07 lt.Text = "This webpart automatically added with page" ; 08 this .Controls.Add(lt); 09 } 10 } Step 5: You need to provide logic in the feature Reciever class. Find the attached file to see the source code. Step 6: Build, deploy and activate the feature. Step 7: Go to Page library ( S

SharePoint Branding Solution Pack using VS2010

Introduction Today, in this blog I am trying to provide you the Custom Branding solution Pack. This solution pack will save time and effort while developing the custom sharepoint with publishing sites in sharepoint. It works great. So, we all are good to go and use this re-usable solution pack. Description The source code shows how to prepare a structure for Sharepoint Branding solution. This pack contains : Master Page Gallery structure Page Layout Gallery structure Image Gallery Styles Library gallery Event Receiver

How to create Sandbox solution with full trust Proxy

Download Files: CustomSBFullTrust.zip In this article I am explaining the step by step procedure to create a sandbox solution with full trust proxy. Before starting I am assuming you are aware of the sandbox limitations. Full trust solution is providing sandbox solution to work in a full environment. In short this is the way to achieve farm based solution functionality in a Sandbox. Namespace Required: using Microsoft.SharePoint.UserCode; using Microsoft.SharePoint.Security; using System.Security.Permissions; using Microsoft.SharePoint; using Microsoft.SharePoint.Publishing;