Sharepoint 如何在并行审批工作流中实现拒绝?
我开发了一个带有Replicator活动的SharePoint工作流,以便为每个审批者复制一个自定义活动。自定义活动为特定用户实现审批分支。它具有CreateTask、While、OnTaskChanged和CompleteTask活动的经典形式 我在replicator上设置untlcondition,在一个审批人选择拒绝审批后取消执行,然后工作流完成。问题发生在其他未完成的任务上,这些任务“挂起”在其当前状态。用户在打开任务时未看到此状态 我将UpdateAllTasks放在replacator之后,以将任务状态设置为Cancelled。但是,由于CompleteTask(针对被拒绝的任务)和UpdateAllTasks之间没有事件活动,因此针对被拒绝的任务的UpdateAllTask活动集也被取消 问题是,在UpdateAllTasks之前,我如何清除CompleteTTask所做的挂起更改Sharepoint 如何在并行审批工作流中实现拒绝?,sharepoint,sharepoint-2007,moss,workflow,workflow-foundation,Sharepoint,Sharepoint 2007,Moss,Workflow,Workflow Foundation,我开发了一个带有Replicator活动的SharePoint工作流,以便为每个审批者复制一个自定义活动。自定义活动为特定用户实现审批分支。它具有CreateTask、While、OnTaskChanged和CompleteTask活动的经典形式 我在replicator上设置untlcondition,在一个审批人选择拒绝审批后取消执行,然后工作流完成。问题发生在其他未完成的任务上,这些任务“挂起”在其当前状态。用户在打开任务时未看到此状态 我将UpdateAllTasks放在replacat
或者,也许有另一种方法来实现这样的工作流。我正在考虑使用UpdateTask为自定义活动实现Cancel处理程序的方法。但是我不知道如何实现它,并告诉取消处理程序它在被拒绝的情况下执行。您是否尝试将代码活动放在完成任务和更新任务活动之间?将您的活动结构如下: 创建任务->OnTaskChanged->如果/其他活动(如果审批人的决定为“拒绝”,则将条件设置为true”)->(在If分支内部)更新任务活动(在活动属性中将状态设置为取消)->(在If分支外部)完成任务活动
当审批人决定拒绝某项任务时,WF将取消所有任务。它还将取消被拒绝者的任务,但在“CompleteTask”活动启动后,会立即将相应的任务设置为已完成。我今天遇到了类似的问题。我用以下方法解决了这个问题:
在面对同样的问题并花费大量时间研究和尝试不同的选择之后,我认为我找到了一个非常好的解决方案。我把它贴在这里是为了子孙后代
[Designer(typeof(ActivityDesigner), typeof(IDesigner))]
[PersistOnClose]
public partial class ReviewActivity : SequenceActivity
此属性确保一旦ReviewActivity完成,所有更改都会持久化到数据库中。由于ReviewActivity中的最后一个活动是“CompleteTask”,因此任务将保存到数据库中。因此,UpdateAllTasks不会触及它
我希望这对某人有帮助