Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx

上传人:聆听****声音 文档编号:18941001 上传时间:2024-03-14 格式:PPTX 页数:336 大小:8.28MB
下载 相关 举报
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第1页
第1页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第2页
第2页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第3页
第3页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第4页
第4页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第5页
第5页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第6页
第6页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第7页
第7页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第8页
第8页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第9页
第9页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第10页
第10页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第11页
第11页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第12页
第12页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第13页
第13页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第14页
第14页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第15页
第15页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第16页
第16页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第17页
第17页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第18页
第18页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第19页
第19页 / 共336页
Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx_第20页
第20页 / 共336页
亲,该文档总共336页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx

《Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx》由会员分享,可在线阅读,更多相关《Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx(336页珍藏版)》请在冰点文库上搜索。

Windchill最全开发手册(代码、ROSE模型、模块、数据表).pptx

AgendaWindchill开发内容集合开发目录介绍开发环境搭建Windchill模型环境搭建Windchill类的介绍Windchill各个业务对象的模型介绍Windchill常用开发类和方法介绍开发规范JAVA开发规范,请遵守sun标准Windchill开发规范由于将来系统生产环境是Cluster架构,所以在编写代码时,要尽量避免使用Static的Class变量,测试环境配置多个MethodServer,以防止编写的代码在Cluster环境中运行出现问题。

系统运行的错误信息,要显示在UI界面上,以便用户和系统管理员了解,同时需要在系统log中记录。

Debug语句要有开关控制,避免直接使用System.out.println()打印,导致将来的生产环境产生大量日志。

每个客制点之间,设定一个Debug开关,方便自身模块的调试。

Debug的开关,缺省值设置为false。

客制点之间的输入和输出部分,需要输出Debug信息,方便客制点之间的调试。

工作流中的表达式,具体实现,都写在WfUtil中,只在工作流中调用WfUtil中的方法。

WfUtil中的方法注释中,需要说明该段代码,将在那些workflow中被调用。

系统OOTB配置部分通过XML配置文件交付。

方便新系统可以直接通过LoadFileSet导入配置。

系统内部值,例如IBA,全部由英文字母和数字组成,不能包含特殊字符。

禁止反编译系统OOTB的Class文件,然后在此基础上修改做客制,导致系统无法升级。

需要对出厂文件(HTMLtemplate等)修改时,需要保存原出厂文件的备份在wtSafeAreaptcOrig目录下,修改后的文件另存到wtSafeAreasiteMod目录需要增加的properties属性不要放置在wt.properties中(service的注册除外),其他都放置在codebasecomitbgext.properties。

客制的新增Class文件放置在codebasecomitbg对应的目录下。

不要放在系统原有的包中。

(除非使用了系统原有的ProtectedMethod,这种用法要尽量避免).设计规范设计规范之建模仅对持久化对象建模只有数据需要保存到数据库中的持久化业务对象才允许进行建模。

其余的操作类(例如:

Processor、Delegate、Helper类等)不被允许进行建模。

模型命名规则对象的名称、属性名称、方法名称应该满足命名规则,同Java编码规范的类命名、变量命名和方法命名。

例如:

类名TRApplyDoc属性名trPhase方法名getFormData说明:

历史的模型如果要更改将要做数据迁移。

因此只要求对新建立的模型,历史模型不做要求。

设计规范字段扩展对于对象的属性,一般情况下采用默认长度。

建模时要求考虑属性长度是否符合要求,如果需要加大长度,在模型中设置相应的值即可。

选择父类对于建模,尽量继承底层的Windchill类,例如:

ManagedItem等,继承上层的具有实际业务含义的Windchill类(例如:

WTPart、WTDocument)时,在业务上符合“是一个(As-is)”的含义,例如:

EleadPart是一个WTPart不预留属性对象建模,不预留属性。

对于已有对象的预留属性,因属性名称业务含义,也不允许使用。

历史模型已预留的属性不做要求。

例如:

不再使用以前建模留下的reserv1、reserv2等预留属性设计规范关联关系两个对象关联时,需要使用模型的关联关系。

尽量不要采用建模为两个独立对象,在一个对象的属性中记录另一个对象的某个标志属性的方式。

例如:

错误的建模方法:

CBBCounter类有一个属性cbbNumber,记录CBB的编码。

正确的建模方法:

引入一个Link对象,记录CBBCounter类和WTPartMaster类的关系。

布局类图中尽量保证各部分分布均匀,连线尽量不要交叉,整个类图能够显示在一个屏幕范围之内(标准1024*768分辨率),对于引用的其他包的类、接口,可以将其属性、方法隐藏起来。

