I_LCMUserContactCard

DDL: I_LCMUSERCONTACTCARD SQL: ILCMUSERCTC Type: view COMPOSITE

Basic view for LCM User Contact Card

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

Data Sources (1)

SourceAliasJoin Type
I_LCMUserAddressAssignment _User from

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_LCMPerson _Person _Person.PersonNumber = $projection.Person and _Person.PersonNumber <> ''
[0..1] I_LCMContactCardOrgData _OrgData _OrgData.AddressID = $projection.AddressID and _OrgData.Person = $projection.Person
[0..*] I_AddressPhoneNumber _DefaultPhoneNumber _DefaultPhoneNumber.AddressID = $projection.AddressID and _DefaultPhoneNumber.Person = $projection.Person and _DefaultPhoneNumber.PhoneNumberType = '1'
[0..1] I_LCMContactCardFaxData _DefaultFaxNumber _DefaultFaxNumber.AddressID = $projection.AddressID and _DefaultFaxNumber.Person = $projection.Person and _DefaultFaxNumber.IsDefaultFaxNumber = 'X'
[0..*] I_AddressPhoneNumber _DefaultMobilePhoneNumber _DefaultMobilePhoneNumber.AddressID = $projection.AddressID and _DefaultMobilePhoneNumber.Person = $projection.Person and _DefaultMobilePhoneNumber.PhoneNumberType = '3'
[0..*] I_AddressEmailAddress _DefaultEmailAddress _DefaultEmailAddress.AddressID = $projection.AddressID and _DefaultEmailAddress.Person = $projection.Person and _DefaultEmailAddress.IsDefaultEmailAddress = 'X'

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName ILCMUSERCTC view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Basic view for LCM User Contact Card view
ObjectModel.representativeKey ContactCardID view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
AbapCatalog.preserveKey true view
ObjectModel.usageType.sizeCategory #L view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (20)

KeyFieldSource TableSource FieldDescription
KEY ContactCardID I_LCMUserAddressAssignment ContactCardID
Person I_LCMUserAddressAssignment Person
BusinessPartnerUUID I_LCMUserAddressAssignment BusinessPartnerUUID
FirstName _Person FirstName
LastName _Person LastName
FullName
AddressID I_LCMUserAddressAssignment AddressID
PhoneNumber
MobilePhoneNumber
InternationalFaxNumber
EmailAddress _DefaultEmailAddress EmailAddress
Department _OrgData Department
FunctionalTitleName _OrgData FunctionalTitleName
ContactCardRole
ContactCardType
ContactCardNavLinkSemanticObj
ContactCardNavLinkQueryPart
_DefaultFaxNumber _DefaultFaxNumber
_OrgData _OrgData
_Person _Person
@AbapCatalog.sqlViewName: 'ILCMUSERCTC'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY //#CHECK //

@AccessControl.personalData.blocking: #NOT_REQUIRED
@AccessControl.privilegedAssociations:  [ '_DefaultFaxNumber', '_OrgData', '_Person' ]
@EndUserText.label: 'Basic view for LCM User Contact Card'
@ObjectModel.representativeKey: 'ContactCardID'
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@AbapCatalog.preserveKey:true 
@ObjectModel.usageType.sizeCategory: #L
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API


define view I_LCMUserContactCard
  as select from I_LCMUserAddressAssignment as _User
  association [0..1] to I_LCMPerson             as _Person                   on  _Person.PersonNumber = $projection.Person
                                                                             and _Person.PersonNumber <> ''

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

  association [0..*] to I_AddressPhoneNumber    as _DefaultPhoneNumber       on  _DefaultPhoneNumber.AddressID       = $projection.AddressID
                                                                             and _DefaultPhoneNumber.Person          = $projection.Person
                                                                             and _DefaultPhoneNumber.PhoneNumberType = '1'

  association [0..1] to I_LCMContactCardFaxData as _DefaultFaxNumber         on  _DefaultFaxNumber.AddressID          = $projection.AddressID
                                                                             and _DefaultFaxNumber.Person             = $projection.Person
                                                                             and _DefaultFaxNumber.IsDefaultFaxNumber = 'X'

  association [0..*] to I_AddressPhoneNumber    as _DefaultMobilePhoneNumber on  _DefaultMobilePhoneNumber.AddressID       = $projection.AddressID
                                                                             and _DefaultMobilePhoneNumber.Person          = $projection.Person
                                                                             and _DefaultMobilePhoneNumber.PhoneNumberType = '3'

  association [0..*] to I_AddressEmailAddress   as _DefaultEmailAddress      on  _DefaultEmailAddress.AddressID             = $projection.AddressID
                                                                             and _DefaultEmailAddress.Person                = $projection.Person
                                                                             and _DefaultEmailAddress.IsDefaultEmailAddress = 'X'
{
      @Semantics.contact.type: #PERSON
      @ObjectModel.text.element: 'FullName'
      @Semantics.text: true
  key _User.ContactCardID,
      _User.Person,
      _User.BusinessPartnerUUID,

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

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

      @Semantics.name.fullName: true
      cast(coalesce( _Person.UserFullName , _User.FullName ) as  name_text )      as FullName,

      _User.AddressID,

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

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

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

      @Semantics.eMail.type:  #WORK
      @Semantics.eMail.address: true
      _DefaultEmailAddress.EmailAddress,

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

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

      cast( 'Creator' as contactcardrole )                                        as ContactCardRole,
      cast( 'User' as contactcardtype )                                           as ContactCardType,

      'User'                                                                      as ContactCardNavLinkSemanticObj,
      concat('User=', _User.UserID)                                               as ContactCardNavLinkQueryPart,

      //DCL0

      _DefaultFaxNumber,
      _OrgData,
      _Person

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESSEMAILADDRESS",
"I_ADDRESSPHONENUMBER",
"I_LCMCONTACTCARDFAXDATA",
"I_LCMCONTACTCARDORGDATA",
"I_LCMPERSON",
"I_LCMUSERADDRESSASSIGNMENT"
],
"ASSOCIATED":
[
"I_ADDRESSEMAILADDRESS",
"I_ADDRESSPHONENUMBER",
"I_LCMCONTACTCARDFAXDATA",
"I_LCMCONTACTCARDORGDATA",
"I_LCMPERSON"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/