I_ADDRESS

CDS View

Address

I_ADDRESS is a CDS View in S/4HANA. Address. It contains 67 fields. 18 CDS views read from this table.

CDS Views using this table (18)

ViewTypeJoinVDMDescription
A_BusinessPartnerAddress view inner BASIC Address
C_CorrespondenceAddress view from CONSUMPTION Address with printable lines for an address label
C_CustomerAddressIDValueHelp view left_outer CONSUMPTION Customer Address ID Value Help
C_ProcmtHubRefDeliveryAddrIDVH view from CONSUMPTION Reference Delivery Addr ID Value Help from Connected System
C_PurOrdMaintainUserDetail view left_outer CONSUMPTION PO Maintenance: User Detail
C_SlsDocOfOneTimeCustVH_F8712 view_entity left_outer CONSUMPTION Sales Document of One Time Customer
C_SupplierAddressIDValueHelp view left_outer CONSUMPTION Supplier Address ID Value Help
FAC_AUDIT_Z3_SDPARTNER view inner Sales Document Partner
FAC_DART_Z3_C_BP_ADDRESS view inner Business Partner Address for Customer
FAC_DART_Z3_S_BP_ADDRESS view inner Business Partner Address for Supplier
I_BusinessPartnerAddressDsp view_entity inner BASIC Business Partner Address Display
I_BusinessPartnerAddressGov view inner COMPOSITE Business Partner Address (Governance)
I_EmployeeHomeAddress view inner BASIC Employee Home Address
I_PT_SAFTDeliveryOneTimeCust view left_outer COMPOSITE SAF-T PT Billing One Time Custmer
P_Cpbupafaxall view inner CONSUMPTION Business Partner Emails from all sources
P_PurOrdMaintainHeaderActAddr view left_outer CONSUMPTION PO Maintenance: Address of Purchase Order Header
P_PurOrdMaintainItemActAddr view left_outer CONSUMPTION PO Maintenance: Purchase Order Item Address (Active)
P_Supplier_Fs view left_outer BASIC Private Factsheet - Supplier

Fields (67)

