JSP表单在工作流系统中的应用研究

时间:2022-03-24 06:00:54

JSP表单在工作流系统中的应用研究

(1.山东师范大学 信息科学与工程学院,山东 济南 250014;2.河北工程大学 信电学院,河北 邯郸 056038)

摘要:表单是工作流系统中数据的载体,为了高效灵活的定义和处理表单,展现日益复杂的工作流业务数据, 提出了JSP表单,即通过JSP标记的灵活展现和脚本语言的有效处理来展示工作流表单数据。阐述了JSP表单的定义方式及其与工作流系统的关联方法,实践证明它不但可以灵活定制而且可以任意扩展。

关键词:工作流;JSP表单;工作流引擎

中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)28-7956-03

Research on Application of JSP form in Workflow System

ZHAO Jing1, XU Fu-tian1, HAO She-ping2

(1.Dept. of Information Science and Engineering, Shandong Normal University, Ji'nan 250014, China; 2.Dept. of Information and Electrical Engineering, Hebei University of Engineering, Handan 056038, China)

Abstract: Form is the carrier of business data. In order to deal with the form efficiently and display more and more complex business data, JSP form was presented. From data was displayed by JSP tags and handled by script language. Indicated its definition and how to associate with workflow process. Practice proves that it can be customized flexibly and extended arbitrarily.

Key words: workflow; JSP form; workflow engine

根据WFMC(工作流管理联盟)的定义,工作流即自动运作的业务过程的部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递[1]。

在实际应用中,早期的工作流产品预先定义好若干表单模板,用户使用时在模板中进行选择。这种方法简单、易实现,但不够灵活,很难满足用户的需求。随着发展,研究人员提出了一种更为灵活的方式,就是将表单视为多个表单项的组合,首先定义好若干表单项,用户根据需要通过添加和删除表单项,从而灵活定制表单。但是,随着业务的不断发展,业务表单需求的复杂度随之提升,并且受表单开发工具的限制,开发工作变得不够便捷。基于上述原因,本文提出在工作流系统中使用JSP表单,使得用户可以采用任意形式的JSP标签定义JSP页面来展现数据,并对JSP表单的应用进行了阐述。

1 工作流系统简介

工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。工作流的3个要素为路由(rute)、规则(rule)和任务(role)。路由是传递时所通过的路径,规则是信息如何路由和路由给谁,任务是工作流在某一状态所做的具体操作[2]。

工作流系统通过对业务、公文流转进行分析及抽象,对不变和变化的部分进行划分,用户可轻松地通过可视化的工具对事项的流程、流程环节涉及的人员(角色)、流程环节的表单、流程环节的操作进行修改,从而能够应对不断变化的需求,而工作流管理系统通常提供的流程监控、查询统计模块更大程度地为用户优化流程提供支持,以提高企业、政府的工作效率。

工作流系统从业务交互逻辑、业务处理逻辑以及参与者三个方面解决问题,业务交互逻辑对应业务的流转过程,故在工作流系统中相应提出了工作流引擎、工作流设计、流程操作以解决业务交互逻辑的问题;业务处理逻辑对应业务流转过程中的表单、文档等处理过程,故在工作流管理系统中相应提出了表单设计工具、与表单的集成来解决业务处理逻辑的问题,参与者对应流转过程中各个环节对应的人或程序,并且通过与应用程序的集成来解决参与者的问题。

2 JSP表单在工作流系统中的应用

2.1 JSP表单与工作流的结合

JSP表单是指开发人员自己编写JSP页面,设置业务数据的展现方式和处理方法,然后挂接到流程中的一种表单实现方式。通过这种方式,开发人员可以根据实际的业务需求定义适合的展现方式,克服了定义表单或表单项后再跟据实际数据选择表单的弊端,在很大程度上能够提高灵活性。

理想情况的工作流与表单结合模型如图1所示,在环节的属性中设置相应的表单ID以关联唯一表单[3],在表单的定义中设置请求的处理方法。

根据XPDL规范,工作流系统中表单和工作流的结合可以抽象为以上模型。实际应用可以在以上模型的基础上加以扩展。包作为容器存放流程定义,一个流程可以包含若干个环节,每个环节可以通过相关属性关联不同的表单[4],也可以多个环节甚至整个流程关联同一个表单。表单中定义表单数据的展现方式和处理方法。访问请求可以为增加表单、修改表单、查看表单等各种操作请求。

在实际定义流程时,指定一个与流程相关的JSP表单供全局使用。设置每个环节的相关属性时,默认关联的是全局JSP表单,可以修改默认设置,重新指定每个环节本身对应的表单。修改了关联的表单设置后,任务请求列表会相应地发生变化,显示新表单中定义的请求。

为了使工作流引擎能够驱动JSP表单流转,首先设计一个任务处理转向工具。总体架构图如图2所示。

在人机交互端可以发送任务请求,包括新建任务,待办任务,已办任务,结束任务等。在任务请求处理方法中,根据任务请求中的流程定义和环节定义的属性信息,可以读取在流程定义中配置的关联url。在任务转向处理页面,根据读取的url找到自定义的业务处理方法。在自定义的业务处理方法中,完成两部分工作,首先是保存表单数据到数据库,其次是调用工作流引擎提供的接口发起和发送流程,推动表单的流转。

在流程定制的时候,通过环节的相关属性配置环节关联的表单。为了方便流程定制时读取表单信息,采用使用XML格式配置文件读取的方式,把写好的业务页面,配置到一个统一的表单配置文件中去。配置文件的结构如下所示:

每个元素都有相应的属性,其设置如下:

1)元素form

