C_EntProjProfnlSrvcTeamMbrVH

DDL: C_ENTPROJPROFNLSRVCTEAMMBRVH Type: view_entity CONSUMPTION Package: ODATA_PPM_PRO_CTRL_PROFNL_SRVC

Professional Service Project Members

C_EntProjProfnlSrvcTeamMbrVH is a Consumption CDS View that provides data about "Professional Service Project Members" in SAP S/4HANA. It reads from 3 data sources (I_BusinessPartner_to_BP_Role, I_BusinessPartner, I_WorkforcePerson_1) and exposes 23 fields with key fields BusinessPartner, ValidTo. Part of development package ODATA_PPM_PRO_CTRL_PROFNL_SRVC.

Data Sources (3)

SourceAliasJoin Type
I_BusinessPartner_to_BP_Role BupaToBPRole inner
I_BusinessPartner BusinessPartner inner
I_WorkforcePerson_1 Worker from

Annotations (13)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Professional Service Project Members view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.representativeKey BusinessPartner view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.dataCategory #VALUE_HELP view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.viewType #CONSUMPTION view
Search.searchable true view
Consumption.ranked true view
Metadata.allowExtensions true view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY BusinessPartner I_WorkforcePerson_1 BusinessPartner
KEY ValidTo I_BusinessPartner_to_BP_Role ValidTo
ValidFrom I_BusinessPartner_to_BP_Role ValidFrom
PersonFullName I_WorkforcePerson_1 FullName
FirstName I_WorkforcePerson_1 FirstName
LastName I_WorkforcePerson_1 LastName
Building
RoomNumber _WorkplaceAddress RoomNumber
NormalizedPhoneNumber _WorkplaceAddress NormalizedPhoneNumber
DefaultEmailAddress _WorkplaceAddress DefaultEmailAddress
AuthorizationGroup I_WorkforcePerson_1 AuthorizationGroup
IsBusinessPurposeCompleted I_WorkforcePerson_1 IsBusinessPurposeCompleted
DataControllerSet I_WorkforcePerson_1 DataControllerSet
DataController1 I_WorkforcePerson_1 DataController1
DataController2 I_WorkforcePerson_1 DataController2
DataController3 I_WorkforcePerson_1 DataController3
DataController4 I_WorkforcePerson_1 DataController4
DataController5 I_WorkforcePerson_1 DataController5
DataController6 I_WorkforcePerson_1 DataController6
DataController7 I_WorkforcePerson_1 DataController7
DataController8 I_WorkforcePerson_1 DataController8
DataController9 I_WorkforcePerson_1 DataController9
DataController10 I_WorkforcePerson_1 DataController10
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Professional Service Project Members'
@Metadata.ignorePropagatedAnnotations: true

@ObjectModel: {
   semanticKey:       [ 'PersonFullName' ],
   representativeKey: 'BusinessPartner',
   usageType: {
     serviceQuality:  #C,
     dataClass:       #TRANSACTIONAL,
     sizeCategory:    #XL
   },
   dataCategory: #VALUE_HELP
}

@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType: #CONSUMPTION
@Search.searchable: true
@Consumption.ranked: true
@Metadata.allowExtensions: true

@Consumption.dbHints:[ 'USE_HEX_PLAN' ]

define view entity C_EntProjProfnlSrvcTeamMbrVH
  as select from           I_WorkforcePerson_1          as Worker
    inner join             I_BusinessPartner_to_BP_Role as BupaToBPRole      on BupaToBPRole.BusinessPartner       = Worker.BusinessPartner
                                                                             and(
                                                                               BupaToBPRole.BusinessPartnerRole    = 'BUP003' // Employee role

                                                                               or BupaToBPRole.BusinessPartnerRole = 'BBP005' // Contingent Worker

                                                                             )
    inner join             I_BusinessPartner            as BusinessPartner   on Worker.BusinessPartner = BusinessPartner.BusinessPartner

    left outer to one join I_WorkplaceAddress           as _WorkplaceAddress on BusinessPartner.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
{
       @Search.defaultSearchElement: true
       @Search.ranking: #HIGH
       @Search.fuzzinessThreshold: 0.8
       @ObjectModel.text.element:  [ 'PersonFullName' ]
  key  Worker.BusinessPartner,
  key  BupaToBPRole.ValidTo,
       BupaToBPRole.ValidFrom,

       @Search.defaultSearchElement: true
       @Search.ranking: #LOW
       @Search.fuzzinessThreshold: 0.8
       @Semantics: { name: { fullName: true }, text: true }
       Worker.FullName                                                as PersonFullName,

       @Search.defaultSearchElement: true
       @Search.ranking: #LOW
       @Search.fuzzinessThreshold: 0.8
       Worker.FirstName,

       @Search.defaultSearchElement: true
       @Search.ranking: #LOW
       @Search.fuzzinessThreshold: 0.8
       Worker.LastName,

       cast (_WorkplaceAddress.Building as ad_bldng ) as Building,

       _WorkplaceAddress.RoomNumber,

       @Semantics: {telephone : { type: [ #WORK, #PREF ]}}
       _WorkplaceAddress.NormalizedPhoneNumber,

       @Semantics : {eMail.address: true}
       _WorkplaceAddress.DefaultEmailAddress,

       @Consumption.hidden: true
       Worker.AuthorizationGroup,

       @Consumption.hidden: true
       @Semantics.booleanIndicator
       Worker.IsBusinessPurposeCompleted,

       @Consumption.hidden: true
       Worker.DataControllerSet,

       @Consumption.hidden: true
       Worker.DataController1,

       @Consumption.hidden: true
       Worker.DataController2,

       @Consumption.hidden: true
       Worker.DataController3,

       @Consumption.hidden: true
       Worker.DataController4,

       @Consumption.hidden: true
       Worker.DataController5,

       @Consumption.hidden: true
       Worker.DataController6,

       @Consumption.hidden: true
       Worker.DataController7,

       @Consumption.hidden: true
       Worker.DataController8,

       @Consumption.hidden: true
       Worker.DataController9,

       @Consumption.hidden: true
       Worker.DataController10
}