I_PMContactCardEmployee

DDL: I_PMCONTACTCARDEMPLOYEE SQL: IPMCONTCARDEMP Type: view COMPOSITE

Employee

I_PMContactCardEmployee is a Composite CDS View that provides data about "Employee" in SAP S/4HANA. It reads from 1 data source (I_PersonWorkAgreement_1) and exposes 36 fields with key field PersonnelNumber. It has 3 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_PersonWorkAgreement_1 I_PersonWorkAgreement from

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_WorkforcePersonImageURL _WorkforcePersonImageURL _WorkforcePersonImageURL.Person = I_PersonWorkAgreement.Person
[0..1] I_WorkplaceAddress _WorkplaceAddress I_BusinessPartner.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
[0..1] I_BusinessUser _BusinessUser I_PersonWorkAgreement.Person = _BusinessUser.BusinessPartner

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IPMCONTCARDEMP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
VDM.viewType #COMPOSITE view
EndUserText.label Employee view
ObjectModel.representativeKey PersonnelNumber 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
AccessControl.personalData.blocking #REQUIRED view

Fields (36)

KeyFieldSource TableSource FieldDescription
KEY PersonnelNumber
EmployeeFullName I_BusinessPartner PersonFullName
FirstName I_BusinessPartner FirstName
FamilyName I_BusinessPartner LastName
FormOfAddress I_BusinessPartner FormOfAddress
Job
JobName
CompanyCode
CompanyCodeName
OrganizationalUnit
OrganizationalUnitName
PhoneNumber _WorkplaceAddress PhoneNumber
NormalizedPhoneNumber _WorkplaceAddress NormalizedPhoneNumber
MobilePhoneNumber _WorkplaceAddress MobilePhoneNumber Mobile Phone Number
MblNormalizedPhoneNumber _WorkplaceAddress MblNormalizedPhoneNumber Complete Mobile Phone Number
DefaultEmailAddress _WorkplaceAddress DefaultEmailAddress
Building _WorkplaceAddress Building
RoomNumber _WorkplaceAddress RoomNumber
EmployeeImageURL _WorkforcePersonImageURL WorkforcePersonImageURL
AuthorizationGroup I_BusinessPartner AuthorizationGroup
IsBusinessPurposeCompleted I_BusinessPartner IsBusinessPurposeCompleted
BusinessPartnerUUID I_BusinessPartner BusinessPartnerUUID
AddressID
UserID _BusinessUser UserID
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
_WorkplacePhysicalAddress
@AbapCatalog.sqlViewName: 'IPMCONTCARDEMP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Employee'
@ObjectModel.representativeKey : 'PersonnelNumber'

@Search.searchable: true

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

@AccessControl.personalData.blocking: #REQUIRED

define view I_PMContactCardEmployee
  as select from           I_PersonWorkAgreement_1 as I_PersonWorkAgreement
    left outer to one join I_BusinessPartner on  I_PersonWorkAgreement.Person              = I_BusinessPartner.BusinessPartner
                                             and I_BusinessPartner.BusinessPartnerCategory = '1'
  association [0..1] to I_WorkforcePersonImageURL as _WorkforcePersonImageURL on _WorkforcePersonImageURL.Person = I_PersonWorkAgreement.Person
  association [0..1] to I_WorkplaceAddress        as _WorkplaceAddress        on I_BusinessPartner.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
  association [0..1] to I_BusinessUser            as _BusinessUser            on I_PersonWorkAgreement.Person = _BusinessUser.BusinessPartner
{
      @ObjectModel.text.element:  [ 'EmployeeFullName' ]
  key cast( I_PersonWorkAgreement.PersonWorkAgreement as co_pernr )                             as PersonnelNumber,
      @Semantics.text: true
      @Search.defaultSearchElement: true
      @Search.ranking: #HIGH
      @Search.fuzzinessThreshold: 0.8
      @Semantics.name.fullName: true
      I_BusinessPartner.PersonFullName                                                          as EmployeeFullName,
      @Semantics.name.givenName: true
      @Search.defaultSearchElement: true
      @Search.ranking: #HIGH
      @Search.fuzzinessThreshold: 0.8
      I_BusinessPartner.FirstName,
      @Semantics.name.familyName: true
      @Search.defaultSearchElement: true
      @Search.ranking: #HIGH
      @Search.fuzzinessThreshold: 0.8
      I_BusinessPartner.LastName                                                                as FamilyName,
      I_BusinessPartner.FormOfAddress,

      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date ).Job,
      @Semantics.name.jobTitle: true
      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date )._PersonWorkAgrmtJobText[ 1: Language = $session.system_language ].JobName,

      @ObjectModel.text.element:  [ 'CompanyCodeName' ]
      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date ).CompanyCode,
      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date )._CompanyCode[ 1: Language = $session.system_language ].CompanyCodeName,

      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date ).OrganizationalUnit,
      @Semantics.organization.name: true
      _PersonWrkAgrmtForKeyDate( P_KeyDate: $session.system_date )._OrganizationalUnitName[ 1: Language = $session.system_language ].OrganizationalUnitName,
      @Semantics.telephone.type:  [ #WORK  ]
      _WorkplaceAddress.PhoneNumber,
      _WorkplaceAddress.NormalizedPhoneNumber,
      @Semantics.telephone.type:  [ #CELL  ]
      @EndUserText.label: 'Mobile Phone Number'
      _WorkplaceAddress.MobilePhoneNumber,
      @EndUserText.label: 'Complete Mobile Phone Number'
      _WorkplaceAddress.MblNormalizedPhoneNumber,

      @Semantics: {
        eMail.address: true,
        eMail.type:  [ #WORK ]
      }
      _WorkplaceAddress.DefaultEmailAddress,

      _WorkplaceAddress.Building,
      _WorkplaceAddress.RoomNumber,

      @UI.hidden:  true
      @Semantics.imageUrl: true
      @Semantics.contact: {
        photo: true
      }
      _WorkforcePersonImageURL.WorkforcePersonImageURL                                          as EmployeeImageURL,
      @Consumption.hidden:  true
      I_BusinessPartner.AuthorizationGroup,
      @Consumption.hidden: true
      I_BusinessPartner.IsBusinessPurposeCompleted,
      @Consumption.hidden: true
      I_BusinessPartner.BusinessPartnerUUID,
      @Consumption.hidden: true
      I_BusinessPartner._CurrentDefaultAddress.AddressID,

      @UI.hidden: true
      _BusinessUser.UserID,

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


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

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


      -- used by CL_EAM_NTF_CREATE_DPC_EXT
      @UI.hidden: true
      _WorkplaceAddress,
      @UI.hidden: true
      I_BusinessPartner._CurrentDefaultAddress._Address as _WorkplacePhysicalAddress
}
--where
--  I_Employment.IsMainEmployment = 'X'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BPCURRENTDEFAULTADDRESS",
"I_BUSINESSPARTNER",
"I_BUSINESSUSER",
"I_COMPANYCODE",
"I_ORGANIZATIONALUNITTEXT",
"I_PERSONWORKAGREEMENT_1",
"I_PERSONWORKAGRMTFORKEYDATE",
"I_PERSONWORKAGRMTJOBTEXT",
"I_WORKFORCEPERSONIMAGEURL",
"I_WORKPLACEADDRESS"
],
"ASSOCIATED":
[
"I_ADDRESS",
"I_BUSINESSUSER",
"I_WORKFORCEPERSONIMAGEURL",
"I_WORKPLACEADDRESS"
],
"BASE":
[
"I_BPCURRENTDEFAULTADDRESS"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/