工作流与AO系统

时间:2019-05-15 00:40:53下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《工作流与AO系统》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《工作流与AO系统》。

第一篇:工作流与AO系统

OA系统与工作流

随着网络的日益普及和全球信息化进程的发展,InternetPIntranet技术及其应用给我们工作和日常生活各个方面带来了深刻的影响,传统的办公方式正面临严峻的挑战。各单位都希望能够拥有一个能真正满足本单位实际工作需要的办公自动化系统,以提高工作效率,降低办公成本。以工作流为核心的OA 系统,已成为当前OA 系统的主流,逐渐受到政企办公部门和软件开发商的重视。1 概念阐述 1.1 办公自动化

简称OA(Office Automation),意为办公信息处理的自动化。它是指应用各种信息技术和集成技术,充分有效地利用信息,完成各种办公业务,提高办公效率和办公质量,实现多种资源的共享。办公自动化系统经历了两个发展阶段。第一个阶段是单机型办公自动化系统,它以OFFICE 等应用软件及传统的MIS 系统为代表。第二阶段是以网络为基础,工作流为中心的网络协同工作型办公自动化系统。目前正在进行知识管理型办公自动化系统的研究和探索。1.2 工作流及工作流管理系统 1.2.1 工作流

工作流(Work Flow)的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有固定程序的活动而提出的一个概念,其目的是通过将一个具体的工作分解成多个任务、角色,按照一定的规则和过程,约束与监控这些任务的执行,从而提高企业生产经营管理水平。根据WfMC(工作流管理联盟)的定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流系统是以规格化的流程描述作为输入的软件组件,它维护流程的运行状态,并在人和应用之间分派活动。

1.2.2 工作流管理系统

工作流管理系统是支撑工作流的相应软件系统,根据WfMC的定义,工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流定义、管理及执行的系统。”按照传统的时空分类法,工作流管理系统属于支持多人进行异地、异步协作的系统。工作流管理系统可以运行在一个或多个工作流引擎上,主要用于定义、实现和管理工作流运行。它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。2 基于工作流技术的OA 系统模型

办公自动化系统不仅要实现信息的采集和自动整理,而且应该能开发和利用信息辅助管理层进行科学决策。因此,办公自动化系统必须是一个综合的,且具备多种办公信息处理功能的系统。办公自动化系统需要单位内部的领导人员、行政管理人员、文秘人员、专业人员的共同参与。办公室的工作种类繁多,有信息录入、收发文件、文件编辑、人事管理、文件及信函归档和查询、邮件发送、会议安排、个人、部门及领导日程安排和接待管理等。它的特点是一项工作一般由多个办公人员协作完成,并且他们之间具有一定的办公流程。按工作流管理的概念来分析,每项工作都由一个任务集和任务之间的流程关系组成。任务集是独立的工作项集合,分别由特定的人员或机构来处理;任务之间的流程关系是文档对象的传递和处理关系。2.1 OA 系统模型

根据学校日常办公的特点和实际需求,我们提出了一个基于工作流技术的OA 系统模型,如图所示:

整个系统由公文管理、信息发布管理、工作日程管理、资源使用管理模块、文件档案管理、邮件管理、系统管理及自定义工作流管理等模块构成。各模块既各自独立,又相互依存,组合成一个有机的整体。2.2 公文管理模块

公文流转是办公系统的核心,公文管理可分为收文管理和发文管理两大功能,其中包括公文查询和归档处理。采用数据库模式实现内部公文的收发,保证了对公文流转的有效控制。2.2.1 收文管理

实现收文、登记、处理、查询、归档。实现对公文分类、标识信息(包括标题、种类、缓急、密级、收文字号、主题词、收文机关、发往单位、印发时间、生效时间、承办人等)的登记;批示和处理情况登记;查阅收文办理情况,包括经手的领导、部门名单、收文时间,相应的处理意见等;按归档要求对收文进行立卷登记或销毁登记。2.2.2 发文管理

实现发文、处理、查询、归档。包括设定发文题目及发文负责人,填写发文拟稿纸,草拟文件内容,领导对草拟文件内容审核、批示意见, 有关领导对发文稿进行会签并签发, 对正式发文稿进行校对,按要求查阅需要使用的公文内容,按归档要求对发文进行立卷登记或销毁登记等工作。92 2.3 信息发布和交流建立一个内部信息管理系统,实现内部信息采集、编辑与发布,以达到信息集中、高效的管理。该模块为用户提供了大量实用的信息发布与共享功能,包括:新闻通告、交流园地(BBS)、留言本、征求意见等。其中,新闻通告的发布需要通过相关部门的审核,通过审核则自动发布在学校网站(主页)上,没有通过则限于OA 中浏览。2.4 自定义流程管理模块 可以进行自定义工作流程的规划和设立,工作流自定义包括定义整个流程的名称、所属类别、流程适用范围、流程权限等;定义流程中各个环节的名称、办理方式、办理人员、办理权限等。对于常用、固定工作流程,系统预先加以定义形成工作流模板,供用户使用;并允许用户自定义工作流程模板。自定义流程管理模块还承担对工作流项目的协调管理工作。从一个工作流的启动,到各个工作步骤流转,直到工作流结束的整个过程中,自定义流程管理模块可以按照规则自动选择下一步工作的接管人,管理工作附件及流程进展信息。相关工作流之间可以互相协调,例如一个工作流的完成是另一个工作流的开始触发条件。2.5 文件档案管理

本模块主要是对单位的文件、案卷及重要信息(新闻)等电子文档资料进行归档及管理,并提供多种查询方式,供用户根据权限查询和阅读。常用文档可以收入自己的文件夹。2.6 系统管理模块

此模块定义了系统管理员、部门管理员及各类用户的各种不同权限, 实现了用户层次化的管理。用户权限的设置可以使各级、各类用户有不同的权限,在用户登陆系统后,可以使用相应的系统功能。添加部门或用户、用户的权限设置、系统各类工作流模板等系统设置均在此模块中完成。

2.7 系统其他模块简述

系统还提供了邮件管理、工作日程安排、资源使用管理模块等。其中邮件管理可以提供校内用户相互传送信息,并可以传输文档附件。工作日程安排设学校工作安排、部门工作安排及个人工作安排三个层次的模块,并根据工作日程安排的需要(侧重点)设置重要提醒;资源使用管理可以对公用资源(如汽车、会议室等)进行统一分配和管理,提高资源的利用率。3 OA 系统结构级运行架构

采用BPS 网络体系结构,软件的安装只在服务器端进行,客户端实现零安装。所有系统管理及升级只在服务器端进行,各个客户端无需任何设定。网络的数据库,使用基于MICROSOFT WIN2000Server 的SQL Server 2000。整个系统用Visua l Stu2dio.NET 开发,ASP.NET 技术框架,实现语言采用C# 或VB.NET语言。要求客户端使用WIN98 或以上版本,浏览器要求IE6.0 以上。开发过程中有关问题的探讨

4.1 重视分析现有工作流程,抽象出适用的工作流办公处理过程有它的随意性和不可预测性。开发一个成功的OA 系统不但受到技术因素的制约,还会受到传统模式和相关人员整体素质的挑战。系统开发前期必须做好系统的需求分析工作,首先,明确组织结构、业务划分和具体业务处理过程,及其处理过程的数据来源及流向。实际的工作流错综复杂,要实现软件模块的原子化和系统的自组织性必须使软件系统模块与具体的处室、人员无关。这就要求我们在对现有的组织机构、每个工作的工作过程、活动内容、数据来源、数据去向及约束性等进行细致分析的基础上对提取的工作流进行优化,提取出与具体的组织机构无关的工作流逻辑模 型。这样,才能保证OA 系统的灵活性,才能适应单位组织机构的不断调整变化。这一优化过程,不能受限于现有组织机构及现在工作流程,不能局限于对现状的简单模拟。否则,轻则降低了系统的效率,重则会造成系统的开发失败。办公自动化是一场变革,是一个渐进的、潜移默化的过程,因而是长期的、持久的,不可能一劳永逸,更不可能花钱一买就得。必须加强对使用者的培训,并获得单位领导的理解与支持。4.2 系统安全性设计是贯彻开发过程的主线

