[Activiti]从理论理解Activiti

流程, 只有涉及到顺序地处理任务,就会形成流程。在工厂,会用固定的流水线来固定流程;在政府中,有一套默认的处理事情的规则。

如果一个流程是固定的,那么无论怎么规定都无所谓,即使让大家默认记住也可以,但如果一个流程需要适应动态变化的需求,那么如果每个人都需要知道流程的细节,大家就会疯的。比如:网购物流,如果要你知道 商品要流过那些站点,并且这些站点是不断变化的,我估计你也得疯。

解决办法就是:不了解物流的细节,我就在需要认为介入的时候点击一下【确认收货】等按钮,具体怎么流转才不管呢!  这就得有人专门研究物流了,怎么样的物流能提高效率。 也就是说,将 复杂变化多端的部分,交给专门的一些人来完成,其他人就不需要了解细节,社会分工就这么形成了。

软件就是:现实工作在网络上载体。 

在流程处理方面,Java有Activiti组件专门处理流程。 Activiti 是基于 BPM 的。据说是 BPM的开发者,完成后跟领导意见不合,跳槽别的公司,利用开源的BPM继续完成了Activiti,证明他是对的。现在市场上大部分都使用Activiti了,很少有人直接使用BPM。

传统软件完成流程的方法:

  1. 定义一套状态码 1234567
  2. 首先查某个状态码的数据,然后处理,处理后 通过if else 判断下一个状态码

评价:

可以很快的建立流程,可以应付固定流程需求

需求:(思考一下怎么完成)

  1. 需要动态加签,比如:为了可以申请到巨款, 采购是就会招几个大领导审批,然后财务才能批款。 有时候能需要 三个领导,有时候需要四个
  2. 流程变动,代码需要修改,原始数据怎么处理
  3. 如要给用户自定义流程,定义好后,直接可以使用
  4. ……

上面几个需求很常见,传统方法要么很难完成,要么就不可能完成。

结论:

使用Activiti来管理流程,下面 会通过具体示例来认识Activiti,尽请期待

猜你喜欢

转载自blog.csdn.net/weixin_42754896/article/details/103344985