I_PMContactCardUser

DDL: I_PMCONTACTCARDUSER SQL: IPMCONTACTCARD Type: view BASIC

Contact Card User

I_PMContactCardUser is a Basic CDS View that provides data about "Contact Card User" in SAP S/4HANA. It reads from 2 data sources (I_BusinessPartner, usr21) and exposes 34 fields. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_BusinessPartner _BusinessPartner inner
usr21 _User from

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_PMContactCardEmployee _PMContactCardEmployee $projection.UserID = _PMContactCardEmployee.UserID

Annotations (11)

NameValueLevelField
EndUserText.label Contact Card User view
VDM.viewType #BASIC view
AbapCatalog.sqlViewName IPMCONTACTCARD view
AccessControl.authorizationCheck #CHECK view
ObjectModel.representativeKey UserID view
AccessControl.personalData.blocking #REQUIRED view
Search.searchable true view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view

Fields (34)

KeyFieldSource TableSource FieldDescription
bnameasUserID
name_firstasFirstName
LastName _UserInfo name_last
FullName _UserInfo name_text
EmailAddress _UserEmail smtp_addr
OrganizationalUnit _UserInfoAddress department
FunctionalTitleName _UserInfoAddress function
Company _UserAddress name1
InternationalPhoneNumber _UserTelephone telnr_long
InternationalMobilePhoneNumber _UserMobile telnr_long
FormOfAddress _UserInfo title_aca1
StreetName _UserAddress street
HouseNumber _UserAddress house_num1
Country _UserAddress country
PostalCode _UserAddress post_code1
CityName _UserAddress city1
Building _UserAddress building
Floor _UserAddress floor
RoomNumber _UserAddress roomnumber
Region _UserAddress region
AuthorizationGroup I_BusinessPartner AuthorizationGroup
IsBusinessPurposeCompleted I_BusinessPartner IsBusinessPurposeCompleted
DataControllerSet I_BusinessPartner DataControllerSet
DataController1 I_BusinessPartner DataController1
DataController2 I_BusinessPartner DataController2
DataController3 I_BusinessPartner DataController3
DataController4 I_BusinessPartner DataController4
DataController5 I_BusinessPartner DataController5
DataController6 I_BusinessPartner DataController6
DataController7 I_BusinessPartner DataController7
DataController8 I_BusinessPartner DataController8
DataController9 I_BusinessPartner DataController9
DataController10 I_BusinessPartner DataController10
_PMContactCardEmployee _PMContactCardEmployee
@EndUserText.label: 'Contact Card User'
@VDM.viewType: #BASIC
@AbapCatalog.sqlViewName: 'IPMCONTACTCARD'
@AccessControl.authorizationCheck: #CHECK
@ObjectModel.representativeKey: 'UserID'
@AccessControl.personalData.blocking: #REQUIRED

@Search.searchable: true

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L