由于OA 系统使用人员构成复杂,涉及数据一般比较敏感,所以系统的安全至关重要。本系统主

要通过下列两种方式进行安全管理:(1)每个用户都要经过严格的身份认证。系统在进入每个页面时都要检查当前用户的状态。(2)通过用户权限设置,保证系统信息安全。只有经过授权才能使用相应的功能。本系统在权限进行分配时,引入了系统权限和工作流权限两类权限,可实现多级组织结构和用户多角色的权限分配机制。系统管理员同时拥有上述两类权限的所有管理权限。基于单位的层级结构,在系统权限中分设管理员、部门级和员工级三个级别。其中管理员具有系统管理最高权限,如系统初始化、用户管理等;部门级用户有发布信息、管理自己发布的信息、管理本部门用户等权限;员工级用户则只拥有最基本的浏览信息权限。同时管理员可以修改任何用户任何模块的读写权限,部门级用户可以把自己拥有的权限分配给下属用户。这意味着权限具有可继承性和灵活性。在工作流执行过程中,权限大小则是由用户在工作流中所处的位置所决定,不受系统权限等级的限制。工作流发起者具有此项工作流的管理权限,可以察看工作流执行状态和修改工作流,工作流的其他参与者只具有与自己工作相关的权限。另外,数据加密、数据的及时备份、系统日志等安全技术也被采用,以加强安全性。BPS 结构由于不需要安装客户端,很难做到高等级的安全防护。为此,针对一些特殊应用,系统采取了IP 地址与用户名绑定的措施,限制一些高等级操作。部分采用CPS 结构可能是更好的选择。4.3 友好的用户界面、操作快捷方便是系统开发取得成功的重要因素直接用户满意度是衡量一个系统是否成功的重要指标,功能完备、使用方便是直接用户最为关心的主要问题。为此,可在以下几个方面加以注意:(1)应尽量采用图形化、表格化的用户界面;(2)设计过程中注意操作的简便性,在统一的界面上,充分考虑信息流程和用户的原有操作习惯,减轻用户的重新学习负担;(3)设置方便快捷的查询体系,增强用户对系统的依赖性;(4)通过多种提醒方式,实现实时通知,可以保证办公工作流的正常流转。实时通信是目前办公系统发展的一个方向。本系统设置了系统启动时提醒、定时提醒、邮件提醒等多种提醒方式。如果能实现手机短信、外部邮件提醒,对于外出人员及时了解工作进展,将有极大的帮助。与类似腾讯TM 之类的实时通信软件相结合,可进一步提高系统的实时信息处理能力,简化系统开发。

4.4 在信息集成环境下的OA 系统,不是孤立的系统,在其设计与实施过程中,要注意从整体和集成的角度加以考虑,做好和各类已有系统的集成工作一般学校都有教务管理、人事管理、财务管理、图书管理等多种管理信息系统,这些系统相当一部分可能是专用系统。如何实现与这些系统的信息共享,是OA 系统设计必须解决的问题。对于已有系统,可通过各系统的数据导入、导出功能实现与本系统的数据交换,对于今后可能建立的系统,应预留数据转换接口。在数据库设计时,应给予更多的考虑。4.5 需要进一步研究的问题

4.5.1 修改痕迹的保留办公数据在流转过程中,可能会涉及多人对文件的修改。工作流处理过程中如何保留文件修改痕迹,是一个难题。保留修改痕迹,可以通过使用系统专用文本编辑器、集成OFFICE 类软件等方式解决。使用系统专用文本编辑器,虽然可以有效地解决痕迹保留的问题,但是设计开发难度较大、可能和用户的原有操作习惯不一致,且存在与日常通用文档的数据兼容问题,所以使用范围受到一定的限制。集成OFFICE 类软件,直接处理WPS、DOC、XLS、PDF 类文本,可以较好的克服使用专用文本编辑器所带来的缺陷,但是修改痕迹可能被非授权地破坏。如何有效保留修改痕迹,需要进一步加以研究、解决。4.5.2 信息有效性的确认

信息的有效性体现在保证重要数据是真实有效的,可以认为是数据的源是真实有效的,比如校长办公室发布一条消息,OA 系统关心的是这条消息是不是校长办公室所拥有的账号发布的,发布后有没有被修改。当然可以通过加强账号和口令的管理,但更可靠的方法是通过数字签名等加以确认。已发布的数字签名法并没有具体限定未来网上签名使用何种模式。目前使用的数字签名主要有三种模式:智慧卡式、密码式、生物测定式,无论哪种方法都涉及硬件的投入问题。自主开发数字签名的难度很大。5 结语

本文给出的基于工作流管理技术和采用BPS 结构的OA 系统设计方案,能够通过InternetPIntranet进行办公业务处理,提供规范、灵活的办公流程管理,具有功能齐全、使用方便、安全性好、可靠性高等特点,并已得到实际应用。智能化决策、网络协同办公已经成为现代化管理的趋势,基于工作流的网络OA办公系统将发挥越来越大的作用。

第二篇:UCML工作流系统与现有应用系统集成

The best solution for how to develop WEB application on.Net quickly and efficiently

UCML工作流系统与现有应用系统

集成实现方案说明

金富瑞(北京)科技有限公司

Goldframe Technologies Co., Ltd.一 总体说明

UCML.Net工作流系统是国内领先的工作流平台,涵盖了从流程开发、发布、管理配置到运行、监控的整个过程。UCML工作流系统主要包括可视化的流程设计环境、独立的工作流引擎服务、WEB客户端管理、可视化的流程监控、流程套路生产线几个部分,是.Net领域用户最多,覆盖面最广的工作流平台。

一方面,UCML工作流系统与UCML平台其它部分(业务单元开发,Web报表)无缝集成,可以完成复杂的业务处理及流程流转;另一方面,UCML工作流系统与业务之间采用松耦合设计,不仅可以与UCML业务系统集成,还可以与其它现成的应用系统实现无缝集成。

UCML工作流在与其它应用系统集成时,一般有两种方式: 第一种:保留UCML现有的组织机构、用户及权限体系

第二种:完全屏蔽UCML提供的组织机构、用户及权限体系,完全采用客户原有的组织机构权限体系。

对于第一种方式,需要另外实现UCML系统与客户现有应用系统之间的数据同步,具体方法可采用程序同步方式,在这里就不详细介绍了。

下面主要介绍一下采用第二种方式时的处理方法。二 UCML Workflow会话编程接口

UCML Workflow 提供了WorkFlow.WorkFlowSession会话类来访问工作流引擎, WorkFlow.WorkFlowSession以.Net Remoting服务形式形式存在于工作流引擎的独立进程中,客户端可以创建WorkFlow.WorkFlowSession的Client端来来调用服务端的接口。

创建工作流会话对象

WorkFlow.WorkFlowSession

FlowSession

=(WorkFlow.WorkFlowSession)Activator.GetObject(typeof(WorkFlow.WorkFlowSession), “tcp://”+WorkFlow.UCMLInitEnv.WorkflowEngineAddr+“:”+WorkFlow.UCMLInitEnv.WorkflowEnginePort+“/WorkFlowSession”);

程序启动工作流程

public Guid CreateInstance(string FlowID,Object UserOID,Object PostnOID, Object DivisionOID,Object ORGOID, bool startNow)

通过调用CreateInstance函数,可以启动指定的工流程。

返回值:流程实例句柄。

参数名称 FlowID UserOID PostnOID DivisionOID ORGOID startNow

类型 string Object Object Object Object Bool

参数说明

要启动的流程编号

起动流程的用户OID,实际类型为GUID 起动流程的员工OID,实际类型为GUID

起动流程的员工所在部门的OID,实际类型为GUID 起动流程的员工所在组织的OID,实际类型为GUID ==true 流程是马上启动; ==false 流程暂不启动,要启动流程需调用StartInstance函数,这种情况一般用于在业务(如客户订单)提交成功后,先写入订单号到流程实例中,然后在启动流程。

 向流程全局数据写入数据

public void WriteFlowData(string FlowID, Object InstanceID, string FieldName,Object Value)

参数名称 FlowID InstanceID FieldName Value

类型 string Object string Object

参数说明

数据项所属的流程编号

流程的实例句柄,实际类型为GUID 数据的属性名称 数据的属性的值

从流程全局数据读出数据

public Object ReadFlowData(string FlowID, Guid InstanceID, string FieldName)

返回值:读取数据属性的值

参数名称 FlowID InstanceID FieldName

类型 string Object string

参数说明

数据项所属的流程编号

流程的实例句柄,实际类型为GUID 数据的属性名称

向流程局部数据写入数据

public void WriteActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName,Object Value)

