Identifier External Form: General Syntax
<element_identifier> = <definition_identifier>~~<instance_identifier>
- <definition_identifier> = <type_identifier> | <attribute_type_identifier>
- <type_identifier> =
<basic_type_identifier> | <type_identifier>~<basic_association_type_identifier>
<attribute_type_identifier> = <type_identifier>~<basic_attribute_type_identifier> | <type_identifier>~<basic_association_type_identifier>
<constraint_type_identifier> = <basic_application_type_identifier>~<basic_constraint_type_identifier>
<instance_identifier> = <basic_instance_identifier> | <instance_identifier>~<basic_instance_identifier>
where:
<basic_type_identifier> = <protocol><protocol_separator><protocol_specific_string>
<basic_attribute_type_identifier> = <protocol><protocol_separator><protocol_specific_string>
<basic_association_type_identifier> = <protocol><protocol_separator><protocol_specific_string><direction><basic_type_identifier>
<direction> = @ | ^ (@=reverse, ^=forward)
<basic_application_type_identifier> = <protocol><protocol_separator><protocol_specific_string>
<basic_constraint_type_identifier> = <protocol><protocol_separator><protocol_specific_string>
<basic_instance_identifier> = <protocol><protocol_separator><protocol_specific_string>
where:
- <protocol_separator> = "|"
Identifier External Form: Specific Protocols
TYPES
Windchill Types
<protocol> = "WCTYPE"
<protocol_specific_string> = <classname> | <protocol_specific_string><separator><subtype_name>
- <classname> = fully qualified Java classname of the closest, concrete, peristable class representing the type
- <separator> = "|"
- <subtype_name> = The name of a type definition, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
Instanced Based Reference Types
<protocol> = "IBRTYPE"
<protocol_specific_string> = <attribute_name> | <protocol_specific_string><separator><attribute_name>
- <attribute_name> = The name of an instance based reference attribute, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
- <separator> = "|"
ATTRIBUTES AND ASSOCIATIONS
Modeled Attributes and Associations
<protocol> = "MBA"
<protocol_specific_string> = <attribute_name> | <protocol_specific_string><separator><attribute_name>
- <attribute_name> = A Java attribute identifier representing all or part of the name of the attribute or role, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
- <separator> = "."
Instance Based Attributes
<protocol> = "IBA"
<protocol_specific_string> = <attribute_name> | <protocol_specific_string><separator><attribute_name>
- <attribute_name> = The name of an instance based reference attribute, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
- <separator> = "|"
Instance Based Associations
<protocol> = "IBA"
<protocol_specific_string> = "holder" | "value"
- "IBA|holder@": The association is an attribute of the type identified by the preceding <type_identifier>.
- "IBA|value^": The type identified by the following <type_identifier> is referenced by the association.
- "IBA|value@": The type identified by the preceding <type_identifier> is referenced by the association.
- "IBA|holder^": The association is an attribute of the type identified by the following <type_identifier>.
CONSTRAINTS
Modeled Constraints
<protocol> = "MBC"
<protocol_specific_string> = <binding_rule_classname><separator><qualified_attribute><separator><enforcement_rule_classname>
- <binding_rule_classname> = fully qualified Java classname of the binding rule used by the identified constraint
- <separator> = "|"
- <qualified_attribute> = <classname><separator_2><attribute_name>
- <classname> = fully qualified Java classname of the class to which the primary attribute being constrained belongs
- <separator_2> = "."
- <attribute_name> = A Java attribute identifier representing the name of the attribute being constrained, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
- <enforcement_rule_classname> = fully qualified Java classname of the enforcement rule used by the identified constraint
Runtime Defined Constraints
<protocol> = "RTC"
<protocol_specific_string> = <binding_rule_classname><separator><qualified_attribute><separator><enforcement_rule_classname>
- <binding_rule_classname> = fully qualified Java classname of the binding rule used by the identified constraint
- <separator> = "|"
- <qualified_attribute> = <attribute_name> | <qualified_attribute><separator_2><attribute_name>
- <attribute_name> = The name of an instance based attribute, consisting of characters x such that Character.isJavaLetterOrDigit(x) = true, and such that the first character y of the identifier is such that Character.isJavaLetter(y) = true
- <separator_2> = "|"
- <enforcement_rule_classname> = fully qualified Java classname of the enforcement rule used by the identified constraint
APPLICATIONS
Windchill Applications
<protocol> = "WCAPP"
<protocol_specific_string> = <app_type>
- <app_type> = A type of Windchill application
INSTANCE IDENTIFIERS
Instance Identifier for Windchill Persitables
<protocol> = "WCP"
<protocol_specific_string> = <oid><separator><update_count>
- <oid> = An integer number representing the OID of the persisted object instance
- <separator> = "|"
- <update_count> = An integer number representing the update count of the persisted object instance
Instance Identifier for Iterated Windchill Persitables
<protocol> = "WCI"
<protocol_specific_string> = <oid><separator><update_count><separator><branch_id>
- <oid> = An integer number representing the OID of the persisted object instance
- <separator> = "|"
- <update_count> = An integer number representing the update count of the persisted object instance
- <branch_id> = A string representing the version branch of the iterated object.
Instance Identifier for Array Elements
<protocol> = "INDEX"
<protocol_specific_string> = <index>
- <index> = An integer number representing the index of the element within an array
Instance Identifier for Windchill Applications
<protocol> = "WCAPPI"
<protocol_specific_string> = <name>
- <name> = The name of a Windchill application
Identifier External Form: Examples
<basic_type_identifier>
:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret
WCTYPE|wt.part.WTPartUsageLink
IBRTYPE|Supplier|Distributor
<basic_attribute_type_identifier>
:
MBA|name
MBA|iterationInfo.creator.name (Protocol supports all attributes including cookies, structured attributes, derived attributes.)
IBA|LengthIDiameterIInner
<basic_association_type_identifier>:
MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink
MBA|uses^WCTYPE|wt.part.WTPartMaster
IBA|holder@IBRTYPE|Supplier|Distribitor
IBA|value^WCTYPE|wt.csm.businessEntity.BusinessEntity
<basic_constraint_type_identifier>:
RTC|com.ptc.core.meta.common.impl.SingleAttributeBindingRule|Length|Diameter|com.ptc.core.meta.common.impl.RequiredEnforcementRule
MBC|com.ptc.core.meta.common.impl.SingleAttributeBindingRule|wt.part.WTPartMaster.name|com.ptc.core.meta.common.impl.UppercaseRule
RTC|com.ptc.core.meta.common.impl.MultiAttributeBindingRule||com.myco.MakeSureAreaIsNotTooBigRule
<basic_application_type_identifier>
:
WCAPP|Module
WCAPP|Core
<basic_instance_identifier>:
WCP|764336775|2
WCI|01653254325|5|B.1
INDEX|2
WCAPPI|SourcingFactor
WCAPPI|CoreTyping
<definition_identifier>:
Basic MBA (‘Part Number’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|number
Basic IBA (‘Inner Diameter(s)’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|Length|Diameter|Inner
Other side object for IBA association (‘Distributor(s)’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor
Other side object for reverse IBA association (Manufacturer(s) for which the part is listed as one of the ‘Manufactured Part(s)’):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|value@IBRTYPE|ManufacturedPart~IBA|holder^WCTYPE|wt.csm.businessentity.BusinessEntity|Manufacturer
Basic MBA on other side object for IBA association (‘Name(s)’ of the ‘Distributor(s)’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor~MBA|name
Basic IBA on other side object for IBA association (‘Rating(s)’ of the ‘Distributor(s)’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor~IBA|Rating
Basic IBA (dependent) on IBA association (‘Supplier Part Number(s)’ of the part for each of the Distributor(s)):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|PartNumber|Supplier
Other side object for MBA association (‘Part Master’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster
Other side object for reverse MBA association (‘Widget(s)’ which reference the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|partReference@WCTYPE|myco.Widget
Basic MBA on other side object for MBA association (‘Name’ of the ‘Part Master’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster~MBA|name
Basic IBA on other side object for MBA association (‘Master Code’ of the ‘Part Master’ of the part):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster~IBA|MasterCode
Link object (‘Part Usage Link(s)’ for which the part participates in the ‘Used By’ role):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink
Basic MBA on link object (‘Amount(s)’ on the ‘Part Usage Link(s)’ for which the part participates in the ‘Used By’ role):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|quantity.amount
Basic IBA on link object (‘Assembly Code(s)’ on the ‘Part Usage Link(s)’ for which the part participates in the ‘Used By’ role):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~IBA|AssemblyCode
Other side object for link attribute (‘Part Master(s)’ which the part ‘uses’):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster
Basic MBA on other side object for link attribute (‘Part Number(s)’ of the ‘Part Master(s)’ which the part ‘uses’):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster~MBA|number
Basic IBA on other side object for link attribute (‘Master Code(s)’ of the ‘Part Master(s)’ which the part ‘uses’):
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster~IBA|MasterCode
Basic Constraint
WCAPP|Core~RTC|com.ptc.core.meta.common.impl.SingleAttributeBindingRule|Length|Diameter|com.ptc.core.meta.common.impl.RequiredEnforcementRule
<element_identifier>:
Basic MBA:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|number~~WCI|01653254325|5|B.1
Basic IBA:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|Length|Diameter|Inner~~WCI|01653254325|5|B.1~WCP|764336775|2
Second element of a basic array MBA:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|contact~~WCI|01653254325|5|B.1~INDEX|2
Other side object for IBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor~~WCI|01653254325|5|B.1~WCP|8453656345|3~WCP|3745754532|23
Other side object for reverse IBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|value@IBRTYPE|ManufacturedPart~IBA|holder^WCTYPE|wt.csm.businessentity.BusinessEntity|Manufacturer~~WCI|01653254325|5|B.1~WCP|5634763487|17~WCP|56457674|27
Basic MBA on other side object for IBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor~MBA|name~~WCI|01653254325|5|B.1~WCP|8453656345|3~WCP|3745754532|23
Basic IBA on other side object for IBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|value^WCTYPE|wt.csm.businessentity.BusinessEntity|Distributor~IBA|Rating~~WCI|01653254325|5|B.1~WCP|8453656345|3~WCP|3745754532|23~WCP|123235665|12
Basic IBA dependent on IBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~IBA|holder@IBRTYPE|Supplier|Distributor~IBA|PartNumber|Supplier~~WCI|01653254325|5|B.1~WCP|8453656345|3~WCP|98678675|2
Other side object for MBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster~~WCI|01653254325|5|B.1~WCP|87645634|17
Other side object for reverse MBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|partReference@WCTYPE|myco.Thingy~~WCI|01653254325|5|B.1~WCP|4457345773|3
Basic MBA on other side object for MBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster~MBA|name~~WCI|01653254325|5|B.1~WCP|87645634|17
Basic IBA on other side object for MBA association:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|masterReference^WCTYPE|wt.part.WTPartMaster~IBA|MasterCode~~WCI|01653254325|5|B.1~WCP|87645634|17~WCP|65536346|7
Link object:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~~WCI|01653254325|5|B.1~WCP|56376369|2
Basic MBA on link object:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|quantity.amount~~WCI|01653254325|5|B.1~WCP|56376369|2
Basic IBA on link object:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~IBA|AssemblyCode~~WCI|01653254325|5|B.1~WCP|56376369|2~WCP|840385767|1
Other side object for link attribute:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster~~WCI|01653254325|5|B.1~WCP|56376369|2~WCP|567754566|13
Basic MBA on other side object for link attribute:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster~MBA|number~~WCI|01653254325|5|B.1~WCP|56376369|2~WCP|567754566|13
Basic IBA on other side object for link attribute:
WCTYPE|myco.part.MyPart|InternalPart|TopSecret~MBA|usedBy@WCTYPE|wt.part.WTPartUsageLink~MBA|uses^WCTYPE|wt.part.WTPartMaster~IBA|MasterCode~~WCI|01653254325|5|B.1~WCP|56376369|2~WCP|567754566|13~WCP|49673465|3
Basic Constraint
WCAPP|Module~RTC|com.ptc.core.meta.common.impl.SingleAttributeBindingRule|Length|Diameter|com.ptc.core.meta.common.impl.RequiredEnforcementRule~~WCAPPI|SourcingFactor~ WCP|3953257|5