Windchill技术培训笔记
Windchill业务类培训讲义

wt.vc.Versioned
受大版本控制
8
Windchill常用包
包名
wt.access wt.change wt.change2 访问权限相关类 旧的变更相关类,新的是change2 更改相关类
描述
wt.content
wt.doc wt.epm wt.fc wt.folder
内容相关类,例如 文档的主内容、附件等
20
文档相关的对象
WTDocument和WTDocumentMaster 带 Identity 和 Content的版本控制对象
21
文档相关关联对象
文档参考:WTDocumentDependencyLink
文档使用(文档结构):WTDocumentUsageLink
22
零部件相关的对象
WTPart WTPartMaster
Simple (抽象的) 业务对象服从访问控制、域的管理和通知规则
13
通用的业务信息对象
Managed (抽象的)
14
通用的业务信息对象
RevisionControlled
15
通用的链接对象
ObjectToObjectLink (abstract)
– Abstract class that represents an association between two Persistable objects. – Each Persistable is referenced by an ObjectReference.
23
零部件相关关联对象
零部件使用关系,BOM结构:WTPartUsageLink
24
零部件相关关联对象
PTC Windchill 培训

产品清单产品
29
© 2012 PISX
产品清单页面会列出该用户是团队成员的所有产品:
30
© 2012 PISX
产品详细信息
31
© 2012 PISX
32
© 2012 PISX
产品文件夹
33
© 2012 PISX
34
© 2012 PISX
产品团队
35
© 2012 PISX
36
© 2012 PISX
Windchill基础知识培训
目录
• 一、Windchill环境介绍 • 二、查找信息 • 三、产品介绍 • 四、产品维护 • 五、管理工作 • 六、工作任务 • 七、Creo集成
2
© 2012 PISX
数据管理对象
3
© 2012 PISX
更改管理对象
4
© 2012 PISX
存储位置
5
© 2012 PISX
62
© 2012 PISX
部件审核流程
• 在部件的详细信息下拉菜单
63
© 2012 PISX
申请人提交
流程启动者接收任务, 点击 图标 进入主页,在我的工作分配中会有一个“提交部件审核”的任务
为流程后续的签审角色指定参与者
64
© 2012 PISX
审核人审核
以校对者的身份进入windchill。在主页 -我的工作分配中会接收到校队的任务
13
© 2012 PISX
使用“X
使用“快速链接”
15
© 2012 PISX
使用“导航器”
16
© 2012 PISX
使用“痕迹导航”
17
© 2012 PISX
windchill业务笔记

windchill业务笔记模块1,业务管理Windchill PDMlink提供:1.针对快速实施并基于PTC的windchill技术而设计的产品生命周期管理解决方案软件包。
2.一个基于WEB的协作平台,包含:协作设计配置管理生命周期和工作流管理更改管理设计外包变型设计与生成windchill体系结构windchill服务器层包含windchill服务器和web服务器Windchill客户端只要使用最新版本的浏览器和网络连接即可访问数据及执行基本任务Windchill数据库服务器用于存储windchill对象windchill可选服务器多个可选服务器使windchill具有附加功能。
索引服务器企业目录服务器可视化工作器电子邮件服务器Cognos报告服务器Windchill术语组织,表示企业并包含产品,存储库及其他数据。
产品,为产品定义提供组织上下文。
存储库,为相似但飞产品特定的数据存储提供组织上下文。
Windchill业务对象成品和部件用于表示产品结构以及执行工程配置管理。
CAD文档存储来自于windchill可识别并整合的具体应用程序中的模型和绘图信息。
文档是存储来自创作应用程序的内容文件的通用对象。
可视项是文档或部件的轻量级代表,可在productview中查看和标注。
更改想用于跟踪和控制对产品结构,模型,绘图和产品文档的正式工程更改。
策略,进程和参与者Windchill是管理员能够建立策略并且为各个参与者配置进程。
域策略由管理访问控制,建立索引和事件通知的管理规则构成。
生命周期由表示对象各成熟阶段的连续状态构成。
工作流提供业务流程的自动执行过程。
承担者代表业务实体角色用于确定系统内某个或多个任务的执行者。
团队将一组承担者映射到个角色。
业务管理员为了管理windchill环境并将业务规则应用到受windchill系统控制的数据。
公用windchill对象全部(所有对象的父项)wc.fc.WTObject部件和成品wt.part.WTPartCAD文档wt.epm.EPMDocument动态文档EPMDocument子类型问题报告wt.change2.WTChangeIssue更改请求wt.change2.WTChangeRequest2更改通告wt.change2.WTChangeOrder2更改通告任务wt.change2.WTChangeActivity2受管理的基线wt.vc.baseline.ManagedBaseline大多数windchill对象都必须位于上下文容器中。
Windchill高级查询感悟笔记

