工作流软件产品只负责业务流程的流转,流程节点上业务模块的办理,以及监控业务流程的执行。通常一套工作流管理系统,会包含流程引擎,流程设计器,流程管理中心,表单设计器,自定义表单系统,表单引擎等等。表单模块可以是可选的。一套自定义表单系统也会包含一个mvc的框架,能实现前后台的数据提交和展现,并实现了分层的管理。
当客户的应用系统集成工作流软件时,客户的应用系统本身也包含一个mvc的框架,能实现代码级别的前后台数据提交和页面功能展现。利用此mvc框架,应用系统应该完成登录,菜单,用户管理,权限管理,组织机构管理等等模块。在此基础上,再集成工作流软件产品来实现业务流。
利用工作流软件产品中的电子表单系统,也能完成登录,菜单,用户管理,权限管理,组织机构等模块。因为电子表单系统如eform自定义表单系统,本身也是一个mvc的框架,能实现前后台通讯和定制界面展现,比传统的mvc框架更方便的是,eform有可视化编辑界面功能,无需编码,通过设置属性就能快速的完成业务模块的功能。
工作流软件产品集成到struts2框架中的时候,分几个步骤来做,先将工作流软件产品的后台jar包,xml配置文件,前台的ebsys目录一起copy到struts2框架的相应目录中,先做到目录结构的集成。
如下面的struts2的一个示例工程。加上eworkflow工作流软件产品后的,目录结构:
集成后,在登录模块,登录成功后,给工作流的session变量赋值。
fcuser.xml文件映射到应用系统的用户,角色等表
做完上面的准备工作后,登录到eworkflow工作流管理中心,这些可视化的功能,可以直接将url链接挂接到应用系统中做功能模块的集成。
如果这些可视化的模块不能满足用户的需要,如我的待办任务列表,客户需要任务列表中加入更多的业务信息的显示(在流程管理中心不能先关联出应用系统的业务表),则只能应用eworkflow流程引擎对外提供的api来实现。
在struts2的dao层建立eworkflow工作流对象,得到当前登录用的待办任务列表
Environment env = new Environment("eworkflow");
Workflow wf = new BasicWorkflow(userid,env);
List tasks = wf.getCurrentTasks("2",condition);//2待办任务;3已办
......
然后对tasks列表循环,根据wfid和业务表的关联,插入业务表的列。
最后,将最后得到的tasks走struts2的框架返回到页面上,显示给最终用户。
也可以利用工作流引擎中的任务表和业务表的关联,直接得到我的待办任务表
在struts2的dao层执行sql:得到任务列表返回到页面显示给最终用户
待办任务列表的sql: