P_ContactCardPerson
P_ContactCardPerson is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (adrc) and exposes 9 fields with key fields AddressID, Person. It has 4 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| adrc | adrc | from |
Associations (4)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | adr2 | _DefaultPhoneNumber | _DefaultPhoneNumber.addrnumber = $projection.AddressID and _DefaultPhoneNumber.persnumber = $projection.Person and _DefaultPhoneNumber.r3_user = '1' |
| [0..1] | adr3 | _DefaultFaxNumber | _DefaultFaxNumber.addrnumber = $projection.AddressID and _DefaultFaxNumber.persnumber = $projection.Person and flgdefault = 'X' |
| [0..1] | adr2 | _DefaultMobilePhoneNumber | _DefaultMobilePhoneNumber.addrnumber = $projection.AddressID and _DefaultMobilePhoneNumber.persnumber = $projection.Person and _DefaultMobilePhoneNumber.r3_user = '3' |
| [0..1] | adr6 | _DefaultEmailAddress | _DefaultEmailAddress.addrnumber = $projection.AddressID and _DefaultEmailAddress.persnumber = $projection.Person and _DefaultEmailAddress.flgdefault = 'X' |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PCONTACTCARDPERS | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| ObjectModel.usageType.serviceQuality | C | view | |
| ObjectModel.usageType.sizeCategory | #L | view |
Fields (9)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | AddressID | adrc | addrnumber | |
| KEY | Person | adcp | persnumber | |
| FullName | adrp | name_text | ||
| PhoneNumber | _DefaultPhoneNumber | telnr_long | ||
| EmailAddress | _DefaultEmailAddress | smtp_addr | ||
| JobName | adcp | function | ||
| ContactCardPictureURL | ||||
| OrganizationalUnitName | adcp | department | ||
| CompanyName |
@AbapCatalog.sqlViewName: 'PCONTACTCARDPERS'
@AbapCatalog.compiler.compareFilter: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY // never expose directly
@VDM.viewType: #COMPOSITE
@VDM.private: true
@ObjectModel.usageType.serviceQuality: 'C'
@ObjectModel.usageType.sizeCategory: #L
define view P_ContactCardPerson as select from adrc join adcp on adcp.addrnumber = adrc.addrnumber join adrp on adrp.persnumber = adcp.persnumber
association [0..1] to tsad3 on adrc.title = tsad3.title
association [0..1] to adr2 as _DefaultPhoneNumber
on _DefaultPhoneNumber.addrnumber = $projection.AddressID
and _DefaultPhoneNumber.persnumber = $projection.Person
and _DefaultPhoneNumber.r3_user = '1'
association [0..1] to adr3 as _DefaultFaxNumber
on _DefaultFaxNumber.addrnumber = $projection.AddressID
and _DefaultFaxNumber.persnumber = $projection.Person
and flgdefault = 'X'
association [0..1] to adr2 as _DefaultMobilePhoneNumber
on _DefaultMobilePhoneNumber.addrnumber = $projection.AddressID
and _DefaultMobilePhoneNumber.persnumber = $projection.Person
and _DefaultMobilePhoneNumber.r3_user = '3'
association [0..1] to adr6 as _DefaultEmailAddress
on _DefaultEmailAddress.addrnumber = $projection.AddressID
and _DefaultEmailAddress.persnumber = $projection.Person
and _DefaultEmailAddress.flgdefault = 'X'
{
key adrc.addrnumber as AddressID,
key adcp.persnumber as Person,
cast (case
when tsad3.person = 'X' then '1' // should use #ContactCardCategory. but cannot due to DDIC bug
when tsad3.organizatn = 'X' then '2'
when tsad3.xgroup = 'X' then '3'
else '0' end as contactcardcategory)
as ContactCardCategory,
adrp.name_text as FullName,
_DefaultPhoneNumber.telnr_long as PhoneNumber,
// _DefaultMobilePhoneNumber.telnr_long as MobilePhoneNumber,
// _DefaultFaxNumber.faxnr_long as FaxNumber,
_DefaultEmailAddress.smtp_addr as EmailAddress,
adcp.function as JobName,
'' as ContactCardPictureURL,
adcp.department as OrganizationalUnitName,
// '' as WebsiteURL,
cast(substring(replace(concat(adrc.name1, concat(' &@', adrc.name2)), '&@', ''),1,80) as adfullname ) as CompanyName
// '' as FormattedAddress
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"ADCP",
"ADR2",
"ADR6",
"ADRC",
"ADRP",
"TSAD3"
],
"ASSOCIATED":
[
"ADR2",
"ADR3",
"ADR6",
"TSAD3"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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