属性id表示表单的唯一标识;

属性name表示表单的显示名称;

属性tableName表示表单对应的数据库中的数据表名;

属性primaryKey表示数据表的主键。

2)子元素Request

属性id表示在此Requests对象中的唯一标识;

属性name表示在请求的显示名称;

属性url表示请求的url地址。

3)子元素Field

属性id表示在此Fields对象中的唯一标识;

属性name表示在域的显示名称;

属性dataType表示数据类型;

属性description表示描述;

属性columnName表示对应的数据表中的列名

2.2 工作流系统中表单的处理

在工作流系统中,为了使表单能够有效地在各环节之间流转,还需要一系列的服务模块。为了流转上面定义的JSP表单,相关的系统模块如图3所示。

表单设计:定义表单,设计数据展现形式和表单处理方法。

流程设计:定义流程,设计环节和迁移条件。

规则引擎:根据流程定义的迁移规则和相应的表单数据计算流程路由。

创建流程:创建流程实例,发起一个流程。在创建流程实例时,系统根据流程定义时使用的表单唯一标识生成表单的实例。用户输入相关数据后,经过验证后先存储到数据库中,并将迁移所用到的数据写入上下文变量中,然后调用工作流引擎接口查找下一个环节并初始化。

副本传递:在工作流的运行过程中,要实现环节的迁移必须具备相关的数据,使工作流引擎可以找到流程定义时定义的下一环节,并能计算迁移条件,决定应该启动的下一环节,这些数据都是通过副本进行传递。

保存数据:用户在使用表单时,会在各个表单项中输入具体的数据。这些输入数据都必须被保存下来,以供以后的环节查询和修改。在数据库中保存表单项的输入的同时,还要根据用户的信息记录任务的创建人、创建时间等。

结束流程:当执行完某一流程实例时,保存结束信息到相关数据表,以备其它模块查询使用,清理流程中生成的数据,关闭相应的实例与副本、并记录相应的日志。

3 结论

本文提出了一种新的表单-JSP表单,并介绍了其处理过程。通过这种方式,业务模块的开发人员不必过多关心工作流的内容,实现表单和流程尽量解耦合,通过简单的挂接就可以实现流程和业务数据的关联。JSP表单以一种非常灵活的方式根据实际业务需求展现业务数据,不必局限于固定的表单模板或者表单项,满足了业务数据日益复杂的需求,上述的工作已经在实际的项目中得到了实现,但是JSP表单中数据的打印等相关扩展应用有待进一步研究。

参考文献:

[1] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001.

[2] Baetens T.The State of Workflow [EB/OL].(2004-05).[2009-05-01]..

[3] Workflow Management Coalition[C].WFMC-TC-1025 Process Definition Interface:XML Process Definition Language.Workflow Management Coalition,2005.

[4] 黄兰,余阳,李长森.XForm在工作流管理系统中的应用研究[J].计算机工程与应用,2007,43(6):81-84.

[5] 唐文忠,莫伟栋.基于共享模型的工作流表单系统设计[J].北京航空航天大学学报,2008,34(4):293.

[6] 田芳.工作流管理系统的关键技术研究[D].沈阳工业大学,2008.

上一篇:基于RBF的倒立摆摆起角度控制研究 下一篇:基于ActionScript的双语动态模拟演示教学课件...