P_WorkforcePerson
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)
| Source | Alias | Join Type |
|---|---|---|
| I_BusinessPartner | BP | from |
| P_WFPersonIdentification | PersIdentifier | inner |
| P_HrRelation | relt | inner |
Associations (7)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA