基于工作流系统的表单技术

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于工作流系统的表单技术

殷武峰,武友新

(南昌大学信息工程学院,江西南昌,330029)

0 引言

工作流是一类能够完全或者部分自动执行的业务过程,它根据一系列预定义的规则来传递文档、信息或任务,并使得此过程在不同的执行者之间自动传递与执行。很多现实生活中的操作,例如公文处理、购物消费等过程,都具有典型的工作流特征,可以使用工作流系统加以实现。在基于工作流系统中,如何灵活实现表单的定义和处理,是直接关系到系统性能的重要因素。目前这方面的研究文献中,有些仅仅给出了表单信息模型的定义,而没有相应的表单处理规则;有些虽然给出了表单处理规则,但这些规则过于简单和抽象,难以满足实际工作流系统的需要。为了解决上述的问题,在本文中提出了一种新的表单定义与处理规则,并对规则的应用做出讨论。

1 表单的定义

表单中包含了用户在各个节点需要察看和填写的内容。在实际的应用中,由于内容的不同,用户可能使用的表单是多种多样的。有些工作流产品会预先定义好一组表单模版,然后限定用户在这些模版中进行选择。这种做法虽然容易实现,但缺乏灵活性,难以满足用户需求的变更。另一种更为灵活的方式,就是允许用户按照需求自己定义表单,这种方式虽然在实现上较为复杂,但能够满足绝大部分的用户需求。

在基于Web的工作流系统中,可以将表单视为一张HTML页面;用户对工作流的处理过程,就是该页面在多个用户之间传递,填充数据的过程。基于这一处理方式,可以将表单视为多个表单项的组合,每一个表单项都是用户需要填写的内容。通过一系列的要素,可以对表单项进行定义。

2表单在工作流中的应用

当用户定义完表单后,就可以在工作流中使用这些表单了。为了简化起见,此处讨论每个工作流中只允许使用一张表单的情况。在这种情况下,用户只需要为一个新定义的流程指定一张表单即可,而不是为每一个节点都指定相应的表单。可以证明,在不同节点使用多张表单的工作流,是可以转换成为在所有节点都使用同一表单的工作流的。

假定某一工作流中包含了S个节点(N1,N2,...,Ns),其中节点N i所使用的表单F i中共含有T i个表单项(M i1,M i2,...M i T i),则我们可以重新定义一张表单F’,其中包含的表单项为M ij,其中i=1...S,j=1...T i。

在每个节点均使用表单F',并且定义规则如下:

当且仅当在节点N i,表单项(M i1,M i2,...,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:赞成"。各个用户节点的表单副本提交到运算节点后,执行如下规则:

相关文档
最新文档