IMAN的二次开发关键技术* 注意:本文已在《计算机工程与应用》(2001,37(24):25-26,166)杂志发表,
使用者请注明文章出处
赖朝安** 孙延明 郑时雄
(华南理工大学 机电工程系 广州 510640)
摘要:介绍了商品化PDM系统IMAN的基本情况,研究了IMAN二次开发中的主要问题,提出了一种窗体定制新方法,论述了客户端二次开发的方法、指导思想以及基于IMAN的应用封装方法。
关键词:PDM 二次开发
中国分类号:TP391 文献标识码:A
THE KEY TECHNIQUES OF SECONDARY DEVELOPMENT OF IMAN
LAI ChaoAn,SUN YanMing,ZHENG ShiXong
(mechatronic engineering Department, south china university of technology, Guangzhou 510640)
Abstract: The basics of IMAN, a kind of commercial PDM system, are introduced, and the key problems during secondary development of IMAN are studied in this paper. It also put forward a new methodology of customizing form and discussed the methodology and rudder of secondary development in client terminal and the methodology of application encapsulation based on IMAN.
Keywords: PDM; secondary development
一 前言
IMAN(information manager)是一种较为成熟且广泛应用的产品数据管理(PDM)系统,它的开发商是美国的UGS公司。IMAN系统主要用于汽车、航空、机械制造和家电等行业。它是面向对象的信息管理和控制系统,由一个窗口界面、一组实用程序、一个集成工具箱和一个关系数据库管理系统(ORACLE)组成。在版6.0后,IMAN包含C/S及B/S两种结构,B/S结构是发展方向,但目前功能较弱。IMAN目前广泛应用的版本为V6.0-V7.0。我国目前采用IMAN的企业有:海尔集团、玉柴机器、科龙集团等上百家企业。
PDM系统属于管理系统,管理系统出售后常需要有一个定制过程,使之适应企业的特殊需要。由于PDM技术能带来很大的效益,很多企业相继实施PDM系统,但部分企业没有取得预期的回报,这是由于PDM系统实施难度大、影响因素多造成的。二次开发是PDM实施的主要工作之一,因此必须掌握其关键技术。
IMAN的二次开发工作主要有:利用IMAN的二次开发模块开发新的程序;窗体定制;外部应用软件的封装与集成等。IMAN二次开发工作需要丰富的经验和复杂的技巧,而它的帮助文档不能及时更新,况且关于PDM系统实施的学术论文、书籍等各种资料大多数只关注理论研究,没有介绍具体实用的二次开发技术,因此系统的实施者开始时常感到无助而难以入手。为此,本文总结了几点IMAN二次开发经验并提出一些新技术。
二 窗体定制新方法
窗体(FORM)又称表单,它的定制是实施PDM的一项基本工作,这是因为产品类型及信息类型多种多样,如零部件的数量、材料、ID号、设计者以及设计过程信息等等,这些数据都需要记录并与相应属性名一起保存。通常每一种零部件需要一种窗体来描述它的各种属性。窗体的功能首先是录入、保存、浏览及查询信息,其次是保存过程信息以支持其它功能。窗体存储三种数据:输入(Captured)数据;资讯(Informative)数据;推导(Derived)数据。它们的区别是:输入数据是用户输入的字段,是窗体显示的主要数据;资讯数据是只读的;推导数据是其它栏的总结或综合,是只读的。
IMAN的编程指南介绍了两种窗体定制方法:一是通过制作UIL( User Interface Language,用户界面语言 )文件来定义窗体的“非编程”方法;二是利用JAVA语言编程[1]。由于UIL较难理解而利用JAVA编程也涉及较复杂知识,为此笔者探索出一种组合利用IMAN提供的DOS应用程序及POMClass来定义窗体的简捷方法,步骤如下:
1.通过一个文本文件definition.txt来定义窗体的内容:
create Pom_application_object Train_Part_Class
define Train_Part_Class Project_id POM_string 50 -rwn
define Train_Part_Class serial_number POM_string 1 -rwn
save
quit
编写该文本要注意如下事项:
1)Pom_application_object是父类,是系统定义的。将生成的新类Train_Part_Class是它的子类;
2)Project_id 和serial_number是显示于窗体上的属性名,它们可描述某产品的ID与序列号。属性名可以有任意多个,也可以是作意名称,在此仅是举例;
3)POM_string是指输入的数据应是字符串,其它数据类型还有POM_int等等,可参考IMAN的编程指南;
4)数字50及1只是举例,代表输入字符的最大允许长度。
2.编辑创建窗体的批处理文件 CreatForm.bat如下所示,以读入该文本文件并创建窗体类。
set user=infodba
set pass=infodba
set grp=dba
d:\iman0701\bin\clearlocks -assert_all_dead
d:\iman0701\bin\sb < definition.txt -u=%user% -p=%pass% -g=%grp%
d:\iman0701\bin\clearlocks -assert_all_dead
d:\iman0701\bin\install -mod_class infodba infodba dba Train_Part_Class
编写该文本要注意如下事项:
1)该批处理文件中的名称Train_Part_Class要与文本文件中的相同;
2)管理员的用户名、密码、组名(infodba、dba)及IMAN安装路径只是举例,要根据现实系统而定;
3)definition.txt文件前要有“<"符号。如系统指出找不到该文件,可在该文件名前加上绝对路径
3.启动iman Menu
4.进入iman Menu环境后,带路径执行creatForm.bat。
5.若完成上面的步骤且没有出错提示,重新起动PROTAL,进入IMAN的方案编辑器(schema edit),展开Pom_application_object,可以看到刚定义的窗体类Train_Part_Class。
6.建立新的窗体模板:在IMAN admin里面打开类型(type),选择form选项,然后为新窗体命名(如为MYFORM1),再在POM_Class类里面选择刚定义的窗体类Train_Part_Class。按create完成新窗体类MYFORM1的定义,它继承了类Train_Part_Class。
7.在导航器里面就可以依次执行:文件->新建->窗体,选择MYFORM1,建立新窗体,窗体可以描述零部件的属性Project_id 和serial_number,这是系统提供的窗体所不能描述的。
该方法在V6.0版本中顺利通过,而在V7.0版本会引起“方案文件过期”的问题而引起系统暂时不能进入,所以要在系统管理员同意的情况下才能操作。出现这种情况后的解决办法是进入iman Menu环境,在原路径运行以下语句:“install –regen_schema_file infodba infodba dba”,然后重新起动服务器。命令行的后三项分别是管理员的用户名、密码与组名,要根据系统的实际作相应改动。
三 客户端的二次开发方法
IMAN的二次开发分客户端及服务器端。客户端软件是用JAVA语言开发的,同样地它的二次开发也使用JAVA语言。服务器端的二次开发要利用二次开发模块ITK及C语言。由于IMAN版本升级可能导致所开发程序需要改写并重新编译,所以二次开发的原则是尽可能利用IMAN已有的功能,减少二次开发量[2]。基于以上考虑,二次开发重心放在客户端,而尽量利用服务器端的已有功能。客户端二次开发分为开发程序与注册程序两个阶段。
1开发程序
客户端开发需要的工具为:JDK1.2.2或更高;JAVA集成开发环境(IDE)如JBuilder,Visual café 等等。
1)环境设置
若没有使用IDE,要设置CALSSPATH环境变量。可在DOS提示符处运行:“C:\> set %CLASSPATH%=%PORTAL_ROOT%\portal.jar”。PORTAL_ROOT 是指 iMAN Portal 的安装路径。
2)用javac命令编译客户程序;
3)用jar命令打包;
4)执行
打开portal.bat文件,将客户程序(如MyPro.jar)包含到portal.jar之前:
Set JAVA_COMMAND_LINE=%JAVA_COMMAND% -classpath "%IPR%\.;… %IPR%\MyPro.jar; … %IPR%\portal.jar; … %CLASSPATH%"
起动IMAN Portal之后客户程序就可执行。但如果它是未经注册的新程序,还需要进行以下步骤。
2 在IMAN Portal中注册程序
注册程序就是要在IMAN的界面上的某个组内增加按钮,用于调用所开发的程序。假设客户程序叫MyPro,它属于com.mycom.mypro包。程序注册的步骤如下:
1)在PROTAL界面上增加一个新组
在PORTAL安装路径下找到Portal_user.properties文件(或使用Portal.properties文件,前者具有更高优先权),在GROUPS=IMAN,IMANAdministrator,Utilities的行末增加新组名,假设为newtools,如下所示:“GROUPS=IMAN,IMANAdministrator,Utilities,newtools”。
重新起动Portal后可看到新增的组newtools,在组内可加入按钮以调用客户程序。如果不需要增加新的组,可直接进行第二步。
2)在组中加进客户程序:
A. 运行Utilities组内的快速向导(Application Wizard),然后输入应用程序名称,假设为mypro,并按下一步(Next)。
B. 在左边拉开某个组,比如刚创建的组newtools,使客户程序的按钮加入到该组,按下一步。
C. 输入客户程序的包名,例如“com.mycom.mypro”,缺省值是“com.mypro”。然后单击某适当目录,系统将在该目录下自动建立与包名对应的子目录,并使所有与该客户程序相关的源文件在该子目录下生成。
系统在目录mypro中自动生成六个文件:mypro.properties、mypro_user.properties、MyproApplication.java、MyproApplicationMenuBar.java、MyproApplicationPanel.java、MyproApplicationToolBar.java。
前两个文件是程序注册文件,用户可使用mypro_user.properties也可使用mypro.properties来注册程序,前者可覆盖后者。系统自动使用后者。
后四个文件分别创建了四个应用类。要集成到portal的程序要有一个基类,它应是类AbstractAIFUIApplication的子类。客户程序的类的层次如图1所示。
图1 客户程序类的层次
D. 按下一步后接受缺省的类名,按下一步,再按“Yes”按钮以创建新类。然后用单击方式选择Portal的安装目录,在这个路径中含有portal.jar等IMAN的JAVA类库。按下一步后系统显示“成功创建程序”。这时portal_user.properties系统注册文件自动修改,完成客户程序的注册。
四 基于IMAN的应用封装方法
随着企业信息化进程的发展,企业所使用的应用软件越来越多,如用于工程设计的CAX软件;用于办公自动化的字处理软件和制表软件等。为了能实现对各种应用软件所产生的数据和文档进行有效地管理,也为了能在PDM环境中做到应用软件间的信息共享、用户间的协同工作等目的,需要改变过去基于数据库实现应用系统集成的传统办法,而改变为基于PDM的应用集成。
按集成的紧密程度分,集成分为三个层次:应用封装;接口交换;紧密集成[3]。能与IMAN实现接口交换或紧密集成的应用程序通常是大型商品化软件,集成方法各有不同。比如UG与IMAN的紧密集成通过专用软件UG/MANAGER。而应用封装的方法是通用的,因此本文指出了应用封装的方法。步骤如下:
1、若是NT4操作系统,打开“我的电脑”并依次选择菜单查看→选项→文件类型,根据该类文档的后缀找到并记下该应用程序的MIMEType。若没有,可自定义。
若是WIN2000系统,需要运行regedit,在弹出的注册表编辑器中,打开如下路径:HKEY_CLASSES_ROOT\MIME\Database\Content Type\,根据文档后缀记下该应用程序的MIMEType。
2、在iMAN里面的类型(type)按钮打开tool选项,根据不同的数据集,指定输入输出格式(如ASCII,Binary,PART)。通常图像类数据集用Binary选项,文本类用ASCII,图形类用PART。然后输入上一步骤的MIME Type,并给TOOL起个名字;
3、按创建(Create)按钮;
4、dataset type里面创建新的数据集类型:指定应用程序为刚才定义的工具(TOOL),在“引用”中定义文件过滤器(如*.doc),在“参数”中增加并定义操作(如OPEN),点击OPEN等操作,勾选“选择”、“导出”,然后在右下方按加号,输入适当的参数类型(如$OBJECT)等等;
5、按创建按钮完成应用程序的封装;
这样,在导航器中点击某种文档就可自动起动相应的应用程序,并在程序中自动打开该文档。
五 结论
随着PDM的日益广泛应用,用户越来越注意根据自身的需要定制PDM系统,并要求缩短实施周期。本文总结了常用实施方法并提出了一些新技术,利用本文所总结的经验及提出的新方法为玉柴机器等多家单位实施了IMAN,达到实施周期缩短,企业保持稳定,并显著提高了企业产品开发效率的目标,证明这些方法是可行的。
参考文献
1 Unigraphics Solutions Corporation. IMAN Portal customization programmer's Guide. USA:UGS公司,2000
2 Unigraphics Solutions Corporation. IMAN online help. USA: UGS公司,2000
3 童秉枢,李建明. 产品数据管理(PDM)技术. 北京:清华大学出版社. 2000
────────────────
*本文受广东省科技创新百项工程项目(99B01901G)及广东省自然科学基金项目(990545)资助。
**赖朝安(1973–),男,广西钦州人,华南理工大学博士研究生,研究方向:CAD/PDM、创新设计