避免占用过大的显示空间。

建模搭建环境进入到Windchill+Information+Modeler-091_F000lRational_Rose_for_Windowssetup.exe安装安装完成之后,load注册文件进入到WT_HOMEroseAddIn,将VirtualPathMap.AddIn.reg和Windchill.AddIn.reg文件中的路径修订为个人本机环境的路径并注册建模搭建环境启动rose,点击“EditPathMap”查看注册信息Rose模型介绍打开Rose模型,点击FileOpen选择srcwtWTdesigner.mdlRose模型使用点击【是】,系统会加载其中LogicalView是系统核心逻辑显示,其中3rd是Windchilll中使用了哪些Java技术模块、ext是系统客制化扩展模型目录、wnc是Windchill核心业务逻辑组成点击SaveAS,重新命名为HelloWorld.mdl文件,弹出框选择No,环境搭建好后,即可创建模型扩展模型模型扩展(续)针对上面的图示,自定义个模型EleadDocs,继承WTDocument,该模型自定义方法getEleadDocName()和属性eleadDocType,且将其属性设置constrain=false,点击保存(遇到提示,点击No)选择菜单Units.Controldocs,保存为docs.cat模型扩展(续)生成系统文件,选中docs包模型扩展(续)生成系统文件.mData和EleadDocs.java文件在src目录下自动生成包路径和文件docs.mData和EleadDocs.java模型扩展(续)系统会自动生成SQL【WT_HOME】dbsql3exteleaddocs生成.ser文件【WT_HOME】codebaseexteleaddocs执行SQL语句进入到OracleSQL*Plus路径,执行命令:

操作完成之后,即可使用EleadDocs对象了!

模型扩展(续)模型扩展(续)完整的例子说明在windchill/src/目录下建立一个helloWorld目录,在windchill/codebase/目录下也建立一个helloWorld目录打开rose软件,依次打开fileopen定位到windchill/src/wt/WTdesigner.mdl,打开出现这个对话框,选择是,然后就耐心等待系统加载完这个文件。

当完全加载完以后把这个文件保存到上面建立的windchill/src/helloWorld目录下,名称为helloWorld模型扩展(续)打开helloWorld.Mdl,打开后如下图你可以发现你打开的时候是没有wt,java,helloWorld这3个package的,因为这3个package中wt和java是从左边的方框中拖过来的,而helloWorld这个是我自己建立的,然后把helloWorld和wt,java这2个package建立关系如上图。

然后双击helloWorld这个package在这个package中开始创建类。

模型扩展(续)打开helloWorld这个package后会出现下图模型扩展(续)你打开的时候是什么都没有的,这里面person,personLink这2个类是自己建立的,可以从中间的那个条中选择到的,然后对这2个类进行编辑,选中person这个类,点右键,会出现点击第一个,然后就会出现模型扩展(续)模型扩展(续)选择attributes这个标签模型扩展(续)然后在空白的地方点右键就会出现一个快捷菜单,在这个菜单中可以创建一个变量,然后双击变量会出现模型扩展(续)在这个里面会对这个变量的类型进行设置,然后点windchill标签找到constrain这项,设置value为false,每个变量都需要这样进行设置,然后让这个类继承wt.fc.Item这个抽象类,这样就表明person这个类现在是持久的。

同理把person这个类和wtpart这个类建立关联,关联的类为PersonLink然后让personLink继承ObjectToObjectLink这个类,然后把这个helloWorld.mdl保存一下,然后依次打开fileunitscontrol,然后再依次打开,toolswindchillsystemgeneration模型扩展(续)选中前3项点OK,然后这个时候你就可以在windchill/src/helloWorld这个目录下看到有Person.java和PersonLink.java这2个java文件,并且在windchill/db/sql3/helloWorld这个目录下面也会产生几个sql文件,把这几个sql文件导入到数据库中建立相关的表,要注意建立的先后顺序:

