JAVA工作流之收回

2008-07-16 15:56:57 来源:中国自学编程网 作者:转载 点击:
参与者完成任务后,发现自己办理有错误等情况后,需要将此任务收回重新办理。



为什么要收回?

参与者完成任务后,发现自己办理有错误等情况后,需要将此任务收回重新办理。

工作项的参与方式

目前有四种方式:共同参与、竞争参与、顺序参与、基于角色的共同参与。

下面会针对这四种方式进行讨论。

工作项收回模式

1、未触发下一节点的工作项的收回

即当前任务节点并未完成,依旧处于执行状态


1.1共同参与


如图:在节点A未结束之前,workitem1、workitem2和workitem3正常完成后可以任意收回。在只产生一个workitem的情况下,不存在未触发下一节点的收回情况。


1.2顺序参与


如图: workitem1 workitem2 workitem3 顺序完成, workitem1 workitem2 签收(包括挂起和手工终止)前可以收回,同样, workitem2 workitem3 签收(包括挂起和手工终止)前也可以收回。 在只产生一个workitem 的情况下, 不存在未触发下一节点的收回情况。


1.3 竞争参与

因为只会产生一个 workitem ,该 workitem 完成后会立刻触发下一节点,所以不存在未触发下一节点的收回情况。


1.4 基于角色的共同参与

1.1 相同。

2 、已触发下一节点的工作项的收回

 

2.1 共同参与


问题 1 :多个工作项时谁可以执行收回操作?

workitem1 workitem2 workitem3 都可以执行收回操作。第一个工作项的收回将会导致节点 B 实例的删除,同时节点 A 重新恢复执行状态。


问题 2 :节点 B 处于什么状态节点 A 的工作项可以执行收回操作?

A 触发的节点 B 处于正在执行的状态,节点 B 所产生的工作项:

a 共同参与    工作项均未签收、挂起或手工终止

b 顺序参与     第一个工作项未签收、挂起或手工终止

c 竞争参与   工作项均未签收、挂起或手工终止

d 角色         同共同参与


问题 3 :工作项收回产生的影响?

节点 A 重新执行,收回的工作项重新执行。节点 B 重新恢复未触发状态, B 所产生的工作项全部删除。


2.2 顺序参与


问题 1 :多个工作项时谁可以执行收回操作?

workitem1 workitem2 workitem3 根据顺序可以依次执行收回操作。


2.3 竞争参与

情况简单,只有一个工作项,所以可以直接收回。


2.4 基于角色的共同参与

2.1


工作流收回模式

后续触发节点只能是人工节点(可以是多个,至少一个),否则不支持收回。目前不支持父子流程之间的收回。

一个典型的同步汇聚情况:


节点 1 首先执行完毕,但是因为是同步汇聚,所以它不会触发实际的流转;而节点 2 的完成则会触发节点 3 的执行。在这种情况下,节点 2 的工作项可以执行收回操作,而节点 1 的工作项因为后续没有触发节点而不能收回。




本类最新行业评测技巧教程学院
本类热点本日本周本月
本类推荐本日本周本月

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203