PDM/PLM/CAPP
按行业筛选
请选择行业
----------------------
-全部行业
------------------
-机床与金属加工设备
-刀具/量具/夹具/磨具
-模具设计与制造
-塑料机械/橡胶机械
-通用机械/化工机械
-工程机械/建材机械
-交通运输/海工装备
-农业机械
-食品机械/烟草机械
-包装机械
-印刷机械/广告设备
-纺织机械
-木工/造纸/环保/医疗设备
-物流设备
-智能楼宇/安防设备
-炉窑/热处理设备
-五金工具
------------------
-工业自动化
-佳工激光网
-仪器/仪表/衡器
-电力设备
-电子/通讯/办公文具
-家电/照明/健康设备
------------------
-基础件/通用件
-标准件
-工业原材料
-电子元器件及材料
-包装材料
------------------
-CAD/CAM/PDM/PLM
-ERP/制造业信息化
-管理咨询/认证
-服务/培训/工业设计
按产品筛选
----------------------
-本行业全部文章
--------------------
-CAD/CAM软件
-CAE/模拟仿真
-PDM/PLM/C
-EDA/专用CAD
-三维打印机
-三坐标测量机
-三维扫描仪
-CAD硬件/先进制
查看本类全部文章
PDM设计审批流动态权限认证过程实现
作者:长丰猎豹公司 海争平 杨志红 程友斌
本文论述的是NM-PDM 中关于工程图设计审批流管理中所必须解决的权限认证过程。它主要研究图纸设计过程中变换操作者角色时如何实时取得对图纸的控制权限,而后对工程图纸进行操作的一种过程设计。它是在PDM平台下进行工程图设计时必不可少的一项控制手段。
1、概 述
NM-PDM是针对某公司开发的产品数据管理系统,该公司研主要进行设计图纸的开发和管理,系统数据的源头。系统要求对工程图的操作是在NM-PDM的基础上进行的,只有通过PDM授权后才能进入工程图的相关操作。
PDM是将所有与产品相关的信息和所有与产品有关的过程集成在一起的产品数据管理系统。是一种面向对象的信息系统,它将所有与产品相关的信息和过程定义为对象,如文档、工程图、关系和过程等。对象在其生命周期中要发生许多变化,如版本、所有权、访问权等。在生命周期的不同阶段,对这些变化有不同的控制要求。在工程图的生命周期中,设计状态是唯一可以修改工程图的状态。当设计者认为该工程图已经完成,可以将其提交,工程图进入待检状态,相关的校对人员、标准检查人员将收到通知,并暂时获得对该工程图的所有权,以便对数据进行检查,如果通过检查,工程图进入待批状态,否则被退回到设计状态。如此直至批准。如果需要对归档以后的零件图进行更改,那么就要产生一个新的修订版本,然后继续从设计状态开始进入新一轮的工程图生命周期循环[2]。工程图对象的生命周期状态如图1所示。
NM-PDM审批流管理就是根据工程图对象生命周期的状态来进行的。
2、NM-PDM审批流管理模型功能分析
在传统的手工管理工作流程中,对工程图生命周期各状态相应功能的执行是通过图纸的传递来进行的。而在NM-PDM审批流管理系统中,对工程图生命周期的状态的确立,是根据识别提供给操作者权限状态代码来实现对工程图的处理。全部过程在PDM控制下进行。NM-PDM审批流系统的管理模型如图2所示。
当一个用户准备进行工程图设计时,首先要登录系统,系统进行登录身份确认;当用户登录后,系统自动寻找其所属用户工作组,判别其是否可以使用设计用户界面;进入设计用户界面后,用户选择一个项目,系统会对其进行项目组成员身份认证,此时系统主要从两方面来对用户权限进行认证,一方面,判别用户是否为该项目组成员,另一方面,如果是,他在该项目组中所担任的角色是什么;用户选择项目子项后,系统要对该子项的所有权进行识别。
这部分工作是通过建立员工表存储用户登录身份认证数据、建立工作组表存储不同用户的不同权限认证数据和建立项目组表存储用户在不同项目中所担任的不同角色认证数据来进行。用户操作时通过读取这些信息来动态地约束用户操作。
3、权限认证过程设计
权限认证过程设计,主要研究系统在运行时工程图权限状态的动态变化过程。工程图的使用权限在其被调用过程中是动态变化的,其主要体现为用户权限的动态变化。一个具有审核权限的用户,他可以通过设计角色进入设计用户界面来进行设计工作,此时,对该张工程图来说,他的最高使用权限仅为设计,但这并不能剥夺其对该机型其它工程图的审核权限,当其进入审核用户界面后,他仍然可以浏览该图。一份未经校对的工程图对同一工作组中其他具有校对权限的用户来说,他们的使用权是相同的,一旦某一用户打开它并开始校对时,其它具有校对权限的用户就只有浏览权了,但该工程图校对未通过并退回给设计者,在重新提交校对时,他们的使用权又是相同的了。因此,必须对工程图动态加载使用权限信息,并将用户权限传递到设计图。根据NM-PDM审批流所要进行的相关权限认证程序确立的系统权限审批流程图如图3。
用户权限代码传递的总体方案是:用户登录,读取权限代码,进入系统,系统根据用户所在工作组决定其对某项菜单的使用权限。一旦用户进入某一操作模块,例如,用户进入设计操作界面,选定某一机型,如果用户不是该项目组成员,则该用户只有浏览权限且不能对该项目的任何数据进行修改;如果该用户是该项目的成员,则其选取某一图纸目录选项时,系统会判断该图纸是否为该设计员设计,是否且未提交审核,就可打开其修改,否则其只有浏览权。
3、工作组权限代码的分配及其作用
工作组代码由单位汉语拼音前三位和顺序号组成,当然这种编号仅仅是为了便于将相同工作部门的工作组放于一处,系统并非根据用户组代码来分配其权限,而是根据“QX”字段来分配权限。
权限代码由1-9 、A-Z字母组成,每字段一位,不重复用户权限代码,就是为了可使以上字母叠加。如系统管理员权限代码为“1”,摩托车科设计组权限代码为“8”,那么,如果要求这两个工作组都可操作某一菜单,则这两位权限代码都必添加到权限包含的变量中。在应用程序中,定义了一个全局变量“gs_role_have”,当户进入系统后,系统会将权限代码读入到“ user_role”中,并一直保持不变,直到用户退出系统。在应用程序中,每一个需要控制用户权限的地方,都有一个判断语名来过滤用户的操作行为。如要求系统管理员、打印工作组、更改工作组可操作信息添加菜单项,则用如下语句:
gs_role_have ="1+5+6" //具体代码含义见图4
IF POS(gs_role_have, user_role)=0 THEN
MESSAGEBOX("注意","你没有进行信息添加的权限!")
RETURN
ELSE
OPEN(W_TJCK)//打开功能窗口
END IF
这样,就可以很好地过滤掉不合法用户。
4、动态加载权限代码信息到设计图
当合法用户欲修改、校阅或浏览一张设计图时,系统应能了解到用户目的。一方面允许有修改权限的用户修改设计图;另一方面又要允许该组校审用户校审设计图,还要允许可浏览设计图的用户浏览设计图;同时,系统还要在用户未退出系统的情况下进行以上操作,即设计、校审、浏览设计图。这要求系统能正确区别哪些图纸对当前用户有修改权、哪些图纸对其有校审权、哪些图纸对其只有浏览权,即要为一张设计图分配、使用权限代码。
是否要在数据库中记录每份设计图的权限代码呢?完全不必要、也不现实!对于如此众多的设计图,系统无法确定在何时、在何种情况下记录这些权限代码。动态加载权限代码是它的一个选择,也就是一旦用户选定一张设计图时,不管其采取何种方式(设计、校审、浏览)使用该设计图,系统都为其分配一个权限代码,当用户进一步操作,完成确认后,将该信息存储到相应的数据库中。
怎样动态获取操作者的权限代码?概括地讲,就是用户登录后,系统首先获取用户信息,同时获取其对应工作组代码和权限,之后寻找其是否在相应的项目组,再根据其在项目组中的身份及对图纸的所有权分配代码。
4.1 用户组的确立及其权限分配
由于系统根据用户所在用户组来确认其所具有的权限,因此,对用户组的确立及权限分配范围是否恰当至关重要。针对NM-PDM的实际情况,我们总共确立了十四个用户组, 用户组及其描述见图4。
项目工作组表由员工代码、项目关键字作为主关键字,即一个项目中可以有多个不同的成员,一个员工可属于多个不同的项目组。但是,一个用户在一个项目组中只能是以某种指定的角色出现,用户在某一项目中的角色决定了其打开某一项目中文件的具体权限。如一用户在该项目中担任设计员,则其在该项目中就不能担任校审员的角色。
项目工作组表是以代表角色的角色代码来决定用户对该项目文件的操作权限的。也就是说,用户一旦获得选取某一项目的权限,对该项目文件的操作权限就交由工作组表中所规定的项目角色所控制。
4.2 权限代码的传递及系统对权限代码的识别
下面通过一个实例来说明这一传递过程。
员工代码:Y003
工作组代码:YFB008 工作组权限代码: 8
所 属 项 目:NF100D 项 目角 色 代 码:9
正确登录系统后,系统首先 寻找到其工作组代码YFB008,发现其为设计科普通用户,因此系统维护、打印、项目组维护、工艺设计、BOM上报等功能不能由其使用,在程序中实现这一功能过程是:
系统寻找到YFB008工作组的权限代码“8”,并将权限代码读入到全局变量user_role中,在设计菜单中定义一个IF语句:
IF POS(user_role,“1+5+7+8+9”)Then
Open(Cptzb_sj)
ELSE
Return
ENDIF
这样,用户Y003就可进入设计工作界面进行设计工作。
当用户进入设计工作界面时,界面上只有一个“关闭”按扭和“项目栏”可用。用户若选择了“NF100D”项目,则系统会根据该项目的代号去查找该用户的用户代码,系统会发现项目代码NF100D与用户代码Y003重合,用户对NF100D项目就可操作。用户若选择了别的项目,界面上只会增加一个“浏览”按扭可用。如果属于该项目成员的用户进入设计操作界面时,他可以进一步操作该项目,并有权增加子项目,如果其不是增加子项目,而是想对自己未设计完的图纸进一步设计时,他应选择项目中最后一个子项,此时,系统会判断该子项的设计人是否为该用户,若否,则其只有浏览权。同样,当一个用户以校对身份操作校对工作界面时,系统会将需要校对的资料列于项目属性窗口中。
当用户选中某一具体项时,若该具体项目的设计者为用户本人,则其校对功能被冻结,其只有浏览权限。用户通过链接进入AutoCAD 界面进行校对,完成后,可退回校对界面;若校对通过,便提交下级校审,否则作退回处理。
5、相关数据表的设计及使用说明
本系统相关三个数据表为:员工表、工作组表、项目组表。
三个表是以员工表为中心,其它两个表各自实现自己的功能。项目组工作表通过员工表进行添加,并通过项目负责人设定用户角色。在添加修改员工表时,必须为其指定用户工作组,如果不为其指定用户组,则系统会指定默认用户组,且该用户组无任何权限并不能登录系统。
5.1 员工表
员工表记录员工基本信息 ,包括用户代码、部门代码、工作组代码、密码修改与否、帐号停用与否,该表不包括权限代码.该表的维护由系统管理员进行,每一员工对应一个用户代码,并唯一对应一个用户组,用户组代码是决定用户权限级别唯一标识,一旦用户登录,系统将同时获取其用户组代码及该用户组权限。
5.2 工作组表
工作组表记录用户分组信息,该表由系统管理员使用和维护,其主要记录用户组代码和权限代码, 当系统获取工作组代码时也同时获取了其工作组权限代码,工作组权限代码决定了该用户可操作的模块,其中,系统管理员组为系统设定领导工作组及除项目负责人工作组外的其它用户工作组,领导工作组有权设定项目负责人组。
5.3 项目组表
项目组表,记录了某一项目的成员及在此项目中所担任的角色。一个用户成员只能在一个项目中以一种身份存在,同时一个用户成员可以属于多个项目组。该表由项目负责人维护,当项目负责人新建一个项目时就必须为该项目选取项目成员,并指定其在该项目中所担任的角色。
6、结束语
在NM-PDM上采用该权限认证方法,很好的解决了NM-PDM的权限管理问题,为NM-PDM的顺利实施提供了一个安全的保障,解决了南方摩托股份公司现有文档管理杂乱无序的状况,为NM-PDM的功能实施奠定了基础。
参考文献
[1] 高奇微,莫欣农 《产品数据管理(PDM)及其实施》.机械工业出版社.1998.12
[2] 何永熹 赵淑红 《PDM中产品信息管理模型研究 CAD/CAM 与制造业信息化 》2002年第8期
[3] 白英彩,唐冶文,余巍.《计算机集成制造系统—CIMS概论》.清华大学出版社.1997.12
[4] 王蓉等编著《PowerBuilder7.0 应用开发技术详解》,电子工业出版社2002.3
[5] 郑若忠,宁洪等.《数据库原理》 国防科技大学出版社 19983
[6] 抖斗书屋,王守华等《PowerBuilder 7.0初学者指南》.清华大学出版社.2000.3
[7] 刘增进编,《PowerBuilder7.0数据窗口技术详解》.电子工业出版社.2000.6
[8] 王梅君等编,《PowerBuilder对象与控件技术详解》.电子工业出版社.2000.6
[9] 张长富,李匀等编,《PowerBuilder7.0用户参考手册》.北京希望电子出版社.2000.8
[10] 网冠科技,《PowerBuilder7.0时尚编程百例》.机械工业出版社.2001.9
(end)
文章内容仅供参考
(投稿 )
(如果您是本文作者,请点击此处 )
(4/2/2006)
对 PDM/PLM/CAPP 有何见解?请到 PDM/PLM/CAPP论坛 畅所欲言吧!