P_ContactCardPerson

DDL: P_CONTACTCARDPERSON SQL: PCONTACTCARDPERS Type: view COMPOSITE

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)

SourceAliasJoin Type
adrc adrc from

Associations (4)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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":""
}
}*/