参数名称 FlowID InstanceID ActivityID FieldName Value

类型 string Object string string Object

参数说明

数据项所属的流程编号 流程的实例句柄,实际类型为GUID 活动节点的编号 数据的属性名称 数据的属性的值

从流程局部数据读出数据

public Object ReadActivityData(string FlowID, Guid InstanceID,string ActivityID, string FieldName)

返回值:读取数据属性的值

参数名称 FlowID InstanceID ActivityID FieldName

类型 string Object string string

参数说明

数据项所属的流程编号 流程的实例句柄,实际类型为GUID 活动节点的编号 数据的属性名称

完成已分配的任务

public string FinishTask(string strAssignTaskID)FinishTask代表设置已分配出去的任务已完成 返回值:提示信息

参数名称 strAssignTaskID

类型 string

参数说明

分配任务的唯一标志号

设置任务结果及状态

public void SetTaskResolution(Guid TaskID,TTaskResolution Resolution)

设置任务执行结果,代表任务执行完毕

参数名称 类型 参数说明

TaskID Resolution

Guid

任务的Key值

TtaskResolution 任务的状态{UNRESOLVED,SUCCESS,FAIL,EXCEPTION} 含

义分别为{未处理,成功,失败,异常}

 编写节点分支条件

UCML Workflow用abstract public class Transition类来描述一个分支条件

类属性名称 类型 可见度 属性说明

TransResult

Boolean

protected

TransResult==true 则代表流程分支条成立

TransResult==false 则代表流程分支条不成成立

FromActivity

WorkFlowActivity

public

分支来源节点对象实例 ToActivity FlowModel

WorkFlowActivity WorkFlowModel的子类

public public

分支目标节点对象实例

其实是流程模型的实例对象,通过它可以访问流程所有属性(或状态)数据

方法名称

类型

可见度 public

方法说明

virtual public bool OutgoingCondition()

在UCML Workflow里,节点的一条流出分支是否成立完全取决于这个函数,编程人员员可以它的子类里编写它的具体实现代码,在编写代码时可以结合流程的状态数据。在这函数中一定要设置TransResult的值,也就是说如果TransResult==true 分支成,否则分支不成立,也就不走这条分支。

IncomingCondition

bool

public

virtual public bool IncomingCondition()OutgoingCondition()bool

OutgoingCondition()这函数是在Transition的子类中已覆盖函数形式实现,在UCML环境里的流出条件编辑,就是实现此函数。如下图示:

 9.编程实现智能任务分配

wm_assign()-UCML Workflow提供回调函数,为开发者提供完成复杂分配的可能,详见回调函数接口

 10.终止流程

方法名称 Abort()

类型 void

可见度 public

方法说明

public void Abort(string FlowID, Guid InstanceID)终止某个流程实例

 9.挂起流程

方法名称 Pause()

类型 void

可见度 public

方法说明

public virtual void Pause()暂时挂起一个流程

 10.唤醒流程

方法名称 Resume()

类型 void

可见度 public

方法说明

public void Resume(string FlowID, Guid InstanceID)重新运转流程

 11.节点手动跳转

方法名称 GotoActivity()

类型 void

可见度 public

方法说明

public void GotoActivity(string FlowID, Guid InstanceID,string FromActivityID,string

ToActivityID,string Performers)作用 : 流程跳转 FlowID:流程ID

InstanceID:流程实例句柄 FromActivityID:来源活动名称 ToActivityID:目标活动名称 Performers:执行人的群组串. 回退任务

///

/// 回退任务 /// ///

任务ID public void Rollback(Guid TaskID) 回收任务

///

/// 收回任务 ///

///

任务ID

 获取某个活动节点执行人

///

/// 获取某个活动节点执行人

///

///

活动节点ID

/// public string GetActivityPerformer(string ActivityID)

 获取当前节点即将流向的目标节点,如果是并发输出将会多个流向。用于在当前节点完成时,马上选择下一节点执行人

///

/// 获取当前节点即将流向的目标节点,如果是并发输出将会多个流向

/// 用于在当前节点完成时,马上选择下一节点执行人

///

///

流程ID

///

实例ID

///

活动ID

/// 返回要输出的节点ID数组

public string[] GetOutgoingActivitys(string FlowID, Guid InstanceID, string ActivityID)

 获取节点状态

///

/// 获取节点状态

///

///

///

///

///

public int GetActivityStatus(string FlowID, Object InstanceID, string ActivityID) 修改节点状态

///

/// 修改节点状态

///

///

///

///

///

public void ChangeActivityStatus(string FlowID, Object InstanceID, string ActivityID, int ActivityStatus) 不结束当前节点,而激活下一节点

///

/// 不结束当前节点,而激活下一节点

///

///

流程ID

///

流程实例ID

///

流转到活动ID

///

来自活动ID

///

流转到活动节点执行人

public void GotoActivityNotFinishTask(string FlowID, Guid InstanceID, string FromActivityID, string ToActivityID, string Performers)

 完成已分配的任务,但不流转

///

/// 完成已分配的任务,但不流转

///

///

工作流活动节点对象

///

public string FinishTaskNotRun(WorkFlowActivity Activity)

 加签或者转签

///

/// 加签或者转签 /// ///

流程ID ///

实例ID ///

任务ID ///

当前用户OID ///

执行人 ///

按照顺序执行 ///

true:加签;false:转签 ///

///

消息类型 ///

消息内容

public void AddSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers, bool fSignOneByeOne, bool InsertBefore, bool IsDeleteSigner,int MessageType,string MessageContent)

 协办或会签

///

/// 协办或会签

///

///

流程ID

///

实例ID

///

任务ID

///

当前用户OID

///

执行人

///

消息类型

///

消息内容

///

3:协办;1:会签

public void AssignSignPerformer(string FlowID, Guid InstanceID, Guid AssignTaskOID, Guid CurrentUserOID, string SignPerformers,int MessageType, string MessageContent,int TaskKind)

 手工正常分配任务

///

/// 手工正常分配任务 /// ///

///

public void MansualAssignTask(string TaskTicketOID,string Performer) 分配参阅任务

///

/// 分配参阅任务 /// ///

///

public void MansualAssignReadTask(string TaskTicketOID,string Performer) 悔签任务,对在任务分配表AssignTask中acceptFlag置为1的标记设为4悔签

悔签

///

/// 悔签任务,对在任务分配表AssignTask中acceptFlag置为1的标记设为4/// ///

public void RepentSignforTask(string assignTaskID) 任务跳回到执行人

///

/// 任务跳回到执行人

///

///

流程ID

///

流程实例句柄

///

节点ID

public void TaskReturn(string FlowID, Guid InstanceID, string ActivityID)

 获取某个已完成节点的执行人

///

/// 获取某个已完成节点的执行人

///

///

流程ID

///

流程实例句柄

///

节点ID

/// 返回执行人OID数组

public Guid[] GetExecuteUser(string FlowID, Guid InstanceID, string ActivityID)

 唤醒已完成的任务

///

/// 唤醒已完成的任务

///

///

public void WakeFinishedAssignTask(string AssignTaskOID) 12.任务超时处理及编程

UCML Workflow 的是否超时由下图的完成期限和延长时间两个属性决定:

当完成期限不填内容时,代表这个活动节点产生的任务没有时间限制 延长时间代表完成期限倒了之后,还可以再延长多少时间

 即将超时处理

当完成期限到了之后,会回调wm_willtimeout函数,如果想在此时放个邮件通知或短信,就可在wm_willtimeout函数内调用。

 超时处理

同样的当完成期限到了之后,如果有延长时间,而且延长时间也到了,会回调wm_deadline函数,如果想在此时放个邮件通知或者短信,就可在wm_deadline函数内调用。如下图示:

如果任务在截止期限和延长时间内都没有完成,此时任务做超时处理,流程是继续流转还是停止由截止期限到达时系统行为这个属性决定,如为SYNCHR(同步),则流程停在这里,如果为ASYNCHR(异步)则流程继续流转。

