我开发了一个带有复制器活动的 SharePoint 工作流,以便为每个审批者复制一个自定义活动。自定义活动为特定用户实现了一个批准分支。它具有 CreateTask、While、OnTaskChanged 和 CompleteTask 活动的经典形式。
我在复制器上设置了 UntilCondition 以在一位批准者选择拒绝批准然后工作流程完成后取消执行。问题发生在其他“挂起”在当前状态的未完成任务上。用户在打开任务时看不到此状态。
我将 UpdateAllTasks 放在替换器之后以将任务状态设置为已取消。但是由于 CompleteTask(对于被拒绝的任务)和 UpdateAllTasks 之间没有事件活动,因此 UpdateAllTask 活动也为被拒绝的任务设置了 Canceled。
问题是,我该怎么做才能在 UpdateAllTasks 之前刷新 CompleteTask 所做的待处理更改?
或者,也许还有另一种方式来实现这样的工作流程。我正在考虑使用 UpdateTask 为自定义活动实现 Cancel 处理程序的方法。但我不知道如何实现它并告诉取消处理程序它在拒绝的情况下执行。