工作流软件系统做为一个开发组件,只实现了工作流引擎,工作流的建模,流程实例的创建,流转等等。不包含整体的业务系统,当集成到用户的应用系统时候,需要作为组件的方式集成。
集成的方式有多种,一般来说,用户系统是首先要集成的,应用系统的一般都会有自己的用户系统,包含,用户,角色,权限等。这些不包含在工作流软件系统中,但是在工作流软件系统中又一定会用到,流程节点的执行权限等,都离开用户角色权限等的设置。因此用户系统的集成是必须要做的。
1.用户系统的集成
采用映射表的方式,在 工作流系统之三十四 集成用户系统 http://www.cnblogs.com/webreport/archive/2011/02/14/1954084.html有详解
2.工作流软件系统功能的集成
工作流软件系统的可视化可操作的功能模块一般都会包含:
业务流程设计器,业务流程建模管理,业务流程版本管理,业务表单(电子表单)管理,业务流程实例的发起,跟踪,监控.....
任务管理,我的待办任务,我的已办任务,我的抄送任务,我的流程实例......
这些都会提供可视化的可操作的功能,和用户的应用系统集成,可以将这些可视化的功能模块直接集成。
可视化的功能模块,直接将url挂接到应用系统中。例如,业务流程设计器,将打开业务流程设计器的url作为菜单,定义到应用系统中,在应用系统中就可以直接使用。(当然流程设计器的前后台代码类等都需要集成到应用系统中)
3.调用工作流引擎的接口api方式的集成
利用流程引擎对外提供的接口api函数来驱动流程。例如,启动指定的流程实例,执行指定的动作,获取当前用户的待办任务列表等等。
工作流引擎内部实现抽象的业务流程建模,以及抽象的业务流程节点的流转,对外以接口api函数等的方式提供调用。流程管理中心的可视化模块也是利用这些接口函数来实现的。
当流程管理中心提供的可视化操作模块,不能完全满足用户的需要时,可以通过调用流程引擎的api的方式,定制适合自己的业务模块。
例如启动一个业务流程实例就有两种方式:
1.先启动流程实例,得到流程实例id,再进入流程的第一个节点,运行第一个节点关联的表单。当表单提交时,将wf_id一起写入业务表。
2.先打开流程第一个节点的业务表单,当表单提交时,再启动流程实例,获得流程实例id,和业务表单数据一起提交。然后再运行完流程的第一个节点,使得流转到第二个节点。
这两种方式的启动,在流程管理中心都会有直接的模块对应。但是当这两种方式还是不能满足具体的需要时,可以结合自己的实际+调用流程引擎api的方式,定制实现。
我的待办任务,已办任务,任务管理等信息,等等可视化的模块,列表项,更多的是反应流程管理,业务数据项很少,在集成的时候,用户也是经常需要列出更多的业务数据。这个也可以通过调用流程api的方式来达到。
业务表单的提交+流程的动作执行:当工作流软件系统集成定制业务表单的时候,需要将表单业务数据的提交和流程的流转放在同一个事务中。