




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于工作流系统的表单研究摘要:描述了基于工作流系统中的表单定义以及处理的规则。基于这些规则,用户可以自由定制应用在Web 上的基于HTML的表单,并灵活地控制表单的显示、数据项之间的运算以及工作流的处理逻辑。通过不同的规则组合,可以实现一系列复杂的功能,完全能够满足多分支、多路径的工作流系统对表单定义处理灵活性的要求。关键词:工作流;表单;规则 Research Of Form Based On Workflow System Abstract: In this study, this paper descibes a set of rules which are designed for form definition and process in based workflow system.Based on these rules,user can not only define HTML-based forms freely but also control their display,operation,and process logic flexibly.By combining various rules,user can realize a series of complicated functions, which can fully meet the requirement of form definition and process in multi-branch workflow system.Key word: workflow;form;rule 0 引 言工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列预定义的规则来传递文档、信息或任务,并使得此过程在不同的执行者之间自动传递与执行。很多现实生活中的操作,例如公文处理、购物消费等过程,都具有典型的工作流特征,可以使用工作流系统加以实现。在基于工作流系统中,如何灵活实现表单的定义和处理,是直接关系到系统性能的重要因素。目前这方面的研究文献中,有些仅仅给出了表单信息模型的定义,而没有相应的表单处理规则;有些虽然给出了表单处理规则,但这些规则过于简单和抽象,难以满足实际工作流系统的需要。为了解决上述的问题,在本文中提出了一种新的表单定义与处理规则,并对规则的应用做出讨论。1 表单的定义表单中包含了用户在各个节点需要察看和填写的内容。在实际的应用中,由于内容的不同,用户可能使用的表单是多种多样的。有些工作流产品会预先定义好一组表单模版,然后限定用户在这些模版中进行选择。这种做法虽然容易实现,但缺乏灵活性,难以满足用户需求的变更。另一种更为灵活的方式,就是允许用户按照需求自己定义表单,这种方式虽然在实现上较为复杂,但能够满足绝大部分的用户需求。在基于Web的工作流系统中,可以将表单视为一张HTML页面;用户对工作流的处理过程,就是该页面在多个用户之间传递,填充数据的过程。基于这一处理方式,可以将表单视为多个表单项的组合,每一个表单项都是用户需要填写的内容。通过一系列的要素,可以对表单项进行定义。2 表单在工作流中的应用当用户定义完表单后,就可以在工作流中使用这些表单了。为了简化起见,此处讨论每个工作流中只允许使用一张表单的情况。在这种情况下,用户只需要为一个新定义的流程指定一张表单即可,而不是为每一个节点都指定相应的表单。可以证明,在不同节点使用多张表单的工作流,是可以转换成为在所有节点都使用同一表单的工作流的。假定某一工作流中包含了S个节点(N1,N2,.,Ns),其中节点Ni所使用的表单Fi中共含有Ti个表单项(Mi1,Mi2,.MiTi),则我们可以重新定义一张表单F,其中包含的表单项为Mij,其中i=1.S,j=1.Ti。在每个节点均使用表单F,并且定义规则如下:当且仅当在节点Ni,表单项(Mi1,Mi2,.,M iTi)是可用的。在此新规则下的工作流与原有的工作流等价。21 表单的运算规则根据不同的需求,可以对上述的规则进行进一步扩展,使之不仅仅控制表单项的显示。例如,通过引进一系列的运算规则,可以实现表单项之间的运算:1)四则运算:可以实现数值型表单项之间的加减乘除等运算。2)字符串函数:实现文本、字符类表单项的常见字符串操作,例如合并、取子串等等。3)求和运算:对于同一个表单项的多个副本,求这些副本中的同一个表单项内容之和。4)均值运算:对于同一个表单项的多个副本,求这些副本中的同一个表单项内容的平均值。5)极值运算:对于同一个表单项的多个副本,可以实现数值、文本、日期等表单项在所有副本中取最大值、最小值的处理。为了进一步的需要,极值运算不仅仅返回表单项的值,还可以返回拥有该极值的副本的ID。6)取副本:对于同一个表单项的多个副本,可以取出其中的某一个副本进行操作。7)删除副本:删除多个副本中的一个。8)赋值$运算规则的结果,可以赋予某一个表单项。上述只是一些简单的运算规则,可以根据需求的不同来决定引入哪些规则。22 表单的逻辑规则 如果需要,也可以在运算规则之上再定义逻辑规则。执行分支的控制或更复杂的逻辑:1)条件规则:根据表单项的内容,来判定某一条件是否成立。根据表单项内容类型的不同,可以采用的条件规则也各不相同。例如对于数值类型,可以定义=、等条件;对于字符串类型,可以定义=、包含、不包含、以.开头、以.结尾等条件。2)AND规则:定义两个条件之间的关联为与关系。3)OR规则:定义两个条件之间的关联为或关系。4)NOT规则:定义对某个条件的结果取反。5)IF-THEN-ELSE 规则:定义判断条件,如果条件满足则将工作流导向不同的分支。6)SWTICH-CASE规则:定义判断条件,如果条件满足则将工作流导向不同的分支。7)输出控制规则:可以使用此规则来控制输出的内容。8)输入控制规则:此规则控制输入的多个表单副本、当满足一定条件后开启下一步的操作。 对于较为简单的、单线的工作流系统,上述的逻辑规则并不必要。但是对于复杂的、多分支的工作流系统来说,逻辑规则的存在是必不可少的。只有通过这些规则,才能够对表单在不同分支所产生的多个副本进行控制和管理。23各种规则的应用根据上面所描述的显示规则、运算规则和逻辑规则,可以将工作流中的节点划分为以下三种节点:1)用户节点:此类节点用于对用户的显示与交互。显示规则与部分逻辑规则在此节点发挥作用,控制用户所见的表单。用户节点的输入和输出都是唯一的。2)逻辑节点:负责逻辑的控制,为工作流做出判断,传递相应的副本到工作流所流向的节点。逻辑规则在此节点发挥作用。 逻辑节点可以具有多个输入和多个输出。3)运算节点:负责表单内容的运算。运算节点可以接受多个表单副本,根据这些副本的内容来生成新的、要输出的副本。这类节点主要使用运算规则,可以拥有多个输入和多个输出。使用上述的三种节点,可以非常灵活地定义各种复杂的工作流过程。在一些工作流系统中,会设置专门的投票节点来处理从多个节点汇总而来的表单副本。例如当多于半数的表单副本选择某一选项时,则流向某一节点。在我们的定义中,不需要使用专门的投票节点,只要使用一个运算节点与一个逻辑节点即可实现此功能(图中代表用户节点,代表运算节点,代表逻辑节点,下同):如图2所示,在表单中可以将投票所使用的表单项定义为单选项或者下拉菜单,例如0:反对 1:赞成。各个用户节点的表单副本提交到运算节点后,执行如下规则:图2 例一: 实现投票功能1)对投票表单项求和。2)将求和的值赋予输出表单中得某一表单项。此表单项可以是一个用户可见的表单项,也可以是一个专为存储参数而使用,在任何节点都不可见的表单项。3)为输出表单的其他项赋值。4)提交表单。在逻辑节点,就可以根据运算节点所得到的和(按照上面的定义,这个和其实就是赞成者的票数)进行判断,以决定下一步的走向:IF 赞成票数=2 THEN GOTO U4 ELSE GOTO U5END IF上面给出的是如何实现投票功能的例子。下面我们给出另一个例子,描述使用上述节点如何实现竞标功能。竞标功能,就是在多个表单中,根据某表单项的值,来选择让哪一个表单流向下一节点。与上面的例子类似,我们也可以使用一个运算节点来实现这一功能。图3 例二:实现竞标功能在运算节点C,各个用户节点的表单副本提交到运算节点后,执行如下规则:1)取指定表单项的最大,最小值,返回该值所在的副本ID。2)根据ID取出此副本。3)将此副本赋予输出副本。4)提交表单。 将多个逻辑节点与运算节点结合使用,可以实现更为复杂,功能更为强大的工作流过程,以应对各种各样的环境。24 工作流系统中表单的处理在工作流系统中,需要一系列的模块来为上述的表单和规则服务,使之能够有效地运转。与上面所描述的表单与规则的处理相关的系统模块如图4所示。 表单定义:负责上述段落中所描述的表单的定义。 流程定义:负责流程的定义和规则的定义。 表单生成器:负责表单的自动生成。 逻辑规则解释器:在逻辑节点,由逻辑规则解释器根据当前节点的逻辑条件进行处理。图4 系统框架图运算规则解释器:在运算节点,由运算解释模块根据当前的运算规则进行处理,得出相应的结果。启动流程:负责工作流的启动。当工作流开始运行时,系统根据工作流所使用的表单建立表单的实例。在工作流的运行过程中,根据表单的定义以及工作流中对表单在当前节点的描述,为用户动态生成表单。用户的输入内容在通过有效性验证后存储到数据库中,由工作流引擎将其提交到工作流中的下一个节点。表单的实例是在某一用户启动一个工作流时建立的。数据库中除了要记录当前工作流的信息以外,还要根据用户的信息记录实例的创建人、创建时间等。副本传递:随着工作流的逐步执行,在每一步都可以为当前的实例建立副本,保存当前节点的用户输入。在单线的工作流系统中,可以使用单一的实例保存整个过程中表单的值,但是在多分支的工作流系统里,必须使用单独的副本来为每一个节点保存所产生的值。副本的总数量是由工作流图中的节点间路径总数所决定的,同时存在的最大副本数量是由最大分支数所决定的。在这种情况下,两个节点之间的数据传递可以通过传递表单副本的ID来实现。数据存储与管理:用户在使用表单时,会在各个表单项中输入具体的数据。这些输入数据都必须被保存下来,以供下一个节点的用户使用。在数据库中保存表单项的输入。结束流程:当某一个流程执行完毕后,按照预定义的规则结束该流程,清理流程中生成的数据,关闭相应的实例与副本、并记录相应的日志。 3 结束语本文通过所描述的逻辑规则以及运算规则,我们可以以一种非常灵活的方式对工作流进行描述和定义。在这种方式下,用户可以定义较为复杂的工作规则,很多日常的工作处理流程都可以在此规则下实现,在很大程度上支持了办公自动化系统的实现。上述的工作已经在实际的项目中得到了部分的实现。本文中所描述的规则可以满足目前对工作流应用的通常需求,也可以在本文的基础上进一步改进,以实现更广泛实际应用的要求。本文作者创新点: 通过所描述的逻辑规则以及运算规则,我们可以以一种非常灵活的方式对工作流进行描述和定义。在这种方式下,用户可以定义较为复杂的工作规则,很多日常的工作处理流程都可以在此规则下实现,在很大程度上支持了办公自动化系统的实现。参考文献:【1】李伟,李青. 基于J2EE的工作流管理系统框架研究与实现 微计算机信息,2004【2】范玉顺. 工作流管理技术基础实现企业业务过程重组、过程管理与过程自动化的核心技术M . 北京:清华大学出版社,施普林格出版社,2001.【3】飞思科技产品研发中心. JSP 应用开发详解M . 北京:电子工业出版社,2002.【4】阎宏. Java 与模式M . 北京:电子工业出版社,2002 【5】陈建伟,唐平. 基于Java 规则引擎的足球机器人系统决策研究J . 广东:广东工业大学学报,2003 , 【6】陶望龙等.Web环境下基于表单的工作流管理系统研究J 计算机应用研究,2003;Biography:Ying Wu-Feng,born in 1979,male, the HAN nationality, Postgraduate in College of Informatio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业购车按揭合同
- 2025【各类商业合作范本】-【专业合同协议模板库】国内专利技术转让合同
- 新人教版必修第四章《细胞的物质输入和输出》教学设计
- 公考西藏真题2025
- 2024年二年级品生下册《我喜欢美好的环境》说课稿 鄂教版
- 马鞍山事业单位笔试真题2025
- 化肥厂办公用品分类细则
- 居民健康医疗服务合同协议
- 高中语文 第四单元 第12课 飞向太空的航程说课稿1 新人教版必修1
- 5.1.降低化学反应活化能的酶教学设计-2023-2024学年高一上学期生物人教版必修一
- 养猪场安全生产应急预案
- 2025年党建工作应试题库及答案
- 2025秋部编版(2024)八年级上册语文上课课件 第三单元 阅读综合实践
- DBJ50-T-047-2024 建筑地基基础设计标准
- 用英语讲好中国故事课件
- 呼吸科出科小讲课
- 2025年中国红富士苹果市场深度调研研究报告
- 读书分享会红色书籍《保卫延安》课件
- 钢结构项目可行性研究报告(立项申请报告)模板
- 四川成都经济技术开发区(龙泉驿区)“蓉漂人才荟”招聘笔试题库2025
- 解除委托退费协议书
评论
0/150
提交评论