三 UCML工作流开放性介绍

UCML 引擎底层框架的基类源码不开放,包括引擎调度代码和流程类、活动类和分支类基类代码。而根据定义可以直接生成引擎源码都是开放的,可以在这些源码的框架扩展时刻(回调函数)之内注入C#代码来进行,如下面活动节点代码的时刻函数

任务分配时刻函数

override public void wm_assign(Object taskTicketID,Object[] UserList,ref Object[] AssignUserList,ref int[] TaskKindList,Boolean reassignFlag){ } 任务分配后时刻函数

override public void wm_afterAssignTask(Object assignTaskID,Object UserOID){

base.wm_afterAssignTask(assignTaskID,UserOID);}

任务分配前时刻函数

override public void wm_beforeAssignTask(SysDBModel.AssignTaskInfo AssignTaskInfo){ }

任务完成时刻函数

override public void wm_afterTaskFinish(Object taskTicketID,TTaskResolution TaskResolution){ }

任务超时时刻函数

override public void wm_deadline(Object taskTicketID){ }

任务完成规则函数

override public bool wm_finishTaskRule(SysDBModel.TaskTicketInfo taskTicketInfo){

return false;} 任务创建函数

override public void wm_createTask(SysDBModel.TaskTicketInfo taskTicketInfo){ }

任务回滚前函数

override public void wm_beforerollback(Object taskTicketID){ } 任务回滚后函数

override public void wm_afterrollback(Object taskTicketID){ }

override public void wm_onactivate(){ }

override public void wm_willtimeout(SysDBModel.TaskTicketInfo taskTicketInfo){ }

override public bool wm_activityInComeCondi(){

return false;}

} }

四 集成方案

在采用客户已有的人员权限体系时,主要用到UCML工作流系统的可视化流程设计环境、工作流引擎服务、工作流标准表结构、流程API、可视化的流程监控(可选)等。在集成时可能需要修改客户已有的Web系统或表的结构,主要是修改以下地方:  修改人员信息表

 引入流程接口(UCML工作流API) 客户登陆会话的改变

 加入工作流引擎需要的初始化程序  增加一个待办事宜模块

 引入平台中的可视化的流程监控模块(如果需要可视化流程监控那么就需要引入)在平台中主要有以下注意点:  在平台中设计工作流模型  添加流程状态数据

 在任务分配函数-wm_assign()中设置任务的执行人  修改人工节点上的业务标识符为为自己的页面

1、修改人员信息表

需要在客户现有的用户表(存储登录帐号、密码表)中增加一个Guid类型的字段,这个字段的值唯一标记一个用户,不影响客户现有的应用体系,起到与UCML工作流衔接作用。

这个字段的字段名命名规范为:客户表名+OID,即“客户表名OID”,字段类型为GUID类型,在MSSQL Server中是Uniqueidentifier,Oracle中为VARCHAR类型。在客户业务系统中客户的登录ID代表客户的身份,如果整合中客户表中有现存的数据需要手工给“客户表名OID”赋值;另外,在增加用户的程序中要同时给“客户表名OID”赋值。

2、引入流程接口(UCML工作流API)

 在客户现有系统的工程文件中引入UCML工作流API,并引用一个专门为第三方业务开发包装的接口源程序WorkflowClient.cs。

 相关工作流API:DBLayer.dll,SysDBModel.dll,UCMLBase.dll,WorkFlow.dll  把Workflowbin 目录下的UCMLConf.xml,DBLayer.xml文件拷贝到客户工程的bin目录下,注意:如果不是在客户工程的本机运行工作流引擎,则需要把UCMLConf.xml文件中引用工作流引擎地址的IP改为运行工作流引擎主机的IP地址。

3、客户登陆会话的改变

在用户登陆的程序中,在取得用户表中各项数据时,把用户表中新增的字段也读出来,并把该项也放入用户登陆会话中。

4、加入工作流引擎需要的初始化程序

在使用客户的应用程序中与工作流引擎打交道之前的任意时刻加入如下程序: UCMLCommon.UCMLInitEnv.fInServer=true;UCMLCommon.UCMLInitEnv.LoadEnvVariable();new DBLayer.LogicDBModel();UCMLCommon.UCMLLogicDBModelApp x = new UCMLCommon.UCMLLogicDBModelApp();x.PrepareModel();

5、增加一个待办事宜模块

待办事宜也叫待办任务。

需要客户自己新增一个待办事宜模块,其数据来源是UCML提供的任务分配表AssignTask,开发者可根据记录(任务)的完成与否状态过滤数据到待办任务模块内。

6、引入平台中的可视化的流程监控模块(如果需要可视化流程监控那么就需要引入)

可视化流程监控的页面在平台中的业务模块是:BPO_FlowTrace 可以将BPO_FlowTrace相关文件拷贝到项目下: BPO_FlowTrace.aspx BPO_FlowTrace.aspx.cs BPO_FlowTrace.asmx BPO_FlowTrace.asmx.cs BPO_FlowTrace.htc

7、在平台中设计工作流模型

在平台中设计工作流模型,可以参考“工作流设计手册”。

8、添加流程状态数据

UCML工作流引擎和业务之间是松耦合处理模式,工作流和业务之间是通过流程状态数据进行交互。

流程状态数据是指工作流在运转过程中流程流转所需要的保存在流程实例中的数据,一般有三类业务数据要保存在流程中,一是业务单据的关键字段,用它可以决定一个任务对应的业务单据号,在UCML里一般把表单主键存到流程里;二是决定流程分支走向的数据,有可能是领导意见,也有可能是单据金额,这些数据是为了工作流引擎内部调用的;三是流程执行人信息。

流程和业务之间的状态数据交互方法很简单,如下所示:

写入流程状态数据:即把业务的数据写入到流程中去,调用的方法是WriteFlowData;

读出流程状态数据:即把流程状态读出来赋给业务,调用的方法是ReadFlowData。写入流程状态数据一般在数据提交时进行,读出流程状态数据一般在初始化时进行,读时可以把流程状态数据赋给业务中的某个属性,以方便业务中调用。

9、在任务分配函数-wm_assign()中设置任务的执行人

在工作流中任务分配的方式有几种:

通过群组配置分配任务

回调函数分配任务

手工执行执行人

由于组织机构等均不采用平台自带的组织框架,所以无法采用“通过群组配置分配任务”的方式,只能采用“回调函数分配任务”或

10、自己实现执行人群组解析接口,可以继续使用基于配置的任务分配

基于流程模型的执行人配置可以避免在wm_assign里写程序做任务分配,但必须必需特定某个组织机构,在这个组织机构基础之上可以定义群组,来描述人员、部门和岗位集合,也可以定义相对执行人如申请人的部门主管、申请人公司总经理等,只要实现自己的群组解析接口,就可以自己的群组串配置UCML的工作流执行人的字段里,就可以实现基于配置的任务分配实现步骤如下:

 自定义类实现如下接口

public interface IGroupParser { Object[] UserOIDList(string GroupStr, Object Starter, Object StartPostn, Object StartDivision, Object StartORG, Object Performer, Object PerformerPostn, Object PerformerDivision, Object PerformerORG);Object[] UserOIDList(string GroupStr);}

///

/// ///

群组字符串 ///

流程启动者GUID /// 根据组定义获取用户列表

///

流程启动岗位GUID ///

流程启动部门GUID ///

流程启动企业GUID ///

当前执行人GUID ///

当前执行人岗位GUID ///

当前执行人部门GUID ///

当前执行人企业GUID /// 返回GUID类型的用户ID  在UCMLCONF.XML文件里添加如下节点:

true dll名称 类名称11、12、修改人工节点上的业务标识符为为自己的页面 工作流计算工作日客户自定义接口

1.自定义类实现如下接口

