收藏 分销(赏)

基于工作流系统的表单研究.doc

上传人:仙人****88 文档编号:9072984 上传时间:2025-03-12 格式:DOC 页数:5 大小:136.50KB 下载积分:10 金币
下载 相关 举报
基于工作流系统的表单研究.doc_第1页
第1页 / 共5页
基于工作流系统的表单研究.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
基于工作流系统的表单研究 摘要 : 描述了基于工作流系统中的表单定义以及处理的规则。基于这些规则,用户可以自由定制应用在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)是可用的。 在此新规则下的工作流与原有的工作流等价。 2.1 表单的运算规则 根据不同的需求,可以对上述的规则进行进一步扩展,使之不仅仅控制表单项的显示。例如,通过引进一系列的运算规则,可以实现表单项之间的运算: 1)四则运算:可以实现数值型表单项之间的加减乘除等运算。 2)字符串函数:实现文本、字符类表单项的常见字符串操作,例如合并、取子串等等。 3)求和运算:对于同一个表单项的多个副本,求这些副本中的同一个表单项内容之和。 4)均值运算:对于同一个表单项的多个副本,求这些副本中的同一个表单项内容的平均值。 5)极值运算:对于同一个表单项的多个副本,可以实现数值、文本、日期等表单项在所有副本中取最大值、最小值的处理。为了进一步的需要,极值运算不仅仅返回表单项的值,还可以返回拥有该极值的副本的ID。 6)取副本:对于同一个表单项的多个副本,可以取出其中的某一个副本进行操作。 7)删除副本:删除多个副本中的一个。 8)赋值$运算规则的结果,可以赋予某一个表单项。上述只是一些简单的运算规则,可以根据需求的不同来决定引入哪些规则。 2.2 表单的逻辑规则 如果需要,也可以在运算规则之上再定义逻辑规则。执行分支的控制或更复杂的逻辑: 1)条件规则:根据表单项的内容,来判定某一条件是否成立。根据表单项内容类型的不同,可以采用的条件规则也各不相同。例如对于数值类型,可以定义=、≠、<、>、≤、≥等条件;对于字符串类型,可以定义=、≠、包含、不包含、以...开头、以...结尾等条件。 2)AND规则:定义两个条件之间的关联为与关系。 3)OR规则:定义两个条件之间的关联为或关系。 4)NOT规则:定义对某个条件的结果取反。 5)IF-THEN-ELSE 规则:定义判断条件,如果条件满足则将工作流导向不同的分支。 6)SWTICH-CASE规则:定义判断条件,如果条件满足则将工作流导向不同的分支。 7)输出控制规则:可以使用此规则来控制输出的内容。 8)输入控制规则:此规则控制输入的多个表单副本、当满足一定条件后开启下一步的操作。 对于较为简单的、单线的工作流系统,上述的逻辑规则并不必要。但是对于复杂的、多分支的工作流系统来说,逻辑规则的存在是必不可少的。只有通过这些规则,才能够对表单在不同分支所产生的多个副本进行控制和管理。 2.3各种规则的应用 根据上面所描述的显示规则、运算规则和逻辑规则,可以将工作流中的节点划分为以下三种节点: 1)用户节点:此类节点用于对用户的显示与交互。显示规则与部分逻辑规则在此节点发挥作用,控制用户所见的表单。用户节点的输入和输出都是唯一的。 2)逻辑节点:负责逻辑的控制,为工作流做出判断,传递相应的副本到工作流所流向的节点。逻辑规则在此节点发挥作用。 逻辑节点可以具有多个输入和多个输出。 3)运算节点:负责表单内容的运算。运算节点可以接受多个表单副本,根据这些副本的内容来生成新的、要输出的副本。 这类节点主要使用运算规则,可以拥有多个输入和多个输出。 使用上述的三种节点,可以非常灵活地定义各种复杂的工作流过程。在一些工作流系统中,会设置专门的投票节点来处理从多个节点汇总而来的表单副本。例如当多于半数的表单副本选择某一选项时,则流向某一节点。在我们的定义中,不需要使用专门的投票节点,只要使用一个运算节点与一个逻辑节点即可实现此功能(图中代表用户节点,代表运算节点,代表逻辑节点,下同): 如图2所示,在表单中可以将投票所使用的表单项定义为单选项或者下拉菜单,例如"0:反对" "1:赞成"。各个用户节点的表单副本提交到运算节点后,执行如下规则: 图2 例一: 实现投票功能 1)对投票表单项求和。2)将求和的值赋予输出表单中得某一表单项。此表单项可以是一个用户可见的表单项,也可以是一个专为存储参数而使用,在任何节点都不可见的表单项。 3)为输出表单的其他项赋值。4)提交表单。 在逻辑节点,就可以根据运算节点所得到的和(按照上面的定义,这个和其实就是赞成者的票数)进行判断,以决定下一步的走向: IF 赞成票数>=2 THEN GOTO U4 ELSE GOTO U5 END IF 上面给出的是如何实现投票功能的例子。下面我们给出另一个例子,描述使用上述节点如何实现竞标功能。竞标功能,就是在多个表单中,根据某表单项的值,来选择让哪一个表单流向下一节点。与上面的例子类似,我们也可以使用一个运算节点来实现这一功能。 图3 例二:实现竞标功能 在运算节点C,各个用户节点的表单副本提交到运算节点后,执行如下规则:1)取指定表单项的最大,最小值,返回该值所在的副本ID。2)根据ID取出此副本。3)将此副本赋予输出副本。4)提交表单。 将多个逻辑节点与运算节点结合使用,可以实现更为复杂,功能更为强大的工作流过程,以应对各种各样的环境。 2.4 工作流系统中表单的处理 在工作流系统中,需要一系列的模块来为上述的表单和规则服务,使之能够有效地运转。与上面所描述的表单与规则的处理相关的系统模块如图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 Information Engineering of NanChang University,Major in Computer software engineering . WU You-Xin,born in 1963,male, the HAN nationality, Postgraduate in College of Information Engineering of NanChang University,Major in Computer software engineering and e- government affair.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服