gpt4 book ai didi

sharepoint - 如何实现并行审批流程中的拒绝?

转载 作者:行者123 更新时间:2023-12-02 17:47:59 32 4
gpt4 key购买 nike

我开发了一个带有复制器事件的 SharePoint 工作流,以便为每个审批者复制自定义事件。自定义事件为特定用户实现审批分支。它具有 CreateTask、While、OnTaskChanged 和 CompleteTask 事件的经典形式。

我在复制器上设置 UntilCondition,以便在一位审批者选择拒绝审批后取消执行,然后工作流完成。该问题发生在其他未完成的任务上,这些任务在当前状态下“挂起”。用户打开任务时看不到此状态。

我将 UpdateAllTask​​s 放在替换器之后,以将任务状态设置为“已取消”。但由于 CompleteTask(对于被拒绝的任务)和 UpdateAllTask​​s 之间没有事件事件,因此对于被拒绝的任务,UpdateAllTask​​ 事件也设置为“取消”。

问题是,我该怎么做才能在 UpdateAllTask​​s 之前刷新 CompleteTask 所做的挂起更改?

或者,也许还有另一种方法来实现这样的工作流程。我正在考虑如何使用 UpdateTask 为自定义事件实现取消处理程序。但我不知道如何实现它并告诉取消处理程序它在拒绝的情况下执行。

最佳答案

在面临同样的问题并花费大量时间研究和尝试不同的选择之后,我认为我找到了一个非常好的解决方案。我将其发布在这里供后代使用。

  1. 创建一个名为 ReviewActivity 的扩展 SequenceActivity 的自定义事件
  2. ReviewActivity 包括典型的 CreateTask -> While -> OnTaskChanged -> CompleteTask 场景
  3. 在我的工作流程中,我有一个 Replicator,它正在创建许多 ReviewActivity 实例(以及许多任务)。
  4. 复制器实现了 UntilCondition,用于检查任务是否被拒绝(这是在 ChildCompleted 中设置的)
  5. 在 Replicator 之后,我有一个 UpdateAllTask​​s 来关闭剩余的任务

如果您对这种情况有任何经验,那么您正准备告诉我,UpdateAllTask​​s 还会更新最初被拒绝的任务,因为“CompleteTask”尚未保存到数据库中。神奇之处在于您可以为自定义事件 (ReviewActivity) 定义一个名为 PersistOnClose 的属性。

[Designer(typeof(ActivityDesigner), typeof(IDesigner))]
[PersistOnClose]
public partial class ReviewActivity : SequenceActivity

此属性可确保 ReviewActivity 完成后,所有更改都会保存到数据库中。由于 ReviewActivity 中的最后一个事件是“CompleteTask”,因此该任务将保存到数据库中。因此,UpdateAllTask​​s 不会触及它。

我希望这对某人有帮助。

关于sharepoint - 如何实现并行审批流程中的拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/465122/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com