public interface IWorkDay { ///

/// 计算任务完成期限,用于扩展节假日等非工作日的完成时间的计算

///

///

任务开始时间 ///

任务计划用时,单位为秒 ///

任务执行人OID /// 返回任务最终完成时间 DateTime GetLimitDateTime(DateTime startTime, long delayTime, Guid UserOID);}

2.在UCMLCONF.XML文件里添加如下节点:

< fCustomWorkDay>true < WorkDayAssembly>dll名称 < WorkDayClass>类名称

13、///

/// 流程切面时刻

///

public interface IWorkFlowRuntime { /// /// 流程创建时刻

///

///

工作流时刻切面接口

1.自定义类实现如下接口 ///

void OnCreateInstance(WorkFlowModel FlowInstance, DateTime CreateTime);///

/// 流程完成时刻

///

///

///

void OnFinishInstance(WorkFlowModel FlowInstance, DateTime EndTime);///

/// 流程终止时刻

///

///

///

void OnAbortInstance(WorkFlowModel FlowInstance, DateTime AbortTime);} ///

/// 活动节点切面接口时刻

///

public interface IActivityRunTime { /// /// 任务创建时刻

///

///

///

///

void OnCreateTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime CreateTime);///

/// 完成任务分配时刻

///

///

///

///

void OnFinishAssignTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);///

/// 完成整个任务时刻

///

///

///

///

void OnFinishTask(WorkFlowModel FlowInstance, WorkFlowActivity Activity, DateTime FinishTime);}

第三篇:工作流与信息流

工作流与信息流

工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。

简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。一个工作流包括一组任务(或活动)及它们的相互顺序关系,还包括流程及任务(或活动)的启动和终止条件,以及对每个任务(或活动)的描述。

工作流在大多数的实际应用中的情况可以这样来简单地描述:在网络、服务器和多台计算机客户端的硬件平台上,业务过程按照预先设定的规则并借助应用程序和人对相关数据的处理而完成。例如,在日常办公中,当撰写好某份报告之后,可能需要将其提交给领导进行审阅或批示;审批意见可能需要汇集并提交给另外一个人,以便对报告进行进一步的修改。这样,可能会形成同一篇文档在多个人之间的顺序或同时传递。对于这样的情况,我们可以使用工作流技术来控制和管理文档在各个计算机之间自动传递,而非手工传递。这就可以称之为工作流。

类似的关于文档的自动化处理只是工作流技术的一种简单应用。事实上,工作流技术在现实生活中能够完成更多更复杂的任务。如企业(或机构)内部的各种数据或信息的自动处理,多种业务流程的整合,企业(或机构)之间的数据交换,借助Internet技术实现跨地域的数据传输和处理等等。

一、工作流发展

工作流技术起源于二十世纪七十年代中期办公自动化领域的研究,由于当时计算机尚未普及,网络技术水平还很低以及理论基础匮乏,这项新技术并未取得成功。1983年至1985年间,在图像处理领域和电子邮件领域出现了早期的含有工作流特征的商用系统。

进入九十年代以后,随着个人计算机、网络技术的普及和推广,以及信息化建设的日益完善,使得工作流技术的研究与开发进入了一个新的热潮。1993年8月,第一个工作流技术标准化的工业组织——工作流管理联盟(Workflow Management Coalition,简称WFMC,下同)成立。1994年,工作流管理联盟发布了用于工作流管理系统之间互操作的工作流参考模型,并相继制定了一系列工业标准。与此同时,关于工作流技术的学术研究也十分活跃,许多原型系统在实验室里开发出来。进入二十一世纪以来,工作流技术已被越来越多的人认可,与之相关的标准规范、工作流引擎及商业产品不胜枚举。人们在开发推广工作流产品的同时,更加注重工作流的理论研究,以推动该项技术走向成熟。

二、工作流的特点

1,图形化、可视化设计流程图

2,支持各种复杂流程

3,组织结构级处理者指定功能

4,B/S结构,纯浏览器应用

5,强大的安全性特色

6,表单功能强大,扩展便捷

7,灵活的外出、超时管理策略

8,处理过程可跟踪、管理

9,丰富的统计、查询、报表功能

10,与MAIL系统集成三、工作流的优点

企业实施工作流管理所带来的好处是非常明显的,这包括提高企业运营效率、改善企业资源利用、提高企业运作的灵活性和适应性、提高工作效率、集中精力处理核心业务、跟踪业务处理过程、量化考核业务处理的效率、减少浪费、增加利润、充分发挥现有计算机网络资源的作用。实施工作流将达到缩短企业运营周期、改善企业内(外)部流程、优化并合理利用资源、减少人为差错和延误,提高劳动生产率等目的。

总结实施工作流带来的好处,可以归纳为以下几点:

1,要处理的事项已自动传递到个人电脑上

2,不再需要对员工进行流程的培训,平滑实现流程变更

3,员工只需将精力集中在处理自己关心的数据上

4,随时得到历史数据

5,随时生成处理效率报表

6,达到无纸化办公的目标

7,完全支持移动办公,使作业同步化

8,科学管理更进一层,办公效率明显提高

9,企业的核心竞争力将有提升

10,通过流程自动化与数据库集成,以及各类表单统计查询功能,提高决策能力

信息流 information flow

信息流是在空间和时间上向同一方向运动中的一组信息,它有共同的信息源和信息接收者,即是由一个分支机构(信息源)向另一个分支机构(地址)传递的全部信息的集合。各个信息流组成了企业的信息网,称之为企业的神经系统。信息流畅与否,决定着企业生产经营活动是否能正常运行。

信息流是企业发展的脉络

评价企业成功与否,一个简易的办法是看其物流、工作流和信息流“三流”的情况,其中,信息流的质量、速度和覆盖范围,尤其可以“映照”企业的生产、管理和决策等各方面的“成色”。企业的“生命活动”最终都将以信息流的“高级形式”展现……

评价企业成功与否,一个简易的办法是看其物流、工作流和信息流“三流”的情况,其中,信息流的质量、速度和覆盖范围,尤其可以“映照”企业的生产、管理和决策等各方面的“成色”。因为物流、工作流在企业的“生命活动”中无不最终以信息流的“高级形式”展现,就象生物体的所有活动都是基于神经系统传递的生物电信号一样。因此,深入认识“信息流”,将掀开企业发展的新视角。

如同流动的资金带来价值一样,当信息不受限制的从一个地点流动到另一地点,帮助企业实时获取信息,并促使企业创造出真正的经济效益时,才具有最高的价值和意义。其关键,是打造闭环的信息流。不仅要打破企业内部各种信息孤岛,实现数据的收集整合、加工分析、信息的传递应用,以及信息数据的再加工、应用的反复“循环”,还要将企业内部的信息流与企业外部上下游用户的需求信息结合起来,形成“内外融合”的闭环的“大信息流”。这样认识信息流,可以帮助用户“打开眼界”,审视IT建设中局部与整体统一规划和发展的问题,即通过集成实现不同层面的信息流同时,也要为建立企业间高效的信息流打好基础。

此外,建立全面的信息流也是实现业界提出的“按需应用IT资源”理想的基础。信息流具有速度、质量等特征,反映着企业的IT基础水平。信息流速度慢,企业无法及时获取所需信息。而系统数据不完整或得到不一致数据,又将严重影响信息流的质量,进而影响业务系统的成败。只有高质量的信息数据不受任何限制平稳地流向所需位置,才能最终实现按需应用的理想。这对企业各层系统的无缝集成提出了更高的要求。为此,建立丰富的实施信息流的技术方案体系,包括数据层集成、应用层集成、垂直业务处理层集成、发布层集成以及通用建模和开发工具的应用。“信息流”是企业发展的基本脉络。

第四篇:工作流管理系统体系结构设计

工作流管理系统体系结构设计

2010-04-30

清华领导力培训

机电之家

本文主要从三个层次深入介绍了工作流管理系统结构,工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。深入研究工作流管理系统模型和各大主流工作流管理系统基础上设计一套全面系统结构。

工作流管理系统是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流逻辑进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。

目前已有上百种声称具有工作流管理功能的商品化软件或原型系统。为了对这些系统的功能、特点等有一具清晰的认识,可以根据工作流过程本身的特点、系统建模的方式、所使用的底层支撑技术、以及工作流过程的执行方式等的不同而对它们进行相应的分类如下:

1、结构化的与即席的

