P_WorkforcePerson

DDL: P_WORKFORCEPERSON SQL: PWFPERSON Type: view COMPOSITE

P_WorkforcePerson is a Composite CDS View in SAP S/4HANA. It reads from 3 data sources (I_BusinessPartner, P_WFPersonIdentification, P_HrRelation) and exposes 28 fields with key field Person. It has 7 associations to related views.

Data Sources (3)

SourceAliasJoin Type
I_BusinessPartner BP from
P_WFPersonIdentification PersIdentifier inner
P_HrRelation relt inner

Associations (7)

CardinalityTargetAliasCondition
[1..1] I_BusinessPartner _BusinessPartner $projection.Person = _BusinessPartner.BusinessPartner
[0..*] I_ServicePerformerToSuplr _ServicePerformerToSupplier $projection.Person = _ServicePerformerToSupplier.Person
[1..*] I_PersonWorkAgreement _PersonWorkAgreement $projection.Person = _PersonWorkAgreement.Person
[1..*] I_PersonWorkAgreement_1 _PersonWorkAgreement_1 $projection.Person = _PersonWorkAgreement_1.Person
[0..1] I_WorkplaceAddress _WorkplaceAddress $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
[0..*] I_BusinessPartnerToBPRole _BusinessPartnerToBPRole $projection.Person = _BusinessPartnerToBPRole.BusinessPartner
[0..1] I_BusinessUser _BusinessUser $projection.Person = _BusinessUser.BusinessPartner

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName PWFPERSON view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #L view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ObjectModel.representativeKey Person view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.private true view

Fields (28)

KeyFieldSource TableSource FieldDescription
KEY Person I_BusinessPartner BusinessPartner
PersonExternalID P_WFPersonIdentification BPIdentificationNumber
FirstName I_BusinessPartner FirstName
LastName I_BusinessPartner LastName
MiddleName I_BusinessPartner MiddleName
AdditionalLastName I_BusinessPartner AdditionalLastName
PersonFullName I_BusinessPartner PersonFullName
BusinessPartnerUUID I_BusinessPartner BusinessPartnerUUID
AuthorizationGroup I_BusinessPartner AuthorizationGroup
IsBusinessPurposeCompleted I_BusinessPartner IsBusinessPurposeCompleted
_BusinessPartner _BusinessPartner
_ServicePerformerToSupplier _ServicePerformerToSupplier
_PersonWorkAgreement _PersonWorkAgreement
_PersonWorkAgreement_1 _PersonWorkAgreement_1
_WorkplaceAddress _WorkplaceAddress
_BusinessPartnerToBPRole _BusinessPartnerToBPRole
_BusinessUser _BusinessUser
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
@AbapCatalog.sqlViewName: 'PWFPERSON'
@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #L
@AbapCatalog.compiler.compareFilter: true
//@EndUserText.label: 'Workforce Person Details'

//@Analytics.dataExtraction.enabled: true

//@Analytics.dataCategory: #DIMENSION

@AbapCatalog.preserveKey:true
//@Metadata.allowExtensions: true

@ObjectModel.representativeKey: 'Person'
//@Metadata.ignorePropagatedAnnotations:true

@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.private: true
define view P_WorkforcePerson
  as select from I_BusinessPartner        as BP
    inner join   P_HrRelation             as relt           on  BP.BusinessPartner              = relt.HumRsceRelatedObjectId
                                                            and relt.ObjectType                 = 'CP' //CP - Central person

                                                            and relt.HumRsceRelshpSpecification = 'B'
                                                            and relt.HumRsceRelationship        = '207' //207    Is identical to

                                                            and relt.RelatedObjectType          = 'BP'
                                                            and relt.EndDate                    = '99991231'

    inner join   P_WFPersonIdentification as PersIdentifier on BP.BusinessPartner = PersIdentifier.BusinessPartner
  association [1..1] to I_BusinessPartner         as _BusinessPartner            on $projection.Person = _BusinessPartner.BusinessPartner
  association [0..*] to I_ServicePerformerToSuplr as _ServicePerformerToSupplier on $projection.Person = _ServicePerformerToSupplier.Person
  association [1..*] to I_PersonWorkAgreement     as _PersonWorkAgreement        on $projection.Person = _PersonWorkAgreement.Person
  association [1..*] to I_PersonWorkAgreement_1   as _PersonWorkAgreement_1      on $projection.Person = _PersonWorkAgreement_1.Person
  association [0..1] to I_WorkplaceAddress        as _WorkplaceAddress           on $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
  association [0..*] to I_BusinessPartnerToBPRole as _BusinessPartnerToBPRole    on $projection.Person = _BusinessPartnerToBPRole.BusinessPartner
  association [0..1] to I_BusinessUser            as _BusinessUser               on $projection.Person = _BusinessUser.BusinessPartner

{
      @ObjectModel.text.element: 'PersonFullName'
  key BP.BusinessPartner                      as Person,
      PersIdentifier.BPIdentificationNumber   as PersonExternalID,
      BP.FirstName,
      BP.LastName,
      BP.MiddleName,
      BP.AdditionalLastName,
      @Semantics.text: true
      BP.PersonFullName,
      BP.BusinessPartnerUUID,
      BP.AuthorizationGroup,
      BP.IsBusinessPurposeCompleted,
      _BusinessPartner,
      _ServicePerformerToSupplier,
       @API.element.releaseState: #DEPRECATED
       @API.element.successor: '_PersonWorkAgreement_1'
      _PersonWorkAgreement,
      _PersonWorkAgreement_1,
      _WorkplaceAddress,
      _BusinessPartnerToBPRole,
      _BusinessUser,
      
   //Added only for DCL check

      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataControllerSet,                                                                                                                                                                      
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController1,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController2,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController3,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController4,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController5,                                                                                                                                                                       
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController6,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController7,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController8,
      @Consumption.hidden:true
      @UI.hidden:true 
      BP.DataController9,
      @Consumption.hidden:true
      @UI.hidden:true
      BP.DataController10
}
where
  BP.BusinessPartnerCategory = '1'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"P_HRRELATION",
"P_WFPERSONIDENTIFICATION"
],
"ASSOCIATED":
[
"I_BUSINESSPARTNER",
"I_BUSINESSPARTNERTOBPROLE",
"I_BUSINESSUSER",
"I_PERSONWORKAGREEMENT",
"I_PERSONWORKAGREEMENT_1",
"I_SERVICEPERFORMERTOSUPLR",
"I_WORKPLACEADDRESS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/