最新工作流系统设计手册.docx
《最新工作流系统设计手册.docx》由会员分享,可在线阅读,更多相关《最新工作流系统设计手册.docx(36页珍藏版)》请在冰豆网上搜索。
最新工作流系统设计手册
工作流系统设计手册
一、引言
工作流管理是目前被业界广泛应用并迅速发展的技术,它的主要功能是使业务处理过程自动化,协调人和各种应用程序的工作。
工作流管理系统(WorkflowManagementSystem,简称:
WfMS)以企业业务过程为核心,结合了计算机支持协同工作以及企业信息系统的相关技术,立足于过程自动化,着眼于整体效率的提高。
随着计算机软硬件技术的发展,特别是Internet
和Intranet的迅速普及,工作流管理系统的应用范围已不仅仅限于传统办公环境(如保险、银行、法律、行政管理等)和工业制造中,而且逐渐扩展到企业应用环境中。
1993年成立的工作流管理联盟(WorkflowManagementCoalition,简称:
WfMC)给出了一系列工作流的规范。
其主要概念有:
工作流
工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递与执行。
工作流是一种反映业务流程的计算机化的模型,实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型。
工作流管理系统
它是一个软件系统,完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。
并监控其工作状态。
工作流管理系统可称为企业的业务操作系统。
(BusinessOperatingSystem,简称:
BOS)
工作流系统参考模型
有关工作流管理联盟更详细的规范请参见www.wfmc.org
二、JU工作流管理系统
根据国际工作流管理联盟的标准模型,实现了过程定义工具、工作流执行服务(工作流机)、工作流管理工具以及工作流客户应用(人工动作)和供工作流执行服务(工作流机)直接调用的应用(自动化动作)。
人工动作必须与表单绑定。
表单提供了人机交互的工作界面,而表单的后面是标准通用的关系型数据库系统。
对于数据库系统我们提供了标准的数据管理模块进行管理。
这样就和目前常见的工作流系统有了明显的区别,结构化的数据库系统参与了工作流的全部过程,而目前常见的工作流系统多采用非结构化的文档数据库。
经过扩充后的工作流系统既解决了人员之间的协同,提高了工作效率。
也解决了其它工作流系统不能解决的第二个问题,为业务管理系统提供准确有效的数据,加上可自定义的报表工具,分析工具。
即可生成极具个性的企业业务管理系统。
过程定义工具和工作流客户应用是人机交互的主要部份。
过程定义工具的使用是一个设计开发的过程,而工作流客户应用则是使用的过程,设计开发过程相对复杂,而使用的过程则非常简单。
对于两种不同的过程,我们采用了统一的设计方法,采用了完全的B/S结构,现有的工作流系统一般设计工具采用C/S方式,运行端使用B/S或C/S方式,我们的系统将两者进行了统一,使用了独创的技术,可以直观方便地使用IE定义流程图。
降低了对管理员的要求。
同时,在流程运行时,流程图可以动态显示当前的状态,高度紧凑的系统提高了运行的效率,降低了出错的可能。
三、工作流基本知识
●流程
又叫业务流程、工作流程。
是反映业务目的工作流模型,这个模型定义了要实现的目标以及实现目标所要经过的过程。
流程可以用流程图来表示。
●独立流程
独立流程是可以直接启动运行的流程,一个完整的独立流程由若干个动作和若干个流转条件组成。
其包含的的属性有:
工作流模型ID、名称、类型、编号、状态、版本号及绑定的数据源等。
●子流程
和独立流程唯一不同的地方是子流程不可以直接启动。
子流程将作为独立流程的一个动作来执行。
●数据源
存储数据的集合,目前支持关系数据库中的表,当数据源与流程绑定后,则数据源用来保存工作流运行过程中的数据。
●动作
又叫活动,动作是构成流程的基本单元,主要反映完成业务流程需要执行的操作。
其包含的属性有:
动作名称、动作描述、动作类型(人工动作、自动动作、子流程等)、是否起始动作、是否添加动作、动作人、动作时限、通知方式以及相应的表单信息等。
动作在流程图中用一个方框来表示,方框内显示了动作的重要属性。
●起始动作
表示一个业务流程的起点。
当起始动作启动后,系统将自动生成一个流程实例。
每一个流程最小有一个起始动作。
起始动作目前是由人工来启动的。
区别与别的工作流系统,起始动作本身也是一个动作,人工起始动作将启动表单,提供人机交互界面,与实际业务过程中的起草、申请、录入等工作相对应。
在流程图中的动作方框内有一个明显的箭头图示表示起始动作,非起始动作则表示为齿轮。
●人工动作
指需要业务人员进行一些手工处理的动作。
人工动作在在执行时将启动表单界面,提供人机交互界面。
●自动动作
指无需人工干预,系统自动运行的动作。
●添加动作
在人工动作时,其启动的表单界面是空白表单。
而当非添加动作时,其表单为上一动作传递而来,当起始动作为非添加动作时,启动的表单将从已存在的表单中选取。
一般情况下,起始动作同时也是添加动作。
非起始动作同时也是非添加动作。
只有一些特殊的流程,起始动作不是添加动作。
●流转条件
表示从一个动作(源动作)转到另一个动作(目标动作)的条件,流转条件包含一个结果为真(true)或假(false)的逻辑表达式,当表达式为真时,目标动作将被启动,当表达式为假时,目标动作不被启动。
目前表达式支持VB的语法。
在表达式定义过程中,流程表单中的每一输入数据项都可以作为变量被引用。
流转条件包含的属性还有:
类型(单径流转、多径流转)、文字描述、源动作、目标动作、名称等。
流转条件在流程图中表示为一个连接源动作方框和目标动作方框的单向连接线。
●单径流转
为流转条件的一种,当目标动作的动作人不唯一时,即一个动作存在多个动作人时,单径流转的处理逻辑是当其中一个动作人完成了目标动作,则此目标动作即变成完成动作。
无须再做。
●多径流转
为流转条件的一种,当目标动作的动作人不唯一时,即一个动作存在多个动作人时,多径流转的处理逻辑是当其中一个动作人完成了目标动作,则此目标动作仍为待办动作。
只有所有的动作人都完成了动作,该目标动作才变成完成动作。
●流程图
业务流程的图型表示。
流程图有两种形式,一种为模型流程图。
表示流程的模型。
另一种为实例流程图,不但表示流程的模型,同时还表示流程的实例。
即流程实例的完成动作和待办动作。
●流程实例
流程启动以后产生的运行实例,即一个运行的业务流程。
系统会产生一个唯一标识ID来表示流程实例。
●动作实例
在流程实例中启动了的动作运行的实例,系统会产生一个唯一的标识ID来表示动作的实例。
●完成动作
当一个动作实例已经完成,为完成动作。
●待办动作
当一个动作实例没有完成,为待办动作。
●超时动作
当一个待办动作超过动作设定的时限为超时动作。
四、过程定义工具
过程定义工具又叫建模工具,我们提供了方便易用的过程定义工具。
该工具作为整个协同管理系统的一个系统管理员功能提供给用户。
说明:
在过程定义工具中并不包括组织结构和角色定义功能,这是因为,在人力资源模块中已经实现了这些功能。
人力资源模块是系统的一个基本模块,并不仅仅为工作流子系统服务。
当人力资源模块中的基础数据建立完成后,工作流系统只需要从人力资源模块引用数据即可,不必在工作流系统中单独建立组织结构和角色定义。
定制一个工作流程需要完成如下几个步骤:
●新建工作流模型(可以从现有工作流模型中选取一个作为模板)
●定义工作流的基本属性
●绘制模型工作流图
●定义人工动作对应的表单
新建工作流模型
运行工作流程的定制流程功能模块即可定制一个新的工作流程。
定制流程模块显示的第一个界面是分类列出系统已经定制的各项流程名称,点击名称,将在界面下部显示选中流程的流程图。
我们可以从现有工作流模型中选取一个与将要定义的工作流程近似的工作流作为模板。
这样可以大大减少定义的工作量。
点击右上角的箭头即进入下一步,在进入下一步之前,将询问你是否将选中的工作流模型作为模板。
选确定将使选中工作流复制到新建流程。
否则将创建一个新流程模型。
定义工作流的基本属性
基本属性有如下内容:
1.流程名称流程名称应在所有的流程模型中唯一。
用来在界面标识流程。
2.编码代号可根据企业规定的流程文件填写(如ISO9000文件)。
3.类型按管理类型所做的分类,管理类型在系统管理的编码管理模块定义。
4.描述用文字描述流程要实现的目标。
5.属性确定是否是独立流程或子流程。
6.正常周期流程实例的正常的生命周期。
用来为流程分析提供参考。
7.监控人流程实例的监控者,通常为业务主管或绩效考评部门。
8.制定人流程的制定人,由系统自动填写为当前用户的名字。
9.制定时间流程的制定时间,由系统自动填写为当前时间。
10.数据源为与流程绑定的数据源。
点右边的图示从列出的系统数据表中选取。
如果没有合适的数据源,应使用数据管理的数据建模模块来定义数据源。
11.状态为待用、试用、使用、停用、作废选项。
当选中作废时,当前编辑流程模型将被从系统中删除。
12.启用时间流程模型的启用时间。
13.停用时间流程模型的停用时间。
14.级别用数字表示的流程重要性。
15.版本号流程的版本号
16.父版本流程的上一个版本
17.更改说明流程更改情况的说明。
特别说明:
监控人相当于本流程的管理员,监控人可以是流程的参与者,也可以不是流程的参与者。
监控人负责协调流程运行过程中出现的异常。
监控人可以随时查询并监控流程运行过程中的每一个动作。
当发现异常时,监控人可以通过催办、回退、终止、移交、删除等手段来解决出现的问题。
点击监控人右边的图示,将弹出一个角色选择对话框。
对话框分类列出了由人力资源模块提供的各类角色。
下面分别说明:
职务:
列出系统定义的所有职务,注意:
具有同一职务的员工通常有多人。
部门:
列出人力资源模块中定义的部门。
这里指部门的所有员工。
岗位:
是部门和职务的合成。
如财务部经理。
岗位缩小了职务的范围。
员工:
列出人力资源模块定义的员工。
其中第一项为所有员工。
指所有用户。
上下级:
根据上下级关系定义的角色,共有如下几项。
发起人:
流程起始动作的执行者。
所有上级:
在人力地图中,位于发起人上级的所有的员工。
包括上级和上级的上级等。
所有下级:
在人力地图中,位于发起人下级的所有的员工。
包括下级和下级的下级等。
直接上级:
是发起人的直接上级。
直接上级只应有一人。
直接下级:
是发起人的直接下级。
直接下级通常不止一人。
部门领导:
是发起人部门的部门负责人。
该负责人在部门表里定义。
高层主管:
是部门表位于顶层同时又是发起人的上级或间接上级的员工。
高层领导:
是部门表位于顶层部门的所有人。
定义完工作流属性提交后,将进入绘制模型工作流图界面
绘制模型工作流图
在这里将定义动作和流转条件。
通过菜单的新增、编辑、删除来定义动作。
新增动作菜单将显示一个动作属性对话框。
其内容有:
动作名称:
本动作的名称
描述:
本动作的文字说明
类型:
为人工动作、自动动作和子流程的选择框。
起始节点:
勾选是否为起始动作。
是否添加:
勾选是否为添加动作。
时间限制:
动作的时限,当超过时限未执行的动作,为超时动作。
使用者:
动作的执行人。
通知方式:
动作完成后,以什么方式通知下一个动作的执行人。
系统提供了6种通知方式,分别为:
不发送通知、即时消息、手机短信、电子邮件、短信和邮件、手动。
表单风格:
人工动作对应的表单的风格。
有两种选项:
表格风格和文档风格。
表单列数:
人工动作对应的表单的列数。
表单返回页:
当人工动作完成后,即表单提交后,返回的页面。
默认为首页。
座标:
动作方框在流程图上的位置。
如不填写,则为左上角。
当新增一个动作后,将在流程图显示区域显示一个方框。
方框里显示了动作的名称、动作人和动作时限。
动作方框左上角的图示表示动作是否为起点动作。
当图示为箭头时表示起点动作,
选中流程图上定义的动作。
再点击编辑菜单将显示动作属性编辑对话框。
实现对动作属性的编辑,其对话框和新增动作显示的对话框同。
双击流程动作标题。
和点击编辑菜单效果相同。
点击菜单删除将删除当前选中的流转动作。
在删除流转动作的同时,将删除与该动作相连的所有的流转条件。
用鼠标拖动动作方框的标题,可以将动作放到流程图的任意位置。
新增动作的初始位置在流程图的左上角。
选择网格菜单将在流程图显示或隐藏网格。
当网格显示时,拖动动作方框时,其座标位置将锁定在网格点上。
这样将很方便地实现动作的对齐。
流程动作定义完成后,下面的工作就是定义流转条件了。
把鼠标移动到动作方框的边界上,当鼠标变成十字形时,按下左键同时移动鼠标,将在动作方框和鼠标位置之间画出两条相互垂直的虚线,将鼠标移动另一个动作方框上,松开左键,两条虚线将变成实线,将源动作和目标动作以单向连接线的方式连接起来,同时弹出流转条件属性对话框。
其内容为:
名称:
流转的名称,默认为:
源动作的名称:
目标动作的名称,可修改。
类型:
为单径流转和多径流转的选择框。
说明:
关于流转条件的文字说明,在流程图上当鼠标指向流转连线时,将显示此段文字。
参考:
列出该流程对应的数据源的所有的字段名称,供定义条件时参考。
其格式为:
变量名(变量说明:
类型说明),条件表达式应该引用变量名。
条件:
条件表达式,当为true时,流转启动,否则不启动。
表达式支持VBScript语法。
参见《VBScript参考手册》
举例:
缺勤管理
我们给缺勤管理设计了三个动作,第一个动作是起草申请,其动作人是全体员工,属性有:
起点动作、添加动作。
其含义是所有用户都可以通过这个动作启动流程,实现请假申请。
第一个动作的动作时限在启动时无意义,只有在再次流转到这个动作时时限才有意义。
第二个动作是上级审批,其执行人是部门领导。
即第一个动作执行人(即起点动作的执行人:
发起人)的部门的领导来执行审批。
在第一个动作和第二个动作之间我们加上了一个流转条件,从动作1:
起草申请流转到动作2:
上级审批。
流转条件为默认值:
true。
即起草完成后,立即转给上级审批。
第三个动作是公司批准。
其动作人是高层主管。
高层主管指起草人的领导关系树型表示中,位于部门顶层的领导。
这里的第三个动作是特殊的流程动作,其含义是:
只对长假生效。
综合前面两个动作,其整个流程需要完成的逻辑是:
部门领导审批员工提出的短期请假。
而长期的请假则需要经过公司高层主管的批准。
在动作2:
上级审批和动作3:
公司批准之间我们设计的流转条件就不是默认值true了。
我们定义的流转条件是:
@nHours>24and@Status=1。
这里使用了数据源提供的变量@nHours,其含义是请假时间(按小时计),由启动动作:
起草申请的执行人填写。
@Status是数据源提供的另一个变量。
其含义是部门领导的审批意见。
整个表达式的含义是:
当请假时间超过24小时(3个工作日),同时,部门领导批准的情况下。
启动第三个动作:
公司批准。
当不满足这两个条件的时间。
到第二个动作流程即终止了。
即部门领导决定三天以内的员工请假。
三天以上的员工请假由部门领导和公司高层主管共同决定。
流程图完成后,定制相应的表单,则工作流模型定义完成。
就可以使用了。
流转属性定义完成后,点确定,流转条件定义完成,点删除则删除流转条件。
点击流程图上的流转条件连线,将弹出流转条件定义对话框。
可实现对流转条件的编辑或删除。
绘制完流程图提交后,下一步的工作是定制人工动作对应的表单。
定义人工动作对应的表单
表单是动作执行时人机交互的界面,表单和数据源具有对应的关系,通过表单,流程每执行一个动作,将使数据库表的某条相关记录发生变化。
起始动作将使数据库表增加一条记录,流程中的动作通过填写不同的字段,来实现流程所期望的业务逻辑。
可以将表单看成是人工流程中对应的表格。
如申请表、审批表等各种单据。
在人工流程中,表格是印刷打印或手工绘制的纸质单据,根据流程文件规定的流程(如ISO9000程序文件),不同的人填写不同的表格区域,来实现流程定义的业务。
表单定义和绘制表格的作用相同。
我们提供了表单编辑器和表单设计器来定义表单,表单编辑器即是下面将要介绍的表单定义界面,表单设计器是表单编辑器提供的菜单功能。
表单定义界面将列出当前定义的人工动作的名称和类型以及相对应的表单对象定义,点选人工动作选项,可以选取不同的动作来进行表单编辑。
在选择人工动作之前,请用户确定对当前表单的修改是否需要提交,如果需要提交,请先提交表单,否则,对当前动作表单所做的修改将会丢失。
表单对象定义界面提供了一个二维表格,让用户输入对应于数据源的每一个字段在表单上的表现形式。
二维表格的纵向列出了数据源的所有的字段的顺序号和字段名称。
该数据字段我们称之为表单对象,而横向列出了表单对象在屏幕表现所必须的各种属性。
其内容有:
显示名称
在表单中显示的数据字段的名称,该名称的默认值为数据库表定义模块填写的显示名称。
如表定义模块未填写显示名称,则默认值将为字段名称。
显示名称可以根据表单中的含义进行修改,如:
默认名称为姓名,可更改为申请人。
显示
勾选当前字段是否在表单中显示,当选不显示时,则该表单界面将不使用此字段,同时,该字段的其它属性无效,并被隐藏。
注意:
不显示字段并不是隐藏字段,隐藏字段在表单界面中仍然存在。
只是被隐藏了。
其数值仍然受默认值或其它的影响。
注意:
数据源字段的第一项通常是ID,ID为数据表主键,类型为自动编号。
该字段为系统生成,无需人工干预,故一般该字段应设定不显示。
只读
勾选当前字段是否为只读。
当选只读时,表单仅显示字段内容,用户不可输入改变,只读选项在不由该动作填写的字段时或系统自动生成内容时填写。
例如:
表单填写人由系统生成,用户不可更改。
申请动作填写的申请内容,在审批动作不可更改等。
必填
勾选当前字段是否为必填。
当选必填时,如字段数据为空,表单将不可提交。
输入类型
系统提供了几种输入类型供选择:
编辑框:
适合输入简短文本、数字、时间等。
检查框:
适合输入逻辑值,如是否等。
单选框:
适合输入多选一的选项。
当字段引用枚举量时,可使用此类型。
下拉框:
适合输入多选一的选项。
当字段引用枚举量时,可使用此类型。
文本框:
适合输入较长的文字。
密码框:
适合输入密码,密码内容将会被圆点替换。
超文本框:
适合输入HTML格式的文档,系统提供了内置的HTML编辑器。
默认值
该字段的默认值,默认值可以直接输入数值,也可以使用表达式,当使用表达式时,应使用等号=开头。
表达式支持VBScript的语法。
在表达式中,可以使用系统内置的变量和函数,也可以使用VBScript的内部函数,参见《附录:
系统内置变量和函数参考》、《VBScript参考手册》
输入规则
提供对字段输入的约束条件的定义或辅助指导。
在数据库表管理模块实际上已经定义了部份字段的约束条件,如字段的类型,和该字段的引用关系,输入值必须和字段的类型和引用关系匹配,而这里可以定义更详细的规则,以引导用户输入正确的值。
我们可以采用直接输入的方法,也可以使用输入框右边提供的图示选择来选择输入规则。
选择输入规则
根据不同字段的引用关系,输入规则对话框会有不同的表现形式。
当字段无引用关系时,输入规则对话框有如下几项内容:
通用:
定义通用的输入规则
高级:
提供高级的输入辅助指导选择。
自定义:
提供文本框,由用户直接填写输入规则。
通用规则有如下几条:
1、无限制
2、只允许英文
3、只允许数字
4、只允许汉字
5、不允许英文
6、不允许数字
7、不允许汉字
8、不允许数字开头
9、IP地址
10、URL
高级选项,则会在输入框旁边加上选择图示,让用户直接从选择对话框中选择内容。
高级选项提供的选择有:
日期选择:
提供日历选择对话框
日期时间选择:
提供日历时间选择对话框
员工选择:
提供员工列表选择对话框
员工与组选择:
提供员工列表及部门职务选择对话框
颜色选择:
提供调色盘选择颜色对话框
字体选择:
提供字体选择对话框
字段历史选择:
提供曾经输入过的字段内容列表选择对话框
图标选择:
提供图标选择列表对话框。
当字段存在引用关系时,根据表引用或是枚举量引用。
字段的输入规则会有如下的内容:
枚举量:
列出枚举量所有数值与内容,用户可全部选择或部份选择。
表引用:
列出引用表的所有可选择记录,用户可全选或部份选择。
引用查询:
列出引用表所对应的查询。
用户可使用查询来选择引用。
行、列、宽、高
定义输入字段在表单中的位置,表单的总列数在动作属性中定义。
行:
字段所在的起始行位置。
列:
字段所在的起始列位置。
宽:
字段所占用的列的宽度。
当宽为0时,该字段隐藏。
高:
字段所占用的行数。
最小为1。
当行值为负值时,表示建立多行明细表。
其位置在行值的绝对值的位置。
定义表单界面还提供了如下的菜单功能:
另存:
将流程表单另存为表动作表单。
在数据管理模块,我们提供了表动作表单,表单动作表单和流程无关,是专为数据源提供的表单,其用处为非工作流的应用,如专为系统管理员的应用,以及诸如内容浏览、打印等用途。
此功能将弹出对话框,在对话框中可以选择现有的表动作,点击确定将保存当前的表单到选择的表动作表单,而原有的表动作表单内容将被复盖。
也可以选择新建表动作表单,来新建一个表动作表单。
表动作表单将可以在数据管理模块中进行编辑设计。
载入:
从流程动作或表动作表单中载入,载入表单将打开一个选择对话框,对话框列出同属于同一数据源的所有的表单,可能是表动作表单,也可能是流程动作表单,流程动作可能是本流程的其它动作,也可能是同属同一数据源的其它流程的流程动作表单。
从列表中选择表单,将复盖当前的表单设置。
属性:
定义表单的其它属性。
此功能将弹出一个属性对话框,在属性对话框里,将定义与界面相关的其它若干属性,其内容有:
表单风格:
有表格风格和文档风格两种选择,和流程动作属性定义的内容相同。
表单列数:
表单的列数:
和流程动作属性定义的内容相同。
表单头:
表单标题,支持HTML语法。
表单尾:
表单结束,支持HTML语法。
输入栏字体:
定义字段输入栏的字体。
名称栏字体:
定义字段名称栏的字体。
输入栏背景:
定义字段输入栏的背景颜色
名称栏背景:
定义字段名称栏的背景颜色。
输入栏前景:
定义字段输入栏的文字颜色
名称栏前景:
定义字段名称栏的文字颜色。
脚本:
定义表单动作的自定义脚本。
在表单生成、运行、提交等的各个过程中,可以通过插入脚本来实现各种自定义等高级的功能。
系统支持服务器端自定义脚本和客户端自定义脚本两种形式,服务器端脚本支持VBScript语言。
客户端脚本支持JavaScript语言。
在自定义脚本中,支持引用系统内建的系统变量和系统提供的大量的系统函数和子程序。
VBScript和JavaScript语言请参考《VBScript语言参考手册》《JavaScript语言参考手册》
系统变量和系统函数和子程序请参考附录《系统内置变量和函数参考》