Returns the closest ancestor of a specified business object instance in a hierarchy of business objects.
For each ancestor business object going upward from a starting business object, this function evaluates the search predicate on the related business object. If a hierarchy business object is not related to one of the related business objects, the application skips it. See Expression Grammar, Defining a Configuration Item Relationship, and Using Relationships.
FindAncestor(hierarchyBoRef, relatedBoRef, recId, searchPredicate)
For a description of the business object categories, see Notes on "Enabled For".
|Business Object Category||Yes/No|
|Business Rules: Before-Save Rules||Yes|
|Business Rules: Calculation Rules (After Save, with or without Also Recalculate on Load)||Yes|
|Business Rules: Calculation Rules (Before Save or Always, without Also Recalculate On Load)||Yes|
|Business Rules: Calculation Rules (Before Save or Always, with Recalculate On Load)||Yes|
|Business Rules: Editing Rules||Yes1|
|Business Rules: Initialization Rules||Yes|
|Business Rules: Read Only Rules||No|
|Business Rules: Required Rules||Yes1|
|Business Rules: Validation Rules||Yes|
|Quick Actions (except UI Quick Actions)||Yes|
|UI Quick Actions||No|
|Search/Dashboard without field references||Yes|
|Search/Dashboard with field references||No|
|1. Except when this field appears on a form or is triggered by such a field.|
|hierarchyObjectRef||The name of the business object (the starting business object) that forms the hierarchy in which to find the ancestor. This is not a business object reference.|
|relatedObjectRef||The name of the related business object.|
|recId||The RecID of the hierarchy business object instance.|
|searchPredicate||(Optional) Boolean filter expression to evaluate on the related business object.|
Text value. The RecID of the ancestor instance found.
$(FindAncestor("Frs_CompositeContract_Entity", "ServiceAgreement", EntityLink_RecID,
"$((ServiceLink == [OtherObject]Service_Valid) && (Status == \"Published\"))"
In the example above, the application goes up the through the ancestors of the business object specified by the hierarchyObjectRef parameter (in this case, Frs_CompositeContract_Entity) and looks for the nearest ancestor that has a related business object or a business object related by the relatedObjectRef parameter (in this case, a published service agreement) for which the searchPredicate parameter evaluates to true.