5.7.流程与业务的结合
IBpmService接口是BDF2-JBPM4模块当中提供的操作jBPM4流程引擎的核心API,这个接口的实现类配置在Spring当中,我们可以通过IBpmService接口中提供的静态常量去访问这个IBpmService接口的实现类,示例代码如下:
IBpmService实例获取方法
IBpmService bpmService=ContextHolder.getBean(IBpmService.BEAN_ID);
IBpmService接口的实现类配置在Spring中的beanid为"bdf2.jbpm4.bpmService",所以对于也需要配置在Spring中的类来说,可以通过注入的方式完成对IBpmService接口的实现类实例的获取。
在我们的业务代码当中,获取到IBpmService接口的实现类实例之后,就可以在需要的时候操作我们的业务流程,比如开始流程、完成任务、节点跳转等。在BDF2-JBPM4模块当中,如果我们需要在与流程绑定的业务页面当中查询当前流程状态图,所以可以利用BDF2-JBPM4模块当中提供的用于显示流程图状态,名为Jbpm4ProcessImage的Dorado7组件来完成,要在我们的view的工具栏当中看到这个组件,我们需要更新Dorado7 IDE规则,因为BDF2应用环境较为复杂,所以在更新Dorado7 IDE规则时要采用在线更新方式(具体可以去Dorado7IDE官方教程了解),更新完成之后,打开一个view文件,就可以在左边工具栏中的BDF2组下看到名为Jbpm4ProcessImage的Dorado7组件,如下图所示:
这个组件的用法非常简单,需要我们设置的就是其中的taskId属性,它用于接受当前的任务ID。一般来说,需要用到这个组件的地方都是具体的任务处理页面,而这些任务处理页面都是通过待办任务列表进入的,在待办任务列表当中,点击某个任务的处理页面的链接时,会在链接后面加上taskId参数,所以对于Jbpm4ProcessImage组件的taskId属性,我们一般都是通过Dorado7EL表达式从request中到名为taskId的参数,比如${request.getParameter("task")}。需要意思的是这个Jbpm4ProcessImage组件实际上会创建一个iFrame,所以我们需要将这个组件放在一个容器当中,比如Dialog中,这样在需要的看的时候将这个dialog显示出来即可。