【问题标题】:Problem with final branch in a parallel activity并行活动中最终分支的问题
【发布时间】:2010-11-13 09:46:17
【问题描述】:

这似乎是一个愚蠢的说法,并行活动中的最后一个分支,所以我会澄清一下。这是一个具有三个分支的并行活动,每个分支包含一个简单的创建任务、任务更改和完成任务。包含最后完成的任务的分支似乎中断了。因此,每项任务都可以独立运行,但最后一项会遇到问题。

假设用户单击最终任务链接以打开附加的信息路径表单并提交。执行到达 onTaskChanged 的​​事件处理程序,其中 taskCompleted 变量设置为 true,这将退出 while 循环。我已经成功地在这条线上打了一个断点,所以我知道会发生这种情况。但是,该分支中的最终活动,completeTask 没有被命中。

当在最终表单中单击提交时,进程屏幕中的操作会显示一段时间,然后返回工作流状态页面。打开并提交的任务显示“未开始”。

我可以禁用任何一个分支,只留下两个,但最后一个完成时也会出现同样的问题。在工作流程的早期,我基本上做同样的事情。我还有另外 3 个分支并行活动,每个分支包含一个任务。这个工作正常这让我相信在同一个顺序工作流中有两个并行活动可能是一个问题。

我已经考虑过它可能是相关令牌问题的可能性。每个任务分支使用的令牌对于该分支都是唯一的,并且它的所有者活动名称是该分支的 est。理所当然地,如果 task complete 变量确实设置为 true 但 while 循环没有退出,那么在某处与变量存在交叉。但是我仍然认为工作流状态页面上的任务状态至少会说任务正在进行中。

这对我来说是一个令人沮丧的错误显示停止器。任何想法或建议都会非常有用,因此我可以对其进行调查。

【问题讨论】:

  • Dan,这么长时间后问这个问题可能有点不公平,但是您是如何让 OnTaskChanged 进入与 createTask 相同的并行活动的?我收到一个错误 StateInitializationActivity 不能包含实现“System.Workflow.Activities.IEventActivity”的活动。我假设您正在使用状态机工作流程...
  • 我相信我把各种任务活动放在一个序列活动中,然后我把它放在并行分支中。

标签: sharepoint workflow workflow-foundation infopath


【解决方案1】:

我的工作流程方案是在任务到期日期到期后通过触发延迟活动将任务重新分配给它的发起者。 在我的工作流程中,我有一个 parallel 复制器,用于同时为不同的用户分配(创建)不同的任务。在复制器内部我使用了一个监听活动,所以在左分支中有一个 OnTaskChanged 活动+ ......确定两个完成任务活动的相关标记。左分支上的一切工作正常,但包含延迟活动的右分支发生错误 - >完成任务活动。 假设我们有两个任务分配给 2 个用户,他们有一个小时来完成他们的任务,但他们没有。所以延迟活动会为这两个任务触发。然后在工作流中,第一个任务将完成,但它会完成第二个任务错误。

我认为问题出在 completetask 的 taskid 属性上。它没有使用第二个任务 id 更新,因此它尝试完成已完成的任务。

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 2020-09-30
    • 2021-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多