在工作流程中,我希望处理错误,例如无法查找要分配任务的用户名。因此,如果该用户名不存在,我将通过电子邮件通知管理员,将其记录到工作流程历史记录中,然后终止工作流程。
问题是,我如何从工作流程内部终止工作流程,就像在SharePoint网页上单击“终止工作流程”按钮一样。
[更新] 我尝试了SPWorkflowManager.CancelWorkflow(),它确实取消了工作流程,但不是立即取消。代码运行以取消,但然后我的工作流程序继续创建下一个任务,并在达到下一个任务的onTaskChanged活动时休眠。只有当它进入睡眠状态时,工作流程才会终止,而不是在调用CancelWorkflow时。
这会导致明显的问题,即我不希望创建下一个任务。我调用CancelWorkflow是因为我想立即取消它。
问题是,我如何从工作流程内部终止工作流程,就像在SharePoint网页上单击“终止工作流程”按钮一样。
[更新] 我尝试了SPWorkflowManager.CancelWorkflow(),它确实取消了工作流程,但不是立即取消。代码运行以取消,但然后我的工作流程序继续创建下一个任务,并在达到下一个任务的onTaskChanged活动时休眠。只有当它进入睡眠状态时,工作流程才会终止,而不是在调用CancelWorkflow时。
这会导致明显的问题,即我不希望创建下一个任务。我调用CancelWorkflow是因为我想立即取消它。