一种工作流表单实现方法和系统的制作方法

文档序号:6576466阅读:232来源:国知局
专利名称:一种工作流表单实现方法和系统的制作方法
技术领域
本发明涉及数据库应用领域,特别涉及一种工作流表单实现方法和系统。
背景技术
表单表示结构化的数据交流,在因特网环境中,表单是使用户能够与网络服务器 交互的一种简单方式。在网络上,表单已经成功用于搜索引擎、投票、电子商务和在线申请。 然而,不同用户对表单的分类以及表单具体内容的要求各不相同,需要按不同用户需求灵 活调整变动一些表单的功能,现有的表单实现方法无法满足,且当表单样式发生变化时,还 需要修改程序,无法使得表单与系统业务设计分离,造成了开发人员的维护压力,用户无法 根据自己的需求随意增减、修改表单,获取效率低。

发明内容
本发明要解决的技术问题在于,针对现有技术的上述表单模板获取效率低、系统 响应慢、灵活性差、维护成本高的缺陷,提供一种工作流表单实现方法和系统。本发明解决其技术问题所采用的技术方案是构造一种工作流表单实现方法,其 特征在于,包括步骤SUffEB客户端向工作流引擎发起获取表单模板的请求;S2、工作流引擎从数据库中获取表单模板,并返回至TOB客户端;S3、TOB客户端根据表单模板的属性描述,对表单模板进行属性设置操作;S4、TOB客户端显示处理后的表单模板。在本发明所述的工作流表单实现方法中,步骤S2进一步包括工作流引擎先从其缓存单元中获取表单模板,若缓存单元中不存在此表单模板, 则从数据库中获取,并将表单模板保存到缓存单元,返回至WEB客户端;若缓存单元中存在 此表单模板,则从缓存单元中获取,并返回至TOB客户端。在本发明所述的工作流表单实现方法中,还包括步骤S5、定期检查缓存单元中的表单模板是否超过其存储期限,若是,则从缓存单元中 删除此表单模板。在本发明所述的工作流表单实现方法中,S6、定期检查缓存单元的容量,若超过设定容量值,则清除缓存单元中存储时间最 长的表单模板。在本发明所述的工作流表单实现方法中,S7、定期检查表单模板是否被修改或删除,若是,且此表单模板存储在缓存单元 中,则从缓存单元中删除此表单模板。在本发明所述的工作流表单实现方法中,存储在数据库中的表单模板的定制过程 包括步骤A、定制HTML格式表单;
B、添加描述表单属性的XML信息,生成表单模板。本发明还提供一种工作流表单实现系统,包括表单定制模块、WEB客户端、工作流 引擎、数据库;表单定制模块,用于定制HTML格式表单,并添加描述表单属性的XML信息,生成表 单模板;TOB客户端,用于显示表单模板,并通过表单模板收集用户的数据;工作流引擎,用于接收表单定制模块的请求,保存表单模板到数据库;接收TOB客 户端的请求,从数据库中获取表单模板并返回至WEB客户端;数据库,用于存储定制完成的表单模板。在本发明所述的工作流表单实现系统中,工作流引擎包括缓存单元;工作流引擎,还用于先从其缓存单元中获取表单模板,若缓存单元中不存在此表 单模板,则从数据库中获取,并将表单模板保存到缓存单元,返回至WEB客户端;若缓存单 元中存在此表单模板,则从缓存单元中获取,并返回至WEB客户端。在本发明所述的工作流表单实现系统中,工作流引擎,还用于定期检查缓存单元 中的表单模板是否超过其存储期限,若是,则从缓存单元中删除此表单模板。在本发明所述的工作流表单实现系统中,工作流引擎,还用于定期检查缓存单元 的容量,若超过设定容量值,则清除缓存单元中存储时间最长的表单模板;定期检查表单模 板是否被修改或删除,若是,且此表单模板存储在缓存单元中,则从缓存单元中删除此表单 模板。实施本发明的技术方案,具有以下有益效果本发明在工作流管理系统中使用基 于XML+HTML的方式来定制表单模板的方法,通过定制基于HTML的可视化表单模版,然后解 析成XML标记语言,保存到数据库中,使用工作流时再将XML标记语言还原成可视化HTML 页面展示给用户。这一发明可以通过客户端来充当表单设计工具,让用户可以根据自己的 业务需求灵活的定制自己所需的工作流表单,根据自身业务需求自定义工作流表单内容, 简化了传统工作流系统中表单部分设计依赖于程序员的现状。考虑到基于XML+HTML表单 模板的数据量大,表单模板使用频率非常高,重用性强的特点,在工作流引擎中设置表单模 板的缓存区,以提高表单模板获取效率。由用户根据自身的业务需求来设计的表单模板,能 很好地满足用户业务变化的需求,而且能够大大减轻维护人员的工作量,减少开发和维护 成本,增强系统的复用性。


