高级自定义 > 业务逻辑自定义 > 包自定义 > 基于包类型的特性
基于包类型的特性
基于包类型的特性是 Windchill 10.0 版本中的一项新功能,该功能允许根据类的类型或子类型将自定义特性分配给包对象。这些特性与通常在 wt.properties 中设置的特性以及在“首选项管理器”中设置的首选项不同,因为不同类型的包对象对于同一特性可能具有不同的设置。例如,对于包类型,EnableContentControl 特性可以设置为 "false",而对于 TechnicalDataPackage 类型,可以同时设置为 "true"。
基于包类型的特性仅适用于站点级别和组织级别的自定义,并且只能由 Windchill 站点管理员进行更改。
基于类型的特性 XML 文件
基于类型的特性可通过加载用于描述特性集的 XML 文件进行配置和自定义。以下是自定义的基于类型的特性 XML 文件示例:
<?xml version="1.0" encoding="utf-8"?>
<WPTypeBasedProperties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="WPTypeBasedProperties.xsd">
<WPTypePropertySet name="Default">
<WPTypeProperties typeId="com.ptc.windchill.wp.WorkPackage">
<EnableContentControl>false</EnableContentControl>
<CollectorId>CreateWPBaseline</CollectorId>
<IncludedManifestOptions>
<ManifestOption default="true">Interactive</ManifestOption>
</IncludedManifestOptions>
<IncludedDeliveryOptions>
<DeliveryOption>Full</DeliveryOption>
<DeliveryOption>Incremental</DeliveryOption>
</IncludedDeliveryOptions>
</WPTypeProperties>
<WPTypeProperties typeId="com.ptc.windchill.wp.tdp.TechnicalDataPackage">
.
. </WPTypeProperties>
</WPTypePropertySet>
<WPTypePropertySet name="My Customized Set">
<WPTypeProperties typeId="com.ptc.windchill.wp.WorkPackage">
.
.
.
</WPTypePropertySet>
</WPTypeBasedProperties>
基于类型的特性由包含一个或多个 <WPTypePropertySet> 元素的 <WPTypeBasedProperties> 根元素组成。反过来,每个 <WPTypePropertySet> 元素都包含一个或多个 <WPTypePropertySet> 元素。最后,每个 <WPTypeProperties> 元素都包含一个或多个用于设置特定特性的元素。请注意,在单个 <WPTypeProperties> 元素中,只能给出一次特定特性,例如 <IncludedDeliveryOptions>
读取和加载基于类型的特性 XML 文件
基于类型的特性集通过加载用于描述这些集的 XML 文件来创建和修改 (请参阅“基于类型的特性 XML 文件”中的示例)。只要将位置指定给加载程序,该 XML 文件便可驻留在任意位置。
在方法服务器运行时,从 Windchill shell 调用加载程序:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -load <XML file>
* 
加载程序会提示输入站点管理员的用户 id 和密码来执行此操作。
为方便起见,可使用加载程序创建 XML 文件,以描述系统中当前基于类型的特性集,或从初始安装重新创建默认特性集。然后,可按如上所述修改和加载新建的 XML 文件。
要检索当前已加载的集,请在方法服务器以如下方式运行时从 Windchill shell 执行加载程序:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -read <XML file>
要从初始安装中检索预设默认集,请在方法服务器以如下方式运行时从 Windchill shell 执行加载程序:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -read <XML file> -default
基于类型的特性说明
以下部分介绍了各种特性设置 (请参阅“基于类型的特性 XML 文件”中的示例)。
特性以 XML 元素的形式给出,位于每种包类型的 <WPTypeProperties> 元素内。例如,以下内容定义了用于类型为 com.ptc.windchill.wp.WorkPackage 的包及其所有子类型和可变类型的特性值。
<WPTypeBasedProperties ...>
<WPTypePropertySet name="My Customized Set">
<WPTypeProperties typeId="com.ptc.windchill.wp.WorkPackage">
:
(Type-based properties for com.ptc.windchill.wp.WorkPackage)
:
</WPTypeProperties>
</WPTypePropertySet>
</WPTypeBasedProperties>
如果子类型或可变类型需要不同的特性值,则可以添加其他 <WPTypeProperties> 元素。例如,以下内容定义了类型为 com.ptc.windchill.wp.WorkPackage 的包的一组特性值,并为可变类型 com.ptc.windchill.wp.WorkPackage|com.MyCompany.MyPackage 定义了一组不同的特性值。
<WPTypeBasedProperties ...>
<WPTypePropertySet name="My Customized Set">
< WPTypeProperties typeId="com.ptc.windchill.wp.WorkPackage">
:
(Type-based properties for com.ptc.windchill.wp.WorkPackage)
:
</WPTypeProperties>
<WPTypeProperties typeId="com.ptc.windchill.wp.WorkPackage|com.MyCompany.MyPackage">
:
(Properties for com.ptc.windchill.wp.WorkPackage|com.MyCompany.MyPackage)
:
</WPTypeProperties>
</WPTypePropertySet>
</WPTypeBasedProperties>
用于任何特定包类型的实际特性值取自 XML 文件中定义的最为特定的类型。如果在 XML 文件中找不到精确的包类型,则会针对父项类型重新检查文件。此过程将继续进行类型层次结构,直到找到精确类型匹配或达到根包类型 com.ptc.windchill.wp.AbstractWorkPackage。如果已到达根类型,则使用系统默认特性值 (请参阅“读取和加载基于类型的特性 XML 文件”以获取具有系统默认值的 XML 文件)。请注意,不能为根包类型设置自定义属性值。
以下部分介绍了可设置的每个特定特性。单值特性由单个 XML 元素指定,而多值特性由具有一个或多个内部 XML 元素的外部 XML 元素指定。以下部分中所述的全部特性都是可选的。如果没有为特定类型的包指定特性值,则使用其父项类型的值。
EnableContentControl
EnableContentControl 特性用于启用或禁用内容控制处理。有关详细信息,请参阅文件表。有关详细信息,请参阅 Windchill 帮助中心中的主题。
以下标记启用了此包类型的内容控制处理:
<EnableContentControl>true</EnableContentControl>
默认值:false
CollectorId
CollectorId 特性用于控制从“添加至包”窗口中选择“配置...”链接时使用哪个集合组件实例。
例如:
<CollectorId>MyCustomCollectorId</CollectorId>
默认值:CreateWPBaseline
ExcludedSeedTypes
ExcludedSeedTypes 特性用于控制无法作为种子添加到包中的对象类型。在此特性中指定的对象类型不能粘贴到“添加至包”窗口的“初始选定的对象”表中。搜索初始选定的对象时,不会在搜索结果表中返回它们。
例如,以下内容将类型为 WTDocument 的对象和部件可变类型为 com.MyCompany.MyCustomPart 的对象排除在外,使它们无法添加到“初始选定的对象”表中。
<ExcludedSeedTypes>
<SeedType>wt.part.WTPart|com.MyCompany.MyCustomPart</SeedType>
<SeedType>wt.doc.WTDocument</SeedType>
</ExcludedSeedTypes>
默认值:无 - 不排除任何对象类型,并且提供了全部包种子类型
IncludedContentRoles
IncludedContentRoles 特性用于控制将与包对象关联的内容文件的类型添加到导出的 zip 文件 (使用“压缩以交付”操作创建) 中。始终添加通过 WP_EXP_SECONDARY 内容角色与包关联的内容文件,而无需考虑为此特性指定的值。
例如,以下内容指定除了通过角色 WP_EXP_SECONDARY 关联的内容文件之外,导出文件还包含通过角色 MyCustomContentRoleSECONDARY 与包对象关联的内容文件:
<IncludedContentRoles>
<ContentRoleKey>MyCustomContentRole</ContentRoleKey>
<ContentRoleKey>SECONDARY</ContentRoleKey>
</IncludedContentRoles>
<ContentRoleKey> 元素中的值必须是在类 wt.content.ContentRoleType 中定义的键。它可以是自定义角色或预设角色的键。
默认值:无 - 仅将通过 WP_EXP_SECONDARY 角色与包对象相关联的内容文件添加到导出文件中
IncludedDeliveryOptions
IncludedDeliveryOptions 特性用于控制“压缩要交付的包”窗口中显示哪些交付选项。有效的交付选项如下:
Full - 显示选项“提供完整交付”。如果选择该选项,则导出的 zip 文件包含收件人可访问的所有包内容。
Incremental - 显示选项“增量交付提供自”。如果选择该选项,则导出的 zip 文件将仅包含可供收件人访问的包内容,而不包含在基本交付中。
Incremental manifest - 显示选项“提供具有增量信息的完整交付自”。如果选择该选项,则导出的 zip 文件将包含可供收件人访问的所有包内容,类似于 "Full" 选项,还会包含一个内容清单文件,该内容清单文件描述了基本交付和新交付之间的增量更改。
无论指定的选项为何,包的第一个版本的所有导出的 zip 文件都使用 "Full" 选项,且“压缩要交付的包”窗口不会显示交付选项。
此外,无论指定的选项如何,如果包的任何版本的所有导出 zip 文件是交付给收件人的第一个版本,则都将使用 "Full" 选项。
例如,以下原因导致为较早的包版本的收件人显示所有三个交付选项:
<IncludeDeliveryOptions>
<DeliveryOption>Full</DeliveryOption>
<DeliveryOption>Incremental</DeliveryOption>
<DeliveryOption>Incremental manifest</DeliveryOption>
</IncludeDeliveryOptions>
如果在“压缩要交付的包”窗口中选择了两个增量交付选项中的任一个,则还必须指定基本交付。只有对同一收件人的早期交付可用作基本交付。
默认值:Full、Incremental
IncludedManifestOptions
IncludedManifestOptions 特性用于控制“压缩要交付的包”窗口中显示哪些内容清单选项。有效的内容清单选项如下:
Interactive - 显示选项“包含离线查看器”。如果选择该选项,则导出的 zip 文件将包含包及其内容的离线视图,但不包含内容清单文件。
Static - 显示选项“包含内容清单文件”。如果选择该选项,则导出的 zip 文件包含清单文件以及与包对象及其成员关联的内容文件。它不包含离线视图。内容清单也作为主要内容文件与交付对象关联。内容清单文件的名称可使用 ManifestFileName 特性进行控制 (有关详细信息,请参阅 ManifestFileName 部分)。
None - 显示选项“不包含任何内容清单”。如果选择该选项,则导出的 zip 文件包含与包对象及其成员相关联的内容文件。它不包含离线视图或内容清单文件。
例如,以下原因导致显示所有三个内容清单选项,并且默认情况下预选了 "Static" 选项。
<IncludedManifestOptions>
<ManifestOption>Interactive</ManifestOption>
<ManifestOption default="true">Static</ManifestOption>
<ManifestOption>None</ManifestOption>
</IncludedManifestOptions>
"default=true" 属性用于指定在显示中预选的选项。如果未指定此属性,则会预选 XML 列表中给定的第一个选项。
默认值:Interactive
ManifestFileName
ManifestFileName 特性用于定义在导出期间创建静态内容清单时要使用的文件名 (请参阅 IncludedManifestOptions 部分)。
例如,以下内容会将内容清单文件名设置为 MyManifest:<ManifestFileName>MyManifest.txt</ManifestFileName>
默认值:manifest.txt
StaticManifestClassOverride
StaticManifestClassOverride 特性用于覆盖预设 Java 类,该类用于为导出的 zip 文件创建静态内容清单 (有关详细信息,请参阅 IncludeManifestOptions 部分)。通过创建新的 Java 类并将此特性设置为其完全限定的类名称,可自定义静态内容清单文件的内容和格式。
用于创建静态内容清单文件的自定义 Java 类具有以下形式:
package com.MyCompany
import java.io.InputStream;
import com.ptc.netmarkets.wp.ixb;
import wt.util.WTException;
class MyStaticManifest extends AbstractStaticManifest {
protected InputStream createManifest(WPZipContent zipContent) throws WTException {
:
(Create custom static manifest file)
:
>
}
例如,以下内容将指定使用自定义 Java 类 com.MyCompany.MyStaticManifest 创建静态内容清单文件:
<StaticManifestClassOverride>
com.MyCompany.MyStaticManifest
</StaticManifestClassOverride>
默认值:com.ptc.netmarkets.wp.ixb.StaticManifest
ExcludedMemberContentRoles
ExcludedMemberContentRoles 特性用于控制从导出文件中排除哪些与包成员关联的内容文件的类型。此外,启用“内容控制”(有关详细信息,请参阅 EnableContentControl 部分) 后,这些角色的内容文件将从“选择文件”窗口的显示中排除。例如,以下内容指定未将与角色 THUMBNAILTHUMBNAIL3D 关联的内容文件添加到导出文件中:
<ExcludedMemberContentRoles>
<ContentRoleKey>THUMBNAIL</ContentRoleKey>
<ContentRoleKey>THUMBNAIL3D</ContentRoleKey>
</ExcludedMemberContentRoles>
<ContentRoleKey> 元素中的值必须是在类 wt.content.ContentRoleType 中定义的键。它可以是自定义角色或预设角色的键。
默认值:None。
RetainCollectionResults
RetainCollectionResults 特性用于控制在创建新包或使用“添加至包”“刷新”“另存为”(带有刷新) 和“修订”(带有刷新) 操作来修改现有包时对扩展集合信息的保留。保留扩展的集合信息可启用高级程序包编辑功能,例如“编辑筛选器”操作。
例如,以下标记启用了对扩展集合信息的保留:
<RetainCollectionResults>true</RetainCollectionResults>
默认值:False。
IncludedDeliveryFormatOptions
IncludedDeliveryFormatOptions 特性用于控制在“要发送的压缩包”窗口中显示哪些格式选项。
有效的格式选项如下:
Non_Importable:显示“仅导出”选项。如果选择该选项,则导出的 zip 文件将仅包含包及其内容的离线视图,并且无法导入。
Windchill_Importable:显示“Windchill 可导入”选项。如果选择该选项,则导出的文件必须是完整交付 (即,禁用增量交付选项),并且导出的 zip 文件包含允许将其导入到其他 系统中的数据。
例如,以下原因导致显示“仅导出”“Windchill 可导入”选项,默认情况下预选了“仅导出”。
<IncludedDeliveryFormatOptions>
<DeliveryFormat default="true">Non_Importable</DeliveryFormat>
<DeliveryFormat>Windchill_Importable</DeliveryFormat>
</IncludedDeliveryFormatOptions>
default=true 属性用于指定在显示中预选的选项。如果未指定此属性,则会预选 XML 列表中给定的第一个选项。
默认值:Non_Importable
ExportOnlyContentFileNaming
ExportOnlyContentFileNaming 特性用于控制使用哪种内容文件重命名架构来消除导出文件中的重复项。有效的文件重命名选项如下:
AppendSequenceID:向内容文件名称附加序列标识符以消除重复项 (例如,"MyContentFile[2].txt")。仅当存在重复项时,才会重命名内容文件。此功能类似于先前 Windchill 版本中使用的重命名架构,并且不保证两个或多个单独导出之间的内容文件名称一致。
PrependIdentity:将业务对象标识与内容文件名一起使用,以通过以下形式消除重复项:
如果将“显示”>“展示组织”设置为 True,则 ObjectType - ObjectNumber, ObjectName, OrganizationID, Revision.Iteration - Filename (例如,"Document – 000000001, doc_ex, 12345, A.1 - MyContentFile.txt",其中 "12345" 表示组织的组织名称、CAGE 代码、DUNS 编号或 ISO 6523)。
如果将“显示”>“展示组织”设置为 False,则 ObjectType - ObjectNumber, ObjectName, Revision.Iteration - Filename (例如,"Document – 000000001, doc_ex, A.1 - MyContentFile.txt")。
如果重命名的内容文件的完整路径超出了系统路径限制,则将使用 AppendSequenceID 架构再次重命名该文件。仅当存在重复项时,才会重命名与 CAD 文档关联的内容文件。即使没有重复项,也总是会重命名与所有其他类型的业务对象相关联的内容文件。此架构用于在两个或多个单独的导出之间维护一致的内容文件名。
例如,以下原因使前置对象标识架构可用于在导出期间消除重复的内容文件名。
< ExportOnlyContentFileNaming>PrependIdentity</ExportOnlyContentFileNaming>
默认值:AppendSequenceID
ExportAuditLevelFullMemberInfo
ExportAuditLevelFullMemberInfo 特性用于确定是否仅针对要导出的交付记录发出审计事件,或者还针对包中除交付之外的每个对象也发出审计事件。
基于收集器的包类型的默认值为 'true'
复制包的默认值为 'false'
* 
除了启用 ExportAuditLevelFullMemberInfo 外,还必须基于配置审计事件记录中的说明启用导出事件。
ImportAuditLevelFullMemberInfo
ImportAuditLevelFullMemberInfo 特性用于确定是否仅针对要导入的收到的交付或除收到的交付之外的每个导入成员发出审计事件。
基于收集器的包类型的默认值为 'true'
复制包的默认值为 'false'
* 
除了启用 ImportAuditLevelFullMemberInfo 外,还必须基于配置审计事件记录中的说明启用导入事件。
DomainOverride
DomainOverride 特性用于指定在其中创建包类型的域。如果未定义,则会在包首选项“包的默认域路径”定义的域中创建一个包。
例如,以下标记导致此包类型在 "MyDomain" 域中创建,而不是在由包首选项“包的默认域路径”定义的 "Default" 域中创建:
<DomainOverride>/MyDomain</DomainOverride>
默认值:None。如果未指定,则会在包首选项“包的默认域路径”定义的域中创建一个新包。
ShowPackageContentsTableAsTree
ShowPackageContentsTableAsTree 特性用于控制“包内容”表是显示为树型表格还是列表表格。如果显示为列表表格,则可使用“查看嵌套内容”操作来查看嵌套的受控集合成员。此特性将替换先前的整个站点范围内的 com.ptc.netmarkets.wp.showPersistedCollectionHolderContentTreeView wt.property。
默认值为 'true'。
DisableAccessControlOnLinkExport
DisableAccessControlOnLinkExport 特性用于控制在包导出期间处理链接时是否禁用访问控制。启用此特性后,即使链接导出处理程序访问了角色对象的信息并将其包括在其导出元数据中,指向角色对象的链接仍然无法导出,而该角色对象对于执行 zip 的承担者是不可访问的。禁用后,指向执行 zip 的承担者不可访问的角色对象的链接将从包导出中筛选掉。此特性仅适用于可导入包的导出。
默认值为 'false'。
以下链接处理程序将角色信息包括在其元数据中:
链接处理程序
说明
ExpImpForEPMContainedIn.java
角色 A 对象的容器路径
ExpImpForEPMVariantLink.java
角色对象的容器路径
ExpImpForModelItemContainedIn.java
角色 A 对象的容器路径
ExpImpForEPMBuildRuleAssociationLink.java
角色对象的容器路径
ExpImpForEPMDescribeLink.java
角色对象的容器路径
ExpImpForEPMReferenceLink.java
角色对象的容器路径
ExpImpForEPMMemberLink.java
角色对象的容器路径
ExpImpForEPMBuildRule.java
角色对象的容器路径
角色对象的版本信息
ExpImpForEPMBuildHistory.java
角色对象的容器路径
关联的构建对象信息
具体值信息
已删除的构建参考
DefaultSupportedDowngradeReleases
这是用于配置默认降级版本的站点级别特性。这是当前版本支持的降级版本的子集。创建 ZIP 文件时,默认情况下,在“压缩要交付的包”页面上选择了在此特性中配置的版本。有关详细信息,请参阅降级版本
例如,如果 Windchill 11.0.M020Windchill 11.0.M030 版本支持降级交付功能,则可以设置以下配置。
<DefaultSupportedDowngradeReleases>
<DowngradeRelease>11.0.M030</DowngradeRelease>
</DefaultSupportedDowngradeReleases>
它将默认降级版本设置为 Windchill 11.0.M030。它应提及内部产品名称,而不是显示名称。
这是一个可选特性,如果未配置,则使用所有可用的受支持降级版本来创建降级交付。对于上述示例,如果未配置此特性,则将创建版本 Windchill 11.0.M020Windchill 11.0.M030 的降级交付。
默认值为所有可用的受支持降级版本。
复制包类型的注意事项
某些特性和特定特性值不允许用于复制包类型。
示例:
ExcludedSeedTypes 对于 ReplicationPackages 没有意义,因为复制包没有种子,但是将所有对象都保存在选定容器中。如果尝试在 ReplicationPackage 或其子类型的 typebased 特性中设置 ExcludedSeedTypes,则会出现错误:“Invalid property: ExcludedSeedTypes found in property set: Default, for type: WCTYPE|com.ptc.windchill.wp.rep.ReplicationPackage”
ReplicationPackage 仅用于导入,因此 DeliveryFormat 不能具有值 Non_Importable_Types。如果尝试在 typeload 中进行设置,则会出现错误:Invalid property value: DeliveryFormat = Non_Importable_Types for type: WCTYPE|com.ptc.windchill.wp.rep.ReplicationPackage
无效特性
以下是 ReplicationPackage 的无效特性及其 subTypes
RetainCollectionResults
EnableContentControl
CollectorId
ExcludedSeedTypes
ExcludedMemberContentRoles
ExportOnlyContentFileNaming
无效值
以下是 ReplicationPackage 的无效值及其 subTypes
"Interactive" 为 ManifestOption 的无效值,而预设默认值为 "None"。"None" 和 "Static" 只是 ManifestOption 的有效值。
<IncludedManifestOptions>
<ManifestOption default="true">None</ManifestOption>
</IncludedManifestOptions>
"Non_Importable_Types" 为 DeliveryFormat 的无效值,而预设默认值为 "Windchill_Importable_Types"。
<IncludedDeliveryFormatOptions>
<DeliveryFormat default="true">
Windchill_Importable_Types
</DeliveryFormat>
</IncludedDeliveryFormatOptions>
"Incremental manifest" 为 DeliveryOption 的无效值,而预设默认值为 "Incremental"。"Full" 和 "Incremental" 只是有效值。
<IncludedDeliveryOptions>
<DeliveryOption>Incremental</DeliveryOption>
</IncludedDeliveryOptions>
默认值
以下是 ReplicationPackage 的预设默认值及其 subType
<WPTypeProperties typeId="com.ptc.windchill.wp.rep.ReplicationPackage">
<IncludedContentRoles>
<!-- example:
<ContentRoleKey>MyCustomContentRole</ContentRoleKey>
-->
</IncludedContentRoles>
<IncludedDeliveryFormatOptions>
<DeliveryFormat default="true">
Windchill_Importable_Types
</DeliveryFormat>
</IncludedDeliveryFormatOptions>
<IncludedManifestOptions>
<ManifestOption default="true">None</ManifestOption>
</IncludedManifestOptions>
<ManifestFileName>
<!-- Manifest file name does not support the XML file extension.-->
manifest.txt
</ManifestFileName>
<IncludedDeliveryOptions>
<DeliveryOption>Incremental</DeliveryOption>
</IncludedDeliveryOptions>
<StaticManifestClassOverride>com.ptc.netmarkets.wp.ixb.StaticManifest
</StaticManifestClassOverride>
<DomainOverride/>
<ExportAuditLevelFullMemberInfo>false
</ExportAuditLevelFullMemberInfo>
<ImportAuditLevelFullMemberInfo>false
</ImportAuditLevelFullMemberInfo>
<ShowPackageContentsTableAsTree>true
</ShowPackageContentsTableAsTree>
<DisableAccessControlOnLinkExport>false</DisableAccessControlOnLinkExport>
</WPTypeProperties>
这对您有帮助吗?