发明内容
基于此,本发明的首要目的是提供一种业务流程管理支持方法,该支持方法能够兼容多种工作流,有效地整合利用工作流资源,保持与工作流引擎的同步。
本发明的另一个目的是提供一种业务流程管理支持方法,该支持方法能够有效地整合利用多种工作流引擎资源,且控制方便,实现简单,成本低廉。
为达到上述目的,本发明是按照如下方式实现的。
一种业务流程管理支持方法,其特征在于该方法包括如下步骤:
A、选择工作流引擎,
B、对工作流引擎接口进行封装;
所述的封装,是采用接口映射的方法,在接口中定义工作流引擎的各种接口和工作流模块接口,并将工作流引擎的各种接口与工作流模板接口的接口属性进行映射。而实现该工作流模板接口的时候是利用工作流配置文件来进行读取工作流引擎的各个接口来进行实现。
例如:我们定义了工作流模板接口,定义了启动流程(工作流引擎利用的流程),执行任务,结束流程(工作流引擎利用的流程)的方法,定义了工作流配置文件,定义了不同工作流引擎的各种接口名称(由于不同工作流引擎的接口名字不一定一样,但做的事情是一样的,所以我们专门对各种不同工作流引擎的接口名字与工作流模板接口的实现类中的接口属性进行了映射,使得适应不同工作流引擎,再通过动态的生成spring配置文件,其中主要是定义各种接口bean及其实现类)。工作流模板接口的实现类中定义了工作流引擎的各种接口属性,接口属性通过spring的bean来取值,通过接口属性来实现启动流程,执行任务,结束流程的方法,为了能够更好的适应各种工作流引擎,我们自己定义了流程的所有对象(定义所有流程结点、流程实例、流程任务的class对象),通过hibernate自动生成需要的数据库,在工作流方面我们用自己定义的对象来对工作流引擎进行操作。
C、对WEB流程进行定义;
D、对WEB流程进行管理。
本发明是针对工作流的支持器,主要应用于需要工作流支持的各种应用场景。其工作流引擎的选择,可以是选择目前常用的工作流引擎,或者根据自己的需要进行添加。
所述的WEB流程定义,是指选择流程中需要定义的活动(包括该活动的动态表单)以及子流程,按一定的顺序组织起来 。
定义的规则:由于各种工作流引擎利用的流程定义中的各个结点不一定一样,所以在前面的工作流配置文件也对该流程定义中的结点名字进行了映射,保证不同工作流引擎对应自己的流程定义。定义的结点主要有:开始结点(有且只有一个),结束结点(有且只有一个),判断结点,分支结点,任务结点,子流程结点。其中的任务结点需要选择表单(动态表单),选择执行人员(个人任务,多人任务)等等。为了使得定义的流程能够适应不同的工作流引擎,尽量用英文来书写各个结点名字和流程名字。Web流程的定义主要指的是可以在浏览器中对流程进行定义。
所述WEB流程管理,是指列出所有流程以及流程实例,查看各个流程的执行状况及其动态数据。
本发明通过对工作流的整合,解决工作流引擎的变化而造成IT成本上升能够有效地提高企业运营效率,改善企业资源利用,保护企业IT投资,集中精力处理核心业务,与流行的工作流引擎保持同步,优化并合理利用资源,减少工作流引擎与企业之间的磨合,提高其易用性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1、图2所示,对于实现本发明的方法,包括通过工作流模块选择工作流引擎、对工作流引擎进行封装、对WEB流程进行定义和对WEB流程进行管理几个步骤,其中对于工作流引擎的选择相对比较简单,可以采用选择现有的工作流引擎,也可以根据自己的需要进行添加。
一个重要的问题是对选择的工作流引擎所提供的接口进行封装,从而达到流行的工作流引擎的支持,利用工作流引擎对工作流进行管理,与流程有关的数据一概用动态表单来处理。对于工作流模块,首先定义工作流配置文件,再对各种不同工作流引擎的接口名字与工作流模板接口的实现类中的接口属性进行了映射,使得适应不同工作流引擎;然后通过动态的生成spring配置文件,所述spring配置文件主要是定义各种接口bean及其实现类。
工作流模板接口的实现类中定义了工作流引擎的各种接口属性,接口属性通过spring的bean来取值,通过接口属性来实现启动流程,执行任务,结束流程的方法,为了能够更好的适应各种工作流引擎,我们自己定义了流程的所有对象(包括定义所有流程结点、流程实例、流程任务的class对象),通过hibernate自动生成需要的数据库,在工作流方面通过自己定义的对象来对工作流引擎进行操作。
由于各种工作流引擎利用的流程定义中的各个结点不一定一样,另一个重要的问题是在前面的工作流配置文件也对该流程定义中的结点名字进行了映射,保证不同工作流引擎对应自己的流程定义。定义的结点主要有:开始结点(有且只有一个),结束结点(有且只有一个),判断结点,分支结点,任务结点,子流程结点。其中的任务结点需要选择表单(动态表单),选择执行人员(个人任务,多人任务)等等。为了使得定义的流程能够适应不同的工作流引擎,尽量用英文来书写各个结点名字和流程名字。Web流程的定义主要指的是可以在浏览器中对流程进行定义。
工作流的结构:采用传统的MVC结构。
功能:工作流的定义,执行,结束。
结合图3所示,动态表单结构:采用传统的MVC结构。动态表单的功能为:动态表单的定义,查看,修改以及动态表单数据的存储和查看。
动态表单主要分成表单的自定义和表单数据的存储两部分实现,表单的自定义可通过两种方式生成:
1、动态表单可视化生成器:使用javascript技术实现鼠标拖放的方式任意组合web组件。
可以任意设置表单元素的颜色和显示风格,随意调整表单元素的长宽高,进行个性化的表单排版。
随意添加和删除表单元素,适应用户需求的变化,动态生成适合用户需要的静态页面表单。
并且封装了一些特有常用的控件,如:日期控件和附件控件,很方便生成各种用途的表单,如请假申请表,项目申请表等,达到灵活、快捷、个性的特点。
2、动态表单XML解析器:通过xml(可扩展标记语音)把表单的元素、展示样式及排版编制成xml文档,通过动态表单XML解析器自动生成静态页面表单。
在本发明的具体实施中,动态表单通过解析特定的xml文件(针对动态表单)生成对应的jsp文件。
具体地说,解析XML文件及生成jsp文件的具体步骤为。
1、用xml语言,按标识(标识是对表单元素做记号,作用是为了便于识别)定义表单的元素及颜色大小长度等所有html属性。
2、用开源组件digester解析xml, 解析表单的元素,解析表单的排版布局和表单元素的风格,解析自定义组件(如日历事件和附件事件等),解析绑定的特定事件(比如回车事件等)。
3、识别解析出来的表单元素的标识,并按排版布局重组表单。
4、解析绑定的特定事件,并载入表单绑定的特定事件,载入表单数据,对号填充表单数据项。
5、动态生成表单的html代码,输出到jsp页面。
通过动态表单,这样能实现表单数据的随意组合和拆分,并建立与表单表现层的索引关系。实现表单数据层与表单显示层分离,减少表单的耦合关系,使得相关表单的数据转换后能够完美的展现出来。
因此,本发明配置文件来管理工作流引擎的接口,克服了不同工作流引擎的接口不一样的问题。
为了解决动态表单的这一问题,定义了表单的xml格式。
本发明的优点为:易于利用。当需要工作流支持,只需要将发明加入工程就可以了。易于扩展。当需要个性化工作流时,可以扩展需要的接口就可以了。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。