I_WorkforcePerson

DDL: I_WORKFORCEPERSON SQL: IWFPERSON Type: view COMPOSITE

Workforce Person Details

I_WorkforcePerson is a Composite CDS View (Dimension) that provides data about "Workforce Person Details" in SAP S/4HANA. It reads from 3 data sources (I_BusinessPartner, P_WFPersonIdentification, I_HrRelation) and exposes 29 fields with key field Person. It has 8 associations to related views.

Data Sources (3)

SourceAliasJoin Type
I_BusinessPartner BP from
P_WFPersonIdentification PersIdentifier inner
I_HrRelation relt inner

Associations (8)

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
[0..1] I_BusinessUserBasic _BusinessUserBasic $projection.Person = _BusinessUserBasic.BusinessPartner

Annotations (16)

NameValueLevelField
AbapCatalog.sqlViewName IWFPERSON 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
EndUserText.label Workforce Person Details view
Analytics.dataExtraction.enabled true view
Analytics.dataCategory #DIMENSION view
AbapCatalog.preserveKey true view
Metadata.allowExtensions true view
ObjectModel.representativeKey Person view
Metadata.ignorePropagatedAnnotations true view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view

Fields (29)

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
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
_BusinessPartner _BusinessPartner
_ServicePerformerToSupplier _ServicePerformerToSupplier
_PersonWorkAgreement _PersonWorkAgreement
_PersonWorkAgreement_1 _PersonWorkAgreement_1
_WorkplaceAddress _WorkplaceAddress
_BusinessPartnerToBPRole _BusinessPartnerToBPRole
_BusinessUser _BusinessUser
_BusinessUserBasic _BusinessUserBasic
@AbapCatalog.sqlViewName: 'IWFPERSON'
@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
@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE,
                                     #CDS_MODELING_DATA_SOURCE,
                                     #CDS_MODELING_ASSOCIATION_TARGET,
                                     #ANALYTICAL_DIMENSION,
                                     #EXTRACTION_DATA_SOURCE]

// @AccessControl.personalData.blockingIndicator: 'IsBusinessPurposeCompleted' 

define view I_WorkforcePerson
  as select from I_BusinessPartner        as BP
    inner join   I_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
  association [0..1] to I_BusinessUserBasic       as _BusinessUserBasic          on $projection.Person = _BusinessUserBasic.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,
      
  /////// Start of Datacontroller 10+1 fields -  Not to be consumed by any other views//////////      

        
      @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,
        
 ////////////// End of Datacontroller 10+1 fields////////// 

      _BusinessPartner,
      _ServicePerformerToSupplier,
       @API.element.releaseState: #DEPRECATED
       @API.element.successor: '_PersonWorkAgreement_1'
      _PersonWorkAgreement,
      _PersonWorkAgreement_1,
      _WorkplaceAddress,
      _BusinessPartnerToBPRole,
       @API.element.releaseState: #DEPRECATED
       @API.element.successor: '_BusinessUserBasic'      
      _BusinessUser,
      _BusinessUserBasic
}
where
  BP.BusinessPartnerCategory = '1'