结构化工作流指的是在实际工作过程中会反复重复、严格按照某个固定的步骤进行的业务过程。定义此种工作流所需要的各种类型的信息可以通过对业务过程进行详细的分析而得到,从而得到完整的过程定义并在以后的应用过程中反复使用。大量的办公程序,如公文处理、审批等都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作流程的,关于这类流程执行所需的有关参数(如参加者等)事先无法确定,而必须推迟到过程实例运行时才能确定,同时在执行过程中间还可能会发生一些意外的情况。这种动态多变的特点在提供更高灵活性的同时,也为过程的建模与执行带来更多的复杂性。

2、面向文档的与面向过程的

前者的侧着点在于将电子形式的文档、图像等在有关的人员之间进行分发,以便能够得到不同人的处理与审阅。现有的文档管理与映像管理系统均属此类。在面向过程的WfMS中,工作流被描述成一序列执行环节。与各环节相应都有待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去,如可以将数据对象的值作为控制条件、或者依此数据对象组装成其他的数据对象等。高端的WfMS一般都属此类系统。

3、基于邮件和基于数据库

前者使用电子邮件来完成过程实例执行过程中消息的传递、数据的分发与事件的通知。低端的系统所使用的经常就是此种方法,它可以充分发挥电子邮件系统在广域环境下的数据分发功能,但整个系统将运行于一种松散耦合的模式下。在基于数据库的WfMS中,所有的数据都保存在某种类型的DBMS中,过程的执行实际上就是对这些数据的查询与处理。高端的大规模系统所使用的一般都是此种方法。

4、任务推动的与目标拉动的

前者指的是从过程的开始逐步地一个环节一个环节的执行,当某个活动实例被处理完之后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。这是目前大多数面向过程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流程被看成是一个目标。过程实例执行时,该目标将被分解得到多个相互之间按一定约束条件的关联起来的可执行的多个环节,其中各环节还可以当成是子目标而进一步进行分解。在各环节均执行完毕之后,整个过程也就完成了。目标拉动是一种全新的执行方式,下一代的WfMS将具有此种特征。应该说明的是:上述分类只是从不同的角度入手的。一般来说,后面那些特点将给WfMS带来更好的灵活性,同时也将成为那些能够支持跨机构的大规模复杂工作流管理、面向关键任务的WfMS不可缺少的特征。

工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。本文深入研究工作流管理系统模型和各大主流工作流管理系统的基础上设计了一套功能全面的工作流管理系统体系结构。本文主要从该体系结构的三个层次深入介绍了该系统结构。

1、引言

在一个组织内部存在着两种信息:一种是数据信息,另一种是业务信息。在组织之间也同样存在着两种信息:一种是数据信息,另一种是业务往来信息。如果这两种信息用计算机系统来管理,前一种属于组织内部的信息系统,后一种属于B2B电子商务系统。目前对数据信息的计算机管理系统(即:数据库管理系统)经过多年的发展已经成熟。对业务过程的计算机管理系统由于比较复杂,可变因素较多,难度大,因此发展还不成熟。工作流技术作为现代组织实现过程管理与过程控制的一项关键技术,为组织的业务处理过程提供了一个从模型建立、管理到运行、分析的完整框架。同时,工作流管理系统(Workflow Management System,WFMS)通过一套集成化、可互操作的软件工具为这个框架提供了全过程的支持。Thomas Koulopoulos曾预言:工作流管理系统将最终成为覆盖于各类台式机与网络操作系统(如:Windows,Unix,Windows NT)之上的业务操作系统BOS(Business Operating System),它将带来操作系统的一次革命。但是目前工作流技术无论从理论上还是从实践都还不够完善,要实现Thomas Koulopoulos的预言可能还需有一段路要走。本文主要介绍了由作者独立设计一套工作流管理系统体系结构,以供工作流技术爱好者参考。

2、工作流管理系统的基本概念

顾名思义,工作流就是工作任务在多个人或单位之间的流转。在计算机网络环境下,这种流转实际上表现为信息或数据在多个人之间的传送。工作流管理联盟(Workflow Management Coalition,WfMC)对工作流的定义是:“业务过程的部分或全部在计算机应用环境下的自动化”。她所要解决的主要问题是,“使在多个参与者之间按照某种预定义规则传递的文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者是促使此目标的实现”。

工作流管理系统就是通过管理一序列的工作活动以及相关人员、资源、信息技术资料来提供业务处理程序上的自动控制。工作流管理系统通过计算机软件来定义、管理和执行工作流程。在工作流管理系统中计算机运用程序的执行顺序是由工作流逻辑的计算机描述来驱动的。她的主要目标是对业务过程中各步骤(或称活动、环节)发生的先后次序,以及同各个步骤相关的人力、资源、信息资料的调用等进行管理,从而实现业务过程的自动化。当然这种管理可能会在不同的信息及通信环境下实现,所涉及的范围可以小至一个只有几人的工作组,也可以大到政府、企业组织各个机构之间。工作流管理系统将人员、组织结构、设备资源、信息源(如数据库、文件系统、电子邮件、计算机辅助设计工具等)整和成一个整体。这样,工作流管理系统就成为了一个理想的用来收容业务逻辑的业务知识仓库,并给予业务逻辑一个易操作易控制的界面。

工作流管理系统的最大优点就是实现具体应用逻辑和过程逻辑的分离,实现在不修改具体功能的情况下,通过修改业务流程模板来改变系统的功能,完成对组织生产经营过程的部分业务或全部业务的集成管理,有效的把人力资源、物质资源和信息组织在一起,发挥最大的效能。

3、工作流管理系统体系结构

工作流管理系统在实际运用中一般分为三个阶段:工作流建模阶段,工作流模型实例化阶段和工作流执行阶段,如图1。在工作流建模阶段主要通过工作流建模工具完成业务流程的模型建立,将实际的业务操作流程转为为计算机可模拟处理的工作流模型;在模型实例化阶段主要通过工作流引擎完成具体业务流程的实例化,为具体业务流程办理流转提供工作流相关数据和工作流控制数据,并为业务流程的办理提供所需要资源(如人力资源和物料、设备资源等); 工作流执行阶段主要完成业务流程的执行,重点是完成人机交互和系统内部应用或外部应用程序的调用。

1、实施的三个步骤

根据工作流的三个阶段的分工,工作流管理系统结构可以分为过程设计定义功能、运行控制功能和运行交互接口三个层次的功能,如图2。

4、过程设计定义功能

过程设计定义功能主要作业务处理流程的计算机定义,她提供了一种分析、建模、系统定义技术,将一个现实世界的业务处理过程转换成计算机可处理的定义;最终的定义叫作工作流模型、过程模版或过程定义,她可以用图形符号进行表示。工作流管理系统结构这一层次主要包括以下功能:业务建模与信息建模、组织管理、资源管理、内部应用开发工具、数据窗口开发工具、工作流定义等功能。

4.1业务建模与信息建模

业务流程是由各业务环节连接而成,而每一个业务环节都由多个相互关联、不同层次的要素构成。在业务建模时可自顶向下的将业务流程中各个业务环节最终分解成一系列的原子任务。所谓原子任务,即将有可能发生的每笔业务进行原子化分解,细分到不能再分割的操作单元,每个操作单元即是一个原子任务。任务之间的相互联结也将最终转化为数据流、信息流、协作流、资源流。这样各个原子任务的控制连接,就成为了工作流模型。因此,工作流是企业中过程流、数据流、信息流、协作流、资源流等各种流的综合集成。业务建模工具主要提供流程定义开发人员便捷的与数据流图工具或活动图等流程描述工具类似的业务流程分析工具。

业务模型是信息模型的出发点。信息模型说明了业务处理对象中所包含的信息,或者说执行具体功能的活动的输入、输出数据、以及这些数据之间的逻辑关系。信息建模工具可提供使用E-R图方法构建信息系统的逻辑数据模型;根据实际选用的数据库管理系统,建立适用于该数据库管理系统的物理数据模型,同时可生成目标数据库管理系统的数据库创建脚本。信息模型是个两层次的建立过程,先建立逻辑模型,再建立物理模型。逻辑模型支持数据的概念模式,它从抽象的层次上反映内部数据间的关联,不管具体的数据结构及数据存储方式等等。物理模型支持数据库的物理设计,它与具体选定的数据库类型密切相关。

4.2组织管理

