I_UserContactCard

DDL: I_USERCONTACTCARD SQL: IUSERCTC Type: view COMPOSITE

User Contact Card

I_UserContactCard is a Composite CDS View that provides data about "User Contact Card" in SAP S/4HANA. It reads from 1 data source (usr21) and exposes 18 fields with key field ContactCardID. It has 6 associations to related views.

Data Sources (1)

SourceAliasJoin Type
usr21 _User from

Associations (6)

CardinalityTargetAliasCondition
[0..1] adrp _Person _Person.persnumber = $projection.Person and _Person.persnumber <> '' and _Person.nation = ''
[0..1] adcp _OrgData _OrgData.addrnumber = $projection.AddressID and _OrgData.persnumber = $projection.Person
[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 (11)

NameValueLevelField
AbapCatalog.sqlViewName IUSERCTC view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
EndUserText.label User Contact Card view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.representativeKey ContactCardID view
Search.searchable true view

Fields (18)

KeyFieldSource TableSource FieldDescription
KEY ContactCardID usr21 bname
Person usr21 persnumber
BusinessPartnerUUID usr21 bpperson
FirstName _Person name_first
LastName _Person name_last
FullName
UserDescription
AddressID usr21 addrnumber
PhoneNumber
MobilePhoneNumber
FaxNumber
EmailAddress
Department _OrgData department
FunctionalTitleName _OrgData function
ContactCardRole
ContactCardType
ContactCardNavLinkSemanticObj
ContactCardNavLinkQueryPart
@AbapCatalog.sqlViewName: 'IUSERCTC'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY // never expose this view directly, only via associations

@EndUserText.label: 'User Contact Card'
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: 'C'
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.representativeKey: 'ContactCardID'
@Search.searchable: true
define view I_UserContactCard
  as select from usr21 as _User
  association [0..1] to adrp as _Person                   on  _Person.persnumber = $projection.Person
                                                          and _Person.persnumber <> ''
                                                          and _Person.nation     =  ''

  association [0..1] to adcp as _OrgData                  on  _OrgData.addrnumber = $projection.AddressID
                                                          and _OrgData.persnumber = $projection.Person

  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'
{
      @ObjectModel.text.element : [ 'UserDescription' ]
      @Semantics.contact.type: #PERSON
  key _User.bname                                                                                 as ContactCardID,
      _User.persnumber                                                                            as Person,
      _User.bpperson                                                                              as BusinessPartnerUUID,

      @Semantics.name.givenName: true
      _Person.name_first                                                                          as FirstName,

      @Semantics.name.familyName: true
      _Person.name_last                                                                           as LastName,

      @Semantics.name.fullName: true
      cast(coalesce( _Person.name_text , _User.techdesc ) as ad_namtext preserving type )         as FullName,

      @Semantics.text: true
      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.7 }
      cast( _User.techdesc as vdm_userdescription preserving type )                               as UserDescription,

      _User.addrnumber                                                                            as AddressID,

      @Semantics.telephone.type:  [ #WORK ]
      cast(_DefaultPhoneNumber.telnr_long as contactcardphonenumber preserving type )             as PhoneNumber,

      @Semantics.telephone.type:  [ #CELL ]
      cast(_DefaultMobilePhoneNumber.telnr_long as contactcardmobilephonenumber preserving type ) as MobilePhoneNumber,

      @Semantics.telephone.type:  [ #FAX ]
      cast(_DefaultFaxNumber.faxnr_long as contactcardfaxnumber preserving type )                 as FaxNumber,

      @Semantics.eMail.type:  [ #WORK ]
      @Semantics.eMail.address: true
      cast(_DefaultEmailAddress.smtp_addr as contactcardemailaddress preserving type )            as EmailAddress,

      @Semantics.organization.name: true
      _OrgData.department                                                                         as Department,

      @Semantics.organization.role: true
      _OrgData.function                                                                           as FunctionalTitleName,

      @UI.hidden:true
      'Creator'                                                                                   as ContactCardRole,
      @UI.hidden:true
      'User'                                                                                      as ContactCardType,

      @UI.hidden:true
      'User'                                                                                      as ContactCardNavLinkSemanticObj,
      @UI.hidden:true
      concat('User=', _User.bname)                                                                as ContactCardNavLinkQueryPart
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"ADCP",
"ADR2",
"ADR3",
"ADR6",
"ADRP",
"USR21"
],
"ASSOCIATED":
[
"ADCP",
"ADR2",
"ADR3",
"ADR6",
"ADRP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/