高级自定义 > 服务和基础结构自定义 > 导入导出框架 > 导出的产品设计交换 (PDX) 支持
  
导出的产品设计交换 (PDX) 支持
产品设计交换 (PDX) 是一种用于在业务伙伴之间共享产品设计数据的文件格式。这使您可以共享有关文档、部件、产品结构和物料清单 (BOM) 的信息。
您可以将数据从 Windchill 导出为包括 Agile 文件格式 在内的 PDX 格式。您可以自定义将 BOM 数据导出为 PDX 格式。
预设 PDX 导出允许您导出:
文档
部件
EPM 文档
Windchill 系统中的示例产品结构
如 PDXplorer 中所示的对应 PDX 输出
自定义点
必需的制品
类文件:wt.ixb.pdx.*
用于变换的 XSL 路径:<Windchill>\codebase\registry\ixb\pdx
DTD 路径:<Windchill>\codebase\registry\ixb\pdx\dtds
默认行为
默认情况下,该路径将与 Agile 兼容。
默认情况下:
"Agile_07.dtd" 和 "wcxml12pdx_agile.xsl" 将分别对应于 Agile 格式的 dtd 和 xsl。
"IPC_2571.dtd" 和 "wcxml2pdx.xsl" 将分别对应于 PDX 格式的 dtd 和 xsl。
wt.properties 的可覆盖特性
pdx.export.dtdFilePath=$(wt.home)$(dir.sep)codebase$(dir.sep)registry$(dir.sep )ixb$(dir.sep)pdx$(dir.sep)dtds$(dir.sep) Agile_07.dtd
pdx.export.xslFilePath=$(wt.home)$(dir.sep)codebase$(dir.sep)registry$(dir.sep) ixb$(dir.sep)pdx$(dir.sep) wcsml2pdx_agile.xsl
pdx.AgileCompatible=true
pdx.debug.enable=false
也可以根据需要修改 xsl 或对其进行修改以支持其他可导出 Windchill 对象的 PDX 导出。
支持的 API
ExportPackage exportPackage= ExportPackageForPDX.createExportPackageForPDX(...)
PDXExportHelper.doExportToPDX(...)
createExportPackageForPDX
ExportPackageForPDX 中有四个静态公共 API (createExportPackageForPDX) 支持此功能。
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX(
java.lang.String name, java.lang.String description,
java.lang.String exporter, java.langString[] generIds,
java.lang.String[] generParams, java.lang.String[] filterIds,
java.lang.String[] filterParams) throws wt.util.WTException
目的:创建 ExportPackage,其中包含以 PDX 格式导出所需的所有信息。使用标准 ixb 收集机制 (生成器和筛选器) 收集对象。
参数:
名称 - 导出包的名称
说明 - 导出包的说明
导出实施者 - 进行导出的用户的名称
generIds - 对象集生成器类型的字符串 id 数组,例如 {"singleDocument","productStructureNavigatorWithEPM"}
generParams - 对应种子对象的局部 id 数组
filterIds - 对象集筛选器的字符串 id 数组
filterParams - 表示用于筛选的参数的字符串数组
抛出:wt.util.WTException
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX(
java.lang.String name, java.lang.String description,
java.lang.String exporter, java.lang.String[] generIds,
java.lang.String[] generParams) throws wt.util.WTException
目的:在不筛选的情况下收集对象时的常见情况的便捷方法
参数:
名称 - 导出包的名称
说明 - 导出包的说明
导出实施者 - 进行导出的用户的名称
generIds - 对象集生成器类型的字符串 id 数组,例如 {"singleDocument","productStructureNavigatorWithEPM"}
generParams - 对应种子对象的局部 id 数组
抛出:wt.util.WTException
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX(
java.lang.String name, java.lang.String description,
java.lang.String exporter, java.lang.String[] generIds,
java.lang.String[] generParams) throws wt.util.WTException
目的:在不筛选的情况下收集对象时的常见情况的便捷方法
参数:
名称 - 导出包的名称
说明 - 导出包的说明
导出实施者 - 进行导出的用户的名称
generIds - 对象集生成器类型的字符串 id 数组,例如 {"singleDocument","productStructureNavigatorWithEPM"}
generParams - 对应种子对象的局部 id 数组
抛出:wt.util.WTException
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX
public static wt.ixb.objectset.ExportPackage createExportPackageForPDX(
wt.inf.container.WTContainerRef container,
java.lang.String name,
java.lang.String description,
java.lang.String exporter,
java.lang.String[] generIds,
java.lang.String[] generParams)
throws wt.util.WTException
目的:在不筛选的情况下将对象收集在容器内时的常见情况的便捷方法
参数:
容器 - 容器的对象参考
名称 - 导出包的名称
说明 - 导出包的说明
导出实施者 - 进行导出的用户的名称
generIds - 对象集生成器类型的字符串 id 数组,例如 {"singleDocument","productStructureNavigatorWithEPM"}
generParams - 对应种子对象的局部 id 数组
抛出:wt.util.WTException
doExportToPDX
public static void doExportToPDX
public static void doExportToPDX(
ExportPackageForPDX expPackage, String attachmentOption,
File dirToSave, String zipName)
throws wt.util.WTException
目的:在服务器上创建 pdx 文件。
参数:
容器 - 源容器
expPackage - 导出包
attachmentOption - 附件选项。可能的值包括:
PDXExportHandler.XML_VALUE_ATTACHMENTS - 内容文件包括在 pdx 包中 (默认选项)
PDXExportHandler.XML_VALUE_NO_ATTACHMENTS - 内容文件被忽略 (pdx 中未提及)
PDXExportHandler.XML_VALUE_ATTACHMENTS_AS_FILE_NAMES - 内容文件在 pdx.xml 中提及,但未包括在 zip 中
dirToSave - 将存储生成的 pdx 文件的服务器上的目录
zipName - 生成的 pdx 文件的名称 (不带扩展名传递名称,原因在于已添加扩展名 ".pdx")
抛出:wt.util.WTException
public static void doExportToPDX
public static void doExportToPDX(
ExportPackageForPDX expPackage, java.lang.String
java.io.File dirToSave, attachmentOption,
throws wt.util.WTException java.lang.String zipName)
目的:在服务器上创建 pdx 文件。
参数:
expPackage - 导出包
attachmentOption - 附件选项。可能的值包括:
PDXExportHandler.XML_VALUE_ATTACHMENTS - 内容文件包括在 pdx 包中 (默认选项)
PDXExportHandler.XML_VALUE_NO_ATTACHMENTS - 内容文件被忽略 (pdx 中未提及)
PDXExportHandler.XML_VALUE_ATTACHMENTS_AS_FILE_NAMES - 内容文件在 pdx.xml 中提及,但未包括在 zip 中
dirToSave - 将存储生成的 pdx 文件的服务器上的目录
zipName - 生成的 pdx 文件的名称 (不带扩展名传递,原因在于已添加扩展名 '.pdx')
抛出:wt.util.WTException
准备要导出的数据
File dir = new File(dirToSave);
WTCollection seedParts = // Get List of Parts as seed
if(!seedParts.isEmpty()) {
String [] genIds = new String[seedParts.sixe()];
String [] genParams = new String[seedParts.size()];
Iterator<WTReference> it = seedParts.referenceIterator();
int i = 0;
while(it.hasNext()) {
genIds[i] = "productStructureNavigator";
genParams[i] = it.next().toString();
i++;
}
WTContainerRef sourceContainer = WTContainerRef.newWTContainerRef(container);
导出为 PDX 格式
ExportPackage exportPackage =
ExportPackageForPDX.createExportPackageForPDX("name_of_exp_package", "description",
"author", genIds, genParams);
PDXExportHelper.doExportToPDX(sourceContainer,(ExportPackageForPDX)exportPackage,
PDXExportHandler.XML_ATTR_ATTACHMENTS_OPTION, dir, "zipName");