下面将结合附图及实施例对本发明作进一步说明,附图中图1为本发明优选实施例的HTML格式表单示意图;图2为本发明优选实施例的XML+HTML格式表单定制过程示意图;图3为本发明优选实施例的工作流表单实现方法流程图;图4为本发明优选实施例在WEB客户端显示的表单示意图;图5为本发明优选实施例的工作流表单实现系统框图;图6为本发明优选实施例的工作流引擎工作过程示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。工作流管理系统(Workflow Management System)是一种在工作流形式化表示的 驱动下,通过软件的执行而完成工作流定义、管理的系统,其主要目标是对业务过程中各步 骤(或称活动、环节)发生的先后次序及各步骤相关人员或信息资源的调用等进行管理而 实现业务过程的自动化。工作流引擎作为工作流管理系统的核心部分,主要提供了对于工 作流定义的解析以及流程流转的支持。工作流定义文件描述了业务的交互逻辑,工作流引 擎通过解析此工作流定义文件并按照业务的交互逻辑进行业务的流转,而业务的流转则由 表单作为载体而展现。表单模板存储和响应WEB客户请求,均通过工作流引擎实现。表单 设计器为可视化的表单设计工具,用户通过拖放的方式来绘制业务所需的表单,并可相应 的进行表单数据的绑定。XML(extensible Markup Language)作为一种可扩展标记语言,具备良好的自描 述性和扩展性,遵循严格的语法规则,以及语言和平台的无关性等特点。XML是一种元语 言,可以定义其他的语言,并且它的标记是用户定义的;允许各个组织、个人建立适合自己 需要的节点集合,可以根据需求参数化和语义化相应的数据。这一特征使得XML可以在针 对不同的系统、厂商提供各具特色的独立解决方案;XML文档是纯文本格式,独立于平台和 语言,使得XML是交换数据的校准。更重要的是,XML允许通过HTTP和其他传输协议交换 XML数据。本发明中表单模板的定制由表单设计器完成,表单设计器主要用于系统运行期 间,它以可视化界面将表单呈现给用户,使用简易的点击、拖拽操作来完成对表单布局的设 置。本发明在工作流管理系统中使用基于XML+HTML的方式来定制表单模板的方法,通过定 制基于HTML的可视化表单模版,然后解析成XML标记语言,保存到数据库中,使用工作流时 再将XML标记语言还原成可视化HTML页面展示给用户。这一发明可以通过客户端来充当 表单设计工具,让用户可以根据自己的业务需求灵活的定制自己所需的工作流表单,根据 自身业务需求自定义工作流表单内容,简化了传统工作流系统中表单部分设计依赖于程序 员的现状。考虑到基于XML+HTML表单模板的数据量大,表单模板使用频率非常高,重用性 强的特点,在工作流引擎中设置表单模板的缓存区,以提高表单模板获取效率。由用户根据 自身的业务需求来设计的表单模板,能很好地满足用户业务变化的需求,而且能够大大减 轻维护人员的工作量,减少开发和维护成本,增强系统的复用性。图1为本发明优选实施例的HTML格式表单示意图。在本发明中,用户先定制的是 基于HTML的表单页面,然后表单设计器根据已定制完成的HTML表单产生相关的XML描述 信息。定制表单时,包含定制HTML格式表单,并添加HTML格式表单标签作权限控制、显示 默认值、显示特殊值的和描述表单属性XML节点。定制完成的表单模板以XML的形式存储, 其中表单模块包括HTML格式表单和描述表单属性XML节点。HTML格式表单是页面,而XML 则是对HTML格式表单的具体描述。图2为本发明优选实施例的XML+HTML格式表单定制过 程示意图,定制过程解释如下1)通过表单设计器产生表单布局的表格、控件,以及调整表格、控件的位置、属性等。其中HTML表单中每个能接收文本或实现选择功能的标签,在添加标签时表单设计器自 动产生该标签的名称。2)在增加或修改标签时,表单设计器为每个能接收文本或实现选择功能的标签, 产生相应的描述属性的XML节点。包括标签的默认值,特殊值(如时间选择框),输入文本 框的数据类型控制。3)工作流引擎将定制完成的表单模板(HTML和XML)存储至到数据库。当表单模 板定制完成后,由客户端将表单模板发布到工作流引擎,再由工作流引擎保存到数据库。综上所述,定制表单时,通过表单设计器添加表单的标签,然后表单设计器根据表 单标签产生描述表单属性的XML节点。当表单布局设计完成时,需要实现将HTML格式表单以XML格式存储,表单设计 器将图形界面的HTML格式表单以CDATA的XML格式存储于XML文档中的<htmlform>节 点下。存储在〈htmlform〉节点下的HTML格式表单是表单设计器产生的HTML代码,该表 单(HTML代码)只以设计HTML代码保存。XML描述属性则以XML模板文档的〈base〉、 <flowpermission>禾口 <inputs>节点或子节点存储。〈base〉节点,用于描述表单模板的基本属性。如name属性表示表单模板的名称、 desc属性表示表单模板的定制时间、createuser属性表示表单模板的创建者、createtime 属性表示表单模板的创建时间、modifyuser属性表示表单模板的修改者、modifytime属性 表示表单模板修改时间等。〈inputs〉节点,主要是通过子节点〈input〉来对表单标签的属性进行描述或者用 来保存标签值,XML中<input>节点与表单中HTML代码的<input>标签对应。<input>节 点描述mame属性表示表单标签的名称、type属性表示表单标签类型、maxsize属性表示该 控件可接受最大字符长度(只在文本框适用),readonly属性表示是否只读、defalutvalue 属性表示默认值、dbtype属性表示数据类型、fixedvalue属性表示是否固定值(该属性优 先于 defalutvalue Μ 生)。<htmlform>节点,只保存表单,即原始HTML代码。<flowpermission>节点,用于描述表单控件与流程环节的对应关系。 <flowpermission> 节点的子节点 <inputelement name =”标签名称” state name="流禾呈 环节名称" > 通过环节名称和标签名称的绑定,从而确定在流程的环节中标签是否可用。 当表单模板定制完成时,相应的表单模板XML文档也产生了。下面给出XML+HTML表单模板 的XML文档。< ? xml version = “ 1.0〃 encoding = “ GBK" ? >-<root>-<base>〈template id = " 597〃 eld = " 21001〃 desc = 〃请假申请〃 createuser =“管理员“createtime = “ 2008-10-3010:33:23 “ modifyuser = “ “ modifytime = “ 2008-10-30 10:40:41" itemid=" 1471"processname = “ 2100120081030103257〃 name= 〃请假申请〃 /></base>
7
-<inputs>〈input name = “ txt20081030102845 “ type = “ text “ maxsize ="2147483647" readonly =" False"defalutvalue = “ “ dbtype = “ “ />〈/inputs〉-<flowpermission><inputelement name = 〃 txt20081030102845 〃 state_name = 〃 开始〃 /></flowpermission>-〈html form〉< ! [CDATA [表单(HTML 格式)]]>〈/html form〉</root>图3为本发明优选实施例的工作流表单实现方法流程图,包括步骤IOUffEB客户端向工作流引擎发起获取表单模板的请求;102、工作流引擎先从其缓存单元中获取表单模板,若缓存单元中不存在此表单模 板,则从数据库中获取,并将表单模板保存到缓存单元,返回至WEB客户端;若缓存单元中 存在此表单模板,则从缓存单元中获取,并返回至WEB客户端;103, WEB客户端根据表单模板的属性描述,对表单模板进行属性设置操作;104, WEB客户端显示处理后的表单模板。另外,表单模板的数据量大,TOB客户端使用表单模板的频率非常高并且表单模板 的复用性非常强在工作流引擎设置缓存单元,从而提高表单模板的获取效率和系统的响应 速度。通过缓存单元的定期检查和缓存单元最大数量的检查,从而保证缓存单元的安全和 更新。在本发明的优选实施例中,定期检查缓存单元中的表单模板是否超过其存储期限,若 是,则从缓存单元中删除此表单模板。定期检查缓存单元的容量,若超过设定容量值,则清 除缓存单元中存储时间最长的表单模板。定期检查表单模板是否被修改或删除,若是,且此 表单模板存储在缓存单元中,则从缓存单元中删除此表单模板。用户通过TOB客户端填写表单,WEB客户端将填写的数据发送到工作流引擎,工作 流引擎处理后保存数据并将处理结果响应给WEB客户端。步骤103中,成功获取表单模板后,解析表单模板。将获取到XML+HTML表单模板 数据转化为表单模板对象的相关属性,以便于程序缓存和操作。WEB得到模板对象后,根据 具体业务需求和XML属性描述,对原始表单进行表单元素的属性操作。如下a)加载表单的HTML代码。将表单加载到内存,以便修改表单内容和相关标签的属 性。b)设置表单标签元素是否可用。根据流程环节名称和表单XML的描述 flowpermission>节点),设置表单元素是否可用。c)设置表单标签的显示值。根据〈inputs〉的子节点和流程环节名称结合,设置表 单的文本框或选择框的显示值。d)设置表单的默认值。根据定制时表单属性XML规则来设置默认值,如时间、当前 系统登录人等。
e)设置表单检查数据类型的javascript脚本。根据流程环节名称和〈inputs〉子 节点的XML描述属性,设置在TOB运行时文本框标签要检查的数据类型。f)对表单的标签进行外观样式的小范围添加、修改和删除。g)返回经过处理后的表单的HTML代码。将经过处理的表单,返回到WEB客户端。图4示出了本发明优选实施例在WEB客户端显示的表单示意图。图5为本发明优选实施例的工作流表单实现系统框图。包括表单定制模块100、 WEB客户端200、工作流引擎300、数据库400。表单定制模块100 (即上文所说的表单设计器)用于定制HTML格式表单,并添加 描述表单属性的XML信息,生成表单模板。TOB客户端200用于显示表单模板,并通过表单 模板收集用户的数据。工作流引擎300包括缓存单元301,用于接收表单定制模块的请求, 保存表单模板到数据库400 ;接收TOB客户端100的请求,先从其缓存单元301中获取表单 模板,若缓存单元301中不存在此表单模板,则从数据库400中获取,并将表单模板保存到 缓存单元301,返回至TOB客户端100 ;若缓存单元301中存在此表单模板,则从缓存单元 301中获取,并返回至TOB客户端100。数据库400用于存储定制完成的表单模板。工作流引擎300还用于定期检查缓存单元301中的表单模板是否超过其存储期 限,若是,则从缓存单元301中删除此表单模板;还用于定期检查缓存单元301的容量,若超 过设定容量值,则清除缓存单元301中存储时间最长的表单模板;定期检查表单模板是否 被修改或删除,若是,且此表单模板存储在缓存单元301中,则从缓存单元301中删除此表 单模板(见图6所示)。图6为本发明优选实施例的工作流引擎工作过程示意图。al)WEB客户端200向工作流引擎300发起获取表单模板请求。a2)工作流引擎300在启动时,先从数据库400获取部分表单模板,然后将获取到 表单模板保存在缓存单元301。a21)工作流引擎300定期检查缓存单元301的表单对象,如果缓存单元301的表 单模板过期了(每一个表单模板都设有一个存储期限),就将表单模板从缓存单元301清 除;a22)工作流引擎300定期检查缓存单元301的容量,若超过设定容量值,则清除缓 存单元301中存储时间最长的表单模板;a23)工作流引擎300定期检查表单模板是否被修改或删除,若是,且此表单模板 存储在缓存单元301中,则从缓存单元301中删除此表单模板。a3)WEB客户端200请求表单模板时,工作流引擎300先从缓存单元301获取表单。 如果缓存单元301存在,则从缓存单元301中返回表单模板。a4)如果缓存单元301不存在请求的表单模板,工作流引擎300将从数据库400中 获取该表单模板。获取表单后,先将表单模板保存到缓存单元301,然后将表单模板返回到 WEB客户端200。a5)WEB客户端200根据工作流引擎300返回的表单模板,将相应的数据显示到页面。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种工作流表单实现方法,其特征在于,包括步骤S1、WEB客户端向工作流引擎发起获取表单模板的请求;S2、工作流引擎从数据库中获取表单模板,并返回至WEB客户端;S3、WEB客户端根据表单模板的属性描述,对表单模板进行属性设置操作;S4、WEB客户端显示处理后的表单模板。
2.根据权利要求1所述的工作流表单实现方法,其特征在于,步骤S2进一步包括工作流引擎先从其缓存单元中获取表单模板,若缓存单元中不存在此表单模板,则从 数据库中获取,并将表单模板保存到缓存单元,返回至WEB客户端;若缓存单元中存在此表 单模板,则从缓存单元中获取,并返回至WEB客户端。
3.根据权利要求2所述的工作流表单实现方法,其特征在于,还包括步骤55、定期检查缓存单元中的表单模板是否超过其存储期限,若是,则从缓存单元中删除 此表单模板。
4.根据权利要求2所述的工作流表单实现方法,其特征在于,56、定期检查缓存单元的容量,若超过设定容量值,则清除缓存单元中存储时间最长的 表单模板。
5.根据权利要求2所述的工作流表单实现方法,其特征在于,57、定期检查表单模板是否被修改或删除,若是,且此表单模板存储在缓存单元中,则 从缓存单元中删除此表单模板。
6.根据权利要求1 5任一项所述的工作流表单实现方法,其特征在于,存储在数据库 中的表单模板的定制过程包括步骤A、定制HTML格式表单;B、添加描述表单属性的XML信息,生成表单模板。
7.一种工作流表单实现系统,其特征在于,包括表单定制模块、WEB客户端、工作流引 擎、数据库;表单定制模块,用于定制HTML格式表单,并添加描述表单属性的XML信息,生成表单模板;WEB客户端,用于显示表单模板,并通过表单模板收集用户的数据; 工作流引擎,用于接收表单定制模块的请求,保存表单模板到数据库;接收WEB客户端 的请求,从数据库中获取表单模板并返回至WEB客户端; 数据库,用于存储定制完成的表单模板。
8.根据权利要求7所述的工作流表单实现系统,其特征在于,工作流引擎包括缓存单元;工作流引擎,还用于先从其缓存单元中获取表单模板,若缓存单元中不存在此表单模 板,则从数据库中获取,并将表单模板保存到缓存单元,返回至WEB客户端;若缓存单元中 存在此表单模板,则从缓存单元中获取,并返回至WEB客户端。
9.根据权利要求8所述的工作流表单实现系统,其特征在于,工作流引擎,还用于定期检查缓存单元中的表单模板是否超过其存储期限,若是,则从 缓存单元中删除此表单模板。
10.根据权利要求7 9任一项所述的工作流表单实现系统,其特征在于,工作流引擎,还用于定期检查缓存单元的容量,若超过设定容量值,则清除缓存单元中存储时间最长的表单模板;定期检查表单模板是否被修改或删除,若是,且此表单模板存储 在缓存单元中,则从缓存单元中删除此表单模板。
全文摘要
本发明涉及一种工作流表单实现方法,包括步骤S1、WEB客户端向工作流引擎发起获取表单模板的请求;S2、工作流引擎从数据库中获取表单模板,并返回至WEB客户端;S3、WEB客户端根据表单模板的属性描述,对表单模板进行属性设置操作;S4、WEB客户端显示处理后的表单模板。还涉及一种工作流表单实现系统,包括表单定制模块、WEB客户端、工作流引擎、数据库。本发明的技术方案使得用户可以根据自己的业务需求灵活的定制自己所需的工作流表单,能很好地满足用户业务变化的需求,在工作流引擎中设置表单模板的缓存区,提高了表单模板获取效率,而且能够大大减轻维护人员的工作量,减少开发和维护成本,增强系统的复用性。
文档编号G06F17/30GK101957936SQ20091010881
公开日2011年1月26日 申请日期2009年7月15日 优先权日2009年7月15日
发明者张刚 申请人:深圳市艾派应用系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1