Specialized Administration > Tailoring Business Objects > Type and Attribute Management > Working with the Type and Attribute Management Utility > Managing Types > Type Information Page > Attributes Tab > Creating a New Attribute > Alias Attribute Mapping
  
Alias Attribute Mapping
Alias attributes map to an attribute on a related object. This mapping allows information from the related object to be displayed on a user interface for the current type, such as an information page or table, by including the alias attribute in a layout. The mapping to the other attribute is specified in the Mapping property, using operators and the internal names of types and attributes to navigate object links and references.
* 
A specific alias mapping can only be used once on a type or its subtypes. If a second alias attribute is defined with the same mapping, an error results. The Logical Attributes Report for a type lists mappings that have already been used for that type, including to those used for alias attributes in the Type and Attribute Management utility. The Logical Attributes Report is available from Customization > Tools. For more information, see Customization Tools Overview.
For information on how alias attributes are displayed when included in layouts, see Attribute Display.
Mapping Syntax
The starting point of the mapping is the object on which the alias attribute is defined, and is not included in the Mapping property value. The value of the attribute at the end of the mapping displays as the value of the alias attribute in the user interface.
The following separator symbols are used when defining the mapping:
The tilde symbol (~) is used between a type on the left, and an attribute on the right, to identify a specific attribute that is defined on that type. See the at sign (@) definition below for an exception.
<type A>~<attribute of type A>
The caret symbol (^) is used between an attribute on the left, and a type on the right, to navigate through that attribute to the instance of that specific type.
<type A>~<attribute of type A>^<type B>
The at sign (@) is used between an attribute on the left, and a type on the right, to navigate through the attribute defined on the type to the right to instances of that type. The presence of the at sign (@) to the right of an attribute takes precedence over a tilde symbol (~) to the left of an attribute for determining where that attribute is defined.
<type A>~<attribute of type B>@<type B>
The equal symbol (=) is used between an attribute on the left, and an attribute on the right, to navigate to instances of the type on the right where the value of the attribute on the left is equal to the value of the attribute on the right. Only modeled attributes which are of types Boolean, Integer, String, and Date can be specified to the left and right of the equal symbol (=).
<type A>~<attribute of type A>=<attribute of type B>@<type B>
The syntax for the Mapping property value is:
<association>~<attribute>
where:
<association> is one of the following:
<association>
Meaning:
<attribute>^<type>
Navigate to the other object which this object references
<attribute>@<type>
Navigate to objects which reference this object
<attribute>=<attribute>@<type>
Navigate to objects with the same value as this object
* 
Only modeled attributes which are of types Boolean, Integer, String, and Date, can be specified for the attribute entries in the <attribute>=<attribute>@<type> mapping. Modeled attributes are those stored in the LWCHardAttDefinition table.
<association>~<association>
Navigate to objects across more than one <association>, chained together
<attribute> is the internal name of the attribute defined on the type. For attributes of types that do not appear in the Type and Attribute Management utility, use the modeled name of the attribute.
<type> is the internal name of the type. For types that do not appear in the Type and Attribute Management utility, use the class name of the type.
Mapping Examples
The following examples are for alias attributes being specified on the Document type, which has an internal name of wt.doc.WTDocument.
For example, a Mapping property value of
masterReference^wt.doc.WTDocumentMaster~name
means to navigate the masterReference reference attribute on the current wt.doc.WTDocument to the wt.doc.WTDocumentMaster, and return the name attribute of the wt.doc.WTDocumentMaster, as shown in the following image:
The following image shows two types, wt.doc.WTDocument and wt.doc.WTDocumentMaster, that are linked together by a wt.doc.WTDocumentUsageLink link type. The wt.doc.WTDocumentUsageLink link type has two reference attributes: usedBy (which references wt.doc.WTDocument), and uses (which references wt.doc.WTDocumentMaster).
The usedBy reference attribute is used to navigate between the wt.doc.WTDocument object and the wt.doc.WTDocumentUsageLink objects that reference it. Because the usedBy attribute is defined on the type being navigated to, use the at sign (@) separator symbol.
The following Mapping value:
usedBy@wt.doc.WTDocumentUsageLink~uses^wt.docWTDocumentMaster~name
navigates to the wt.doc.WTDocumentUsageLink objects with a usedBy attribute that references the current wt.doc.WTDocument object, and then navigates to the wt.doc.WTDocumentMaster objects which are referenced by the uses attribute on those wt.doc.WTDocumentUsageLink objects, and retrieves the names of those wt.doc.WTDocumentMaster objects.
Additional Alias Mapping Examples
The following table provides additional examples of alias attribute mappings. When the attribute or type is viewable in the Type and Attribute Management utility, the display name is included in the mapping description. For types and attributes on types that do not appear in the Type and Attribute Management utility, the class name of the type and the modeled name of the attribute on the type is used; many of these can be found in the table of commonly used link objects at the end of this topic.
Current Object
Mapping Attribute Value
Description
Activity (com.ptc.projectmanagement.plan.PlanActivity)
containerReference^wt.projmgmt.admin.Project2~containerInfo.name
Navigates to the Project (wt.projmgmt.admin.Project2) objects referenced by the Context (containerReference) attribute on the current Activity (com.ptc.projectmanagement.plan.PlanActivity) object, and then retrieves the Name (containerInfo.name) attribute from those Project (wt.projmgmt.admin.Project2) objects.
Document (wt.doc.WTDocument)
describedBy@wt.part.WTPartDescribeLink~describes^wt.part.WTPart~name
Navigates to the wt.part.WTPartDescribeLink objects which have a describedBy attribute that references the current Document(wt.doc.WTDocument) object, then navigates to the Part (wt.part.WTPart) objects which are referenced by the describes attribute on those wt.part.WTPartDescribeLink objects, and then retrieves the name attribute on those Part (wt.part.WTPart) objects.
Resource Assignment (com.ptc.projectmanagement.assignment.ResourceAssignment)
parentReference^com.ptc.projectmanagement.plan.PlanActivity~deadline
Navigates to the Activity (com.ptc.projectmanagement.plan.PlanActivity) objects referenced by the parentReference (parentReference) attribute on the current Resource Assignment (com.ptc.projectmanagement.assignment.ResourceAssignment) object, and then retrieves the Deadline (deadline) attribute from those Activity (com.ptc.projectmanagement.plan.PlanActivity) objects.
Part (wt.part.WTPart)
describes@wt.part.WTPartDescribeLink~describedBy^wt.doc.WTDocument~publisher
(This mapping assumes that you have created a Publisher (publisher)attribute on the Document (wt.doc.WTDocument object type)
Navigates to the wt.part.WTPartDescribeLink objects which have a describes attribute that references the current Part (wt.part.WTPart) object, then navigates to the Document (wt.doc.WTDocument) objects which are referenced by the describedBy attribute on those Part (wt.part.WTPart) objects, and then retrieves the Publisher (publisher)attribute on those Document (wt.doc.WTDocument) objects.
Part (wt.part.WTPart)
name=title@wt.doc.WTDocument~description
Navigates to the Document (wt.doc.WTDocument) objects which have a Title (title) attribute that matches the Name (name) attribute on the current Part (wt.part.WTPart) object, and then retrieves the Description (description) attribute on those Document (wt.doc.WTDocument) objects.
Document (wt.doc.WTDocument)
usedBy@wt.doc.WTDocumentUsageLink~uses^wt.doc.WTDocumentMaster~name
Navigates to the wt.doc.WTDocumentUsageLink objects which have a usedBy attribute that references the current Document (wt.doc.WTDocument) object, then navigates to the Document Master (wt.doc.WTDocumentMaster) objects which are referenced by the uses attribute on those wt.doc.WTDocumentUsageLink objects, and then retrieves the Name (name) attribute on those Document Master (wt.doc.WTDocumentMaster) objects.
Commonly Used Link Objects
The following table lists commonly used Windchill link objects and their relationships. This information can be useful in alias attribute mappings.
From object
From relationship
Link object
To relationship
To object
wt.doc.WTDocument
usedBy
wt.doc.WTDocumentUsageLink
uses
wt.doc.WTDocumentMaster
wt.doc.WTDocument
describes
wt.doc.WTDocumentDependencyLink
describedBy
wt.doc.WTDocument
wt.doc.WTDocument
describedBy
wt.part.WTPartDescribeLink
describes
wt.part.WTPart
wt.part.WTPart
usedBy
wt.part.WTPartUsageLink
uses
wt.part.WTPartMaster
wt.part.WTPart
referencedBy
wt.part.WTPartReferenceLink
references
wt.doc.WTDocumentMaster
wt.part.WTPart
buildTarget
wt.epm.EPMBuildRule
buildSource
wt.epm.EPMDocument
wt.part.WTPart
describes
wt.epm.EPMDescribeLink
describedBy
wt.epm.EPMDocument
wt.part.WTPartMaster
alternates
wt.part.WTPartAlternateLink
alternateFor
wt.part.WTPartMaster
wt.part.WTPartUsageLink
substituteFor
wt.part.WTPartSubstituteLink
substitutes
wt.part.WTPartMaster
wt.epm.EPMDocument
contains
wt.epm.structure.EPMContainedIn
containedIn
wt.epm.familytable.EPMFamilyTable
wt.epm.EPMDocument
usedBy
wt.epm.structure.EPMMemberLink
uses
wt.epm.EPMDocumentMaster
wt.epm.EPMDocument
referencedBy
wt.epm.structure.EPMReferenceLink
references
wt.epm.EPMDocumentMaster
wt.epm.EPMDocument
variant
wt.epm.structure.EPMVariantLink
generic
wt.epm.EPMDocumentMaster
wt.change2.WTChangeOrder2
addressedBy
wt.change2.AddressedBy2
addresses
wt.change2.WTChangeRequest2
wt.change2.WTChangeActivity2
includedIn
wt.change2.IncludedIn2
includes
wt.change2.WTChangeOrder2