在组织单位中组织结构是信息决策、任务执行和监督管理等重要活动的载体,组织结构揭示了组织单位人员管理的层次,反映了人与工作、决策、责权之间的联系。因此,组织结构对于一个组织单位中如何完成业务流程的建模和提高管理、生产效率是至关重要的。组织结构、工作流、过程建模等概念的提出,为描述组织单位业务流程提供了有力的工具,也使过程到组织的映射模型的建立成为可能。

工作流管理系统结构提供了组织管理功能,用于定义业务单位的组织架构和人员管理职责分配等工作。为工作流模型的定义和工作流的实例化、执行提供人力资源约束和支持。

4.3资源管理

资源是进行生产经营不可缺少的物资因素,在工作流的执行过程,必须得到企业资源的支持,相应的组织实体才能够按照要求完成活动。同时,工作流要保证将正确的信息和资源在正确的时刻以正确的方式送给正确的小组或成员。

工作流管理系统结构提供了资源管理功能,用于建立组织单位的资源模型,表示组织单位的资源结构和配置情况,描述组织单位各种资源对象之间的联系和关系,为工作流模型提供资源约束和支持。

4.4内部应用开发工具

工作流管理系统结构提供了图形化应用开发工具,用户可以使用图形化设计方法,开发出动态页面应用,其结果可保存为html或jsp或其他可直接调度执行的运用程序。这些内部应用程序具有数据库访问能力,能够访问或存储工作流相关数据和控制数据。在流程定义时流程开发人员可以直接设计并提供流程节点预调用。运行时用户可以在任务列表中直接调用,执行所需完成的工作。它的最大的优点是让开发人员避免了复杂业务处理应用程序的开发。

4.5数据窗口开发工具

工作流管理系统结构提供了图形化设计复杂报表页面的能力,可设计任意复杂的报表,并可画出各种统计分析图并能够使用多种形式输出。在流程定义时数据窗口开发工具就像内部应用开发工具一样可以由用户自行定义并提供流程节点预调用。当流程实例运用到指定节点时,用户可以直接调用该数据窗口以用户所需要的形式展现相关信息内容。

4.6工作流建模工具

工作流建模工具以工作流元模型为基础,通过分析不同类型的业务过程,采用有向图的方法对现实的业务活动进行形式化描述,建立业务过程到工作流模型的映射机制。对于建模工具而言一方面为用户提供了一个建立规范的业务过程的接口,另一方面,所建立的工作流过程可以存储于工作流库中作为工作流引擎的输入,投入运转、执行并接受监控。建模工具的主要包含以下功能:

提供建立工作流模型所需的各类基本元素,比如活动、子过程、连接弧等;

支持图形用户界面的基本操作,比如鼠标的点击与拖动;

提供用户定义各模型单元属性的对话框;

模型的保存与读取;

支持多层次建模;

与外部自动应用的接口;

4.7工作流模型库

工作流模型库主要用于保存和管理已定义完成的工作流模型。在工作流程启动时工作流引擎将直接加载并将其实例化,同时为工作流的流转提供基础模板。

5、运行控制功能

运行控制功能主要对工作流模型的定义进行解释,创建并控制过程的运行实例,调度过程的各种行为步骤,调用适当的人力、资源和应用程序以完成任务的执行。工作流管理系统的核心部件就是工作流管理控制软件——工作流引擎。工作流管理系统结构在这一层次的主要包括:工作流引擎和工作流监控管理2部分。

5.1工作流引擎

工作流引擎可以说是工作流管理系统的心脏。一个工作流管理系统通常可以包括一个或多个工作流引擎,不同工作流引擎通过协作共同执行工作流程。工作流引擎实际上是经营过程的任务调度器,在某种程度上还是资源的分配器。在采用工作流管理系统支持经营过程中,工作流引擎可以看成是一个业务操作系统BOS(Business Operating System)。业务过程在她的管理、监控之下运行,因此工作流引擎的性能和可靠性就直接决定了业务过程的运行效率和安全性。

5.2工作流监控管理

系统管理与监控是工作流系统一个非常重要的功能。工作流系统管理与监控工具能够对工作流在整个组织内部的流动状况进行监视,并提供一系列的管理功能,实现安全性、过程控制和授权操作等方面的管理。它包括以下几个方面的功能:

1)建立、设置和优化组成工作流管理系统的各个软件。

2)对过程模型进行实例化。

3)将过程模型中的角色实例化。

4)将运行中的过程实例、活动实例和数据分发到各个工作流机中。

5)启动、挂起、恢复和终止过程实例。

6)管理正在执行的过程实例,并对正常结束或异常退出的过程实例的历史数据进行统计和分析。

6、运行交互接口

运行交互接口主要提供工作流管理系统与人员或应用程序工具的交互接口来处理各种活动步骤。交互接口对于活动间的控制传递是必须的,如确定过程的状态,调用应用程序工具,传递应用程序数据等。

7、结论

该工作流管理系统体系结构是作者深入研究了工作流管理联盟提供的工作流管理系统模型和各大主流工作流管理系统的基础上设计出来的。以该体系结构为基础作者领导开发了基于J2EE架构的新一代工作流管理系统UniFlow。UniFlow工作流管理系统目前已在电子政务中取得了广泛的运用。

第五篇:基于工作流的公文流转系统的分析与设计

基于工作流的公文流转系统的分析与设计

[摘要]分析电子公文流转要素,针对电子公文复杂的公文表单和流程,提出动态设计公文流转页面和流程的方法,最后说明实现过程。

[关键词]工作流 公文流转 流程定制

中图分类号:F27 文献标识码:A 文章编号:1671-7597(2009)0610017-02

一、引言

日常公文处理是机关工作中的一项繁杂而重要的工作。办公自动化系统中的公文流转模块,就是为了让机关工作人员提升办文质量、提高工作效率、节约行政成本,使他们从长期繁杂的事务性工作中解放出来。

传统的基于工作流设计的公文流转系统中,公文页面和流程是静态生成和管理的。开发者根据不同的公文类型设计不同的公文页面和流程,编写相应的程序代码。维护过程中,一旦公文页面或者流程发生改变,就需要重新设计,重新编写程序代码。实践证明:此种静态设计,导致系统的开发量和维护量都非常大,不能很好的满足用户对公文流转的多样性和迅速变化的需求。因此,本文结合某机关公文流转系统的设计和开发,介绍了一个基于工作流技术的电子公文流转系统的设计过程。

二、电子公文流转要素的分析

公文流转过程中,有如下要素:公文、流程、流转方式、公文样式、权限。

(一)公文

电子公文是指以电子形式表现的并通过网络传递的,用于单位相互之间联系事务的具有规范格式的公文。它包含表单、正文和附件三方面内容。按照公文传递类型分为发文类公文和收文类公文的两类公文,两者的表单内容都共同包含公文类型、公文名称、公文编号、主题词、紧急程度、各注、主送、抄送、抄报等信息。发文类公文表单基础信息还包含:主办人、主办部门、作者等。收文类公文表单基础信息还包含:收文编号,收文主办人、全局办理时限等。

(二)流程

电子公文流程是电子公文从起草到归档,并按照标准的、统一的公文交换与共享机制和定义好的规则,在各部门之间逐级审批、传递,从而完成办理耳标的流转过程。

电子公文流程按照公文类别分为发文类流程和收文类流程。

发文类流程主要功能是处理内部制定的或外来转发的电子公文,对所有正式公文进行拟稿、审稿、核稿、会签、签发、编号、盖章、归档等过程的处理及管理。图1为某机关发文流程图:

收文类流程主要功能是处理和记载上级发文、平级来文等公文,并对接受的所有正式电子公文实现登记、拟办、批办、传阅、分发等处理和管理。图2为某机关收文流程图:

(三)流转方式

1、流转模式

电子公文流转的模式一般可归纳为以下四种:直流模式、分流模式、合流模式和回流模式。图3为四种公文流传模式图:

其中A,B分别为公文流转中的两个关联的节点,也是角色执行活动的场所,箭头线代表活动之间的关系。

