您的位置:首页 > 其它

[Sharepoint]How to Complete Task using code and send to next task

2011-09-22 11:08 579 查看
为了实现批量签核,需在代码中实现完成task并自动生成下一步task的功能.

先在Task列表中找到相应的task记录, 如下代码中是 taskListItem , 且在工作流中有一个 checkbox 域-- Result 来标记签核结果

Hashtable data = new Hashtable();
data[SPBuiltInFieldId.Completed] = "TRUE";
data[SPBuiltInFieldId.PercentComplete] = 1;
data[SPBuiltInFieldId.TaskStatus] =
SPResource.GetString(new CultureInfo((int)taskListItem.Web.Language, false),
"WorkflowTaskStatusComplete", new object[0]);
data[taskListItem.Fields["Result"].Id] = "TRUE";
//data[taskListItem.Fields["Outcome"].Id] = "Completed";
data[SPBuiltInFieldId.Outcome] = "Completed";

data[SPBuiltInFieldId.FormData] = SPWorkflowStatus.Completed;

//data[SPBuiltInFieldId.TaskStatus] = "#";   // This would mean that the task has been Approved
//ht["TaskStatus"] = "@";   // This would mean that the task has been Rejected
web.AllowUnsafeUpdates = true;
SPWorkflowTask.AlterTask(taskListItem, data, true);


另外也可以根据表单记录来找到task然后实现签核

SPSite site = new SPSite("http://servername/");
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["TestList"];
SPListItem item = list.GetItemById(22);
SPWorkflow workflow = item.Workflows[0];
SPWorkflowTask task = workflow.Tasks[0];

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);
}


参考:

http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/f2dc501d-f47b-4f47-a9f8-78b6af96ad60

http://social.technet.microsoft.com/Forums/en-SG/sharepoint2010programming/thread/0b915df7-6cef-4121-ba2d-999662659a27
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