我院PDM 系统实施多年,其中的工作流管理模块是该系统的核心部分之一,通过在设计过程中应用工作流技术,实现了设计图纸管理的流程化和规范化。
1 概述
1.1 工作流
工作流是指能全部或者部分由计算机支持或自动处理的业务过程。工作流管理系统的目标是管理工作的流程以确保工作在正确的时间被所期望的人员执行。在企业中应用工作流可以更好地规划企业业务流程,减少不必要的中间环节,提高企业运转效率;实现业务流程的全部或者部分自动化;通过工作流中的流程监控机制,能够发现业务流程运行过程中的瓶颈,为业务过程优化和重新整合提供依据;减少或避免人为因素造成的原则性错误及由此带来的损失;促进企业业务改进,使得趋向于流程的业务更加流畅和简单。
1.2 PDM 系统
PDM (产品数据管理) 是对工程数据管理,文档管理,产品信息管理,技术数据管理,技术信息管理,图像管理及其它产品定义信息管理技术的一种概括与总称。PDM 技术提供了产品全生命周期的信息管理,可为企业的设计与制造过程搭建一个并行协同的环境。PDM 系统也是在分布式企业管理模式的基础上,与其它应用系统建立集成的重要工具。企业采用PDM 技术,可以有效地管理CAD/ CAM /CAPP 的异构电子文档,同时也为企业的人、才、物、产、供、销等部门及时传送准确的产品信息。
我院PDM 系统是建立在关系数据库管理系统Oracle上的面向对象的应用管理系统,该系统结构从上往下主要分为支持层、对象层、功能层和用户层(见图1)。
从上图中可以看到,我院PDM 系统的体系结构采用的是分层模式,下层模块对上层模块提供服务,下层模块在逻辑上实现封装。这样的体系结构不仅方便PDM 系统设计和功能实现,而且PDM 系统结构清晰、完整。
1.3 工作流技术在PDM系统中的作用
在PDM系统中应用工作流技术,可以将企业的业务管理模式定义到工作流中,使产品数据通过工作流产生、传输和审批,从而对企业的运作方式、工作顺序等进行全面性的流程管理。另外,工作流技术是计算机技术和自动化技术的结合,可以实现将PDM 系统中的各部分有效、有序的衔接,使企业中的每一位员工能够按照预先定义好的业务规则去处理工作,企业的管理者能够对各项工作的完成情况进行有效的监督和控制,从而提高企业的运作效率。
2 PDM 中工作流体系结构
与PDM 系统的体系结构相对应,工作流模块也分为四个层次(见图2)。
图2 工作流系统结构示意图
整个模块由数据库、内核层、功能层、界面层组成。数据库层提供了数据存储的功能,用于存储PDM 系统中的描述性数据,目前使用的数据库为Oracle;内核层主要负责数据库的操作,在这一层将标准SQL语句封装成标准DLL,供COM组件层调用。通过将标准SQL 语句封装成DLL 形式,能够大大降低整个系统的耦合性,也为系统的多数据库支持提供的良好的扩充性;功能层采用微软的COM/DCOM 技术,把数据对象抽象为不同的功能类,通过对内核层的调用,实现工作流模块所需的功能。功能层还提供了描述PDM 系统产品数据动态变化的基本模型,在此基本模型的基础上,根据PDM 系统的需求,可以建立相应的功能模块;界面层是系统与用户交互的地方,提供友好的人机交互界面。目前采用的是Windows界面,界面层开发语言采用VB6。3 工作流系统的组成和设计
3.1 PDM系统中工作流的组成
在我院的PDM 系统中,工作流模型由流程图、流程节点和流程路径三部分组成。
流程图通过设置流程的时间限制、重要性、监管人等流程总体信息,定义整个业务流程。流程图中的流程节点数量可依据具体的业务需求而定义。
流程节点是完成流程任务的执行点,是流程的基本单位,负责定义流程节点的工作人员和工作任务。在流程节点需要设置的信息包括执行人、要执行的任务、完成任务的时间、重要性等。流程节点中的任务分为三类,描述性任务、执行具体操作任务及执行用户自定义脚本。描述性任务是指需要手工完成的某一具体操作;执行具体操作任务是对流程中的图纸或文档进行发布、归档、产生新版本等系统已预定好的操作;执行用户自定义脚本的任务是用户利用VB 等语言编写自定义函数,执行用户特定功能。在流程节点有多人时,需设置该流程节点的通过策略。在流程执行的过程中,通过流程节点的颜色可以查看流程当前的运行所处的位置和处理意见。
流程路径决定了流程的走向,其类型决定了当用户做出某一决定时流程需经过的路径。如:当用户同意时,流程自动将通过的路径类型定为同意,并激活流程路径流向的流程节点,从而使这些被激活的流程节点开始执行流程任务,而当用户不同意时,可以依据流程路径的方向决定流程返回的节点位置。
3.2 流程的定义
我院PDM 系统工作流的主要功能包括工作流程设计和工作流程管理,工作流程设计提供了定义流程单元手段,并将流程单元根据用户的指定连接成需要的工作流程,规定提交工作流程执行的设计对象,如部件、零件、文档等。工作流设计主要包括流程类型定义、流程图设置和流程用户设置。流程类型可根据业务的需要定义;在流程图设置过程中可以针对某一具体的流程类型设置多个流程图,以满足不同的业务运行需要;流程用户设置负责在流程运行前指定好用户(具体用户或角色),也可以在流程运行时动态选择。工作流管理主要用于管理运行中的流程,设置流程的权限、定义流程的有效期等。工作流管理主要针对整个流程,不能设置流程节点的具体信息。
3.3 工作流系统设计
(1)流程模块的数据结构设计
根据流程模块系统的层次结构,把整个模块分为三个层次,第一层是DBLayer 层,即数据库层,该层主要负责对数据库的操作,不处理具体的业务过程,其函数都封成DLL 的形式,供功能层调用;第二层是FlowCOM 层,通过对DBLayer 层的调用来实现具体业务功能。该层的函数都封成COM 的形式,能够在不同的COM 编程语言中调用,易于实现界面的移植;第三层是界面层,用于实现具体的业务流程。通过采用以上层次结构,各层的功能划分比较清晰,在有新的功能需求时,只修改相应的层次,而不必对整个系统作大的改动,有利于系统功能的扩展。
(2)流程模块的数据库设计
数据库的设计目标是建立统一的流程结构与运行规则。使用的数据库为商用关系型数据库Oracle。根据我院PDM 系统的具体需求,一共建立了40 个表,以满足系统正常运行,保证PDM系统数据的完整性,同时也符合数据库第三范式的要求。比如表PDM_IMPORTANCE,用于记录流程的重要性,表PDM_CF_NODE_TYPE 用于记录流程节点类型,表PDM_CF_RESP_TYPE 用于记录流程路径类型等。为了方便数据库设计,系统提供的强大的数据库设计工具,使用该工具进行数据库设计时,系统自动在相应的表中添加数据。
(3)流程模块的功能层设计
功能层通过对内核层的调用,实现各个模块的功能,其数据被封装成COM 形式,以便于上层使用。功能层通过相应的类实现了工作流中的基本单元,比如类CuFlowsCharts 是流程图集合类,该类中包含了有关处理流程图的方法,类CuFlowNodes为具体的流程类,该类中包含了有关处理流程节点的方法。功能层共提供了60 多个类,每个类封装了工作流基本单元的方法实现,方便界面层根据不同的功能需求来调用。
(4)流程模块的界面层设计
工作流的界面层设计包含了3 个模块,分别是流程图设计模块(FlowChart Designer)、流程运行模块(Flow Manager) 和流程管理模块(FlowBox)。
①流程图设计模块用于建立保存流程图及把流程图分配给流程。在新建流程图时可以选择具体的流程类型,目前系统提供的流程类型大致为校审流程、借阅流程、归档流程、更改流程、打印流程、一般流程,满足了我院PDM系统的需求。在新建流程图时也可以定义流程图的属性,比如流程的时间限制、流程图档安全性、是否允许回退到起点等。在流程图设计模块中也提供了流程节点和流程路径的属性定义等操作,比如在定义流程节点时,可以设定接收流程的工作人员和需要工作人员完成的工作任务。
②FlowBox是流程运行模块,使用FlowBox可以启动流程、接收流程、执行任务和发送流程。FlowBox是用户操作流程的主要界面。初始化流程时,通过选择已经定义的流程,选择流程中待处理的图档,然后单击“批准”初始化流程。流程信箱中提供填写和查看流程审批意见功能。在FlowBox中收到流程后,可以打开流程,浏览流程中的图档和任务。FlowBox分成收件箱、发件箱、已完成流程和已删除流程。收件箱用于显示待处理的流程,发件箱用于显示已经被“批准”或“否决”的流程,已完成流程显示已经完成的流程,已删除流程显示已经删除的流程。
③Flow Manager 是流程管理模块,系统管理员可以使用它来查看和监控正在运行的流程以及设置流程的权限,对出现问题或过期的流程进行处理。Flow Manager在对已经初始化的流程进行在线浏览和监控时,不仅可以浏览流程的节点,也可以通过浏览器查看流程中附带的设计资料,Flow Manager提供灵活的流程调整功能,可以很容易地更改流程节点用户或流程任务,重新设置或删除流程。例如,如果某人出差,管理员可以进入出差人的流程信箱,把任务重新分配给别人。
4 结语
通过在PDM系统中应用工作流技术,为信息化管理过程的自动化提供了技术保证,实现了设计图纸管理流程化的目标。
CIO之家 www.ciozj.com 公众号:imciow