JBPM通用流程设计方案


前言:

任何系统中的流程管理,都少不了参与人员、流程相关信息及文档、审批结果,要设计一个合适的通用管理流程的方案,肯定少不了需要满足以上的要求,而对于弹性要求比较高的系统中,可能还需要加上一点,允许自定义流程及自定义流程的表单,即应该为可扩展的,普通的用户也可以参与流程的设计,即对于非开发人员来说,这种流程参与要求系统有着更高的易用性。

JBPM4目前已经简化了流程管理中的很多方面,如人员的参与(有用户组,用户及swimlane),
流程的相关信息可以使用流程的启动参数携带,自定义流程及表单则需要使用其他的技术进行辅助开发(如flash,或javaFx是两种不错的选择)
下面基于这种设想进行系统的设计及实现:

一、流程的设计:

我们的流程需要先使用jbpm eclipse的设计器进行,用它来生成流程的定义(主要为xml文件)[后面可以采用java applet技术或javafx技术进行自定义流程xml]

二、发布流程
 发布流程至系统中成功发布后,显示流程的示意图,并且可以基于这个示意图设置任务的处理人员和任务表单。

    发布至系统中的流程需要进行分类管理,并且能提供一些流程说明及备注之类的相关信息,这跟生活中的很多流程一样,特别是政府办公,去政府办理任何一事务时,都需要提交材料,经过不同的部门的相关负责人进行处理,最后才进行归档,并且打印相关的处理结果给申请人。所以在设计这个操作界面时,需要考虑操作的方便性,允许针对每个任务加上用户或用户组(或角色)。Jbpm提供在设计流程时指定用户或角色(我们称之为前绑定用户),也提供在运行的时候,指定由哪一个用户或角色来处理(我们称之为后绑定用户)。为了系统的灵活性,我们使用后绑定用户。所以有了如下的设计:
表设计如下所示:


 

表说明:

pro_type为流程分类,目前仅是为只有一级目录。

pro_definition为流程定义,里面有一个比较重要的部分就是存储jbpm的发布流程的id。加上这个表目的就是为了可以更方面描述流程的方方面面,虽然jbpm也提供了流程的定义描述,不过并不详细。

pro_user_assign为流程的后面绑定,后面会根据当前流程跑至哪一个任务,而会自动把流程分配至哪一个用户去或角色来处理。


界面如下所示:
 



三、流程表单设计:
表单本来是不属于由流程中来进行管理的,不过流程中的任务需要表单的进行相关数据显示或流程操作(如流程的跳转),但是由于表单会由系统使用的ui不同而实现会由不同,所以Jbpm并不理会用户自己的表单如何实现,只是提供对于流程实例或任务实例的数据存储方式,使得流程在运行过程中可以读取来自用户的数据。因而系统要实现自定义的表单功能,即需要实现自己的ui上的自定义表单的功能。而对于数据的存储, Jbpm4已经提供了很好的实现方式。

在本系统中,由于使用了Ext3的功能,所以本人决定使用Velocity的表单模板+后加载的extjs来实现自己的自定义表单。

表单的自定义实现会在下一篇文章中作介绍。有兴趣的可以多多交流。广州宏天软件也会为大家进行技术上的咨询及服务。

猜你喜欢

转载自nongyuxia.iteye.com/blog/1850072