并行活动中最终分支的问题
这似乎是一个愚蠢的说法,这是并行活动的最后一个分支,所以我会澄清一下。 这是一个并行活动,具有三个分支,每个分支包含一个简单的创建任务、任务更改和完成任务。 包含最后完成的任务的分支似乎已损坏。 因此,每项任务都可以正常运行,但最后一项任务会遇到问题。
假设用户单击最终任务链接以打开附加的信息路径表单并提交该表单。 执行到达 onTaskChanged 的事件处理程序,其中 taskCompleted 变量被设置为 true,这将退出 while 循环。 我已经成功地在这条线上命中断点,所以我知道会发生这种情况。 然而,该分支中的最后一个活动,completeTask 并没有受到影响。
当在最终表单中单击“提交”时,操作进行中屏幕会显示一段时间,然后返回到工作流程状态页面。 打开并提交的任务显示“未开始”。
我可以禁用任何分支,只留下两个,但最后一个完成时也会出现同样的问题。 在工作流程的早期,我基本上做了同样的事情。 我还有另外 3 个分支并行活动,每个分支都包含一个任务。 这个工作正常这让我相信在同一个顺序工作流程中拥有两个并行活动可能会出现问题。
我考虑过这可能是相关令牌问题的可能性。 每个任务分支使用的令牌对该分支来说是唯一的,并且其所有者活动名称与该分支的名称相同。 按理说,如果任务完成变量确实被设置为 true 但 while 循环没有退出,那么在某处与该变量存在电线交叉。 但是,我仍然认为工作流状态页面上的任务状态至少会表明任务正在进行中。
对我来说,这是一个令人沮丧的错误。 任何想法或建议都会非常有用,以便我可以调查它们。
This might seem like a silly thing to say, the final branch in a parallel activity so I'll clarify. It's a parallel activity with three branches each containing a simple create task, on task changed and complete task. The branch containing the task that is last to complete seems to break. So every task works in it's own right, but the last one encounters a problem.
Say the user clicks the final tasks link to open the attached infopath form and submits that. Execution gets to the event handler for that onTaskChanged where a taskCompleted variable gets set to true which will exit the while loop. I've successfully hit a breakpoint on this line so I know that happens. However the final activity in that branch, the completeTask doesn't get hit.
When submit is clicked in the final form, the operation in progess screen says of for quite a while before returning to the workflow status page. The task that was opened and submitted says "Not Started".
I can disable any of the branches to leave only two, but the same problem happens with the last to be completed. Earlier on in the workflow I do essencially the same thing. I have another 3 branch parallel activity with each brach containing a task. This one works correctly which leads me to believe that it might be a problem with having two parallel activites in the same sequential workflow.
I've considered the possibility that it might be a correlation token problem. The token that every task branch uses is unique to that branch and it's owner activity name is est to that of the branch. It stands to reason that if the task complete variable is indeed getting set to true but the while loop isn't being exited, then there's a wire crossing with the variable somewhere. However I'd still have thought that the task status back on the workflow status page would at least say that the task is in progress.
This is a frustrating show stopper of a bug for me. Any thoughts or suggestions would be much appricated so I can investigate them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的工作流程场景是在任务到期日到期后通过触发延迟活动将任务重新分配给其发起者。
在我的工作流程中,我有一个并行复制器,用于同时向不同用户分配(创建)不同的任务。在复制器内部,我使用了侦听活动,因此在左侧分支中有一个 OnTaskChanged 活动+ ...+completetask1,在listenActivity的右侧分支中有一个Delay Activity,后跟一个CompleteTask2活动和一个代码活动,用于将任务重新分配给任务发起者。我是确保两个完整任务活动上的相关标记。左侧分支上一切正常,但包含延迟活动 -->Completetask 活动的右侧分支中出现错误。
让我们考虑一下,我们有两个任务分配给 2 个用户,他们有一个小时的时间来完成任务,但他们没有。因此这两个任务都会触发延迟活动。然后在工作流中,第一个任务将完成,但第二个任务将完成错误。
我认为问题出在completetask 的taskid 属性上。它没有使用第二个任务id 进行更新,因此它尝试完成已完成的任务。
my workflow scenario is to reassign task to it's originator after due date of the task expires, by firing a delay activity.
in my workflow I have a parallel replicator which is used to assign(create) different tasks to different users at the same time.Inside replicator I used a listen activity so in the left branch there is a OnTaskChanged activity+...+ completetask1, In the right branch of listenActivity there is a Delay Activity followed by a CompleteTask2 activity and a code activity to reassign task to task originator.I'm sure about the correlation tokens on both completetasks activities.every thing works fine on the left branch but error occurs in the right branch which contains Delay activity-->Completetask activity.
let consider that we have two tasks assigned to 2 users and they have one hour to complete their tasks, but they didn't.so Delay activity fires for both tasks.then in workflow first task will be completed but for the second task it makes error.
I think the problem is with taskid property of the completetask.it doesn't updated with the second task id, so it tries to complete a task which has been completed.