我创建了一个自定义工作流,它在工作流启动时创建一个任务项。 替代文字 http://img19.imageshack.us/img19/2862/screenshot310200942100p.png
我还为文档库和任务列表创建了一些自定义内容类型。
对于文档库:首先,我添加一个文档库并将其配置为允许自定义内容类型。然后我添加我的内容类型,它基于文档内容类型。之后,我在工作流设置下添加了一个工作流。在这里,我选择了我的自定义工作流程,给它一个名字并告诉 sharepoint 创建一个新任务列表来存储任务。
对于任务列表:现在我有一个共享点创建的任务列表,我去那里并允许自定义内容类型并确保“在分配所有权时发送电子邮件?” 设置为是。然后我添加了我的两个自定义内容类型,它们都基于工作流任务内容类型。这就是我应该做的。
当我启动我的工作流时,它确实添加了批准任务(我正在使用名为 createApprovalTask 的 CreateTaskWithContentType 活动),但没有为创建的任务发送电子邮件。
我在 createApprovalTask 活动中使用的代码是:
// make a new GUID for this task
createApprovalTask_TaskId = Guid.NewGuid();
// set simple properties of task
createApprovalTask.TaskProperties.AssignedTo = "a valid domain\user";
createApprovalTask.TaskProperties.Title = "Review Contract: " + approvalWorkflowActivated_WorkflowProperties.Item.DisplayName;
createApprovalTask.TaskProperties.SendEmailNotification = true;
如果我创建一个文档库并使用 Sharepoint 的内置工作流之一(例如 Approval),并告诉它为其创建一个任务列表,当一个项目添加到该列表时,它会正确发送电子邮件。因此,发送邮件服务器的设置是正确的,因为我们可以正常接收其他电子邮件。
我在 createApprovalTask 活动之后立即使用 SendEmail 活动向提交者发送一封电子邮件,告诉他们我们已收到他们的批准请求。代码类似于:
sendApprovalRecievedEmail.Body = emailBody;
sendApprovalRecievedEmail.Subject = emailSubject;
sendApprovalRecievedEmail.To = emailTo;
sendApprovalRecievedEmail.From = emailFrom;
这可行,因此提交者会收到他们的自定义电子邮件,但任务所有者永远不会收到任务项电子邮件。