Windchill常用开发全套整合
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
点击Save AS,重新命名为HelloWorld.mdl文件,弹出 框选择No,环境搭建好后,即可创建模型
扩展模型
模型扩展(续)
针对上面的图示,自定义个模型EleadDocs,继承 WTDocument,该模型自定义方法getEleadDocName() 和属性eleadDocType,且将其属性设置constrain=false, 点击保存(遇到提示,点击No)
Agenda
Windchill开发内容集合
开发目录介绍 开发环境搭建 Windchill 模型环境搭建 Windchill类的介绍 Windchill各个业务对象的模型介绍 Windchill常用开发类和方法介绍
开发规范
JAVA开发规范,请遵守sun标准
Windchill开发规范
– 布局
类图中尽量保证各部分分布均匀,连线尽量不要交叉,整个类图能够 显示在一个屏幕范围之内(标准1024*768分辨率),对于引用的其他包 的类、接口,可以将其属性、方法隐藏起来。避免占用过大的显示空 间。
建模搭建环境
进入到\Windchill+Information+Modeler091_F000l\Rational_Rose_for_Windows\setup.exe安 装
模型扩展(续)
打开helloWorld这个package后会出现下图
模型扩展(续)
你打开的时候是什么都没有的,这里面person,personLink这2个类 是自己建立的,可以从中间的那个条中选择到的,然后对这2个类 进行编辑,选中person这个类,点右键,会出现
点击第一个,然后就会出现
选择菜单Units.Control docs,保存为docs.cat
模型扩展(续)
生成系统文件,选中docs包
模型扩展(续)
生成系统文件.mData和EleadDocs.java文件
在src目录下自动生成包路径和文件 docs.mData和 EleadDocs.java
模型扩展(续)
系统会自动生成SQL【WT_HOME】 \db\sql3\ext\elead\docs
– 打开rose软件,依次打开fileopen定位到 windchill/src/wt/WTdesigner.mdl,打开
– 出现这个对话框,选择是,然后就耐心等待系统加载完这个文 件。当完全加载完以后把这个文件保存到上面建立的 windchill/src/helloWorld目录下,名称为helloWorld
– 由于将来系统生产环境是Cluster架构,所以在编写代码时,要尽量避免使用Static的Class 变量,测试环境配置多个Method Server,以防止编写的代码在Cluster环境中运行出现问 题。
– 系统运行的错误信息,要显示在UI界面上,以便用户和系统管理员了解,同时需要在系统 log中记录。
– 不预留属性
对象建模,不预留属性。对于已有对象的预留属性,因属性名称业务 含义,也不允许使用。历史模型已预留的属性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等预留属性
设计规范
– 关联关系
两个对象关联时,需要使用模型的关联关系。尽量不要采用建模为两 个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的 方式。 例如: 错误的建模方法:CBBCounter类有一个属性cbbNumber,记录CBB 的编码。 正确的建模方法:引入一个Link对象,记录CBBCounter类和 WTPartMaster类的关系。
– Debug语句要有开关控制,避免直接使用System.out.println()打印,导致将来的生产环境 产生大量日志。
– 每个客制点之间,设定一个Debug开关,方便自身模块的调试。Debug的开关,缺省值设 置为false。客制点之间的输入和输出部分,需要输出Debug信息,方便客制点之间的调试。
安装完成之后,load注册文件 rational_perm.dat.txt
进入到{WT_HOME}\roseAddIn,将 VirtualPathMap.AddIn.reg和Windchill.AddIn.reg文件中 的路径修订为个人本机环境的路径并注册
建模搭建环境
启动rose,点击“Edit Path Map…”查看注册信息 rose参数配置.txt
– 工作流中的表达式,具体实现,都写在WfUtil中,只在工作流中调用WfUtil中的方法。 WfUtil中的方法注释中,需要说明该段代码,将在那些workflow中被调用。
– 系统OOTB配置部分通过XML配置文件交付。方便新系统可以直接通过LoadFileSet导入配 置。
– 系统内部值,例如IBA,全部由英文字母和数字组成,不能包含特殊字符。 – 禁止反编译系统OOTB的Class文件,然后在此基础上修改做客制,导致系统无法升级。 – 需要对出厂文件(HTML template等)修改时,需要保存原出厂文件的备份在
生成.ser文件【WT_HOME】\codebase\ext\elead\docs 执行SQL语句
– 进入到 Oracle SQL*Plus路径,执行命令:
– 操作完成之后,即可使பைடு நூலகம்EleadDocs对象了!
模型扩展(续)
模型扩展(续)
完整的例子说明
– 在windchill/src/目录下建立一个helloWorld目录,在 windchill/codebase/目录下也建立一个helloWorld目录
Rose模型介绍
打开Rose模型,点击FileOpen
选择src\wt\WTdesigner.mdl
Rose模型使用
点击【是】,系统会加载
其中Logical View是系统核心 逻辑显示,其中3rd是Windchilll 中使用了哪些Java技术模块、ext 是系统客制化扩展模型目录、wnc是Windchill核心业务逻辑组成
模型扩展(续)
– 选中前3项点OK,然后这个时候你就可以在 windchill/src/helloWorld这个目录下看到有Person.java和 PersonLink.java这2个java文件,并且在 windchill/db/sql3/helloWorld这个目录下面也会产生几个sql文件, 把这几个sql文件导入到数据库中建立相关的表,要注意建立的 先后顺序:只用操作以create开头的3个sql文件
模型扩展(续)
打开helloWorld. Mdl,打开后如下图
– 你可以发现你打开的时候是没有wt,java,helloWorld这3个 package的,因为这3个package中wt和java是从左边的方框中 拖过来的,而helloWorld这个是我自己建立的,然后把 helloWorld和wt,java这2个package建立关系如上图。然后双击 helloWorld这个package在这个package中开始创建类。
模型扩展(续)
修改Person.java加入下面的代码 protected void initialize() throws WTException{
Date today = new Date(); super.initialize(); System.out.println("Person - initialize executing!"); String s = String.valueOf(today.toLocaleString()); setId(s); } 然后把person.java和personLink.java这两个文件放到 windchill/codebase/helloWorld/目录下进行编译。
(除非使用了系统原有的Protected Method,这种用法要尽量避免).
设计规范
设计规范之建模
– 仅对持久化对象建模
只有数据需要保存到数据库中的持久化业务对象才允许进行建模。其 余的操作类(例如:Processor、Delegate、Helper类等) 不被允许进行建模。
– 模型命名规则
对象的名称、属性名称、方法名称应该满足命名规则,同Java编码规 范的类命名、变量命名和方法命名。 例如: 类名 TRApplyDoc 属性名trPhase 方法名getFormData 说明:历史的模型如果要更改将要做数据迁移。因此只要求对新建立 的模型,历史模型不做要求。
设计规范
– 字段扩展
对于对象的属性,一般情况下采用默认长度。建模时要求考虑属性长 度是否符合要求,如果需要加大长度,在模型中设置相应的值即可。
– 选择父类
对于建模,尽量继承底层的Windchill类,例如:Managed\Item等,继 承上层的具有实际业务含义的Windchill类(例如:WTPart、 WTDocument)时,在业务上符合“是一个(As -is)”的含义,例如: EleadPart是一个WTPart
模型扩展(续)
测试代码
public void test(){ try{ Person p = Person.newPerson(); p.setName("111"); p.setTitle("222"); p.setAge(1111); p = (Person) PersistenceHelper.manager.save(p); WTPart part = getPartByNumber("D3_0000000064"); if(part==null){ Debug.P("part is null"); return; } PersonLink link = PersonLink.newPersonLink(part, p); link = (PersonLink) PersistenceHelper.manager.save(link); if(link==null){ Debug.P("link is null"); return; } WTPart part1 = link.getUse(); Person p1 = link.getUsed(); if(part1==null){ Debug.P("part1 is null"); }else{ Debug.P("part1 is "+part1.getNumber()); } if(p1==null){ Debug.P("p1 is null"); }else{ Debug.P("p1 is "+p1.getName()); } }catch(Exception e){ e.printStackTrace(); } }
模型扩展(续)
模型扩展(续)
选择attributes这个标签
模型扩展(续)
然后在空白的地方点右键就会出现一个快捷菜单,在这 个菜单中可以创建一个变量,然后双击变量会出现
模型扩展(续)
在这个里面会对这个变量的类型进行设置,然后点 windchill标签
– 找到constrain这项,设置value为false,每个变量都需要这样进行设置, 然后让这个类继承wt.fc.Item这个抽象类,这样就表明person这个类现 在是持久的。同理把person这个类和wtpart这个类建立关联,关联的 类为PersonLink然后让personLink继承ObjectToObjectLink这个类,然 后把这个helloWorld. mdl保存一下,然后依次打开fileunitscontrol, 然后再依次打开,toolswindchillsystem generation
wtSafeArea\ptcOrig目录下,修改后的文件另存到wtSafeArea\siteMod目录 – 需要增加的properties属性不要放置在wt.properties中(service的注册除外),其他都放置
在codebase\com\itbg\ext.properties。 – 客制的新增Class文件放置在codebase\com\itbg对应的目录下。不要放在系统原有的包中。
模型扩展(续)
写测试代码
public class HelloWorldTest {
public static void main(String[] args) { String userName = args[0];
String password = args[1]; RemoteMethodServer methodserver = RemoteMethodServer.getDefault(); methodserver.setUserName(userName); methodserver.setPassword(password); HelloWorldTest test = new HelloWorldTest(); test.test(); }
扩展模型
模型扩展(续)
针对上面的图示,自定义个模型EleadDocs,继承 WTDocument,该模型自定义方法getEleadDocName() 和属性eleadDocType,且将其属性设置constrain=false, 点击保存(遇到提示,点击No)
Agenda
Windchill开发内容集合
开发目录介绍 开发环境搭建 Windchill 模型环境搭建 Windchill类的介绍 Windchill各个业务对象的模型介绍 Windchill常用开发类和方法介绍
开发规范
JAVA开发规范,请遵守sun标准
Windchill开发规范
– 布局
类图中尽量保证各部分分布均匀,连线尽量不要交叉,整个类图能够 显示在一个屏幕范围之内(标准1024*768分辨率),对于引用的其他包 的类、接口,可以将其属性、方法隐藏起来。避免占用过大的显示空 间。
建模搭建环境
进入到\Windchill+Information+Modeler091_F000l\Rational_Rose_for_Windows\setup.exe安 装
模型扩展(续)
打开helloWorld这个package后会出现下图
模型扩展(续)
你打开的时候是什么都没有的,这里面person,personLink这2个类 是自己建立的,可以从中间的那个条中选择到的,然后对这2个类 进行编辑,选中person这个类,点右键,会出现
点击第一个,然后就会出现
选择菜单Units.Control docs,保存为docs.cat
模型扩展(续)
生成系统文件,选中docs包
模型扩展(续)
生成系统文件.mData和EleadDocs.java文件
在src目录下自动生成包路径和文件 docs.mData和 EleadDocs.java
模型扩展(续)
系统会自动生成SQL【WT_HOME】 \db\sql3\ext\elead\docs
– 打开rose软件,依次打开fileopen定位到 windchill/src/wt/WTdesigner.mdl,打开
– 出现这个对话框,选择是,然后就耐心等待系统加载完这个文 件。当完全加载完以后把这个文件保存到上面建立的 windchill/src/helloWorld目录下,名称为helloWorld
– 由于将来系统生产环境是Cluster架构,所以在编写代码时,要尽量避免使用Static的Class 变量,测试环境配置多个Method Server,以防止编写的代码在Cluster环境中运行出现问 题。
– 系统运行的错误信息,要显示在UI界面上,以便用户和系统管理员了解,同时需要在系统 log中记录。
– 不预留属性
对象建模,不预留属性。对于已有对象的预留属性,因属性名称业务 含义,也不允许使用。历史模型已预留的属性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等预留属性
设计规范
– 关联关系
两个对象关联时,需要使用模型的关联关系。尽量不要采用建模为两 个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的 方式。 例如: 错误的建模方法:CBBCounter类有一个属性cbbNumber,记录CBB 的编码。 正确的建模方法:引入一个Link对象,记录CBBCounter类和 WTPartMaster类的关系。
– Debug语句要有开关控制,避免直接使用System.out.println()打印,导致将来的生产环境 产生大量日志。
– 每个客制点之间,设定一个Debug开关,方便自身模块的调试。Debug的开关,缺省值设 置为false。客制点之间的输入和输出部分,需要输出Debug信息,方便客制点之间的调试。
安装完成之后,load注册文件 rational_perm.dat.txt
进入到{WT_HOME}\roseAddIn,将 VirtualPathMap.AddIn.reg和Windchill.AddIn.reg文件中 的路径修订为个人本机环境的路径并注册
建模搭建环境
启动rose,点击“Edit Path Map…”查看注册信息 rose参数配置.txt
– 工作流中的表达式,具体实现,都写在WfUtil中,只在工作流中调用WfUtil中的方法。 WfUtil中的方法注释中,需要说明该段代码,将在那些workflow中被调用。
– 系统OOTB配置部分通过XML配置文件交付。方便新系统可以直接通过LoadFileSet导入配 置。
– 系统内部值,例如IBA,全部由英文字母和数字组成,不能包含特殊字符。 – 禁止反编译系统OOTB的Class文件,然后在此基础上修改做客制,导致系统无法升级。 – 需要对出厂文件(HTML template等)修改时,需要保存原出厂文件的备份在
生成.ser文件【WT_HOME】\codebase\ext\elead\docs 执行SQL语句
– 进入到 Oracle SQL*Plus路径,执行命令:
– 操作完成之后,即可使பைடு நூலகம்EleadDocs对象了!
模型扩展(续)
模型扩展(续)
完整的例子说明
– 在windchill/src/目录下建立一个helloWorld目录,在 windchill/codebase/目录下也建立一个helloWorld目录
Rose模型介绍
打开Rose模型,点击FileOpen
选择src\wt\WTdesigner.mdl
Rose模型使用
点击【是】,系统会加载
其中Logical View是系统核心 逻辑显示,其中3rd是Windchilll 中使用了哪些Java技术模块、ext 是系统客制化扩展模型目录、wnc是Windchill核心业务逻辑组成
模型扩展(续)
– 选中前3项点OK,然后这个时候你就可以在 windchill/src/helloWorld这个目录下看到有Person.java和 PersonLink.java这2个java文件,并且在 windchill/db/sql3/helloWorld这个目录下面也会产生几个sql文件, 把这几个sql文件导入到数据库中建立相关的表,要注意建立的 先后顺序:只用操作以create开头的3个sql文件
模型扩展(续)
打开helloWorld. Mdl,打开后如下图
– 你可以发现你打开的时候是没有wt,java,helloWorld这3个 package的,因为这3个package中wt和java是从左边的方框中 拖过来的,而helloWorld这个是我自己建立的,然后把 helloWorld和wt,java这2个package建立关系如上图。然后双击 helloWorld这个package在这个package中开始创建类。
模型扩展(续)
修改Person.java加入下面的代码 protected void initialize() throws WTException{
Date today = new Date(); super.initialize(); System.out.println("Person - initialize executing!"); String s = String.valueOf(today.toLocaleString()); setId(s); } 然后把person.java和personLink.java这两个文件放到 windchill/codebase/helloWorld/目录下进行编译。
(除非使用了系统原有的Protected Method,这种用法要尽量避免).
设计规范
设计规范之建模
– 仅对持久化对象建模
只有数据需要保存到数据库中的持久化业务对象才允许进行建模。其 余的操作类(例如:Processor、Delegate、Helper类等) 不被允许进行建模。
– 模型命名规则
对象的名称、属性名称、方法名称应该满足命名规则,同Java编码规 范的类命名、变量命名和方法命名。 例如: 类名 TRApplyDoc 属性名trPhase 方法名getFormData 说明:历史的模型如果要更改将要做数据迁移。因此只要求对新建立 的模型,历史模型不做要求。
设计规范
– 字段扩展
对于对象的属性,一般情况下采用默认长度。建模时要求考虑属性长 度是否符合要求,如果需要加大长度,在模型中设置相应的值即可。
– 选择父类
对于建模,尽量继承底层的Windchill类,例如:Managed\Item等,继 承上层的具有实际业务含义的Windchill类(例如:WTPart、 WTDocument)时,在业务上符合“是一个(As -is)”的含义,例如: EleadPart是一个WTPart
模型扩展(续)
测试代码
public void test(){ try{ Person p = Person.newPerson(); p.setName("111"); p.setTitle("222"); p.setAge(1111); p = (Person) PersistenceHelper.manager.save(p); WTPart part = getPartByNumber("D3_0000000064"); if(part==null){ Debug.P("part is null"); return; } PersonLink link = PersonLink.newPersonLink(part, p); link = (PersonLink) PersistenceHelper.manager.save(link); if(link==null){ Debug.P("link is null"); return; } WTPart part1 = link.getUse(); Person p1 = link.getUsed(); if(part1==null){ Debug.P("part1 is null"); }else{ Debug.P("part1 is "+part1.getNumber()); } if(p1==null){ Debug.P("p1 is null"); }else{ Debug.P("p1 is "+p1.getName()); } }catch(Exception e){ e.printStackTrace(); } }
模型扩展(续)
模型扩展(续)
选择attributes这个标签
模型扩展(续)
然后在空白的地方点右键就会出现一个快捷菜单,在这 个菜单中可以创建一个变量,然后双击变量会出现
模型扩展(续)
在这个里面会对这个变量的类型进行设置,然后点 windchill标签
– 找到constrain这项,设置value为false,每个变量都需要这样进行设置, 然后让这个类继承wt.fc.Item这个抽象类,这样就表明person这个类现 在是持久的。同理把person这个类和wtpart这个类建立关联,关联的 类为PersonLink然后让personLink继承ObjectToObjectLink这个类,然 后把这个helloWorld. mdl保存一下,然后依次打开fileunitscontrol, 然后再依次打开,toolswindchillsystem generation
wtSafeArea\ptcOrig目录下,修改后的文件另存到wtSafeArea\siteMod目录 – 需要增加的properties属性不要放置在wt.properties中(service的注册除外),其他都放置
在codebase\com\itbg\ext.properties。 – 客制的新增Class文件放置在codebase\com\itbg对应的目录下。不要放在系统原有的包中。
模型扩展(续)
写测试代码
public class HelloWorldTest {
public static void main(String[] args) { String userName = args[0];
String password = args[1]; RemoteMethodServer methodserver = RemoteMethodServer.getDefault(); methodserver.setUserName(userName); methodserver.setPassword(password); HelloWorldTest test = new HelloWorldTest(); test.test(); }