IMAN的二次开发关键技术IMAN的二次开发关键技术IMAN的二次开发关键技术* 注意:本文已在《计算机工程与应用》(2001,37(24):25-26,166)杂志发表,使用者请注明文章出处摘要:介绍了商品化PDM系统IMAN的基本情况,研究了IMAN二次开发中的主要问题,提出了一种窗体定制新方法,论述了客户端二次开发的方法、指导思想以及基于IMAN的应用封装方法。
(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.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)Pom_application_object是父类,是系统定义的。
将生成的新类Train_Part_Class是它的子类;2)Project_id 和serial_number是显示于窗体上的属性名,它们可描述某产品的ID与序列号。
属性名可以有任意多个,也可以是作意名称,在此仅是举例;3)POM_string是指输入的数据应是字符串,其它数据类型还有POM_int等等,可参考IMAN的编程指南;2.编辑创建窗体的批处理文件 CreatForm.bat如下所示,以读入该文本文件并创建窗体类。
d:\iman0701\bin\install -mod_class infodba infodba dba Train_Part_Class2)管理员的用户名、密码、组名(infodba、dba)及IMAN安装路径只是举例,要根据现实系统而定;3)definition.txt文件前要有“ “符号。
如系统指出找不到该文件,可在该文件名前加上绝对路径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]。
基于以上考虑,二次开发重心放在客户端,而尽量利用服务器端的已有功能。
客户端二次开发分为开发程序与注册程序两个阶段。
客户端开发需要的工具为:JDK1.2.2或更高;JAVA集成开发环境(IDE)如JBuilder,Visual café 等等。
若没有使用IDE,要设置CALSSPATH环境变量。
可在DOS提示符处运行:“C:\ set %CLASSPATH%=%PORTAL_ROOT%\portal.jar”。
PORTAL_ROOT 是指iMAN Portal 的安装路径。
Set JAVA_COMMAND_LINE=%JAVA_COMMAND% -classpath “%IPR%\.;… %IPR%\MyPro.jar; … %IPR%\portal.jar; … %CLASSPATH%”起动IMAN Portal之后客户程序就可执行。
但如果它是未经注册的新程序,还需要进行以下步骤。
注册程序就是要在IMAN的界面上的某个组内增加按钮,用于调用所开发的程序。
假设客户程序叫MyPro,它属于com.mycom.mypro包。
程序注册的步骤如下:在PORTAL安装路径下找到Portal_user.properties文件(或使用Portal.properties文件,前者具有更高优先权),在GROUPS=IMAN,IMANAdministrator,Utilities的行末增加新组名,假设为newtools,如下所示:“GROUPS=IMAN,IMANAdministrator,Utilities,newtools”。
重新起动Portal后可看到新增的组newtools,在组内可加入按钮以调用客户程序。
如果不需要增加新的组,可直接进行第二步。
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所示。
D. 按下一步后接受缺省的类名,按下一步,再按“Yes”按钮以创建新类。
然后用单击方式选择Portal的安装目录,在这个路径中含有portal.jar等IMAN的JAVA类库。
按下一步后系统显示“成功创建程序”。
这时portal_user.properties系统注册文件自动修改,完成客户程序的注册。
随着企业信息化进程的发展,企业所使用的应用软件越来越多,如用于工程设计的CAX软件;用于办公自动化的字处理软件和制表软件等。
为了能实现对各种应用软件所产生的数据和文档进行有效地管理,也为了能在PDM环境中做到应用软件间的信息共享、用户间的协同工作等目的,需要改变过去基于数据库实现应用系统集成的传统办法,而改变为基于PDM的应用集成。