杨明
摘要:Windchill PLM积累了大量技术准备阶段的数据,可以为产品全生命周期阶段的其他系统提供有效的实时数据服务。本文旨在通过开发、配置来实现实时数据服务。
关键词:Windchill;PLM;微服务
中图分类号:TP316 文献标识码:A 文章编号:1007-9416(2020)03-0130-02
1 背景
Windchill PLM已在公司运行了多年,积累了大量技术准备阶段的数据,包括cad图纸、物料数据、BOM结构、文件、工艺等,也具有丰富的功能,完全可以支持在产品全生命周期中的业务流转。公司信息化是一个整体性的规划,还存在其他的信息系统,它们有些场景需要PLM中的实时数据提供的有效支撑。所以,Windchill PLM需要提供实時数据的微服务能力。
2 Windchill PLM开发技术
Windchill是PTC的产品生命周期管理(PLM)软件,用于管理产品内容和过程。PDMLink是Windchill的基础模块,主要提供文档管理、产品结构管理、工程变更管理、产品配置管理、生命周期管理、工作流程管理、Windchill架构、业务和系统管理、Office集成等功能。PartsLink是Windchill的零部件分类管理模块,主要通对零部件的分类库的建立,提高零部件的标准化、模块化、通用化,最大限度地提高设计重用,降低设计风险和产品全生命周期内的成本。MPMLink是Windchill的基础模块,主要提供制作工艺过程管理、制造资源管理、制造标准管理、设计产品结构和制造产品结构关系管理等功能。
3 Windchill开发模式
Wizards包含一个容器,容器中可以包含一个或多个单独的步骤,Custom-actions.xml中定义每个单独的步骤,并且在Wizards框架中定义一个JAVA类,来处理Form里面的数据,custom-actionModels.xml中定义组合页面的显示,资源文件实现国际化。Processor是Wizards最后的确定执行。Validator是用来决定组件是否显示,Validator须继承com.ptc.core.ui.validation.DefaultUI ComponentValidator。DataUtility为某一列提供显示内容,这些内容通常情况下,在对象中并不存在,在该列中可显示各种不同的控件,例如:文本框,文字、按钮等。
4 Windchill微服务实现
4.1 更新最新版本的webservices-api到jre的运行环境中
复制windchill
4.2 生成Truststores与Keystores
% cd
% ant-f jws-stores.xml包括服务端和客户端的认证信息。执行完成后,会自动创建prog_examples/jws/stores目录,并且包含client.cer,client.p12server.cer,server.p12,server-keystore.jks,server-truststore.jks几个文件。
4.3 创建项目目录结构
在prog_examples/jws/目录下创建项目文件夹,此次以WCRDMService为例子,在命令行中的windchill目录下执行:
ant-Dproject.dir="D:\ptc\wcrdm\windchill\prog_examples\jws\WCRDMService"
-Dservlet.name=WCRDMService-Dsecurity.policy= webServerAuthenticated
-Dmain.class=ext.rdm.client.RDMServiceClient-Dservice.type=java
-Dservice.class=ext.rdm.service.RDMServiceService-f
bin/adminTools/WebServices/new-project.xml create
其中-Dproject.dir=的参数值为完整目录名称。执行完成后,要注意查看是否执行成功。执行完成后,系统就prog_ examples/jws/RDMService目录自动创建一个简单的项目目录。
(1)src/(web service的基本目录);
(2)src/build.xml(构建和发布web service的文件);
(3)src_client/(web service client的基本目录);
(4)src_client/build.xml(构建web service的文件)。
4.4 编译、打包、以及部署
% cd
% ant注意查看编译结果,完成后,检查服务是否在windchill服务中正常注册文件中。重启Apache,并检查以下URL是否可以被访问,如图1所示。
4.5 逻辑代码实现
拷贝prog_examples/jws/WCRDM Service/src目录下的ext.rdm.service.RDMServiceService类到编辑工具中,进行代码的修改,如图2所示。
该类的方法是用来供其它集成软件使用的,对于该类各方法调用到的其它windchill的程序逻辑,在windchill其他代码逻辑中实现,如图3所示。
4.6 代码部署
先将windchill逻辑代码实现中设计到的各class类拷贝到windchill的codebase目录下对应的定制代码包中。然后将web service的类(比如上面的ext.rdm.service.RDMServiceService类)拷贝覆盖回原来对应的web service服务的目录下(比如上面的
完成后,然后在windchill shell中执行重新编译的命令。比如:% cd
% ant
重新进行编译,重新检查wsdl是否可以被访问。比如:新的wsdl的显示效果跟原来的不一样,证明修改及编译正常。
4.7 用SoapUI测试接口的正确性
推荐使用SoapUI 5.x版本,填写好wsdl,用户名、密码,如图4所示。
5 结语
通过上述微服务的实现,可以更好的发挥现有PLM中数据的价值,体现出产品全生命周期管理的理念。
Abstract:Windchill PLM has accumulated a large amount of data in the technical preparation stage, which can provide effective real-time data services for other systems in the product life cycle stage. This article aims at real-time data services through development and configuration.
Key words:Windchill; PLM; microservices