define view I_PMContactCardUser
  as
  // SAP User Detail Information

  select from              usr21              as _User
  // User Name/Address Key Assignment

    inner join             I_BusinessPartner  as _BusinessPartner on _BusinessPartner.PersonNumber = _User.persnumber
  // Persons (Business Address Services)

    left outer to one join adrp               as _UserInfo        on  _UserInfo.persnumber = _User.persnumber
                                                                  and _UserInfo.nation     = ''
  // Person/Address Assignment (Business Address Services)

    left outer to one join adcp               as _UserInfoAddress on  _UserInfoAddress.addrnumber = _User.addrnumber
                                                                  and _UserInfoAddress.persnumber = _User.persnumber
                                                                  and _UserInfoAddress.nation     = ''
  // Addresses (Business Address Services)

    left outer to one join adrc               as _UserAddress     on  _UserAddress.addrnumber = _User.addrnumber
                                                                  and _UserAddress.nation     = ''
  // E-Mail Addresses (Business Address Services)

    left outer to one join adr6               as _UserEmail       on  _UserEmail.persnumber = _User.persnumber
                                                                  and _UserEmail.addrnumber = _User.addrnumber
                                                                  and _UserEmail.flgdefault = 'X'
    left outer to one join P_MobileNumbers    as _UserMobile      on  _UserMobile.persnumber = _User.persnumber
                                                                  and _UserMobile.addrnumber = _User.addrnumber
    left outer to one join P_TelephoneNumbers as _UserTelephone   on  _UserTelephone.persnumber = _User.persnumber
                                                                  and _UserTelephone.addrnumber = _User.addrnumber
  association [0..1] to I_PMContactCardEmployee as _PMContactCardEmployee on $projection.UserID = _PMContactCardEmployee.UserID
{
      @ObjectModel.text.element:  [ 'FullName' ]
      @Search.defaultSearchElement: true
      --@UI.hidden: true
  key _User.bname                 as UserID,
      --'UserAlias': see BCP 1770321887
      @Semantics.text: true
      @Semantics.name.givenName: true
      @Search:{ranking: #HIGH, fuzzinessThreshold: 0.8, defaultSearchElement: true}
      _UserInfo.name_first        as FirstName,
      @Semantics.text: true
      @Semantics.name.familyName: true
      @Search:{ranking: #HIGH, fuzzinessThreshold: 0.8, defaultSearchElement: true}
      _UserInfo.name_last         as LastName,
      @Semantics.text: true
      @Search.defaultSearchElement: true
      @Search.ranking: #HIGH
      @Search.fuzzinessThreshold: 0.7
      @Semantics.name.fullName: true
      _UserInfo.name_text         as FullName,
      @Semantics.text: true
      @Semantics: {
      eMail.address: true,
      eMail.type:  [ #WORK ]
      }
      @Search:{ranking: #HIGH, fuzzinessThreshold: 0.8, defaultSearchElement: true}
      _UserEmail.smtp_addr        as EmailAddress,
      @Semantics.organization.name: true
      _UserInfoAddress.department as OrganizationalUnit,
      @Semantics.name.jobTitle: true
      _UserInfoAddress.function   as FunctionalTitleName,

      _UserAddress.name1          as Company,
      @Semantics.telephone.type:  [ #WORK  ]
      _UserTelephone.telnr_long   as InternationalPhoneNumber,
      @Semantics.telephone.type:  [ #CELL  ]
      _UserMobile.telnr_long      as InternationalMobilePhoneNumber,
      _UserInfo.title_aca1        as FormOfAddress,
      _UserAddress.street         as StreetName,
      _UserAddress.house_num1     as HouseNumber,
      _UserAddress.country        as Country,
      _UserAddress.post_code1     as PostalCode,
      _UserAddress.city1          as CityName,
      _UserAddress.building       as Building,
      _UserAddress.floor          as Floor,
      _UserAddress.roomnumber     as RoomNumber,
      _UserAddress.region         as Region,

      //_PMContactCardEmployee.PersonnelNumber,

      @Consumption.hidden: true
      _BusinessPartner.AuthorizationGroup,
      @Consumption.hidden: true
      _BusinessPartner.IsBusinessPurposeCompleted,

       /////// Start of Datacontroller 10+1 fields -  Not to be consumed by any other views//////////


      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataControllerSet,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController1,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController2,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController3,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController4,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController5,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController6,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController7,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController8,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController9,
      @Consumption.hidden:true
      @UI.hidden:true
      _BusinessPartner.DataController10,

 ////////////// End of Datacontroller 10+1 fields//////////


      _PMContactCardEmployee
}
where
      _User.idadtype   >= '02' // actual identities, i.e. with business user

  and _User.persnumber <> ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"P_MOBILENUMBERS",
"P_TELEPHONENUMBERS",
"ADCP",
"ADR6",
"ADRC",
"ADRP",
"USR21"
],
"ASSOCIATED":
[
"I_PMCONTACTCARDEMPLOYEE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/