代码之家  ›  专栏  ›  技术社区  ›  Daniel Revell

并行活动中的最终分支问题

  •  2
  • Daniel Revell  · 技术社区  · 15 年前

    这似乎是一个愚蠢的说法,在平行活动的最后一个分支,所以我将澄清。它是一个并行活动,有三个分支,每个分支都包含一个简单的创建任务、一个已更改的任务和一个已完成的任务。包含最后要完成的任务的分支似乎已断开。所以每一个任务都有自己的作用,但最后一个任务遇到了问题。

    假设用户单击“最终任务”链接以打开附加的infopath表单并提交该表单。执行获取该ontaskchanged的事件处理程序,其中taskcompleted变量设置为true,将退出while循环。我已经成功地在这条线上找到了一个断点,所以我知道会发生这种情况。不过,该分支中的最后一个活动completetask不会被命中。

    当在最终表单中单击提交时,在返回到工作流状态页之前,Progess屏幕中的操作会显示一段时间。打开并提交的任务显示“未启动”。

    我可以禁用任何一个分支只留下两个,但最后一个要完成的分支也会出现同样的问题。在之前的工作流程中,我做了同样的事情。我还有3个分支并行活动,每个分支包含一个任务。这个工作正常 这使我相信在同一个连续的工作流中有两个并行活动可能是一个问题 .

    我考虑过这可能是一个相关标记问题。每个任务分支使用的令牌对于该分支是唯一的,其所有者活动名称与该分支的所有者活动名称是est。很明显,如果task complete变量确实被设置为true,但while循环没有退出,那么在某个地方有一个与该变量交叉的连线。不过,我仍然认为返回工作流状态页的任务状态至少会说明任务正在进行中。

    这对我来说是一个令人沮丧的表演障碍。任何想法或建议都会被告知,以便我调查。

    1 回复  |  直到 12 年前
        1
  •  0
  •   Jens    12 年前

    我的工作流方案是在任务到期后通过触发延迟活动将任务重新分配给其发起人。 在我的工作流程中,我有一个 平行 复制器,用于同时为不同用户分配(创建)不同任务。在复制器中,我使用了侦听活动,因此在左分支中有一个ontaskchanged活动+…+completetask1,在listen activity的右分支中有一个 延迟活动 后面跟着 完成ASK2活性 以及一个代码活动,用于将任务重新分配给任务发起人。我确定两个CompleteTask活动上的相关标记。左分支上的每件事都工作正常,但右分支中包含延迟活动-->CompleteTask活动时出错。 假设我们有两个任务分配给两个用户,他们有一个小时的时间来完成任务,但他们没有完成。因此,两个任务都会触发延迟活动。然后,在工作流中,第一个任务将完成,但第二个任务会出错。

    我认为问题出在completeTask的taskID属性上。它没有用第二个任务ID更新,所以它试图完成一个已完成的任务。