hfbpm如何集成到原有系统中
我们通常把hfbpm的用户分为两类,一类是直接使用hfbpm开发平台开发业务系统的用户,一类是把hfbpm集成到自己原有系统的用户。本文重点介绍第二种情况。
Hfbpm开发平台为集成用户提供了接口和业务界面,用户可以直接使用这些模块也可以调用接口重新实现这些模块。主要包括流程设计器、流程引擎和表单管理等。集成用户一般都拥有自己的完善的业务系统,这些业务系统已经具备了组织机构、业务模块等,集成工作就是要把流程引擎加入到系统中。
初期我们建议使用hfbpm开发平台的流程设计器和表单管理,这样减少集成的工作量和难度,把集成重点放在任务列表和业务表单的集成上。把hfbpm开发平台作为流程配置工具,这在使用上也是合理的。
那么集成的重点就是组织机构、任务列表和业务表单的集成。为了方便介绍,我们把原有系统称为A系统。
A系统有自己的组织机构,hfbpm也有自己的组织机构。如下图:
如何让hfbpm读取A系统的组织机构,是集成要做的工作,我们通过修改扩展类库HF.WorkFlow.Extensions和HF.Authentication.Data来完成这件事情。集成原理如下图:
具体的工作就是修改扩展类库中的方法,使其读取A系统中的数据表和视图,同时修改hfbpm中与之有关的存储过程。这样就可以完成组织机构的集成。
组织机构集成完毕后,再来集成任务列表,所谓任务列表就是展现待办任务的界面,由于A系统自成体系,界面风格需要集成处理,不能再使用hfbpm的任务界面。集成方式是调用hfbpm提供的类库接口,主要实现以下界面,工作台(我可以发起的任务),任务列表(待办任务、我发起的任务、我参与的任务),流程历史,流程监控。
这部分的集成比较简单,用户可以根据自己的界面风格随意设计。
任务列表集成完毕后,再来集成业务表单,所谓业务表单是指业务功能界面,例如一个销售单,由于A系统已经有了自己的业务界面,那么我们在集成的时候不要修改原来的界面,只是在读取数据方式上做一下修改。修改的目的使任务列表能够调用业务界面,加载业务数据。传统的业务界面加载数据根据业务id,如下图:
集成后的业务加载如下图:
这就需要在原业务表中增加存放流程实例id的字段。这样就实现了引擎数据与业务数据的连接。
由于我们还要在打开的业务表单上提交流程,所以还要在界面上实现提交流程的按钮,提交流程的方法也是调用系统提供的接口。完善一个业务表单还需要考虑,退回按钮,动态选择下一步处理人,召回任务等。总之,集成业务表单的过程并不是需要修改原有的业务逻辑,只是改变读取和提交的方式。
详细的集成过程请参见《HFbpm3.5系统集成文档.docx》