Windchill高级查询感悟笔记首先从这个例子来开始我们的“高级查询”之旅{QuerySpec queryspec = new QuerySpec();queryspec.appendClassList(WTPart.class, true);queryspec.appendClassList(WTDocument.class, true);PersistenceManagerSvr pms = (PersistenceManagerSvr)InvocationHandlerFwd.getInterfaceObject(PersistenceManagerSvr.class);QueryResult qr = pms.query(queryspec);}QuerySpec对象是用来指定查询表达式的,queryspec.appendClassList()是用来指定From子句的,如果有多个这样的表达式而没有其他条件,那么就是对相应的被查询对象“求笛卡儿积”;例如上面的例子就会形成下面的Form子句:From WTPART,WTDOCUMENT指定From子句有两种方式:queryspec.appendClassList(WTPart.class, false);//指定具体的对象qs.appendFrom(new ExternalTableExpression("GZMTRECR")); //指定具体的表在appendClassList()中有两个参数,第一个参数是用来指定被查询对象,第二个参数用来指定查询的返回形式:true以对象的形式返回,false以属性的方式返回;如果是用appendClassList()来指定查询对象,那么查询结果QueryResult qr对象qr.nextElement()得到的是Object数组,具体的结果保存在这个数组中;为Select子句中指定返回字段不管queryspec.appendClassList()方法的第二个参数是true还是false,结果都会返回整个对象或者所有的字段;要想过滤返回的字段,需要增加下面的代码{QuerySpec queryspec = new QuerySpec();int a = queryspec.appendClassList(WTPart.class, false);int b = queryspec.appendClassList(WTDocument.class, true);//--------------------------------------------------------------------ClassAttribute ca = new ClassAttribute(WTPart.class, "master>number"); //µÚ¶þ¸ö²ÎÊý±ØÐëʱÏàÓ¦ÒµÎñ¶ÔÏóµÄÊôÐÔqueryspec.appendSelect(ca, false);//--------------------------------------------------------------------CompositeWhereExpression andExpression = new CompositeWhereExpression(LogicalOperator.AND);andExpression.append(new SearchCondition(ca, "=", new ConstantExpression("TEST_PRODUCT_ONE")), null);queryspec.appendWhere(andExpression);//--------------------------------------------------------------------} SELECT A1.NUMBER FROM WTPART A0, WTPARTMASTER A1 WHEREA0.IDA3MASTERREFERENCE = A1.IDA2A2;通过TableColumn指定查询条件{QuerySpec queryspec = new QuerySpec();int classIndex = queryspec.appendClassList(WTPart.class, false);ClassAttribute classAttr = new ClassAttribute(WTPart.class, "partType");queryspec.appendSelect(classAttr, new int[] { classIndex }, false);TableColumn tc = new TableColumn(null, "IDA2A2");queryspec.appendWhere(new SearchCondition(tc, "=", new ConstantExpression(new Long(4638))), new int[] { classIndex });PersistenceManagerSvr pms = (PersistenceManagerSvr) InvocationHandlerFwd.getInterfaceObject(PersistenceManagerSvr.class);QueryResult qr = pms.query(queryspec);} SELECT PARTTYPE FROM WTPART WHERE IDA2A2 = 4638;================================================================================ ========================================================Column Expression ClassAttribute SQLFunction ConstantExpression KeywordExpression TableColumnTable Expression ClassTableExpression ClassViewExpression SubSelectExpression ExternalTableExpressionWHERE Clause SearchCondition ExistsExpression CompositeWhereExpression NegatedExpression================================================================================ ========================================================多对象多条件查询{QuerySpec queryspec = new QuerySpec();int a = queryspec.appendClassList(WTPart.class, true);int b = queryspec.appendClassList(WTPartMaster.class, true);//TableExpression[] tables = new TableExpression[2];//tables[0] = queryspec.getFromClause().getTableExpressionAt(a);//tables[1] = queryspec.getFromClause().getTableExpressionAt(b);String[] aliases = new String[2];aliases[0] = queryspec.getFromClause().getAliasAt(a);aliases[1] = queryspec.getFromClause().getAliasAt(b);TableColumn tc1 = new TableColumn(aliases[0],"IDA2A2");TableColumn tc2 = new TableColumn(aliases[0],"IDA3MASTERREFERENCE");TableColumn tc3 = new TableColumn(aliases[1],"IDA2A2");CompositeWhereExpression andExpression = newCompositeWhereExpression(LogicalOperator.AND);andExpression.append(new SearchCondition(tc1, "=", newConstantExpression(new Long(4638))));andExpression.append(new SearchCondition(tc2, "=", tc3));queryspec.appendWhere(andExpression, null);PersistenceManagerSvr pms = (PersistenceManagerSvr) InvocationHandlerFwd.getInterfaceObject(PersistenceManagerSvr.class);QueryResult qr = pms.query(queryspec);} SELECT A0.*, A1.* FROM WTPART A0, WTPARTMASTER A1 WHERE (A0.IDA2A2 = 4638)AND(A1.IDA2A2 = A0.IDA3MASTERREFERENCE);说明[one]:用SQL语句写查询语句时,可以为被查询的表、视图指定别名。
Windchill技术培训笔记

