I_BusPartAddress
Business Partner Address
I_BusPartAddress is a Basic CDS View (Dimension) that provides data about "Business Partner Address" in SAP S/4HANA. It reads from 1 data source (but020) and exposes 15 fields with key fields BusinessPartner, AddressID. It has 5 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| but020 | BusinessPartnerAddress | from |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Address | _Address | $projection.AddressID = _Address.AddressID |
| [1..1] | I_BusinessPartner | _BusinessPartner | $projection.BusinessPartner = _BusinessPartner.BusinessPartner |
| [0..1] | I_BPProtectedAddress | _BPProtectedAddress | $projection.BusinessPartner = _BPProtectedAddress.BusinessPartner and $projection.AddressID = _BPProtectedAddress.AddressID |
| [0..1] | I_Address_2 | _AddressDefaultRepresentation | $projection.AddressID = _AddressDefaultRepresentation.AddressID and _AddressDefaultRepresentation.AddressRepresentationCode is initial |
| [0..*] | I_Address_2 | _AddressInternationalVersions | $projection.AddressID = _AddressInternationalVersions.AddressID and _AddressInternationalVersions.AddressRepresentationCode is not initial |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IBUPAADDRESS | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_EXCLUDED | view | |
| VDM.viewType | #BASIC | view | |
| EndUserText.label | Business Partner Address | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ObjectModel.representativeKey | AddressID | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Metadata.allowExtensions | true | view |
Fields (15)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | BusinessPartner | but020 | partner | |
| KEY | AddressID | but020 | addrnumber | |
| AddressUUID | but020 | address_guid | ||
| ValidityStartDate | but020 | addr_valid_from | ||
| ValidityEndDate | but020 | addr_valid_to | ||
| AddressIDByExternalSystem | but020 | adext | ||
| BPTargetAddressID | but020 | move_addr | ||
| BPAddressMoveDateTime | but020 | addr_move_date | ||
| AuthorizationGroup | _BusinessPartner | AuthorizationGroup | ||
| IsBusinessPurposeCompleted | _BusinessPartner | IsBusinessPurposeCompleted | ||
| _BPProtectedAddress | _BPProtectedAddress | |||
| _BusinessPartner | _BusinessPartner | |||
| _AddressDefaultRepresentation | _AddressDefaultRepresentation | |||
| _AddressInternationalVersions | _AddressInternationalVersions | |||
| _Address | _Address |
@AbapCatalog.sqlViewName: 'IBUPAADDRESS'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@VDM.viewType: #BASIC
@EndUserText.label: 'Business Partner Address'
@AccessControl.privilegedAssociations: [ '_Address', '_AddressDefaultRepresentation' ]
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.supportedCapabilities:[#SQL_DATA_SOURCE,
#EXTRACTION_DATA_SOURCE,
#ANALYTICAL_DIMENSION,
#CDS_MODELING_ASSOCIATION_TARGET ]
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.representativeKey:'AddressID'
@Analytics: {
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
mapping:[
{
table: 'BUT020', role: #MAIN,
viewElement: ['BusinessPartner', 'AddressID'],
tableElement: ['partner','addrnumber']
},
{
table: 'BUT000', role: #LEFT_OUTER_TO_ONE_JOIN,
viewElement: ['BusinessPartner'],
tableElement: ['partner']
}
]
}
}
}
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions:true
define view I_BusPartAddress
as select from but020 as BusinessPartnerAddress
// inner join I_Address_2 as _AddressDefaultRepresentation on _AddressDefaultRepresentation.AddressID = BusinessPartnerAddress.addrnumber
// and _AddressDefaultRepresentation.AddressPersonID = BUT000.persnumber
// and _AddressDefaultRepresentation.AddressRepresentationCode is initial
association [1..1] to I_Address as _Address on $projection.AddressID = _Address.AddressID
association [1..1] to I_BusinessPartner as _BusinessPartner on $projection.BusinessPartner = _BusinessPartner.BusinessPartner
association [0..1] to I_BPProtectedAddress as _BPProtectedAddress on $projection.BusinessPartner = _BPProtectedAddress.BusinessPartner
and $projection.AddressID = _BPProtectedAddress.AddressID
association [0..1] to I_Address_2 as _AddressDefaultRepresentation on $projection.AddressID = _AddressDefaultRepresentation.AddressID
// and $projection.PersonNumber = _AddressDefaultRepresentation.AddressPersonID
and _AddressDefaultRepresentation.AddressRepresentationCode is initial
association [0..*] to I_Address_2 as _AddressInternationalVersions on $projection.AddressID = _AddressInternationalVersions.AddressID
and _AddressInternationalVersions.AddressRepresentationCode is not initial
{
@ObjectModel.foreignKey.association: '_BusinessPartner'
key BusinessPartnerAddress.partner as BusinessPartner,
key BusinessPartnerAddress.addrnumber as AddressID,
BusinessPartnerAddress.address_guid as AddressUUID,
BusinessPartnerAddress.addr_valid_from as ValidityStartDate,
BusinessPartnerAddress.addr_valid_to as ValidityEndDate,
BusinessPartnerAddress.adext as AddressIDByExternalSystem, // added in 1802
BusinessPartnerAddress.move_addr as BPTargetAddressID,
BusinessPartnerAddress.addr_move_date as BPAddressMoveDateTime,
_BusinessPartner.AuthorizationGroup,
@Semantics.booleanIndicator: true
_BusinessPartner.IsBusinessPurposeCompleted,
_BPProtectedAddress,
_BusinessPartner,
_AddressDefaultRepresentation,
_AddressInternationalVersions,
_Address
}
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