I_AddressPersonName_2
Person Name
I_AddressPersonName_2 is a Basic CDS View that provides data about "Person Name" in SAP S/4HANA. It reads from 1 data source (adrp) and exposes 30 fields with key fields AddressPersonID, AddressID, AddressRepresentationCode. It has 7 associations to related views. Part of development package S_ADDRESS_RAP_BO.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| adrp | Person | right_outer |
Associations (7)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_FormOfAddress | _FormOfAddress | $projection.FormOfAddress = _FormOfAddress.FormOfAddress |
| [0..1] | I_NameSupplement | _NameSupplement | $projection.PersonNameSupplementCode = _NameSupplement.PersonNameSupplementCode |
| [0..1] | I_FamilyNamePrefix | _FamilyNamePrefix | $projection.FamilyNamePrefix = _FamilyNamePrefix.FamilyNamePrefix |
| [0..1] | I_FamilyNamePrefix | _FamilyNameSecondPrefix | $projection.FamilyNameSecondPrefix = _FamilyNameSecondPrefix.FamilyNamePrefix |
| [0..1] | I_AcademicTitle | _AcademicTitle | $projection.AcademicTitle = _AcademicTitle.AcademicTitle |
| [0..1] | I_AcademicTitle | _AcademicTitle2 | $projection.AcademicTitle2 = _AcademicTitle2.AcademicTitle |
| [0..1] | I_AddressRepresentation | _AddressRepresentationCode | $projection.AddressRepresentationCode = _AddressRepresentationCode.AddressRepresentationCode |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Person Name | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.representativeKey | AddressPersonID | view | |
| VDM.viewType | #BASIC | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view |
Fields (30)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | AddressPersonID | adrp | persnumber | |
| KEY | AddressID | PersAddress | addrnumber | |
| KEY | AddressRepresentationCode | adrp | nation | |
| AddrID | ||||
| FormOfAddress | adrp | title | ||
| GivenName | adrp | name_first | ||
| FamilyName | adrp | name_last | ||
| PersonBirthName | adrp | name2 | ||
| PersonMiddleName | adrp | namemiddle | ||
| SecondFamilyName | adrp | name_last2 | ||
| AcademicTitle | adrp | title_aca1 | ||
| AcademicTitle2 | adrp | title_aca2 | ||
| FamilyNamePrefix | adrp | prefix1 | ||
| FamilyNameSecondPrefix | adrp | prefix2 | ||
| PersonNameSupplementCode | adrp | title_sppl | ||
| PersonNickname | adrp | nickname | ||
| NameInitials | adrp | initials | ||
| PersonFullName | adrp | name_text | ||
| CorrespondenceLanguage | adrp | langu | ||
| AddressPersonSearchTerm1 | adrp | sort1 | ||
| AddressPersonSearchTerm2 | adrp | sort2 | ||
| PersonFullNameFormattingCode | adrp | nameformat | ||
| PersonFullNameFormattingCntry | adrp | namcountry | ||
| _FormOfAddress | _FormOfAddress | |||
| _NameSupplement | _NameSupplement | |||
| _FamilyNamePrefix | _FamilyNamePrefix | |||
| _FamilyNameSecondPrefix | _FamilyNameSecondPrefix | |||
| _AcademicTitle | _AcademicTitle | |||
| _AcademicTitle2 | _AcademicTitle2 | |||
| _AddressRepresentationCode | _AddressRepresentationCode |
@EndUserText.label: 'Person Name'
//@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.supportedCapabilities: [#CDS_MODELING_ASSOCIATION_TARGET, #CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE]
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.representativeKey: 'AddressPersonID'
@VDM: {
viewType: #BASIC,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
define view entity I_AddressPersonName_2
as select distinct from adcp as PersAddress
right outer join adrp as Person on PersAddress.persnumber = Person.persnumber
association [0..1] to I_FormOfAddress as _FormOfAddress on $projection.FormOfAddress = _FormOfAddress.FormOfAddress
association [0..1] to I_NameSupplement as _NameSupplement on $projection.PersonNameSupplementCode = _NameSupplement.PersonNameSupplementCode
association [0..1] to I_FamilyNamePrefix as _FamilyNamePrefix on $projection.FamilyNamePrefix = _FamilyNamePrefix.FamilyNamePrefix
association [0..1] to I_FamilyNamePrefix as _FamilyNameSecondPrefix on $projection.FamilyNameSecondPrefix = _FamilyNameSecondPrefix.FamilyNamePrefix
association [0..1] to I_AcademicTitle as _AcademicTitle on $projection.AcademicTitle = _AcademicTitle.AcademicTitle
association [0..1] to I_AcademicTitle as _AcademicTitle2 on $projection.AcademicTitle2 = _AcademicTitle2.AcademicTitle
association [0..1] to I_AddressRepresentation as _AddressRepresentationCode on $projection.AddressRepresentationCode = _AddressRepresentationCode.AddressRepresentationCode
{
key Person.persnumber as AddressPersonID,
@ObjectModel.foreignKey.association: '_AddressRepresentationCode'
key PersAddress.addrnumber as AddressID,
key Person.nation as AddressRepresentationCode, //Commented on 21st July 2025 re-opened on 04th Augu 2025
cast('' as ad_addrnum ) as AddrID,
@ObjectModel.foreignKey.association: '_FormOfAddress'
Person.title as FormOfAddress,
Person.name_first as GivenName,
Person.name_last as FamilyName,
Person.name2 as PersonBirthName,
Person.namemiddle as PersonMiddleName,
Person.name_last2 as SecondFamilyName,
@ObjectModel.foreignKey.association: '_AcademicTitle'
Person.title_aca1 as AcademicTitle,
@ObjectModel.foreignKey.association: '_AcademicTitle2'
Person.title_aca2 as AcademicTitle2,
@ObjectModel.foreignKey.association: '_FamilyNamePrefix'
Person.prefix1 as FamilyNamePrefix,
@ObjectModel.foreignKey.association: '_FamilyNameSecondPrefix'
Person.prefix2 as FamilyNameSecondPrefix,
@ObjectModel.foreignKey.association: '_NameSupplement'
Person.title_sppl as PersonNameSupplementCode,
Person.nickname as PersonNickname,
Person.initials as NameInitials,
Person.name_text as PersonFullName,
Person.langu as CorrespondenceLanguage,
Person.sort1 as AddressPersonSearchTerm1,
Person.sort2 as AddressPersonSearchTerm2,
Person.nameformat as PersonFullNameFormattingCode,
Person.namcountry as PersonFullNameFormattingCntry,
@Semantics.user.createdBy: true
Person.addresscreatedbyuser,
@Semantics.systemDateTime.createdAt: true
@Analytics.hidden: true
Person.addresscreatedondatetime,
@Semantics.user.lastChangedBy: true
Person.addresschangedbyuser,
@Semantics.systemDateTime.lastChangedAt: true
@Analytics.hidden: true
Person.addresschangedondatetime,
_FormOfAddress,
_NameSupplement,
_FamilyNamePrefix,
_FamilyNameSecondPrefix,
_AcademicTitle,
_AcademicTitle2,
_AddressRepresentationCode
}
where
Person.date_from = '00010101'
// and PersAddress.comp_pers = 'P' // if it is not there - same person shared with multiple company address will retrieved.
//This is added to stop runtime errors in RAP Contract Check.// while testing we reverted this after data model change
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA