Windchill REST Services Domain Capabilities > PTC Domains > PTC Product Management Domain
PTC Product Management Domain
The PTC Product Management domain provides access to the product management capabilities of Windchill. It provides OData entities that represent business objects, such as, Part and BOM. The following table shows the Windchill items that are enabled with OData entities in the Product Management domain. The Product Management domain references the PTC Document Management domain to provide navigations to reference and describe documents.
You can work with classified objects in the PTC Product Management domain only if Windchill PartsLink module is installed.
You can create classified objects. To create a classified object, using Windchill REST Services, follow the same initial steps as in Windchill user interface. Import the classification structure, create a classification binding attribute on the part object, and use the endpoints with relevant payload to create a classified part. See the Windchill Help Center for more details on classifying an object.
You can also update the classification attributes of an existing classified part. When classifying a part, if you specify the incorrect classification node name, or incorrect classification attribute name and value, relevant error messages are returned.
The supplier management entities such as, SupplierPart, ManufacturerPart, VendorPart, AXLEntry, and so on are available in PTC Product Management domain. These entities are available only if Supplier Management module is installed in Windchill. Classification is supported for manufacturer and vendor parts. See the section PTC Supplier Management Domain, for more information about PTC Supplier Management domain.
The following table lists the significant OData entities available in the Product Management domain. To see all the OData entities available in the Product Management domain, refer to the EDM of the domain. The domain EDM is available at the metadata URL.
Items
OData Entities
Description
Part
Part
ElectricalPart
The Part entity represents a part version. In Windchill, use the WTPart and WTPartMaster classes to work with part versions.
ElectricalPart is derived from Part and represents the soft type that is available in Windchill.
See the section Navigation Properties Available for Part Entity, for information on some of the navigation properties available with Part entity.
Bill of material
BOM
PartUse
UsageOccurrence
The BOM entity represents the part structure expanded to some levels.
PartUse is an OData entity that represents the association between parent and child parts. It has attributes such as, quantity, unit, line number, and so on. These attributes of entity models are also available in the WTPartUsageLink class.
The UsageOccurrence entity represents the reference designator when a component is used multiple times in a BOM.
Part that resides in a Windchill folder
PartContent
This entity is derived from FolderContent entity that is available in the DataAdmin domain. The entity represents a part residing in a folder.
Supplier part
SupplierPart
Supplier part is a subtype of part.
You can perform only read operation on this entity.
Manufacturer part
ManufacturerPart
Manufacturer part is a subtype of supplier part. It is produced by a manufacturer other than the Original Equipment Manufacturer (OEM).
The AXLEntry entity is used to associate the ManufacturerPart entity with the Part entity.
Vendor part
VendorPart
Vendor part is a subtype of supplier part. It is a part that is supplied by the vendor.
The AXLEntry entity is used to associate the VendorPart entity with the Part entity.
AXLEntry (AML/AVL)
AXLEntry
AXLEntry entity represent the association between SupplierPart, that is, ManufacturerPart and VendorPart and the Part entity. An OEM part can be associated with several manufacturer parts or vendor parts.
The AXLEntry entity is available as navigation property on the Part entity, which retrieves the manufacturer and vendor parts that are associated with the part.
Replacement Parts
ReplacemenPart
PartAlternateLink
PartSubstituteLink
Replacement part entities that are available from v5 of the Product Management domain.
PartAlternateLink represents a part alternate link and its attributes created between the given part and its alternate part.
PartSubstituteLink represents a part substitute link and its attributes created between the given part and its substitute part.
Soft-type Attributes on Part Uses Occurrences
For WRS 2.0 and later versions, soft-type attributes defined as Part Uses Occurrence Attributes in Windchill, can be retrieved for the UsageOccurrence entity without any customization.
Navigation Properties Available for Part Entity
The Part entity contains navigation properties. See the descriptions that follow for some navigation properties:
AssignedOptionSet—Retrieves the option set assigned to the part. You can also expand the navigation property to get detailed information about the option set. See the section PTC Product Platform Management Domain, for more information about OptionSet entity.
* 
The navigation property is available only if the option Configurable Module Support is set to Yes in Utilities > Preference Management > Options and Variants.
Alternates—Provides navigation from parts to alternates. Alternates can be used in place of a part in any assembly in which the part exists. The API returns the part alternate links and its attributes. You can also traverse to the latest version of the alternate part using $expand on the alternate link entity (PartAlternateLink). as given below:
GET /Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:12640410')/Alternates('OR:wt.part.WTPartAlternateLink:18640429')?$expand=AlternatePart
You can use the following navigations to traverse from AlternateLink. :
Traverse the ReplacementPart of SourceObject from an AlternateLink:
GET /Windchill/servlet/odata/v5/ProdMgmt/Parts(‘OID’)?$expand=Alternates($expand=AlternateFor)
Traverse the ReplacementPart of AlternatePart from AlternateLink:
GET /Windchill/servlet/odata/v5/ProdMgmt/Parts(‘OID’)?$expand=Alternates($expand=Alternate)
Traverse the AlternatePart from AlternateLink:
GET /Windchill/servlet/odata/v5/ProdMgmt/Parts(‘OID’)?$expand=Alternates($expand=AlternatePart)
The navigation always returns the latest version of the alternate part.
Available from version 5 onwards of the Product Management domain.
Substitutes—Provides navigation from parts to substitutes The API returns the part substitute links and its attributes. .Substitutes can be used in place of a part in a particular assembly only. You can also traverse to the latest version of the substitute part using $expand on the substitute link entity (PartSubstituteLink). as given below:
GET /Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:12640410')/Substitutes('OR:wt.part.WTPartSubstituteLink:18640426')?$expand=SubstitutePart
Available from version 5 onwards of the Product Management domain.
AXLEntries—Creates, updates, and deletes associations between Original Equipment Manufacturer (OEM) and the following:
Manufacture parts (AML)
Vendor parts (AVL)
Both manufacture and vendor parts (AXL)
For example, to create association between AXL and OEM parts, use the following POST URL and specify the following payload:
POST https://windchill.ptc.com/Windchill/servlet/odata/ProdMgmt/Parts('OEM PART ID')/AXLEntries
{
"SourcingContext@odata.bind":"SourcingContexts('OR:com.ptc.windchill.suma.axl.AXLContext:232901')",
"VendorPartSourcingStatus":{"Value":"approved","Display":"Approved"},
"ManufacturerPartSourcingStatus":{"Value":"preferred","Display":"Preferred"},
"ManufacturerPartReference@odata.bind":"ManufacturerParts('OR:com.ptc.windchill.suma.part.ManufacturerPart:280604')",
"VendorPartReference@odata.bind":"VendorParts('OR:com.ptc.windchill.suma.part.VendorPart:280463')"
}
The sourcing context and part reference parameters are mandatory.
Type of AXL Entry
Sourcing Context
Part Reference
Manufacture parts (AML)
Required
ManufacturerPartReference
Vendor parts (AVL)
Required
VendorPartReference
Both manufacture and vendor parts (AXL)
Required
ManufacturerPartReference
VendorPartReference
Sourcing status is an optional parameter. The following rules apply to sourcing status:
The value specified for sourcing status in the request payload gets precedence over the sourcing rules set in Windchill.
If the value for sourcing status is not specified in the request payload, and if the supplier administrator has set sourcing rules in Windchill, then the value specified for sourcing status in Windchill is used.
If the value for sourcing status is not set in the request payload and no sourcing rules are set in Windchill, then the default status Do Not Use is set for the AXL entry.
You can update the following information using the PATCH request:
Sourcing status for manufacture and vendor parts.
Add new vendor part reference in AXL and AML parts.
PartDocAssociations—Retrieves the association links between a part and CAD document. You can also retrieve the related CAD document using the navigation property RelatedCADDoc.
GET /Windchill/servlet/odata//ProdMgmt/Parts('OR:wt.part.WTPart:108618')?$expand=PartDocAssociations($expand=RelatedCADDoc)
Similarly you can retrieve a related part using the navigation property RelatedPart.
GET /Windchill/servlet/odata/ProdMgmt/Parts('OR:wt.part.WTPart:108618')?$expand= PartDocAssociations($expand=RelatedPart)
Effectivities—Retrieves the effectivities associated with the part. If the preference Include Time in Date Effectivity is set to yes in Windchill Effectivity Management, then the retrieved date effectivity entities will additionally include the time component in the response for StartDate and EndDate properties.
Navigation Properties Available for PartAlternateLink Entity:
The entity PartAlternateLink contains the following navigation properties that can be retrieved using $expand:
AlternatePart—Returns a version of the alternate part that can be used in place of the given part in any assembly. The alternate part is resolved based on the Windchill Navigation Criteria. If used for Part navigation then the latest version of the alternate part is returned. If used in PartStructureItem navigation then “null” is returned if the alternate part is not resolved. “Null” is returned if the user does not have access to the alternate part irrespective of where this navigation property is used.
Alternate—Returns the common attributes of the alternate part that can be used in place of the given part in any part structure.
AlternateFor—Returns the common attributes of the Part that can be replaced by the alternate.
Navigation Properties Available for PartSubstituteLink Entity
The entity PartSubstituteLink contains the following navigation properties that can be retrieved using $expand:
SubstitutePart—Returns a version of the substitute part that can be used in place of the given part in a particular part structure. The substitute part is resolved based on the Windchill Navigation Criteria. If used for Part navigation then the latest version of the substitute part is returned. If used in PartStructureItem navigation then “null” is returned if the substitute part is not resolved. “Null” is returned if the user does not have access to the substitute part irrespective of where this navigation property is used.
Substitute—Returns the common attributes of the substitute part that can be used in place of the given part in a particular part structure.
SubstituteFor—Returns the part usage link in the part structure where the given part can be replaced by the substitute part. To see the identity of the assembly, refer to the to the navigations available from the entity PartUse
Navigation URLs for AssignedOptionSet
You can use the following URLs to retrieve information about assigned option set that is associated with product or library containers.
To get all the parts with their assigned option sets:
/ProdMgmt/Parts(<oid>)/AssignedOptionSet
To get all the parts with their assigned option sets with expanded navigation:
/ProdMgmt/Parts?$expand=AssignedOptionSet
To get a specific part along with its assigned option set:
/ProdMgmt/Parts(<oid>)?$expand=AssignedOptionSet