搭建Windchill环境开发工具设置在Eclipse中选择:Window --> Preferences --> java --> Compiler --> Building去掉:□的选中注意:一定要取消选中,否则在清工作区时将删除windchillcodebase下的文件5.此时会在Eclipse的工作空间里面生成一个HelloWindchill的文件,此文件很小只有几KB创建Java项目➢第一种创建方式:1.在Eclipse中选择:File --> New --> Java Project 创建一个Test 的Java项目2.在当前创建的java项目Test:在Eclipse中选择:当前项目上(Test)--> New --> Properties --> Java Build Path--> Add Class Folder --> Create New Folder单击ok 完成codebase 文件夹的创建和指定(由于Windchill的codebase文件夹很大,所以这一步骤需要等待片刻)成功之后,将会看到:➢第二种创建方式:1.在Eclipse中选择:File --> New --> Java Project 创建一个TestWindchill 的Java项目→Link additional source --> Browse --> Finish2.Browse →选择codebase3.添加自定义的library库3.指定codebase 的映射:3.指定codebase文件夹编译之后的.class 文件和工程下面的java源文件的映射关系在Eclipse中选择:当前项目上(HelloWindchill)--> New --> Properties --> Java Build Path --> Browse-->单击OK 之后,你可能会发现Java 项目Referenced Libraries里面有个codebase 文件夹了4.添加Windchill环境所需的jar包(推荐使用1)D:\ptc\Windchill_9.1\Windchill里面需要的被导入的jar文件按有:lib、srclib、installlib、WHC\WEB-INF\lib、ant\lib、codebase\WEB-INF\lib、codebase\lib 7个文件夹下的所有jar文件➢ 1.可用自定义一个类库,然后把Windchill 7个lib下面的jar都添加到该库中,以后就可以在开发中直接引用该类库(注意:最好不要覆盖相同名字的jar包,因为他们的jar 的文件大小不同,所以作用也不同,避免在开发中因jar的冲突和版本问题而引起些莫名奇妙的错误)在Eclipse中选择:当前项目上(HelloWindchill)--> New --> Properties --> Java Build Path --> Libraries 选项卡➢ 2.直接引用,7个lib下面的所有jar包第一个Hello World创建HelloWorld.java在Eclipse中选择:当前项目上(HelloWindchill)src --> New --> Package创建一个TestWindchill.java 的类package angus ;publicclass TestWindchill {/*** @param args*/publicstaticvoid main(String[] args) {// TODO Auto-generated method stubSystem.out.println(" Hello World....");}}启动Windchill 服务1.启动Oracle10g 监听服务:OracleOraDb10g_home1TNSListener2.启动Oracle10g 主数据库服务:OracleServiceWIND3.启动Apache 服务4.启动Tomcat 服务成功标志:5.启动control-panel.bat 服务D:\ptc\Windchill_9.1\WindchillDS\server\bat6.启动Windchill Shell 服务,输入windchill start目标:D:\ptc\Windchill_9.1\Windchill\bin\windchill.exe shell 起始位置:D:\ptc\Windchill_9.1\Windchill\bin7.观察Windchill 的两个窗口:ServerManager :MethodServer8.Windchill 启动成功的标志:在MethodServer窗口出现如下标志,表明Windchill 服务启动成功运行HelloWorld.java1.Eclipse控制台会打印:Hello World…2.此时会在Windchill系统的安装目录(D:\ptc\Windchill_9.1\Windchill\codebase)生成如下目录:angus--> com里面会生成TestWindchill.java源文件的编译后的文件:TestWindchill.class此时表明第一个Hello World 程序运行成功3.第一个JSP与Hello Word创建index.jsp在Windchill的安装目录(D:\ptc\Windchill_9.1\Windchill\codebase\netmarkets\jsp)下面新建一个文件夹angus,在里面新建一个index.jsp页面页面内容为:<%@ page language="java" import="java.util.*,angus .*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>My JSP 'index.jsp' starting page</title><meta -equiv="pragma" content="no-cache"><meta -equiv="cache-control" content="no-cache"><meta -equiv="expires" content="0"><meta -equiv="keywords" content="keyword1,keyword2,keyword3"><meta -equiv="description" content="This is my page"></head><body>ddd<% TestWindchill tst = new TestWindchill();%><br><%= tst.helloWindchill() %><%= tst %></body></html>创建TestWindchill.javaTestWindchill.java里面的内容package angus ;publicclass TestWindchill {/*** @param args*/publicstaticvoid main(String[] args) {// TODO Auto-generated method stubSystem.out.println("第一个Windchill程序");}public String helloWindchill(){return"this is the Hello World Windchill...";}}编译后的TestWindchill.class文件会自动映射,放到D:\ptc\Windchill_9.1\Windchill\codebase\angus\com 目录下注意:该目录下的TestWindchill.class 的更新时间访问:在浏览器地址栏输入:://localhost/Windchill/netmarkets/jsp/angus/index.jsp就可以在Windchill目录使用jsp页面调用Windchill目录java 类的方法。
Windchill用户培训文档

添加标题
添加标题
添加标题
添加标题
自定义功能:用户可以根据自己 的需求添加或删除系统功能。
自定义报表:用户可以根据自己 的需求自定义报表的样式和内容。
密码管理:定期更换密码使用复杂密码 权限管理:设置不同级别的权限确保数据安全 备份与恢复:定期备份数据确保数据安全 安全审计:定期进行安全审计及时发现并解决问题 安全培训:定期进行安全培训提高员工安全意识 安全工具:使用安全工具如防火墙、杀毒软件等确保系统
添加标题
快捷键:Ctrl+C(复制)、Ctrl+V(粘贴)、Ctrl+X(剪切)、 Ctrl+S(保存)等
数据备份与恢复:支持定期备份 和快速恢复确保数据安全
数据权限管理:支持用户权限设 置确保数据安全
添加标题
添加标题
添加标题
添加标题
数据同步:支持多设备间的数据 同步提高工作效率
数据分析:支持数据查询、统计 和分析为决策提供支持
Байду номын сангаас
熟练掌握 Windchill系统的 基本操作和常用 功能
了解Windchill系 统的应用场景和 优势
掌握Windchill系 统的数据管理、 安全性和可靠性 等方面的知识
提高了解决实际 问题的能力和团 队协作能力
界面优化: 简化界面 设计提高 用户体验
功能增强: 增加更多 实用功能 提高工作 效率
登录:输入用户名和密码点击登录按钮 退出:点击右上角的退出按钮确认退出 忘记密码:点击忘记密码链接通过邮箱找回密码 登录错误:输入错误的用户名或密码系统会提示错误信息
界面布局:分为菜单栏、 工具栏、工作区和状态栏
菜单栏:包含文件、编辑、 视图、工具等选项
WC9_action&actionModel windchill学习笔记

使用参数jcaDebug=1。
方法:jsp页面中后面手动加上?jcaDebug=1;其它页面手动加上参数&jcaDebug=1显示“创建文件夹”动作folder.createactionModel: folder_file_newEnable: 类com.ptc.windchill.enterprise.folder.validators.CreateFolderActionValidator以站点管理员身份查看action报告:附:查看property Report:http://<machine>/Windchill/netmarkets/jsp/property/propertyReport.jsp查看service Report:http://<machine>/Windchill/netmarkets/jsp/carambola/svc/report.jsp在<WT_HOME>\codebase\config\action\custom_action.xml中重新定义folder.create<WT_HOME>/codebase/netmarkets/jsp/folder/sayHi.jsp的内容为:<H1>Hello World</H1>不需要重启服务器,只需要reload XML就OK了。
Reload XML的方法:在windchill 控制台上执行以下命令:java markets.util.misc.NmActionServiceHelper刷新页面,点击“创建新文件夹“,将跳出如下页面需求:actionModel: folder_list_toolbar新增action: folder1.create第一步:在<wt_home>/codebase/config/action/custom_actions.xml定义folder1.create第二步: 查找actionModel中的action,并跟上步中定义的create.folder1在custom_actionModels中定义第三步:reload XMLjava markets.util.misc.NmActionServiceHelper 刷新页面:发现没有定义create.folder1的label 、icon 、Title 等信息,在页面上显示的是空白 老办法:在action.properties 及action_zh_CN.properties 中定义folder1.create 的信息第四步:定义folder1.create 的表示属性第五步:reload XML,不需要重启服务器java markets.util.misc.NmActionServiceHelper OK,刷新页面点击“发送数据单”将弹出一个hello word页面。
Windchill系统管理员培训课件

Windchill系统的数据备份和恢复
1
数据备份的重要性
数据备份是保证数据完整性和安全性的重要手段。
2
数据备份和恢复的方法
数据备份和恢复的方法主要有:全量备份、增量备份、数据恢复。
什么是Windchill系统?
Windchill是一款快速、可靠的产品生命周期管理软件,旨在提高生产率和产品质量。
Windchill的特点
通过集成各种软件和系统,Windchill实现了协同工作、版本控制、工程更改、BOM管理、工 程图形管理、文档管理、报告管理等功能,集成了Creo、SolidWorks、AutoCAD、Eclipse等软 件。
3
数据备份和恢复的常见问题
常见问题包括备份失败、备份不完整、恢复失败等。
Windchill系统的安全性和保密性
Windchill系统的安全性
Windchill系统的保密性
Windchill系统的防火墙 保护
Windchill系统采用多重安全策 略,包括用户认证、权限控制、 数据加密、审计跟踪等。
Windchill系统能够帮助企业保 护机密信息的安全性和保密性。
Windchill系统的安装步骤
下载安装包、解压安装包、运行安装程序、 配置参数、启动服务。
Windchill系统的配置常见问题
常见问题包括端口冲突、Java版本不匹配、 数据库不兼容等。
Windchill系统的基本配置
基本配置包括用户管理、组织架构、权限管 理等。
Windchill系统管理员的职责和任务
Windchill的应用领域
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
搭建Windchill环境开发工具设置在Eclipse中选择: Window --> Preferences --> java --> Compiler --> Building去掉:□的选中注意:一定要取消选中,否则在清工作区时将删除windchill codebase下的文件5.此时会在Eclipse的工作空间里面生成一个 HelloWindchill的文件,此文件很小只有几KB创建Java项目第一种创建方式:1.在Eclipse中选择: File --> New --> Java Project 创建一个Test 的Java项目2.在当前创建的java项目Test:在Eclipse中选择:当前项目上(Test) --> New --> Properties --> Java Build Path --> Add Class Folder --> Create New Folder单击 ok 完成 codebase 文件夹的创建和指定(由于Windchill的codebase文件夹很大,所以这一步骤需要等待片刻)成功之后,将会看到:第二种创建方式:1.在Eclipse中选择: File --> New --> Java Project 创建一个TestWindchill 的Java项目Link additional source --> Browse --> Finish2.Browse 选择codebase3.添加自定义的library库3.指定codebase 的映射:3.指定codebase文件夹编译之后的.class 文件和工程下面的 java源文件的映射关系在Eclipse中选择:当前项目上(HelloWindchill) --> New --> Properties --> Java Build Path --> Browse-->单击 OK 之后,你可能会发现 Java 项目 Referenced Libraries里面有个 codebase 文件夹了4.添加Windchill环境所需的jar包(推荐使用1)D:\ptc\\Windchill里面需要的被导入的jar文件按有:lib、srclib、installlib、WHC\WEB-INF\lib、ant\lib、codebase\WEB-INF\lib、codebase\lib 7个文件夹下的所有jar文件1.可用自定义一个类库,然后把Windchill 7个lib下面的jar都添加到该库中,以后就可以在开发中直接引用该类库(注意:最好不要覆盖相同名字的jar包,因为他们的jar的文件大小不同,所以作用也不同,避免在开发中因jar的冲突和版本问题而引起些莫名奇妙的错误)在Eclipse中选择:当前项目上(HelloWindchill) --> New --> Properties --> Java Build Path --> Libraries 选项卡2.直接引用,7个lib下面的所有jar包第一个Hello World创建在Eclipse中选择:当前项目上(HelloWindchill) src --> New --> Package创建一个的类内容为:package ;public class TestWindchill {/*** @param args*/public static void main(String[] args) {..");}}启动Windchill 服务1.启动 Oracle10g 监听服务:OracleOraDb10g_home1TNSListener2.启动 Oracle10g 主数据库服务:OracleServiceWIND3.启动 Apache 服务4.启动 Tomcat 服务成功标志:5.启动服务D:\ptc\\WindchillDS\server\bat6.启动 Windchill Shell 服务,输入 windchill start目标:D:\ptc\\Windchill\bin\ shell起始位置:D:\ptc\\Windchill\bin7.观察Windchill 的两个窗口:ServerManager :MethodServer8.Windchill 启动成功的标志:在MethodServer窗口出现如下标志,表明Windchill 服务启动成功运行1.Eclipse控制台会打印:Hello World…2.此时会在Windchill系统的安装目录(D:\ptc\\Windchill\codebase)生成如下目录:angus --> com里面会生成源文件的编译后的文件:此时表明第一个Hello World 程序运行成功3.第一个JSP与 Hello Word创建在Windchill的安装目录(D:\ptc\\Windchill\codebase\netmarkets\jsp)下面新建一个文件夹angus,在里面新建一个页面页面内容为:<%@ page language="java" import=".*,.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-.";}}编译后的文件会自动映射,放到D:\ptc\\Windchill\codebase\angus\com 目录下注意:该目录下的的更新时间访问:在浏览器地址栏输入: java 类的方法。
注意:如果你在里面添加了一个方法,然后在中调用,注意一定要删除:D:\ptc\\Windchill\codebase\angus\com 目录下的文件然后在Windchill Shell 中输入重启Windchill 然后重启 Tomcat ,再在浏览器地址栏输入:,不然就会报错Windchill菜单定制顶级菜单定制1.在安装的Windchill 系统的Windchill Shell 中运行命令:ant –f bin\ createSafeArea会在Windchill的安装D:\ptc\\Windchill\wtSafeArea 目录出现3个文件夹:ptcCurrent、ptcOrig、siteMod2.在文件夹siteMod下创建codebase config actions三个文件夹(内嵌结构)3.在 WC_Home安装目录的actions文件夹下面添加如下两个xml文件把、两个xml文件添加到..\wtSafeArea\siteMod\codebase\config\actions 目录下文件一定要是UTF-8编码格式的4.在文件里面需要配置如下代码:Example:(模型文件)<xml version="" encoding="UTF-8"><!DOCTYPE actionmodels SYSTEM ""><actionmodels><!-- 顶级菜单 main navigation --><model name="main navigation"><description>Main navigation (tabs)</description><action name="home" type="navigation"/><action name="program" type="navigation"/><action name="product" type="navigation"/><action name="project" type="navigation"/><action name="change" type="navigation"/><action name="library" type="navigation"/><action name="org" type="navigation"/><action name="site" type="navigation"/><action name="supplier" type="navigation"/><action name="customization" type="navigation"/><action name="fiberhomereport" type="navigation"/></model></actionmodels>5.在文件里面需要配置如下代码:Example: (动作文件)<!-- 顶级菜单 main navigation --><xml version="" encoding="UTF-8"><!DOCTYPE listofactions SYSTEM ""><listofactions><objecttype name="navigation" class=""><action name="fiberhomereport" renderType="GENERAL" resourceBundle=""><command class="netmarkets" method="servlet/Navigationtab=fiberhomereport" windowType="</action></objecttype></listofactions>6.Windchill英文资源文件里面的代码()存放的位置:D:\ptc\\Windchill\src\ext\resource (resource目录是自己建的,名字可以取)Example: (英文资源文件)<!-- 必须引入的 -->= 顶级菜单 -->7.Windchill中文资源文件里面的代码存放的位置:D:\ptc\\Windchill\src\ext\resource (resource目录是自己建的,名字可以取)Example: (中文资源文件)<!-- 必须引入的 -->= 顶级菜单 -->8.在Windchill Shell 下面运行:Resourcebuild 或Resourcebuild -f bin\ installSiteChanges1.清除Tomcat下面的缓存:D:\ptc\\Tomcat\work2.清除资源文件编译后目录:D:\ptc\\Windchill\codebase\ext\resource3.清除IE缓存、历史记录、cookies:4.清除xml文件的编译目录:D:\ptc\\Windchill\codebase\config\actions5.查看Windchill的日子记录:D:\ptc\\Windchill\logsWindchill重新启动成功的标志(3min左右):INFO : - MethodServer ready (in secs).9.显示效果如图:二级菜单定制1.二级菜单的定制,跟上面顶级菜单的定制差不多,主要涉及的文件也是4个(2个xml、2个资源文件),为了测试二级菜单是否成功,我们需要在Windchill中访问Jsp页面、只是里面的代码有所不同,添加代码之后再 Windchill Shell 里面运行的命令也是一样的注意:文件一定要是UTF-8编码格式的2.配置2级菜单在 ..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(模型文件)<xml version="" encoding="UTF-8"><!DOCTYPE actionmodels SYSTEM ""><actionmodels><!--二级菜单定制 --><model name="fiberhomereport navigation" defaultActionType="fiberhomereport" defaultActionNam <action name="ChangeReports" type="fiberhomereport"/><action name="ArchiveReports" type="fiberhomereport"/></model></actionmodels>3.配置2级菜单在 ..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(动作文件)<xml version="" encoding="UTF-8"><!DOCTYPE listofactions SYSTEM ""><listofactions><!-- 二级菜单定制 --><objecttype name="fiberhomereport" resourceBundle=""><action name="ChangeReports"><command url="/netmarkets/jsp/angus/report/tab=fiberhomereport" windowType="page"/></action><action name="ArchiveReports"><command url="/netmarkets/jsp/angus/report/tab=fiberhomereport" windowType="page"/></action></objecttype></listofactions>4.配置2级菜单在 D:\ptc\\Windchill\src\ext\resource 目录下()英文资源文件里面添加的代码为:Example:(英文资源文件)5.配置2级菜单在 D:\ptc\\Windchill\src\ext\resource 目录下中文资源文件里面添加的代码为:Example:(中文资源文件)<!-- 必须引入的(如果已经引入则无需再引入) -->=二级菜单定制 -->6.为了测试二级菜单是否新建成功,我们需要在Windchill安装系统.. codebase\netmarkets\jsp目录新建几个Jsp文件,如下在D:\ptc\\Windchill\codebase\netmarkets\jsp\angus\report 目录下面新建:、两个Jsp页面jsp页面的内容为:<%@ include file="/netmarkets/jsp/util/"%>Windchill test<%@ include file="/netmarkets/jsp/util/"%>7.在Windchill Shell 下面运行:Resourcebuild 或Resourcebuild -f bin\ installSiteChanges1.清除Tomcat下面的缓存:D:\ptc\\Tomcat\work2.清除资源文件编译后目录:D:\ptc\\Windchill\codebase\ext\resource3.清除IE缓存、历史记录、cookies:4.查看Windchill的日子记录:D:\ptc\\Windchill\logsWindchill重新启动成功的标志(3min左右):INFO : - MethodServer ready (in secs).8.显示效果如图:Action 下拉菜单1.Action下拉菜单的定制,跟上面二级菜单的定制差不多,主要涉及的文件也是4个(2个xml、2个资源文件),添加代码之后再 Windchill Shell 里面运行的命令也是一样的注意:文件一定要是UTF-8编码格式的2.定制Action下拉菜单在 ..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(模型文件)<xml version="" encoding="UTF-8"><!DOCTYPE actionmodels SYSTEM ""><actionmodels><!-- Action 下拉菜单的定制 --><model name="more parts actions" menufor=""><action name="ExportBom" type="part"/><action name="ExportData" type="part"/></model></actionmodels>3.定制Action下拉菜单在..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(动作文件)4.定制Action下拉菜单在 D:\ptc\\Windchill\src\ext\resource 目录下()英文资源文件里面添加的代码为:Example:(英文资源文件)5.定制Action下拉菜单在 D:\ptc\\Windchill\src\ext\resource 目录下中文资源文件里面添加的代码为:Example:(中文资源文件)<!-- 必须引入的(如果已经引入则无需再引入) -->= 导出物料 -->导出数据 -->6.在Windchill Shell 下面运行:Resourcebuild 或Resourcebuild -f bin\ installSiteChangeswindchill stop & windchill start1.清除Tomcat下面的缓存:D:\ptc\\Tomcat\work2.清除资源文件编译后目录:D:\ptc\\Windchill\codebase\ext\resource3.清除IE缓存、历史记录、cookies:4.查看Windchill的日子记录:D:\ptc\\Windchill\logsWindchill重新启动成功的标志(3min左右):INFO : - MethodServer ready (in secs).7.显示效果如图:文件夹工具栏菜单定制1.文件夹工具栏菜单定制,跟上面二级菜单的定制差不多,主要涉及的文件也是4个(2个xml、2个资源文件),添加代码之后再 Windchill Shell 里面运行的命令也是一样的注意:文件一定要是UTF-8编码格式的2.配置文件夹工具栏菜单定制在 ..\wtSafeArea\siteMod\codebase\config\actions 目录下,文件里面添加的代码为:Example:(模型文件)<xml version="" encoding="UTF-8"><!DOCTYPE actionmodels SYSTEM ""><actionmodels><!--文件夹工具栏菜单定制--><model name="folder_list_toolbar"><action name="list_cut" type="object"/><action name="list_copy" type="object"/><action name="fbpaste" type="object"/><action name="pasteAsCopy" type="saveas"/><action name="list_delete" type="object"/><action name="CONTAINERMOVE" type="pdmObject"/><action name="PAGERELOADINGMULTICHECKOUT" type="folder"/><action name="WFADDTOWORKSPACE" type="folder"/><action name="separator" type="separator"/><action name="create" type="folder"/><action name="create" type="document"/><action name="createMulti" type="document"/><action name="createFromTemplateWizard" type="document"/><action name="createPartWizard" type="part"/><action name="createMultiPart" type="part"/><action name="create" type="requirement" resourceBundle="" /> <action name="createSpecification" type="specification" resourceBundle="" /> <action name="importWordRequirements" type="requirement" resourceBundle="" /> <action name="add_link" type="bookmark"/><action name="create" type="problemReport"/><action name="create" type="changeRequest"/><action name="create" type="changeNotice"/><action name="SBUpdatePrj" type="sandbox"/><action name="separator" type="separator"/><action name="createChangeDirective" type="changeDirective"/><action name="list6" type="object"/></model></actionmodels>3.文件夹工具栏菜单定制..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(动作文件)<xml version="" encoding="UTF-8"><!DOCTYPE listofactions SYSTEM ""><listofactions><!--文件夹工具栏菜单定制--><objecttype name="object" resourceBundle=""><action name="list6"><command url="/netmarkets/jsp/angus/report/" windowType="page"/> </action></objecttype></listofactions>4.文件夹工具栏菜单定制在 D:\ptc\\Windchill\src\ext\resource 目录下()英文资源文件里面添加的代码为:Example:(英文资源文件)<!-- 必须引入的(重复则无需引入) -->=文件夹工具栏菜单定制-->5.文件夹工具栏菜单定制在 D:\ptc\\Windchill\src\ext\resource 目录下中文资源文件里面添加的代码为:Example:(中文资源文件)<!-- 必须引入的(如果已经引入则无需再引入) -->=文件夹工具栏菜单定制-->=6.在Windchill Shell 下面运行:Resourcebuild 或Resourcebuild -f bin\ installSiteChangeswindchill stop & windchill start1.清除Tomcat下面的缓存:D:\ptc\\Tomcat\work2.清除资源文件编译后目录:D:\ptc\\Windchill\codebase\ext\resource3.清除IE缓存、历史记录、cookies:4.查看Windchill的日子记录:D:\ptc\\Windchill\logsWindchill重新启动成功的标志(3min左右):INFO : - MethodServer ready (in secs).7.显示效果如图:三级导航菜单1.三级导航菜单定制,跟上面二级菜单的定制差不多,主要涉及的文件也是4个(2个xml、2个资源文件)添加代码之后再 Windchill Shell 里面运行的命令也是一样的注意:文件一定要是UTF-8编码格式的2.配置三级导航菜单定制在 ..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(模型文件)<xml version="" encoding="UTF-8"><!DOCTYPE actionmodels SYSTEM ""><actionmodels><!--三级导航菜单定制--><model name="third_level_nav_promotionRequest" defaultActionName="promotionItemsTable"defaultActionType="promotionRequest" ><description>Third level for promotion request with default action promotion items ta<submodel name="general"/><submodel name="relatedItems"/><submodel name="history"/><submodel name="collaboration"/><submodel name="replaceout"/></model><model name="replaceout" resourceBundle=""><description>ReplaceOut 3rd level nav menu</description><action name="BatchReplace" type="object"/><action name="MaterialsOut" type="object"/></model></actionmodels>3.三级导航菜单定制..\wtSafeArea\siteMod\codebase\config\actions 目录下文件里面添加的代码为:Example:(动作文件)<xml version="" encoding="UTF-8"><!DOCTYPE listofactions SYSTEM ""><listofactions><!--三级导航菜单定制--><objecttype name="object" class=""><action name="BatchReplace" resourceBundle=""/><action name="MaterialsOut" resourceBundle=""/></objecttype></listofactions>4.三级导航菜单定制在 D:\ptc\\Windchill\src\ext\resource 目录下()英文资源文件里面添加的代码为:Example:(英文资源文件)<!-- 必须引入的(重复则无需引入) -->=三级导航菜单定制-->三级导航菜单定制在 D:\ptc\\Windchill\src\ext\resource 目录下中文资源文件里面添加的代码为:Example:(中文资源文件)<!-- 必须引入的(如果已经引入则无需再引入) -->=三级导航菜单定制-->替换淘汰替换淘汰替换淘汰批量淘汰批量淘汰批量淘汰物料淘汰物料淘汰物料淘汰6.在Windchill Shell 下面运行:Resourcebuild 或Resourcebuild -f bin\ installSiteChangeswindchill stop & windchill start1.清除Tomcat下面的缓存:D:\ptc\\Tomcat\work2.清除资源文件编译后目录:D:\ptc\\Windchill\codebase\ext\resource3.清除IE缓存、历史记录、cookies:4.清除xml文件的编译目录:D:\ptc\\Windchill\codebase\config\actions5.查看Windchill的日子记录:D:\ptc\\Windchill\logsWindchill重新启动成功的标志(3min左右):INFO : - MethodServer ready (in secs).7.显示效果如图:产品文件夹选择一个部件或者是文档在操作里面选择升级,升级流程执行完成之后,回到:单击主页工作总揽,在列表里面找到你刚才升级的部件或文档,单击链接然后你会看到:客制工作流的角色1.客制工作流的角色,主要涉及的文件也是2个(英文、中文资源文件),添加代码之后再 Windchill Shell 里面运行编译资源文件的命令和打包的命令注意:客制工作流的角色的时候,因为修改了Java应用程序中的枚举类型,所以应该使用以下命令打一次包...编译资源文件的时候先编译中文的,文件一定要是UTF-8编码格式的打包成功的标志:2.在% wt_home %Src/wt/project/ (目录)找文件,如:D:\ptc\\Windchill\src\wt\project找到如下3个文件:复制到:D:\ptc\\Windchill\wtCustom\wt\project中,沒有路径则建立编辑D:\ptc\\Windchill\wtCustom\wt\project目录下英文资源文件里面添加的代码为: Example:(英文资源文件)Linenum:496行添加如下代码:# custom role=PM Project Leader=Workflow Approver Role=990编辑D:\ptc\\Windchill\wtCustom\wt\project目录下中文资源文件里面添加的代码为: Example:(中文资源文件)Linenum:494行添加如下代码:# custom role=PM项目负责人=工作流程核准者角色=9903.进入Windchill Shell 运行一下命令:执行中文资源文件:ResourceBuild 执行英文编译文件:ResourceBuild 执行打包命令:ant -f D:\ptc\\Windchill\codebase\简写打包命令:ant -f codebase\停止 Windchill: windchill stop启动 Windchill: windchill start删除 D:\ptc\\Tomcat\work 缓存登陆Windchill系统验证客制工作流角色是否成功工作流角色资源文件编译后的目录:D:\ptc\\Windchill\codebase\wt\project自己建的工作流角色资源文件存放目录:D:\ptc\\Windchill\wtCustom\wt\project如果工作流角色资源文件编译成功你会看到:4.显示效果如图:站点实用程序工作流管理器在列表随便选择一个,然后编辑,双击人图标,然后选择参与者选项卡角色找到自己客制化的角色5.如果遇到角色乱码,请参考下面的解决步骤:角色客制化乱码的问题解决了,方法步骤是:1.保证系统中:D:\ptc\\Windchill\src\wt\project的角色资源文件的编码没有问题,如果不行,去备份的codebase目录拷贝2.保证自己新建客制化目录的资源文件的编码格式没有问题D:\ptc\\Windchill\wtCustom\wt\project3.保证工作流角色资源文件编译后的目录是最新的文件:D:\ptc\\Windchill\codebase\wt\project4.编译、打包、重启Windchill、重启Tomcat、删除Tomcat缓存客制生命周期的状态1.客制生命周期的状态,主要涉及的文件也是2个(英文、中文资源文件),添加代码之后再 Windchill Shell 里面运行编译资源文件的命令和打包的命令注意:客制生命周期状态的时候,因为修改了Java应用程序中的枚举类型,所以应该使用以下命令打一次包...编译资源文件的时候先编译中文的,文件一定要是UTF-8编码格式的打包成功的标志:2.在Windchill的安装% wt_home %Src/wt/project/ (目录)找文件,如:D:\ptc\\Windchill\src\wt\lifecycle找到如下3个文件:复制到:D:\ptc\\Windchill\wtCustom\wt\lifecycle中,沒有路径则建立编辑D:\ptc\\Windchill\wtCustom\wt\lifecycle目录下英文资源文件里面添加的代码为: Example:(英文资源文件)Linenum:496行添加如下代码:# custom stateQC =品管科主管审核中QC =品管科主管审核中状态编辑D:\ptc\\Windchill\wtCustom\wt\project目录下中文资源文件里面添加的代码为: Example:(中文资源文件)Linenum:194行添加如下代码:3.进入Windchill Shell 运行一下命令:执行中文资源文件:ResourceBuild 执行英文编译文件:ResourceBuild 执行打包命令:ant -f D:\ptc\\Windchill\codebase\ant -f codebase\停止 Windchill: windchill stop启动 Windchill: windchill start删除 D:\ptc\\Tomcat\work 缓存登陆Windchill系统验证客制生命周期状态是否成功生命周期状态资源文件编译后的目录:D:\ptc\\Windchill\codebase\wt\lifecycle自己建的生命周期状态资源文件存放目录:D:\ptc\\Windchill\wtCustom\wt\lifecycle如果生命周期状态资源文件编译成功你会看到:4.显示效果如图:站点实用程序生命周期管理器在列表随便选择一个,然后编辑,双击任一一个状态,然后选择状态下拉条找到自己客制化的生命周期状态5.如果遇到生命周期状态乱码,请参考下面的解决步骤:角色客制化乱码的问题解决了,方法步骤是:1.保证系统中:D:\ptc\\Windchill\src\wt\lifecycle的角色资源文件的编码(UTF-8- 系统\ANSI- -自定义)没有问题,如果不行,去备份的codebase目录拷贝2.保证自己新建客制化目录的资源文件的编码格式没有问题D:\ptc\\Windchill\wtCustom\wt\lifecycle3.保证工作流角色资源文件编译后的目录是最新的文件:D:\ptc\\Windchill\codebase\wt\lifecycle4.编译、打包、重启Windchill、重启Tomcat、删除Tomcat缓存客制单位1.客制Windchill中的单位,主要涉及的文件也是2个(英文、中文资源文件),添加代码之后再 Windchill Shell 里面运行编译资源文件的命令和打包的命令注意:客制生命周期状态的时候,因为修改了Java应用程序中的枚举类型,所以应该使用以下命令打一次包...编译资源文件的时候先编译中文的,文件一定要是UTF-8编码格式的打包成功的标志:2.在Windchill的安装 % wt_home %\Windchill\wt\part\ (目录)找文件,如:D:\ptc\\Windchill\src\wt\part找到如下3个文件:复制到:D:\ptc\\Windchill\wtCustom\wt\part中,沒有路径则建立编辑D:\ptc\\Windchill\wtCustom\wt\part目录下英文资源文件里面添加的代码为:Example:(英文资源文件)Linenum:54行添加如下代码:#Customization QuantityUnit=gram=g=70编辑D:\ptc\\Windchill\wtCustom\wt\part目录下中文资源文件里面添加的代码为:Example:(中文资源文件)Linenum:54行添加如下代码:#客制化单位=克=g=703.进入Windchill Shell 运行一下命令:执行中文资源文件:ResourceBuild 执行英文编译文件:ResourceBuild 执行打包命令:ant -f codebase/重启windchill: windchill stop & windchill start删除 D:\ptc\\Tomcat\work 缓存登陆Windchill系统验证客制单位是否成功客制化单位文件编译后的目录:D:\ptc\\Windchill\codebase\wt\part自己建的客制化单位资源文件存放目录:D:\ptc\\Windchill\wtCustom\wt\part4.显示效果如图:Windchill进阶JCA定制表格:Jsp页面:1.JCA表单jsp文件所在目D:\ptc\\Windchill\codebase\netmarkets\jsp\angus\report 目录下文件里面添加的代码为:Example:<%@ include file="/netmarkets/jsp/util/"%><%@ taglib uri="" prefix="c"%><%@ taglib uri="" prefix="jca"%><%@ taglib uri="" prefix="wc"%><%@ taglib uri="" prefix="fmt"%><%@page import=".*"%><%@page import=".*"%><%@page import=".*"%><html><head><title>All_List</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head></html><fmt:setLocale value="${}"/><fmt:setBundle basename=""/><fmt:message var="number" key="NUMBER"/><fmt:message var="name" key="NAME"/><fmt:message var="creator" key="CREATE_BY"/><fmt:message var="modifyTimestamp" key="MODIFY_TIME"/><table><jca:describeTable id="test" var="tabledesc" label="test" type="" menubarName="netmarkets_fol toolbarName="folder_list_toolbar"><jca:setComponentProperty key="selectable" value="true"/><jca:describeColumn id="number" label="${number}"/><jca:describeColumn id="name" label="${name}"/><jca:describeColumn id="creator" label="${creator}"/><jca:describeColumn id="modifyTimestamp" label="${modifyTimestamp}"/> </jca:describeTable></table><jca:getModel descriptor="${tabledesc}" var="modeldesc" serviceName="" methodName="findPart"></jca:getModel><jca:renderTable model="${modeldesc}" showCount="true" showCustomViewLink="true" pageLimit="5"/><br><%@ include file="/netmarkets/jsp/util/"%>2.dddddInfo资源文件:1.定制JCA表格在 D:\ptc\\Windchill\src\ext\resource 目录下英文资源文件里面添加的代码为:Example:(英文资源文件)<!-- 必须引入的 -->= JCA报表制作 -->=Name=Number=Description=State=Create By=Update By=Create Time=Update Time=Modify Time=Angus Liu JCA Test2.定制JCA表格在 D:\ptc\\Windchill\src\ext\resource 目录下英文资源文件里面添加的代码为:Example:(中文资源文件)<!-- 必须引入的 -->= JCA报表制作 -->=名称=NAME=编号=NUMBER=描述=DESCRIPTION=状态=STATE=建立者=CREATE_BY=修改者=UPDATE_BY=建立时间=CREATE_TIME=更新时间=UPDATE_TIME=修改时间=Modify Time=Angus Liu JCA Test=JCATestTableJava文件:在Java文件中书写如下代码:package ;import class JCATest implements RemoteAccess {/*** @author bob he 取得所有部件* @return部件的查询类型* @throws WTException*/public static QueryResult findPart() throws WTException { QuerySpec qs = new QuerySpec;return qs);}public static void main(String[] args) {try {} catch (WTException e) {ddEventListener(listener,);getManagerService().addEventListener(listener, );}/*** 内部类实现* @author angus**/class WCListenerEventListener extends ServiceEventListenerAdapter{private String post_delete = ;private String post_modify = ;/*** 有参构造函数* @param manager_name*/public WCListenerEventListener(String manager_name) {quals(post_delete)){"删除操作执行!");}else if().equals(post_modify)){"修改操作执行!");}if (target instanceof WTDocument&& ().equals(post_delete)) {WTDocument document = (WTDocument) target;if("postdelete".equals())){etNmCommandBean();if (nmcommandbean == null) {return null;}NmOid nmoid = ();WTPart wtpart;if (nmoid == null) {wtpart = getGolfCart();} else {if (! {ppend("Expected part, but was: ").append(nmoid).toString());}wtpart = (WTPart) ();}if (wtpart == null) {return null;} else {configSpec = return (wtpart);}}private WTPart getGolfCart() {WTPart wtpart = null;try {QuerySpec queryspec = new QuerySpec128M256M;import class PromotionNoticeWizardPageProcessor extends WizardFormProcessor {public static final String DESCRIPTION_PANE_ACTION = "PNDetailsPane";public static final String GATHER_PANE_ACTION = "PNGatherPane";public static final String OBJECTLIST_PANE_ACTION = "PNObjectListPane";public static final String TRANSITION_PANE_ACTION = "PNTransitionPane";public static final String PROCESS_PANE_ACTION = "PNProcessPane";public static final String ROLE_PANE_ACTION = "PNResolveUsersPane";public static final String ONLINE_HELP = "PromotionCreateHelp";private static final String RESOURCE = "";public PromotionNoticeWizardPageProcessor() {}public void initWizard(HTTPRequest httprequest, HTTPResponse httpresponse) throws WTException {try {locale = (httprequest.getProperty(""));setTitle(WTMessage.getLocalizedMessage("","23", null, locale), "PromotionCreateHelp");addStep("PNDetailsPane","","step1_title",true,"","step1_description");addStep("PNGatherPane","","step2_title",true,"","step2_description");addStep("PNObjectListPane","","step3_title",true,"","step3_description");addStep("PNTransitionPane","","step4_title",true,"","step4_description");addStep("PNProcessPane","","step5_title",true,"","step5_description");..\t" + claz + "\t" + number + "\n");List<Object> objList = new ArrayList<Object>();try {QuerySpec qSpec = new QuerySpec();etName());RevisionControlled rc = null;etNumber();rc= (WTDocument) obj;claz=;}else if (obj instanceof EPMDocument){number= ((EPMDocument) obj).getNumber();rc = (EPMDocument) obj;claz=;}List<Object> objList = getTargetAllVersions(claz, number);setLifeCycleState(), objList);}/*** 用于 main方法测试* @param number 文档编号* @return WTDocument 匹配该文档编号的对象*/@SuppressWarnings("deprecation")public WTDocument getTestTarget(String number) {WTDocument doc = null;try {QuerySpec qs = new QuerySpec;SearchCondition sc = new SearchCondition,"master>number", , number);(sc);();SearchCondition scOne = true);(scOne);QueryResult qr = 得到所有版本的对像LatestConfigSpec cfg = new LatestConfigSpec();// 构建一个过滤器QueryResult qrOne = (qr);// 按小版本排序if ()) {doc = (WTDocument) ();// 得到最小版本的对像"名称:\t" + () + "\t 版本:\t" + () + "\n");}} catch (Exception e) {();}return doc;}public static void main(String[] args) {ModifySmallVersionState m = new ModifySmallVersionState();WTDocument document = ("0000000041");List<Object> objList = getTargetAllVersions, ());setLifeCycleState(), objList);}}1.新建一个工作流:“文档失效”2.新建高级生命周期-“文档失效”,关联工作流-“文档失效”3.在类型属性管理器中新建一个“文档失效”类型4.在对象初始化规则管理器,新建一个对象初始化规则-“文档失效”,关联新建的工作流和生命周期文件里面的修改:新建一个对象初始化规则-“文档失效”5.到此为止,准备工作已完成最终效果:1.使用wcadmin/wcadmin登录系统,在某个产品文件夹下面创建一份文档,类型为自定义的“文档失效”类型,然后按流程升级和审阅,你会看到2.数据库中查询:select文档名称,最新版本,版本,版序,编号,,from wtdocument wtd, wtdocumentmaster wtdmwhere = and = '0000000182';。