I_WorkforcePersonAddress
Workforce Person Address Details
I_WorkforcePersonAddress is a Composite CDS View that provides data about "Workforce Person Address Details" in SAP S/4HANA. It reads from 2 data sources (I_Businesspartneraddressusage, I_BusPartAddress) and exposes 40 fields with key fields WorkforcePersonExternalID, AddressNumber. It has 3 associations to related views. Part of development package VDM_WFD_WORK_FORCE.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_Businesspartneraddressusage | BPAddressUsage | inner |
| I_BusPartAddress | EmployeeAddress | inner |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_BPProtectedAddress | _BPProtectedAddress | $projection.BusinessPartner = _BPProtectedAddress.BusinessPartner and $projection.AddressNumber = _BPProtectedAddress.AddressID |
| [1..1] | I_BusinessPartner | _BP | _BP.BusinessPartner = EmployeeAddress.BusinessPartner |
| [1] | I_WorkforcePerson_1 | _WorkforcePerson | _WorkforcePerson.WorkforcePersonExternalID = $projection.WorkforcePersonExternalID |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #MANDATORY | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| VDM.viewType | #COMPOSITE | view | |
| EndUserText.label | Workforce Person Address Details | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.modelingPattern | #NONE | view |
Fields (40)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | WorkforcePersonExternalID | keymap | WorkforcePersonExternalID | |
| KEY | AddressNumber | I_BusPartAddress | AddressID | |
| BusinessPartner | keymap | BusinessPartner | ||
| clientNULLasvdm_v_start_dateasStartDate | ||||
| clientNULLasvdm_v_end_dateasEndDate | ||||
| Country | ||||
| PostalCode | ||||
| Region | ||||
| SecondaryRegion | ||||
| SecondaryRegionName | ||||
| TertiaryRegion | ||||
| TertiaryRegionName | ||||
| CityName | ||||
| DistrictName | ||||
| StreetPrefixName1 | ||||
| StreetPrefixName2 | ||||
| StreetName | ||||
| StreetSuffixName1 | ||||
| StreetSuffixName2 | ||||
| HouseNumber | ||||
| HouseNumberSupplementText | ||||
| Floor | ||||
| RoomNumber | ||||
| CareOfName | ||||
| POBoxPostalCode | ||||
| IsBusinessPurposeCompleted | _BP | IsBusinessPurposeCompleted | ||
| DataControllerSet | _BP | DataControllerSet | ||
| DataController1 | _BP | DataController1 | ||
| DataController2 | _BP | DataController2 | ||
| DataController3 | _BP | DataController3 | ||
| DataController4 | _BP | DataController4 | ||
| DataController5 | _BP | DataController5 | ||
| DataController6 | _BP | DataController6 | ||
| DataController7 | _BP | DataController7 | ||
| DataController8 | _BP | DataController8 | ||
| DataController9 | _BP | DataController9 | ||
| DataController10 | _BP | DataController10 | ||
| AuthorizationGroup | _BP | AuthorizationGroup | ||
| _BPProtectedAddress | _BPProtectedAddress | |||
| _WorkforcePerson | _WorkforcePerson |
@AccessControl.authorizationCheck:#MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Workforce Person Address Details'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #C,
sizeCategory: #XL,
dataClass: #MIXED
}
@ObjectModel.supportedCapabilities: [#CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET ]
@ObjectModel.modelingPattern:#NONE
@Consumption.dbHints:[ 'USE_HEX_PLAN' ]
define view entity I_WorkforcePersonAddress
as select distinct from I_WorkAssignmentKeyMapping as keymap
inner join I_BusPartAddress as EmployeeAddress on EmployeeAddress.BusinessPartner = keymap.BusinessPartner
inner join I_Businesspartneraddressusage as BPAddressUsage on BPAddressUsage.BusinessPartner = EmployeeAddress.BusinessPartner
and BPAddressUsage.AddressNumber = EmployeeAddress.AddressID
association [0..1] to I_BPProtectedAddress as _BPProtectedAddress on $projection.BusinessPartner = _BPProtectedAddress.BusinessPartner
and $projection.AddressNumber = _BPProtectedAddress.AddressID
association [1..1] to I_BusinessPartner as _BP on _BP.BusinessPartner = EmployeeAddress.BusinessPartner
association [1] to I_WorkforcePerson_1 as _WorkforcePerson on _WorkforcePerson.WorkforcePersonExternalID = $projection.WorkforcePersonExternalID
{
key keymap.WorkforcePersonExternalID,
key EmployeeAddress.AddressID as AddressNumber,
keymap.BusinessPartner,
cast (tstmp_to_dats( EmployeeAddress.ValidityStartDate,
abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' ) as vdm_v_start_date) as StartDate,
cast (tstmp_to_dats( EmployeeAddress.ValidityEndDate,
abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL' ) as vdm_v_end_date) as EndDate,
EmployeeAddress._AddressDefaultRepresentation.Country,
EmployeeAddress._AddressDefaultRepresentation.PostalCode,
EmployeeAddress._AddressDefaultRepresentation.Region,
EmployeeAddress._AddressDefaultRepresentation.SecondaryRegion,
EmployeeAddress._AddressDefaultRepresentation.SecondaryRegionName,
EmployeeAddress._AddressDefaultRepresentation.TertiaryRegion,
EmployeeAddress._AddressDefaultRepresentation.TertiaryRegionName,
EmployeeAddress._AddressDefaultRepresentation.CityName,
EmployeeAddress._AddressDefaultRepresentation.DistrictName,
EmployeeAddress._AddressDefaultRepresentation.StreetPrefixName1,
EmployeeAddress._AddressDefaultRepresentation.StreetPrefixName2,
EmployeeAddress._AddressDefaultRepresentation.StreetName,
EmployeeAddress._AddressDefaultRepresentation.StreetSuffixName1,
EmployeeAddress._AddressDefaultRepresentation.StreetSuffixName2,
EmployeeAddress._AddressDefaultRepresentation.HouseNumber,
EmployeeAddress._AddressDefaultRepresentation.HouseNumberSupplementText,
EmployeeAddress._AddressDefaultRepresentation.Floor,
EmployeeAddress._AddressDefaultRepresentation.RoomNumber,
EmployeeAddress._AddressDefaultRepresentation.CareOfName,
EmployeeAddress._AddressDefaultRepresentation.POBoxPostalCode,
@Semantics.booleanIndicator: true
_BP.IsBusinessPurposeCompleted,
@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,
_BP.AuthorizationGroup,
/* Associations */
_BPProtectedAddress,
_WorkforcePerson
}
where
BPAddressUsage.AddressUsage = 'XXDEFAULT'
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