只用操作以create开头的3个sql文件模型扩展(续)修改Person.java加入下面的代码protectedvoidinitialize()throwsWTExceptionDatetoday=newDate();super.initialize();System.out.println(Person-initializeexecuting!

);Strings=String.valueOf(today.toLocaleString();setId(s);然后把person.java和personLink.java这两个文件放到windchill/codebase/helloWorld/目录下进行编译。

模型扩展(续)写测试代码publicclassHelloWorldTestpublicstaticvoidmain(Stringargs)StringuserName=args0;Stringpassword=args1;RemoteMethodServermethodserver=RemoteMethodServer.getDefault();methodserver.setUserName(userName);methodserver.setPassword(password);HelloWorldTesttest=newHelloWorldTest();test.test();模型扩展(续)测试代码publicvoidtest()tryPersonp=Person.newPerson();p.setName(111);p.setTitle(222);p.setAge(1111);p=(Person)PersistenceHelper.manager.save(p);WTPartpart=getPartByNumber(D3_0000000064);if(part=null)Debug.P(partisnull);return;PersonLinklink=PersonLink.newPersonLink(part,p);link=(PersonLink)PersistenceHelper.manager.save(link);if(link=null)Debug.P(linkisnull);return;WTPartpart1=link.getUse();Personp1=link.getUsed();if(part1=null)Debug.P(part1isnull);elseDebug.P(part1is+part1.getNumber();if(p1=null)Debug.P(p1isnull);elseDebug.P(p1is+p1.getName();catch(Exceptione)e.printStackTrace();模型扩展(续)publicstaticWTPartgetPartByNumber(Stringnumber)WTPartpart=null;tryQuerySpecqs=newQuerySpec(WTPart.class);SearchConditionsc=newSearchCondition(WTPart.class,WTPart.NUMBER,=,number);qs.appendWhere(sc);QueryResultqr1=PersistenceHelper.manager.find(qs);while(qr1.hasMoreElements()part=(WTPart)qr1.nextElement();catch(Exceptione)e.printStackTrace();returnpart;模型扩展(续)把这个测试类在windchillshell中运行,运行结果为下图然后我们现在看下数据库中的情况模型扩展(续)在person和personlink这两张表中都有了数据,测试结果正确注意事项在进行建模之前要对一些参数进行设置,也就是把rose的操作目录指向windchill的目录开发目录介绍开发目录介绍WT_HOMEwtCustomwtSafeAreasrcdbsiteModptcCurrentptcOrigsqlcomitbgitbgtaskscomitbgcomtemplatesloadfilesloadXMLFilescomitbgcomitbgcodebasecomitbgcomitbgjspnetmarketscomitbg1、wtCustom放入修改系统的放入修改系统的rbInfo文件文件2、wtSateArea下的下的siteMod文件中放入修改后的系统文件,比如文件中放入修改后的系统文件,比如.jspf文件、文件、html、xml;ptcCurrent文件放系统当前版本的文件;文件放系统当前版本的文件;ptcOrig放系统最原始的文件放系统最原始的文件ant-fbin/swmaint.xmlinstallSiteChanges3、codebase是运行时目录,放编译后的是运行时目录,放编译后的.class文件、放文件、放WEB相关文件、放模板文件相关文件、放模板文件(.html)4、src目录放客制化的源文件,放国际化目录放客制化的源文件,放国际化.rbInfo文件。

文件。

5、tasks目录放系统服务文件目录放系统服务文件.xml文件,文件,Info*Engine配置文件配置文件6、loadFiles目录,放置需要导入到系统的工作流、生命周期等目录,放置需要导入到系统的工作流、生命周期等7、loadXMLFiles目录,放置配置系统的信息的目录,放置配置系统的信息的.xml文件文件8、DB目录,放置建立模型后生成的目录,放置建立模型后生成的SQL语句语句Windchill类的介绍1.如何在系统中查找对象对应的类2.如何通过类在数据库中查找相关的表如何在系统中查找对象对应的类打开类型管理器,选择部件,这个部件就对应了系统中的一个对象,页面的右部就会显示这个类的具体信息,在名称这栏中的wt.part.WTPart就是系统中部件对应的类,wt.part是包名,WTPart就是类的名称,这个时候就可以在Eclipse中查看这个类有那些相关的函数,同时也可以到wt.part这个包中查看其它的一些类,这些类也都是和WTPart有关。

如何通过在系统中查找对象对应的类系统中的业务对象在Rose模型中都可以看到相应的方法系统类的设计系统中的服务类设计为xxHelper.java文件和xxService.java是组合关系,系统中的所有业务对象对应的方法在对应的service中,通过xxHelper.serivce.方法部件操作:

WTPartHelper.service.方法文档操作:

WTDocumentHelper.service.方法EC操作:

ChangeHelper2.service.方法文件夹的操作:

FolderHelper.service.方法生命周期的操作:

LifeCycleHelper.manager.方法推进流程对象的操作:

MaturityHelper.service.方法通知机制对象的操作:

Notificationhelper.service.方法位号的操作:

OccurrenceHelper.service.方法参与者的操作:

OrganizationServicesHelper.manager.方法版本的操作:

VersionControlHelper.service.方法如何通过类在数据库中查找相关的表在类型管理器中定义的那些对象在数据库中都有相对应的表存在,表的名称也就是类的名称。

例如:

部件对象的类名称是WTPart,则数据库中就对应了一张名为WTPart的表。

WINDCHILL的数据库中的一张表其实对应的就是系统中的一个类名,所以有很多开发可以以数据库的表为入手点,如果你知道系统中的某个信息是存储在数据库中的具体表中的时候,就可以根据表的名称去系统中查找相关的类,来获取你需要的数据如何通过类在数据库中查找相关的表上面就是数据库中WTPart的表,这里面的数据在WTPart这个类中就可以获取,例如你如果想要获取一个部件的生命周期状态,数据库中对应的字段是STATESTATE这个字段,那么你就可以在在代码中通过part.getLifeCycleState().getDisplay()这个函数来获取,所以在学习WINDCHILL系统的开发的时候一定不能忽略数据库的作用。

Windchill各个包的介绍PackageFunctionalityaccessFunctionalityforaccesscontrol;usedtodefineaccesspoliciesandobjectownership(thatis,definerulesforwhatusersorgroupshaveaccesstowhatinformation).访问控制的功能;用于定义访问策略和对象所有权(即,定义哪些用户或组有权访问哪些信息的规则)。

adminFunctionalitytocreateadministrativedomainsandpolicies.用于创建管理域和策略的功能。

change2Functionalitytomanipulatechangeitems(changeissue,request,investigation,proposal,order,andchangeactivity).操作更改项的功能(更改问题、请求、调查、建议、命令和更改活动)。

container.batchFunctionalityforaclientapplicationtogatheragroupofcreate,modify,anddeleteassertions,andsubmitthemtoaservicemethodforprocessinginonetransaction.客户端应用程序收集一组创建、修改和删除断言的功能,并将它们提交给服务方法,以便在一个事务中进行处理。

contentFunctionalityforhandlingcontentdata(attachingfilesandURLstocontentholders,suchasdocumentsandchangeobjects)andassociatingbusinessinformationmetadata(suchastheauthor)withcontent.用于处理内容数据(将文件和URL附加到内容所有者的功能,例如文档和更改对象)以及将业务信息元数据(例如,作者)与内容相关联的功能。

docFunctionalityfordocumentmanagement.文件管理功能。

effectivityFunctionalitytoassertthataPDMobjectiseffectiveundercertainconditions.断言PDM对象在特定条件下是有效的功能。

Windchill各个包的介绍PackageFunctionalityenterpriseFunctionalityforthebasicbusinessobjectsusedintheWindchillsystem.用于windchill系统中的基本业务对象的功能。

eventsFunctionalityforregistration,subscriptionandnotificationofprocessingevents.Theeventspackageprovidesahierarchicalsubscriptionmechanismthatmakesitpossibletosubscribedirectlytoeventsofinterest.Eventdispatchingisbasedonsimplesynchronousin-thread/transactioncalls.用于注册、订阅和通知处理事件的功能。

Events包提供了分层订阅机制,可以直接订阅感兴趣的事件。

事件调度基于简单的线程内同步/事务调用。

fcBasicfoundationclasses(WTObject,Item,andLink)andbasicservicesforthoseclasses(persistence,objectmappable,andidentifyservice).基本基础类(wobject、Item和link)和这些类的基本服务(持久化、对象映射和标识服务)。

federationThefederationserviceprovidesfunctionalitytocreateandmanageproxyobjectsofremotesystemsandperformutilityfunctionssupportingthefederationsystem.联邦服务提供了创建和管理远程系统的代理对象以及执行支持联合系统的实用功能的功能。

folderFunctionalitytoputinformationintofoldersandcabinetsfornavigationalpurposes.为导航目的将信息放入文件夹和柜子中的功能。

fvFunctionalitytodefineandexecutethevaultingalgorithmforcontentitems.定义和执行内容项的跳级算法的功能。

identityFunctionalitytodisplaytheidentityofbusinessobjects;thatis,theirtypeandidentifier(forexample,atypeofpartandanidentifierofpartnumber).显示业务对象标识的功能;即业务对象的类型和标识符(例如,部件类型和部件编号标识符)。

Windchill各个包的介绍PackageFunctionalityindexFunctionalitytoindexmetadataandcontentdata,controllinghowinformationisputintosearchindexes.对元数据和内容数据进行索引的功能,控制如何将信息放入搜索索引中。

introspectionFunctionalitytomakemodelinformationavailabletoaru

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2