I_BusPartAddress

DDL: I_BUSPARTADDRESS SQL: IBUPAADDRESS Type: view BASIC

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)

SourceAliasJoin Type
but020 BusinessPartnerAddress from

Associations (5)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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

}