Advanced Customization > Business Logic Customization > Packages Customization > Package Type-Based Properties
  
Package Type-Based Properties
Package type-based properties are a new feature in the Windchill 10.0 release that allows customization properties to be assigned to Package objects by class type or subtype. These properties differ from those typically set in wt.properties, and from preferences set in the Preference Manager, in that different types of Package objects may have different settings for the same property. For example, the EnableContentControl property may be set to “false” for Package types while simultaneously being set to “true” for TechnicalDataPackage types.
Package type-based properties are intended only for site-level and organization-level customization, and can only be changed by the Windchill site administrator.
Type-Based Properties XML File
Type-based properties are configurable and customizable by loading an XML file that describes the property sets. The following is a sample customized type-based properties XML file:
<?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>
A type-based property consists of a <WPTypeBasedProperties> root element that contains one or more <WPTypePropertySet> elements. In turn, each <WPTypePropertySet> element contains one or more <WPTypePropertySet> elements. And finally, each <WPTypeProperties> element contains one or more elements to set specific properties. Note that within a single <WPTypeProperties> element a specific property, such as <IncludedDeliveryOptions>, may only be given once.
Reading and Loading Type-Based Properties XML File
Type-based property sets are created and modified by loading an XML file that describes these sets (see sample in Type-Based Properties XML File). This XML file can reside anywhere as long as the location is specified to the loader.
The loader is invoked from a Windchill shell while the Method Server is running:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -load <XML file>
* 
The loader prompts for the site administrator user-id and password to perform this operation.
For convenience, the loader can be used to create an XML file that describes the current type-based property sets in the system or to recreate the default property set from the initial install. The newly created XML file can then be modified and loaded as described above.
To retrieve the currently loaded sets, execute the loader from a Windchill shell while the Method Server is running as:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -read <XML file>
To retrieve the OOTB default set from the initial installation, execute the loader from a Windchill shell while the Method Server is running as:
java com.ptc.windchill.wp.WPTypeBasedPropertiesLoader -read <XML file> -default
Type-Based Property Descriptions
The following sections describe various property settings (see example in Type-Based Properties XML File).
Properties are given as XML elements that are located within <WPTypeProperties> elements for each package type. For example, the following defines property values that are used for packages of type com.ptc.windchill.wp.WorkPackage, and all of its sub-types and soft-types.
<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>
If different property values are required for a sub-type or soft-type, then additional <WPTypeProperties> elements can be added. For example, the following defines one set of property values for packages of type com.ptc.windchill.wp.WorkPackage, and a different set of property values for the soft-type 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>
The actual property value used for any specific package type is taken from the most specific type defined in the XML file. If the exact package type cannot be found in the XML file, then the file is re-examined for a parent type. This process continues up the type hierarchy until either an exact type match is found, or the root package type com.ptc.windchill.wp.AbstractWorkPackage is reached. If the root type is reached, then the system default property values are used (see Reading and Loading Type-Based Properties XML File for obtaining an XML file with system default values). Note that custom property values cannot be set for the root package type.
The following sections describe each specific property that can be set. Single-valued properties are specified by a single XML element, and multi-valued properties are specified by an outer XML element with one or more inner XML elements. All of the properties describe in the following sections are optional. If a property value is not specified for a specific type of package, then the value from its parent type is used.
EnableContentControl
The EnableContentControl property is used to enable or disable content control processing. For more information, see File Table. See the topic in the Windchill Help Center for more information.
The following tag enables content control processing for this package type:
<EnableContentControl>true</EnableContentControl>
Default value: false
CollectorId
The CollectorId property controls which collection component instance to use when the “Configure…” link is selected from the “Add to Package” window.
For example:
<CollectorId>MyCustomCollectorId</CollectorId>
Default value: CreateWPBaseline
ExcludedSeedTypes
The ExcludedSeedTypes property controls object types that cannot be added as seeds to a package. Object types specified in this property cannot be pasted into the “Initially Selected Objects” table in the “Add to Package” window. They are not returned in the “Search Results” table when searching for initially selected objects.
For example, the following excludes objects of type WTDocument and part soft-type com.MyCompany.MyCustomPart from being added to the “Initially Selected Objects” table.
<ExcludedSeedTypes>
<SeedType>wt.part.WTPart|com.MyCompany.MyCustomPart</SeedType>
<SeedType>wt.doc.WTDocument</SeedType>
</ExcludedSeedTypes>
Default value: none – no object types are excluded and the full range of package seed types is available
IncludedContentRoles
The IncludedContentRoles property controls which types of content files associated with a package object are added to an exported zip file (created using the “Zip for Delivery” action). Content files associated to a package by the WP_EXP_SECONDARY content role are always added, regardless of the values given for this property.
For example, the following specifies that in addition to content files associated by role WP_EXP_SECONDARY, an export file contains content files associated with the package object by roles MyCustomContentRole and SECONDARY:
<IncludedContentRoles>
<ContentRoleKey>MyCustomContentRole</ContentRoleKey>
<ContentRoleKey>SECONDARY</ContentRoleKey>
</IncludedContentRoles>
The value in the <ContentRoleKey> element must be a key defined in class wt.content.ContentRoleType. It can be a key for either a custom role or an OOTB role.
Default value: none – only content files associated to a package object by the WP_EXP_SECONDARY role is added to an export file
IncludedDeliveryOptions
The IncludedDeliveryOptions property controls which delivery options are presented in the “Zip Package for Delivery” window. The valid delivery options are:
Full – displays option “Provide complete delivery”. If selected, an exported zip file contains all the package contents that are accessible to the recipient.
Incremental – displays option “Provide incremental delivery from”. If selected, an exported zip file contains only the package contents that are accessible to the recipient, and were not included in the base delivery.
Incremental manifest – displays option “Provide complete delivery with incremental information from”. If selected, an exported zip file contains all the package contents that are accessible to the recipient, similar to the “Full” option, but also contains a manifest file describing incremental changes between the base delivery and the new delivery.
Regardless of the options specified, all exported zip files for the first version of a package uses the “Full” option, and the “Zip Package for Delivery” window does not display the delivery options.
Also, regardless of the options specified, all exported zip files for any version of a package uses the “Full” option if this is the first version delivered to a recipient.
For example, the following causes all three delivery options to be displayed for recipients of earlier package versions:
<IncludeDeliveryOptions>
<DeliveryOption>Full</DeliveryOption>
<DeliveryOption>Incremental</DeliveryOption>
<DeliveryOption>Incremental manifest</DeliveryOption>
</IncludeDeliveryOptions>
If either of the incremental delivery options are selected in the “Zip Package for Delivery” window, then a base delivery must also be specified. Only earlier deliveries to the same recipient may be used as a base delivery.
Default values: Full, Incremental
IncludedManifestOptions
The IncludedManifestOptions property controls which manifest options are presented in the “Zip Package for Delivery” window. The valid manifest options are:
Interactive – displays option “Include offline viewer”. If selected, an exported zip file contains an offline view of the package and its contents, but does not contain a manifest file.
Static – displays option “Include manifest file”. If selected, an exported zip file contains a manifest file and the content files associated with the package object and its members. It does not contain an offline view. The manifest is also associated to the Delivery object as a primary content file. The name of the manifest file can be controlled using the ManifestFileName property (see the ManifestFileName section for more information).
None – displays option “Do not include any manifest”. If selected, an exported zip file contains the content files associated with a package object and its members. It does not contain an offline view or a manifest file.
For example, the following causes all three manifest options to be displayed, and the “Static” option is pre-selected by default.
<IncludedManifestOptions>
<ManifestOption>Interactive</ManifestOption>
<ManifestOption default="true">Static</ManifestOption>
<ManifestOption>None</ManifestOption>
</IncludedManifestOptions>
The “default=true” attribute specifies which option is pre-selected in the display. If this attribute is not specified, then the first option given in the XML list is pre-selected.
Default value: Interactive
ManifestFileName
The ManifestFileName property defines the file name to be used when a static manifest is created during export (see the IncludedManifestOptions section).
For example, the following would set the manifest file name to MyManifest.txt: <ManifestFileName>MyManifest.txt</ManifestFileName>
Default value: manifest.txt
StaticManifestClassOverride
The StaticManifestClassOverride property is used to override the OOTB Java class used to create a static manifest for an exported zip file (see the IncludeManifestOptions section for more information). The content and format of a static manifest file can be customized by creating a new Java class and setting this property to its fully qualified class name.
A custom Java class for creating a static manifest file has the form:
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)
:
>
}
For example, the following would specify that custom Java class com.MyCompany.MyStaticManifest be used to create a static manifest file:
<StaticManifestClassOverride>
com.MyCompany.MyStaticManifest
</StaticManifestClassOverride>
Default value: com.ptc.netmarkets.wp.ixb.StaticManifest
ExcludedMemberContentRoles
The ExcludedMemberContentRoles property controls which types of content files associated with package members are excluded from an export file. Also, when Content Control is enabled (see the EnableContentControl section for more information) content files for these roles are excluded from display in the “Select Files” window. For example, the following specifies that content files associated by roles THUMBNAIL and THUMBNAIL3D are not added to an export file:
<ExcludedMemberContentRoles>
<ContentRoleKey>THUMBNAIL</ContentRoleKey>
<ContentRoleKey>THUMBNAIL3D</ContentRoleKey>
</ExcludedMemberContentRoles>
The value in the <ContentRoleKey> element must be a key defined in class wt.content.ContentRoleType. It can be a key for either a custom role or an OOTB role.
Default value: None.
RetainCollectionResults
The RetainCollectionResults property controls retention of extended collection information when creating a new package or modifying an existing package using the “Add to Package”, “Refresh”, “Save As” (with refresh) and “Revise” (with refresh) actions. Retaining extended collection information enables advanced package editing features, such as the “Edit Filters” action.
For example, the following tag enables retention of extended collection information:
<RetainCollectionResults>true</RetainCollectionResults>
Default value: False.
IncludedDeliveryFormatOptions
The IncludedDeliveryFormatOptions property controls which format options are presented in the Zip Package for Delivery window.
The valid format options are:
Non_Importable: Displays the Export Only option. If selected, an exported zip file only contains an offline view of the package and its contents, and cannot be imported.
Windchill_Importable: Displays the Windchill Importable option. If selected, the exported file is required to be a complete delivery (that is, options for incremental delivery are disabled), and the exported zip file contains data allowing it to be imported into another system.
For example, the following causes the Export Only and Windchill Importable options to be displayed, with Export Only pre-selected by default.
<IncludedDeliveryFormatOptions>
<DeliveryFormat default="true">Non_Importable</DeliveryFormat>
<DeliveryFormat>Windchill_Importable</DeliveryFormat>
</IncludedDeliveryFormatOptions>
The default=true attribute specifies which option is pre-selected in the display. If this attribute is not specified, then the first option given in the XML list is pre-selected.
Default value: Non_Importable
ExportOnlyContentFileNaming
The ExportOnlyContentFileNaming property controls which content file renaming scheme is used to eliminate duplicates in an export file. The valid file renaming options are:
AppendSequenceID: Appends sequence identifiers to content file names to eliminate duplicates (for example, “MyContentFile[2].txt”). Content files are only renamed when duplicates exist. This function is similar to the renaming scheme used in prior Windchill releases, and does not guarantee consistent content file names between two or more separate exports.
PrependIdentity: Prepends the business object identity to content file names to eliminate duplicates using the following forms:
When Display > Expose Organization is set to True, ObjectType - ObjectNumber, ObjectName, OrganizationID, Revision.Iteration - Filename (for example, “Document – 000000001, doc_ex, 12345, A.1 - MyContentFile.txt,” where “12345” identifies the Organization Name, CAGE Code, DUNS Number, or ISO 6523 for the organization).
When Display > Expose Organization is set to False, ObjectType - ObjectNumber, ObjectName, Revision.Iteration - Filename (for example, “Document – 000000001, doc_ex, A.1 - MyContentFile.txt”).
If the full path of a renamed content file exceeds the system path limits then the file is renamed again using the AppendSequenceID scheme. Content files associated with CAD documents are only renamed when duplicates exist. Content files associated with all other type of business object are always renamed, even when no duplicates exist. This scheme is intended to maintain consistent content file names between two or more separate exports.
For example, the following causes the prepend object identity scheme to be used to eliminate duplicate content file names during export.
< ExportOnlyContentFileNaming>PrependIdentity</ExportOnlyContentFileNaming>
Default value: AppendSequenceID
ExportAuditLevelFullMemberInfo
The ExportAuditLevelFullMemberInfo property determines if an audit event is emitted only for the delivery record being exported, or whether audit events are also emitted for each of the object in the package in addition to the delivery.
Default value is 'true' for collector-based package types
Default value is 'false' for replication packages
* 
In addition to enabling the ExportAuditLevelFullMemberInfo, you have to enable an Export event based on instructions in Configuring Audit Event Recording.
ImportAuditLevelFullMemberInfo
The ImportAuditLevelFullMemberInfo property determines if an audit event is emitted for only the received delivery being imported, or for each of the members being imported in addition to the received delivery.
Default value is 'true' for collector-based package types
Default value is 'false' for replication packages
* 
In addition to enabling the ImportAuditLevelFullMemberInfo, you have to enable an Import event based on instructions in Configuring Audit Event Recording.
DomainOverride
The DomainOverride property specifies the domain that a package type is created in. If it is not defined, then a package is created in the domain defined by the Package preference “Default Domain Path for Packages”.
For example, the following tag results in this package type being created in the “MyDomain” domain instead of the “Default” domain as defined by the Package preference “Default Domain Path for Packages”:
<DomainOverride>/MyDomain</DomainOverride>
Default value: None. If not specified, then a new package is created in the domain defined by the Package preference “Default Domain Path for Packages”.
ShowPackageContentsTableAsTree
The ShowPackageContentsTableAsTree property controls whether the package contents table is displayed as a tree table or as a list table. When displayed as a list table, nested managed collection members can be viewed with the View Nested Contents action. This property replaces the prior site-wide com.ptc.netmarkets.wp.showPersistedCollectionHolderContentTreeView wt property.
Default value is 'true'.
DisableAccessControlOnLinkExport
The DisableAccessControlOnLinkExport property controls whether access control is disabled when links are processed during package exports. Enabling this property allows a link which refers to a role object which is inaccessible to the principal performing the zip to still be exported even if the link export handler accesses and includes information from the role objects in its export metadata. When disabled, links which refer to role objects inaccessible to the principal performing the zip are filtered out of package exports. This property only applies to importable package exports.
Default value is 'false'.
The following link handlers include role information in their metadata:
Link Handler
Description
ExpImpForEPMContainedIn.java
Container path of role A object
ExpImpForEPMVariantLink.java
Container paths of role objects
ExpImpForModelItemContainedIn.java
Container path of role A object
ExpImpForEPMBuildRuleAssociationLink.java
Container paths of role objects
ExpImpForEPMDescribeLink.java
Container paths of role objects
ExpImpForEPMReferenceLink.java
Container paths of role objects
ExpImpForEPMMemberLink.java
Container paths of role objects
ExpImpForEPMBuildRule.java
Container paths of role objects
Version information of role objects
ExpImpForEPMBuildHistory.java
Container paths of role objects
Associated built object information
Occurrence information
Deleted build references
DefaultSupportedDowngradeReleases
This is a site level property to configure default downgrade releases. This is a subset of the supported downgrade releases for the current release. The releases which are configured in this property are selected by default on the ZIP Package for Delivery page while creating a ZIP file. For more information, see Downgrade Releases.
For example, if the downgraded deliveries feature is supported for Windchill 11.0.M020 and Windchill 11.0.M030 releases and you set the below configuration.
<DefaultSupportedDowngradeReleases>
<DowngradeRelease>11.0.M030</DowngradeRelease>
</DefaultSupportedDowngradeReleases>
It sets the default downgrade release to Windchill 11.0.M030. It should mention the internal product name and not the display name.
This is an optional property and if it is not configured, all the available supported downgrade releases are used for creating downgraded deliveries. For the above example, if this property is not configured then downgraded deliveries for the releases Windchill 11.0.M020 and Windchill 11.0.M030 are created.
Default Values are, all the available supported downgrade releases.
Considerations for Replication Package Types
Some properties and specific property values are not allowed for replication packages types.
Examples:
ExcludedSeedTypes does not make sense for ReplicationPackages as replication packages have no seed but gets all objects in selected containers. If you try to set ExcludedSeedTypes in typebased property for ReplicationPackage or its subtype, you get the error: “Invalid property: ExcludedSeedTypes found in property set: Default, for type: WCTYPE|com.ptc.windchill.wp.rep.ReplicationPackage”
ReplicationPackage is only used for import, so DeliveryFormat cannot have the value Non_Importable_Types. If you try to set that in typeload, you get the error: Invalid property value: DeliveryFormat = Non_Importable_Types for type: WCTYPE|com.ptc.windchill.wp.rep.ReplicationPackage
Invalid Properties
The following are invalid properties for ReplicationPackage and it's subTypes :
RetainCollectionResults
EnableContentControl
CollectorId
ExcludedSeedTypes
ExcludedMemberContentRoles
ExportOnlyContentFileNaming
Invalid Values
The following are invalid values for ReplicationPackage and it's subTypes :
“Interactive” is invalid value for ManifestOption and OOTB default value is “None”. “None” & “Static” are only valid values for ManifestOption.
<IncludedManifestOptions>
           <ManifestOption default="true">None</ManifestOption>
</IncludedManifestOptions>
Non_Importable_Types “ is invalid values for DeliveryFormat and OOTB default values is “Windchill_Importable_Types”.
<IncludedDeliveryFormatOptions>
           <DeliveryFormat default="true">
Windchill_Importable_Types
</DeliveryFormat>
</IncludedDeliveryFormatOptions>
“Incremental manifest” is invalid value for DeliveryOption and an OOTB default value is “Incremental”.  “Full” & “Incremental” are only valid values.
<IncludedDeliveryOptions>
           <DeliveryOption>Incremental</DeliveryOption>
</IncludedDeliveryOptions>
Default Values
The OOTB default values for ReplicationPackage and it's subType is:
<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>