KeyField CDS FieldsUsed in Views
KEY AddressID AddressID 4
KEY Branch Branch 2
KEY CompanyCode CompanyCode 2
AdditionalStreetPrefixName AdditionalStreetPrefixName 7
AdditionalStreetSuffixName AdditionalStreetSuffixName 5
AddressCreatedByUser AddressCreatedByUser 2
AddressObjectType AddressObjectType 2
AddressRepresentationCode AddressRepresentationCode 2
AddressTimeZone AddressTimeZone 4
BranchLongCode BranchLongCode 2
Building Building 5
BusinessPartnerName1 AddressName,BusinessPartnerName1 5
BusinessPartnerName2 BusinessPartnerName2 4
BusinessPartnerName3 BusinessPartnerName3 3
BusinessPartnerName4 BusinessPartnerName4 3
BusinessPlaceName BusinessPlaceName 1
CareOfName CareOfName 5
CityCode CityCode 3
CityFileTestStatus CityFileTestStatus 1
CityName CityDisplayName,CityName 12
CitySearch CitySearch 2
CompanyPostalCode CompanyPostalCode 4
CorrespondenceLanguage CorrespondenceLanguage,Language 5
Country Country,CountryForDisplay 12
County County 3
CountyCode CountyCode 1
DeliveryServiceNumber DeliveryServiceNumber 4
DeliveryServiceTypeCode DeliveryServiceTypeCode 4
District District,DistrictName 7
FaxNumber FaxNumber 2
Floor Floor 5
FormOfAddress FormOfAddress 4
FullName FullName 3
HomeCityName HomeCityName 7
HouseNumber HouseNumber 11
HouseNumberSupplementText HouseNumberSupplementText 5
Nation Nation 2
OrganizationName1 OrganizationName1 1
OrganizationName2 OrganizationName2 1
OrganizationName3 OrganizationName3 1
OrganizationName4 OrganizationName4 1
Person Person 3
PhoneNumber PhoneNumber 5
POBox POBox 5
POBoxDeviatingCityName POBoxDeviatingCityName 4
POBoxDeviatingCountry POBoxDeviatingCountry 4
POBoxDeviatingRegion POBoxDeviatingRegion 4
POBoxIsWithoutNumber POBoxIsWithoutNumber 4
POBoxLobbyName POBoxLobbyName 4
POBoxPostalCode POBoxPostalCode 5
PostalCode PostalCode,PostalCodeForDisplay 12
PrfrdCommMediumType PrfrdCommMediumType 4
Region Region 10
RoomNumber RoomNumber 5
SearchTerm1 SearchTerm1 3
SearchTerm2 SearchTerm2 1
Street Street 2
StreetName StreetDisplayName,StreetName 12
StreetPrefixName StreetPrefixName 7
StreetSearch StreetSearch 2
StreetSuffixName StreetSuffixName 7
TaxJurisdiction TaxJurisdiction 5
TaxPayerName TaxPayerName 1
TownshipCode TownshipCode 1
TownshipName TownshipName 1
TransportZone TransportZone 5
VATRegistration VATRegistration 2
@AbapCatalog.sqlViewName: 'IADDRESS'
@AbapCatalog.preserveKey:true 
@EndUserText.label: 'Address'
@Analytics : {dataCategory: #DIMENSION}
@AccessControl.authorizationCheck:#PRIVILEGED_ONLY
@AccessControl.privilegedAssociations: ['_DefaultEmailAddress']
@VDM.viewType: #BASIC
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #B
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.representativeKey: 'AddressID'
@Metadata.allowExtensions:true

 // protected by DCL0

 
define view I_Address
  as select from    adrc
  -- Need the person number if this is a person address to get the communication data
    left outer join adcp on  adcp.addrnumber = adrc.addrnumber
                         and adcp.date_from  = '00010101'
                         and adcp.nation     = ' '
                         and adcp.comp_pers  = 'P'


  association [0..1]

                     to I_AddressPhoneNumber  as _DefaultPhoneNumber       on  _DefaultPhoneNumber.AddressID       = $projection.AddressID
                                                                           and ( _DefaultPhoneNumber.Person          = $projection.Person
                                                                            or   _DefaultPhoneNumber.Person          = ' ' )
                                                                           and _DefaultPhoneNumber.PhoneNumberType = '1'
                                                                           
  association [0..1] to I_AddressPhoneNumber  as _DefaultPrivatePhoneNumber on  _DefaultPrivatePhoneNumber.AddressID      = $projection.AddressID
                                                                           and _DefaultPrivatePhoneNumber.Person          = $projection.Person
                                                                           and _DefaultPrivatePhoneNumber.PhoneNumberType = '1'                                                                   

  association [0..1] to I_AddressPhoneNumber as _DefaultCorporatePhoneNumber on  _DefaultCorporatePhoneNumber.AddressID     = $projection.AddressID
                                                                           and _DefaultCorporatePhoneNumber.Person          = ' ' 
                                                                           and _DefaultCorporatePhoneNumber.PhoneNumberType = '1' 
                                                                           
  association [0..1] to I_AddressPhoneNumber  as _DefaultMobilePhoneNumber on  _DefaultMobilePhoneNumber.AddressID       = $projection.AddressID
                                                                           and ( _DefaultMobilePhoneNumber.Person          = $projection.Person
                                                                            or   _DefaultMobilePhoneNumber.Person          = ' ' )
                                                                           and _DefaultMobilePhoneNumber.PhoneNumberType = '3'

  association [0..1] to I_AddressPhoneNumber  as _DefaultPvtMobilePhoneNumber on  _DefaultPvtMobilePhoneNumber.AddressID       = $projection.AddressID
                                                                           and _DefaultPvtMobilePhoneNumber.Person          = $projection.Person
                                                                           and _DefaultPvtMobilePhoneNumber.PhoneNumberType = '3'
                                                                                                                                                      
  association [0..1] to I_AddressPhoneNumber  as _DefaultCorpMobilePhoneNumber on  _DefaultCorpMobilePhoneNumber.AddressID       = $projection.AddressID
                                                                           and  _DefaultCorpMobilePhoneNumber.Person          = ' ' 
                                                                           and  _DefaultCorpMobilePhoneNumber.PhoneNumberType = '3'
  
  
  association [0..1] to I_AddressFaxNumber    as _DefaultFaxNumber         on  _DefaultFaxNumber.AddressID          = $projection.AddressID
                                                                           and ( _DefaultFaxNumber.Person             = $projection.Person
                                                                            or   _DefaultFaxNumber.Person          = ' ' )
                                                                           and _DefaultFaxNumber.IsDefaultFaxNumber = 'X'

  association [0..1] to I_AddressFaxNumber    as _DefaultPrivateFaxNumber   on  _DefaultPrivateFaxNumber.AddressID          = $projection.AddressID
                                                                           and _DefaultPrivateFaxNumber.Person             = $projection.Person
                                                                           and _DefaultPrivateFaxNumber.IsDefaultFaxNumber = 'X'

  association [0..1] to I_AddressFaxNumber    as _DefaultCorpFaxNumber         on  _DefaultCorpFaxNumber.AddressID          = $projection.AddressID
                                                                           and _DefaultCorpFaxNumber.Person          = ' ' 
                                                                           and _DefaultCorpFaxNumber.IsDefaultFaxNumber = 'X'
                                                                          

  association [0..1] to I_AddressEmailAddress as _DefaultEmailAddress      on  _DefaultEmailAddress.AddressID             = $projection.AddressID
                                                                           and ( _DefaultEmailAddress.Person                = $projection.Person
                                                                            or   _DefaultEmailAddress.Person          = ' ' )
                                                                           and _DefaultEmailAddress.IsDefaultEmailAddress = 'X'

  association [0..1] to I_AddressEmailAddress as _DefaultPvtEmailAddress  on  _DefaultPvtEmailAddress.AddressID             = $projection.AddressID
                                                                           and _DefaultPvtEmailAddress.Person                = $projection.Person
                                                                           and _DefaultPvtEmailAddress.IsDefaultEmailAddress = 'X'

  association [0..1] to I_AddressEmailAddress as _DefaultCorpEmailAddress   on  _DefaultCorpEmailAddress.AddressID             = $projection.AddressID
                                                                           and _DefaultCorpEmailAddress.Person          = ' ' 
                                                                           and _DefaultCorpEmailAddress.IsDefaultEmailAddress = 'X'

  association [0..1] to I_AddressHomepageURL  as _DefaultURLAddress        on  _DefaultURLAddress.AddressID           = $projection.AddressID
                                                                           and ( _DefaultURLAddress.Person              = $projection.Person
                                                                            or   _DefaultURLAddress.Person          = ' ' )
                                                                           and _DefaultURLAddress.IsDefaultURLAddress = 'X'

  association [0..1] to I_AddressHomepageURL  as _DefaultPvtURLAddress     on  _DefaultPvtURLAddress.AddressID           = $projection.AddressID
                                                                           and _DefaultPvtURLAddress.Person              = $projection.Person
                                                                           and _DefaultPvtURLAddress.IsDefaultURLAddress = 'X'

  association [0..1] to I_AddressHomepageURL  as _DefaultCorpURLAddress     on _DefaultCorpURLAddress.AddressID           = $projection.AddressID
                                                                           and _DefaultCorpURLAddress.Person          = ' ' 
                                                                           and _DefaultCorpURLAddress.IsDefaultURLAddress = 'X'

  association [0..1] to I_Region              as _Region                   on  $projection.Region  = _Region.Region
                                                                           and $projection.Country = _Region.Country
  association [0..1] to I_Country             as _Country                  on  $projection.Country = _Country.Country

  association [0..1] to I_CityCode            as _CityCode                 on  $projection.Country  = _CityCode.Country
                                                                           and $projection.Region   = _CityCode.Region
                                                                           and $projection.CityCode = _CityCode.CityCode

  association [0..1] to I_CountyCode          as _CountyCode               on  $projection.Country = _CountyCode.Country
                                                                           and $projection.Region  = _CountyCode.Region
                                                                           and $projection.CountyCode  = _CountyCode.County

  association [0..1] to I_FormOfAddress       as _FormOfAddress            on  $projection.FormOfAddress = _FormOfAddress.FormOfAddress
  
 // association [0..1] to C_BPLanguageVH as _LanguageValueHelp         on  $projection.CorrespondenceLanguage = _LanguageValueHelp.Language

 
//  association [0..*] to I_LanguageText as _LanguageText on $projection.CorrespondenceLanguage = _LanguageText.LanguageCode

 
  
  

{
  key adrc.addrnumber                                                                             as AddressID,
      adrc_uuid                                                                                   as AddressUUID,  
  
      name_co                                                                                     as CareOfName,
      location                                                                                    as AdditionalStreetSuffixName,
//      @ObjectModel: {

//             foreignKey.association: '_LanguageValueHelp'

              //,mandatory: true

//           }

//      @ObjectModel.text.association: '_LanguageText'

      langu                                                                                       as CorrespondenceLanguage,

      adrc.deflt_comm                                                                             as PrfrdCommMediumType,

      po_box                                                                                      as POBox,
      po_box_num                                                                                  as POBoxIsWithoutNumber,
      post_code2                                                                                  as POBoxPostalCode,
      po_box_lobby                                                                                as POBoxLobbyName,
      po_box_loc                                                                                  as POBoxDeviatingCityName,
      po_box_reg                                                                                  as POBoxDeviatingRegion,
      po_box_cty                                                                                  as POBoxDeviatingCountry,

      deli_serv_type                                                                              as DeliveryServiceTypeCode,
      deli_serv_number                                                                            as DeliveryServiceNumber,
      time_zone                                                                                   as AddressTimeZone,
      adrc.chckstatus                                                                             as CityFileTestStatus,
      adrc.dont_use_s                                                                             as AddressStreetUnusable,
      adrc.dont_use_p                                                                             as AddressPostBoxUnusable,
      
      

      /*
            , case when type = '1' then but000.name1_text
                   when type = '2'
                     //workaround to add the space: name_org1+' '+name_org2

                     then substring(replace(concat(name_org1, concat(' &@', name_org2)), '&@', ''),1,80)
               else '' //add this to avoid the warning

                 end as BusinessPartnerName
      */

      cast(substring(replace(concat(name1, concat(' &@', name2)), '&@', ''),1,80) as adfullname ) as FullName,

      // name1 as Name,


      // name2 as AdditionalName,


      city1                                                                                       as CityName,

      city2                                                                                       as District,
      city_code                                                                                   as CityCode,


      home_city                                                                                   as HomeCityName,
      post_code1                                                                                  as PostalCode,
      post_code3                                                                                  as CompanyPostalCode,

      street                                                                                      as StreetName,
      str_suppl1                                                                                  as StreetPrefixName,
      str_suppl2                                                                                  as AdditionalStreetPrefixName,
      str_suppl3                                                                                  as StreetSuffixName,

      house_num1                                                                                  as HouseNumber,

      house_num2                                                                                  as HouseNumberSupplementText,

      adrc.building                                                                               as Building,

      adrc.floor                                                                                  as Floor,

      adrc.roomnumber                                                                             as RoomNumber,

      country                                                                                     as Country,

      region                                                                                      as Region,

      county                                                                                      as County,
      
      county_code                                                                                 as CountyCode,
      
      township_code                                                                               as TownshipCode,
      township                                                                                    as TownshipName,

      //  title as Title, // replace with FormOf Address

      title                                                                                       as FormOfAddress,


      //fields required for globalisation

      name1                                                                                       as BusinessPartnerName1,
      name2                                                                                       as BusinessPartnerName2,
      adrc.nation                                                                                 as Nation,
      adrc.tel_number                                                                             as PhoneNumber,
      adrc.fax_number                                                                             as FaxNumber,
      adrc.sort1                                                                                  as SearchTerm1,
      adrc.sort2                                                                                  as SearchTerm2,
      mc_street                                                                                   as StreetSearch,
      mc_city1                                                                                    as CitySearch,

      //Following fields are needed in BP Customer-Supplier Apps


      name3                                                                                       as BusinessPartnerName3,
      name4                                                                                       as BusinessPartnerName4,

      taxjurcode                                                                                  as TaxJurisdiction,
      transpzone                                                                                  as TransportZone,
      city_code2                                                                                  as AddressCityPostBoxCode,

// Disabled NULL handling due to Performance. Do Null Handling in consuming layer, please

//  We tested that it is cheaper to add the OR conditions into the child-associations

//      case

//          when adcp.persnumber is null then '          '

//      -- possible alternative to the above when adrc.pers_addr = ' ' then '          '

//          else adcp.persnumber

//        end                                                                                       as Person,

      adcp.persnumber                                                                              as Person, //NULL possible here.

      _DefaultPhoneNumber,       _DefaultPrivatePhoneNumber,    _DefaultCorporatePhoneNumber,
      _DefaultMobilePhoneNumber, _DefaultPvtMobilePhoneNumber, _DefaultCorpMobilePhoneNumber,
      _DefaultFaxNumber,         _DefaultPrivateFaxNumber,      _DefaultCorpFaxNumber,
      _DefaultEmailAddress,      _DefaultPvtEmailAddress,      _DefaultCorpEmailAddress,
      _DefaultURLAddress,        _DefaultPvtURLAddress,        _DefaultCorpURLAddress,

      _Region,
      _Country,
      _CountyCode, // to be aligned: better without "Code"?

      _CityCode, // to be aligned: better without "Code"?

      _FormOfAddress
      
      //_LanguageValueHelp,

      //_LanguageText


}
where
      adrc.date_from = '00010101'
  and adrc.nation    = ' '