activiti
ctiviti与业务系统的交互可以分为两种情况:嵌入式、平台式
咖啡兔: 如果把Activiti作为一个通用的流程中心的话,不能像嵌入式一样直接执行一个Java类,这是就需要使用网络协议的方式调用业务系统,比如每一个系统是一个租户,在流程中心为租户配置一个回调URL,前提是各个业务开发人员在设计流程文件时配置一个平台提供的监听处理器并设置传递的参数。
咖啡兔: 嵌入式的交互比较容易,可以在流程中配置某个活动的监听器(流程启动、流程结束、任务创建、任务完成等),监听器可以执行一个Java类或者执行一个Bean(实现了Activiti的接口),当 触发时会调用相关的业务功能。
咖啡兔: 这个有点SAAS模式了,把Activiti作为一个流程中心对外通过接口提供服务,我在《Activiti实战》中简单介绍过这部分内容。Activiti有租户的概念,不同的系统数据虽然保存在一个DB中但是有一个标示是用来区分各个租户的;Activiti与业务系统的交互可以分为两种情况:嵌入式、平台式。
什么情况下需要使用到工作流
什么情况下需要使用到工作流,什么情况下只需要几个字段即可,工作流比直接更新字段有什么不同
咖啡兔: 如果一个业务很简单,3、5个状态就能搞定不需要保留痕迹没必要使用工作量,如果业务流程复杂涉及到审批就不是几个状态能搞定的了(复杂的流程有几个甚至上百个节点,或者有流程间的引用),早期有状态机的实现,后来有了BPMN1.0,现在有了BPMN2.0规范,逐步在发展,目的就是规范、高效完成业务流程处理,让流程引擎驱动人,而不是人主动去根据业务的状态去查询需要做的事情。
管理系统中的流程有两个概念:审批流、业务流
在OA系统中用的比较多的是审批流,ERP系统中用的比较多的是业务流
业务流!!!???
可以用虚拟用户来虚拟程序调用。 (如支付结果的回调)
业务调用,还是流程调用
业务主调
流程主调
直接调用
把一些业务逻辑放在监听器里面解决的