Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

串行任务流程回退 #1

Closed
gaohzwork opened this issue Jun 30, 2020 · 3 comments
Closed

串行任务流程回退 #1

gaohzwork opened this issue Jun 30, 2020 · 3 comments

Comments

@gaohzwork
Copy link

您好,串行任务回退的时候,如果是当前节点的上一个节点是排他网关或并行网关的时候,在您的代码中会去找网关的上级节点,如果没有找到父节点的话,你还执行了多任务删除操作(相应的代码我已经截图),按我的理解是流程图有问题,就一直理解不了为什么还要执行删除操作,我刚刚接触流程不久,还望多多指教!
image

@dinghuang
Copy link
Owner

并行的任务会有这个问题,比如我一个任务A,执行后,有3个并行任务B、C、D。那么我当前任务就有B、C、D3个任务,现在用户在B节点进行了退回操作,但是activiti提供的用画图的线重新指定(你可以理解为activiti7开始,他的编程思想是流程图这种,退回的操作,实际上是图上面的流程节点的线重新指定,你可以先看一下导出图那个接口,就会明白了,这个就是activiti提供的退回接口),这种方式退回后,实际上任务回到了A,但是C、D任务还在他的任务表里面,这样就变成了我目前的待办任务有A、C、D,我想要的是回到A,只有A任务,所以需要把C、D删除。另外,如果复杂的场景,流程图的线那边的代码还有一点问题,我改好了,代码还没上传,不过问题不大(因为有些图逻辑很复杂),看看逻辑自己改也行

@gaohzwork
Copy link
Author

非常感谢大神的指导,并行任务这个理解了,但是串行任务回退处理中的如果排他网关和并行网关没有父节点的话为什么还要执行删除操作,我看你在处理并行任务回退中如果并行网关没有父节点的话是抛出了异常?现在的问题就是我的截图中用红色线条框起来的部分不理解。请大神指导一下!

@dinghuang
Copy link
Owner

我也点忘记了,应该是查找网关父级这一块,因为你一个任务,肯定有父级的,有可能是并行任务汇聚到网关,查找网关的父级这种条件下,为空,所以执行了并行删除其他任务的逻辑
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants