Sunday, February 12, 2017

Pragmatically approve the SharePoint workflow task items.

using below code we can approve the workflow task items.


 using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID))
            {

                using (SPWeb web = site.OpenWeb())
                {
                    SPList list = web.Lists["TestList"];
                    SPListItem item = list.GetItemById(47);

                    SPWorkflowTaskCollection taskCollection = new SPWorkflowTaskCollection(item, new SPWorkflowFilter());

                    foreach (SPWorkflowTask task in taskCollection)
                    {
                        //Check if the task is the manager's approval task
                        if (task[task.Fields["Status"].InternalName].ToString() != "Completed")
                        {
                            Hashtable ht = new Hashtable();
                            ht[SPBuiltInFieldId.Completed] = "TRUE";
                            ht["Completed"] = "TRUE";
                            ht[SPBuiltInFieldId.PercentComplete] = 1.0f;
                            ht["PercentComplete"] = 1.0f;
                            ht["Status"] = "Completed";
                            ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString(new CultureInfo((int)task.Web.Language, false), Strings.WorkflowStatusCompleted, new object[0]);
                            ht[SPBuiltInFieldId.WorkflowOutcome] = "Approved";
                            ht["TaskStatus"] = "Approved";
                            ht["FormData"] = SPWorkflowStatus.Completed;

                            web.AllowUnsafeUpdates = true;
                            SPWorkflowTask.AlterTask((task as SPListItem), ht, true);

                        }
                    }

                }
            }

No comments:

Post a Comment