[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 来标记签核结果
另外也可以根据表单记录来找到task然后实现签核
参考:
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
先在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
相关文章推荐
- Android: How to download the latest zip Android Source Code easily and using it in Intellij
- 苹果脚本-How to send a message using iChat and AppleScript
- How to know the corresponding relation between T-code and Program
- Using RestTemplate, how to send the request to a proxy first so I can use my junits with JMeter?
- How to call code behind method in JavaScript in C# and VS2010?
- Units Problem: How to read text size as custom attr from xml and set it to TextView in java code
- prjSendMailInUniversity - How to send email using VB & Winsock - 邮件发送接收程序 - VB6 + Winsock
- how to get geometry type of layer using IMapServer3 and IMapLayerInfo? (C#)
- How to find MATLAB Source Code And Tools
- How to improve quality and syntax of your Android code
- How to access HBase from spark-shell using YARN as the master on CDH 5.3 and Spark 1.2
- how to change the machine code to ASM by Using OllyDbg
- Java ThreadLocal - How to use and code sample
- 32-bit Assembler is Easy, why and how to develop using the assembler; start learning to program in Assembly now!
- How-to-design-and-deploy-a-new-master-page-for-sharepoint-2010
- How to Analyze Problems Related to Internal Errors (ORA-600) and Core Dumps (ORA-7445) using My Orac
- How to get Full Rom Dump / Stock ROM of MT6572 MediaTek Smartphones using SPFT and MTK Droid Root an
- how to get geometry type of layer using IMapServer3 and IMapLayerInfo? (C#)
- BW:How to load and generate a custom hierarchy in SAP Business Warehouse (SAP BW) without using flat files
- How to Monitor and Log Network Traffic on Linux Using vnStat