(1)直流模式。最基本的流转方式,人员之间一对一的传达模式。通常用于申请审批类流程,如一份公文信息单经部门经理批示后直接交给下一个经办人处理。(2)分流模式。人员之间一对多的传送模式。一种是不需要条件约束的传送,例如通知;另一种是满足某些条件才能实施的传达,例如机要室所收文件、资料按党政系统分别处理。(3)合流模式。人员之间多对一的传送模式。例如公文的会签:某上级分发给多个下级部门经办的信息单经过不同的经办人员处理完毕后,汇总给该上级进行查看和审批。(4)回流模式。公文在流转过程中出现的退回、重做等情况,从而在流程中形成回路。

2、流转关系

参照图3,公文流转关系就是各个操作节点之间的流程关系,即图中的箭头线。一个操作节点表示一件不可再分的操作任务。多个操作节点通过不同的关系联接构成公文流转过程中的基本流程。

那么对于公文流转的某一节点而言,流转到此节点开始工作,有三种状态:(1)与型:只有当其所有的前继工作节点都完成时,流程方可进入下一步,执行当前节点的操作。如某公文需要所选的多个处长全部批阅后,工作流才能进入下一个节点,只要有一个人没有办理完毕,流程就不能向下流转。(2)或型:其所有前继节点中有一个节点完成,流程就可以进入下一个节点,执行当前操作节点。如某公文交给多个人执行,只要有一个人完成操作,流程就可以往下流转,而不管其他人员是否完成。(3)驳回型:需要回退或者重做时,就要回退给相应的工作节点和办理人。

(四)公文样式

公文样式主要指公文流转时的用户界面。

根据不同的流转节点,不同的办理人员看到的公文信息会有所不同。(1)公文表单各项信息在不同的办理节点可能处于不同的编辑状态:不显示不更新、不显示用默认值更新、显示不更新、显示不可编辑用默认值更新、显示更新可编辑和显示更新必填等。(2)公文正文状态也可能处于不同的编辑状态:带痕迹草稿可读可修改、带痕迹草稿可读不可修改、不带痕迹草稿可修改、不带痕迹草稿可读不可修改、规范公文只读可打印和规范公文只读不可打印等。(3)公文附件状态也可能处于不同的编辑状态:可管理全部附件、可管理本单位附件其他单位附件不可见、可管理本单位附件其他单位附件可见但不可删除、可见所有附件、可见本单位附件等。

(五)权限

在电子公文流转过程中,涉及很多权限的设置和管理。例如:设置对不同公文类型使用的权限:对不同流程使用的权限;在流程节点上指定固定的办理人员组、职务或者默认的办理人;流程流转过程中,办理人员可否回退或撤销的权限;办理人员办理完毕后可否浏览已办公文的权限。

三、电子公文流转模型的设计

电子公文的流转模型设计主要分为工作页面设计和基于工作流的流程设计。由于B/S架构的应用系统具有无需安装用户客户端、用户界面更加人性化等优点,因此当前主流的电子公文处理系统已经基本采用B/S架构。故而本文中的电子公文工作页面的讨论范围也仅限于于基于web的工作页面设计。

(一)工作页面设计

1.公文表单页面设计

在电子公文流转过程中将公文的三类信息安排在两个页面:公文表单和附件信息在一个页面,公文正文信息显示在另一个页面。公文表单按照其不同种类以及各使用单位的具体要求提供不同的数据字段和不同的外观。为了保持用户的使用习惯,其最终的设计外观基本和原来基于纸质公文表单一致。公文表单页面程序模块可以动态与流程管理模块结合,按照公文样式和权限来决定每类公文信息的显示以及编辑状态。其通用框架如图4所示:

2.正文页面设计

电子公文正文在草拟流转过程中最基本的要求是能够实现对电子文件的在线编辑和保存功能。在下发、签收流程中只需要实现对文件的浏览即可。“手写签名”、“电子印章”、“痕迹保留”、“意见批示”等功能在当前也被逐渐引入电子公文处理的正文页面。目前在项目中采用第三方web插件可以圆满解决这些问题。国内的江西金格等中间件厂商已经提供了成熟的Office在线编辑插件,而且这些插件目前已经被国内主流的D^开发商所采用。图5为Office在线编辑插件体系构架图。

(二)流程定制

根据本文2.2节和2.3节分析可以清晰的看出,流程定制设计时首先需要建立流程模版,记录流程对应的公文表单类型,以及流程模版名称。然后分别建立工作节点、工作流的流转模式和流转关系。

1.工作流程模版。每一个公文表单可以对应多个公文流程模版。流程模版包含如下字段信息:流程模版编号、工作流编号、流转开始节点、流转结束节点、工作流程描述等。

2.工作节点。工作流的工作节点要包含的字段信息如下:节点编号、节点名称、节点操作说明、节点类型(分为流程起始节点、流转节点、终结节点)、节点默认办理人、节点办理人员范围等。工作节点信息还要体现公文流转要素中的公文样式:要说明处理此流程的该节点时,公文处于什么模式(公文模式需要单独定义),当前办理人对数据的操作权限。

3.工作流的流转模式。工作流流转模式的包含如下字段信息:流转编号,上一节点,下一节点,优先级,提交方式,流转描述等。三种流转关系可以转化为节点办理人提交方式:一人完成提交和全部完成提交。在此,特别讨论驳回型:如果此节点是多人全部完成提交,而其中某人批阅后要求退回上一节点的办理人,这时候要和管理员沟通,确定节点处理优先级。

4.公文流转事件。流程定制信息记录完毕后,公文在流程流转过程中,需要记录公文流转事件。公文流转事件表包含字段信息如下:节点ID、经办人、经办意见、处理方式、办理时间。通过此事件表,可以回溯公文流转的实际过程计算出公文的办理时间,对比公文办理期限,可以计算剩下办理期限,强调显示和提醒,并实现追踪和督办功能。

四、结束语

本文中基于工作流实现的电子公文流转系统对于其他一些信息系统的建设同样具有指导和借鉴作用,在实际应用中也得到了很好的效果。当然在公文表单和正文实现自动流转后还需要进一步针对整个系统实现流程的进一步优化,完善整个的流程,真正提高效率。此种基于工作流的公文流转系统满足了用户的需求,减少了开发人员的开发量和管理人员的维护量。

下载工作流与AO系统word格式文档
下载工作流与AO系统.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    基于工作流的业务流程管理系统的研究与实现

    基于工作流的业务流程管理系统的研究与实现 2009-10-14 13:06:57.0 机经网 北京机械工业自动化研究所 研发部 毛宏毅 在20世纪90年代以来的经济浪潮中,MIS(信息系统)与ERP(企......

    工作流程之沟通与改进

    工作流程沟通与改进 前期概念整合: 绩效沟通就是指整个考核周期内,上级就绩效问题持续不断地与员工进行交流与沟通,给予员工必要的指导和建议,帮助员工实现确定的绩效目标。 制......

    java 工作流

    Willow 由Huihoo Power开发详细可到其中文主页查看。 更多Willow信息OpenWFE OpenWFE是一个开放源码的Java工作流引擎。它是一个完整的业务处理管理套件:一个引擎,一个工作列......

    工作流技术研究

    工作流技术研究(1) (2008-09-10 19:29:14) 标签:工作流管理系统 工作流参考模型 杂谈 分类:工作流 工作流技术从起源到现在已有三十年的发展历史,为了规范工作流技术的管理,19......

    基于CSCW的工作流管理系统(范文模版)

    基于CSCW的工作流管理系统 摘要:计算机支持协同工作(Computer Supported cooperative work,CSCW)是在信息时代发展起来的一门新兴学科。它是在计算机支持的情况下(即CS),人们协......

    办公自动化论文:基于工作流的科研单位网络办公系统的设计与实现

    办公自动化论文:基于工作流的科研单位网络办公系统的设计与实现 【中文摘要】信息技术的广泛应用在各个行业引发了一场新的革命,办公自动化建设作为这场革命的重要内容,其作......

    基于Web的工作流管理系统的设计与实现[样例5]

    摘要:Internet/Intranet应用的普及和Web技术的发展,为Web工作流管理系统的实现提供了一个理想的平台,而基于Web的工作流管理服务为异地办公及跨企业的合作提供了良好的基础,采......

    贸易金融文档的准备和生成工作流系统

    贸易金融应用程序的处理需要银行浏览大量不同来源的文档,比如来自己进口商的,出口商的,海运代理商的,还有空运代理商的。这些提交给银行浏览的大部分文档包含许多的差异。这些差......