jbpm工作流跟业务系统的结合

jbpm工作流和业务系统的结合

这一段时间一直在学习jbpm,刚刚能把临远的例子写出来,但是一个头疼的问题就萦绕在脑海中了。

 

临远提到的例子,只是简单的流程流转。让我知道了,如何获取流程引擎,如何获取代办任务,如何让完成任务等等。但是如果将这点工作流知识结合我正在做的系统,貌似工作流根本就和我的业务关联不起来。于是有了今天的话题,那就是工作流和业务系统的结合到底在哪里。

 

忽然想起以前的一个系统,先做一下简单的介绍。那个系统是做产品的,从产品创建一直到产品消亡的全生命周期的管理。在这个产品表里面有一个字段,记录的是流程实例ID,那个时候我刚入行,对于这种设计只会机械的接受,不会有过多的思考。现在想来,貌似就是我们突破工作流和业务系统结合的地方。

 

我们知道,用户登录以后,后台可以通过taskService获取到当前登录人的代办任务列表,即 List<Task>类型的对象,list中包含的是当前登录人的全部代办任务。

 

然后我们通过使用ExecutionService对象的findExecutionById(task.getExecutionId())获取到某一个任务的Execution对象。进而可以使用Execution对象的getProcessInstance()获取到流程实例对象,然后使用流程实例对象的getId()获取到当前任务对应的流程实例ID。

 

最后在查询我们的产品表,凡是属于当前登录人的代办任务对应的流程实例关联的产品,我们都可以查出来。这样,我们就可以通过这一系列的关联,最终在页面展现出来业务数据,而非简单的工作流task列表。

 

当然,我的理解是这样的,只是一个工作流入门学习者,写一些记录让自己时常看看。希望和各位一同进步。