驰骋工作流引擎JFlow与activiti的对比之2种取消模式

1. 取消模式(Cancel Activity)

就是将某个活动取消。

JFLOW中,类似与删除流程操作相同。

不能删除:不允许删除。

逻辑删除:仅仅将此流程标记为删除状态,数据仍然存在节点表单与流程报表中。

记录日志方式删除:删除节点表单、流程报表数据,并记录备案。

彻底删除:彻底清除该流程的所有数据,包括该工作实例的节点表单数据、流程报表数据、轨迹数据、退回、移交操作信息。

让用户决定删除方式:显示对话框,让用户选择删除方式。

2. 取消实例(CancelCase)

如果一个活动产生了多个实例,那么仅仅撤销这个活动是不够的,要将他所引起的所有实例都移除才行。

JFLOW中的解决方案,参考 取消模式。

总结

clip_image002[5]

共同点:

1. 嵌入式的工作流引擎,降低集群复杂性。

2. 严格而灵活的流程版本控制

3. 支持多种数据库

4. 支持多种流程设计模式

5. 成熟度高的开源工作流,具有可靠的稳定性和性能。

区别:

1. 流程定义方式:

ACTIVITI :采用xml的方式,通过拼字符串的方式完成,所以流程定义时的结果不直观、不方便。

JFLOW:拥有自己的流程设计器和表单设计器,画布性质的,所见即所得。包括流程运转条件、方向条件等。

2. 面向使用对象:

ACTIVITI :由于设计方式,只能面向流程开发人员。

JFLOW:既面向流程开发人员又面向业务人员,即使不会编程,也可以进行流程设计。

3. 节点类型:

ACTIVITI :开始节点、结束节点、自动节点、任务节点、fork分支、join联合等多种节点。通过多种节点的配合以及事件等使用,组成流程。

并且,开始节点必须有一个向外的流向。

JFLOW:普通节点、分流节点、子线程节点、合流节点。

开始节点属于普通节点,可以做为一个单节点的流程,没有流向。

结束节点由CC自动判断定义。

CC中的循环是通过方向条件判断,同步、聚合等是由合流节点。

4. 对复杂流程的支持:

ACTIVITI :不适合非常复杂的流程,他只是提供了一套丰富的工作流模型,可以让你去做任何事情,即便违反工作流规范。

JFLOW:通过节点运行规则、方向条件、丰富的事件、运行模式和表单解决方案,完全满足复杂的流程运转,对任何情况,都是可控的。

5. 对历史数据的挖掘:

ACTIVITI :对历史数据的支持不是很好,比如,子任务不能写入历史之类。当然,通过修改代码与BUG,也是可以实现的。

JFLOW:具有轨迹功能,即对某一个流程运行产生数据的保存,流程运行中,可以查看相关节点的处理信息与流程数据,流程结束后也可以。

原文地址:https://www.cnblogs.com/mengjuan/p/10169009.html