R_BankAddressTP

DDL: R_BANKADDRESSTP Type: view_entity TRANSACTIONAL

Bank Address

R_BankAddressTP is a Transactional CDS View that provides data about "Bank Address" in SAP S/4HANA. It reads from 2 data sources (I_OrganizationAddress, I_Bank_2) and exposes 85 fields with key fields BankCountry, BankInternalID. It has 3 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_OrganizationAddress Address left_outer
I_Bank_2 Bank from

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_Region _Region $projection.Region = _Region.Region and $projection.Country = _Region.Country
[0..1] I_BusPartTelCountryPrefix _TelCountryPrefix $projection.phonenumbercountry = _TelCountryPrefix.Country
[0..*] R_BankScriptedAddressTP _BankScriptVariant

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Bank Address view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
VDM.viewType #TRANSACTIONAL view

Fields (85)

KeyFieldSource TableSource FieldDescription
KEY BankCountry I_Bank_2 BankCountry
KEY BankInternalID I_Bank_2 BankInternalID
StreetNameendasStreetName
HouseNumber I_OrganizationAddress HouseNumber
HouseNumberSupplementText I_OrganizationAddress HouseNumberSupplementText
CityNameendasCityName
PostalCode I_OrganizationAddress PostalCode
Country I_OrganizationAddress Country
RegionendasRegion
AddressObjectType I_OrganizationAddress AddressObjectType
CorrespondenceLanguage I_OrganizationAddress CorrespondenceLanguage
PrfrdCommMediumType I_OrganizationAddress PrfrdCommMediumType
AddresseeFullName I_OrganizationAddress AddresseeFullName
DistrictName I_OrganizationAddress DistrictName
VillageName I_OrganizationAddress VillageName
CompanyPostalCode I_OrganizationAddress CompanyPostalCode
StreetAddrNonDeliverableReason I_OrganizationAddress StreetAddrNonDeliverableReason
StreetPrefixName1 I_OrganizationAddress StreetPrefixName1
StreetPrefixName2 I_OrganizationAddress StreetPrefixName2
StreetSuffixName1 I_OrganizationAddress StreetSuffixName1
StreetSuffixName2 I_OrganizationAddress StreetSuffixName2
Building I_OrganizationAddress Building
Floor I_OrganizationAddress Floor
RoomNumber I_OrganizationAddress RoomNumber
FormOfAddress I_OrganizationAddress FormOfAddress
TaxJurisdiction I_OrganizationAddress TaxJurisdiction
TransportZone I_OrganizationAddress TransportZone
AddressSearchTerm1 I_OrganizationAddress AddressSearchTerm1
AddressSearchTerm2 I_OrganizationAddress AddressSearchTerm2
POBox I_OrganizationAddress POBox
POBoxAddrNonDeliverableReason I_OrganizationAddress POBoxAddrNonDeliverableReason
POBoxIsWithoutNumber I_OrganizationAddress POBoxIsWithoutNumber
POBoxPostalCode I_OrganizationAddress POBoxPostalCode
POBoxLobbyName I_OrganizationAddress POBoxLobbyName
POBoxDeviatingCityName I_OrganizationAddress POBoxDeviatingCityName
POBoxDeviatingRegion I_OrganizationAddress POBoxDeviatingRegion
POBoxDeviatingCountry I_OrganizationAddress POBoxDeviatingCountry
CareOfName I_OrganizationAddress CareOfName
DeliveryServiceTypeCode I_OrganizationAddress DeliveryServiceTypeCode
DeliveryServiceNumber I_OrganizationAddress DeliveryServiceNumber
AddressTimeZone I_OrganizationAddress AddressTimeZone
SecondaryRegionName I_OrganizationAddress SecondaryRegionName
TertiaryRegionName I_OrganizationAddress TertiaryRegionName
AddressRepresentationCode I_OrganizationAddress AddressRepresentationCode
AddressID I_OrganizationAddress AddressID
AddressPersonID I_OrganizationAddress AddressPersonID
EmailAddress
PhoneNumberCountry
PhoneNumber
PhoneExtensionNumber
InternationalPhoneNumber
MobilePhoneCountry
MobilePhoneNumber
InternationalMobilePhoneNumber
FaxNumberCountry
FaxAreaCodeSubscriberNumber
FaxExtensionNumber
InternationalFaxNumber
_Region _Region
_Country I_OrganizationAddress _Country
_FormOfAddress I_OrganizationAddress _FormOfAddress
_AddressRepresentationCode I_OrganizationAddress _AddressRepresentationCode
_CorrespondenceLanguage I_OrganizationAddress _CorrespondenceLanguage
_AddressObjectType I_OrganizationAddress _AddressObjectType
_AddressPersonName I_OrganizationAddress _AddressPersonName
_CurrentDfltEmailAddress I_OrganizationAddress _CurrentDfltEmailAddress
_CurrentDfltFaxNumber I_OrganizationAddress _CurrentDfltFaxNumber
_CurrentDfltLandlinePhoneNmbr I_OrganizationAddress _CurrentDfltLandlinePhoneNmbr
_CurrentDfltMobilePhoneNumber I_OrganizationAddress _CurrentDfltMobilePhoneNumber
_DeliveryServiceTypeCode I_OrganizationAddress _DeliveryServiceTypeCode
_EmailAddress I_OrganizationAddress _EmailAddress
_FaxNumber I_OrganizationAddress _FaxNumber
_MainWebsiteURL I_OrganizationAddress _MainWebsiteURL
_PhoneNumber I_OrganizationAddress _PhoneNumber
_POBoxAddrNonDeliverableReason I_OrganizationAddress _POBoxAddrNonDeliverableReason
_POBoxDeviatingCountry I_OrganizationAddress _POBoxDeviatingCountry
_POBoxDeviatingRegion I_OrganizationAddress _POBoxDeviatingRegion
_PrfrdCommMediumType I_OrganizationAddress _PrfrdCommMediumType
_StreetAddrNonDeliverableRsn I_OrganizationAddress _StreetAddrNonDeliverableRsn
_TimeZone I_OrganizationAddress _TimeZone
_TransportationZone I_OrganizationAddress _TransportationZone
_UniformResourceIdentifier I_OrganizationAddress _UniformResourceIdentifier
_Bank _Bank
_BankScriptVariant _BankScriptVariant
_TelCountryPrefix _TelCountryPrefix
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Bank Address'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #A,
  sizeCategory: #S,
  dataClass: #MIXED
}

@VDM: {
  lifecycle.contract.type: #SAP_INTERNAL_API,
  viewType: #TRANSACTIONAL
}
define view entity R_BankAddressTP
   as select from I_Bank_2              as Bank
  left outer join I_OrganizationAddress as Address on  Bank.AddressID = Address.AddressID
                                                   and Address.AddressPersonID is initial
                                                   and Address.AddressRepresentationCode is initial
  composition [0..*] of R_BankScriptedAddressTP     as _BankScriptVariant
  association to parent R_BankTP                    as _Bank    on  $projection.BankCountry    = _Bank.BankCountry
                                                                and $projection.BankInternalID = _Bank.BankInternalID
  association [0..1] to I_Region                    as _Region  on  $projection.Region  = _Region.Region
                                                                and $projection.Country = _Region.Country
  association [0..1] to I_BusPartTelCountryPrefix   as _TelCountryPrefix on $projection.phonenumbercountry = _TelCountryPrefix.Country

{
  key Bank.BankCountry,
  key Bank.BankInternalID,
/*
      concat( rpad(Address.AddresseeName1, 40, 'a'), Address.AddresseeName2)  as LongBankName_rpad,
      concat( lpad(Address.AddresseeName1, 40, 'a'), Address.AddresseeName2)  as LongBankName_lpad,

      concat( rpad(Address.AddresseeName1, 40, ' '), Address.AddresseeName2)  as LongBankName_rpads,
      concat( rpad(Address.AddresseeName1, 40, ''), Address.AddresseeName2)   as LongBankName_rpads2,
      concat( lpad(Address.AddresseeName1, 40, ' '), Address.AddresseeName2)  as LongBankName_lpads,
      replace( concat( rpad(Address.AddresseeName1, 40, 'a'), Address.AddresseeName2), 'a', '')  as LongBankName_rpad2,
      //https://answers.sap.com/questions/13429299/abap-cds-concat-with-space-concatenate-with-dynami.html?childToView=13427486

      replace( replace( concat_with_space( rpad( ltrim(Address.AddresseeName1, '0'), 40 , '#' ), Address.AddresseeName2, 1 ), '#', ' #' ), '#', '')
              as LongBankName_rpad3,
      replace( replace( concat( rpad( ltrim(Address.AddresseeName1, '0'), 40 , '#' ), Address.AddresseeName2 ), '#', ' #' ), '#', '')
              as LongBankName_rpad6,
*/
      cast( concat(Address.AddresseeName1, Address.AddresseeName2)
        as bf_bank_name_in_local_script preserving type )   as LongBankName,   //char80

      cast( concat(Address.AddresseeName3, Address.AddresseeName4)
        as bf_bank_branch_in_local_script preserving type ) as LongBankBranch, //char80


      //Address.StreetName,

      case
        when ( Address.StreetName is null or Address.StreetName is initial ) then Bank.ShortStreetName
        else Address.StreetName
      end
      as StreetName,

      Address.HouseNumber,
      Address.HouseNumberSupplementText,

      //Address.CityName,

      case
        when ( Address.CityName is null or Address.CityName is initial ) then Bank.ShortCityName
        else Address.CityName
      end
      as CityName,

      Address.PostalCode,
      @ObjectModel.foreignKey.association: '_Country'
      Address.Country,

      @ObjectModel.foreignKey.association: '_Region'
      //Address.Region                            ,

      case
        when ( Address.Region is null or Address.Region is initial ) then Bank.Region
        else Address.Region
      end
      as Region,


      Address.AddressObjectType,
      @Semantics.language: true
      @ObjectModel.foreignKey.association: '_CorrespondenceLanguage'
      Address.CorrespondenceLanguage,
      Address.PrfrdCommMediumType,
      Address.AddresseeFullName,
      Address.DistrictName,
      Address.VillageName,
      Address.CompanyPostalCode,
      Address.StreetAddrNonDeliverableReason,
      Address.StreetPrefixName1,
      Address.StreetPrefixName2,
      Address.StreetSuffixName1,
      Address.StreetSuffixName2,
      Address.Building,
      Address.Floor,
      Address.RoomNumber,
      @ObjectModel.foreignKey.association: '_FormOfAddress'
      Address.FormOfAddress,
//      Address.AddresseeName1,

//      Address.AddresseeName2,

//      Address.AddresseeName3,

//      Address.AddresseeName4,

      Address.TaxJurisdiction,
      Address.TransportZone,

      Address.AddressSearchTerm1,
      Address.AddressSearchTerm2,

      Address.POBox,
      Address.POBoxAddrNonDeliverableReason,
      Address.POBoxIsWithoutNumber,
      Address.POBoxPostalCode,
      Address.POBoxLobbyName,
      Address.POBoxDeviatingCityName,
      Address.POBoxDeviatingRegion,
      Address.POBoxDeviatingCountry,
      Address.CareOfName,
      Address.DeliveryServiceTypeCode,
      Address.DeliveryServiceNumber,
      Address.AddressTimeZone,
      Address.SecondaryRegionName,
      Address.TertiaryRegionName,

//      Address.EmailAddress,

//      Address.BankMainIntlPhNmbr,

//      Address.InternationalPhoneNumber,


      Address.AddressRepresentationCode,
      Address.AddressID,
      Address.AddressPersonID,     //Added because of _CurrentDfltEmailAddress and other communication fields

// < ------------  Verified against GTNC please do not change

      Address._CurrentDfltEmailAddress.EmailAddress,

      Address._CurrentDfltLandlinePhoneNmbr.PhoneNumberCountry,
      Address._CurrentDfltLandlinePhoneNmbr.PhoneAreaCodeSubscriberNumber as PhoneNumber,
      Address._CurrentDfltLandlinePhoneNmbr.PhoneExtensionNumber,
      Address._CurrentDfltLandlinePhoneNmbr.InternationalPhoneNumber,
      //concat('+' , _TelCountryPrefix.TelephoneCountryPrefix)    as  TelephoneCountryPrefix,


      Address._CurrentDfltMobilePhoneNumber.PhoneNumberCountry            as MobilePhoneCountry,
      Address._CurrentDfltMobilePhoneNumber.PhoneAreaCodeSubscriberNumber as MobilePhoneNumber,
      cast( Address._CurrentDfltMobilePhoneNumber.InternationalPhoneNumber as bf_bank_address_mobile preserving type ) as InternationalMobilePhoneNumber,


      Address._CurrentDfltFaxNumber.FaxNumberCountry,
      Address._CurrentDfltFaxNumber.FaxAreaCodeSubscriberNumber,
      Address._CurrentDfltFaxNumber.FaxExtensionNumber,
      Address._CurrentDfltFaxNumber.InternationalFaxNumber,
// ----------- >

      //  Address._MainWebsiteURL.UniformResourceIdentifier as UniformResourceIdentifier,


      //    Address._CurrentDfltEmailAddress as _BankMainEmailAddress,

      //    Address._CurrentDfltLandlinePhoneNmbr as _BankMainPhoneNmbr,

      //    Address._CurrentDfltMobilePhoneNumber as _BankMainMobilePhoneNmbr,

      //    Address._CurrentDfltFaxNumber as _BankMainFaxNumber,

      //    Address._MainWebsiteURL as _BankMainWebsiteURL,


      // Address._Region,

      _Region,

      Address._Country,
      Address._FormOfAddress,
      Address._AddressRepresentationCode,
      Address._CorrespondenceLanguage,

// Try to add phones

      Address._AddressObjectType,
      Address._AddressPersonName,
      Address._CurrentDfltEmailAddress,
      Address._CurrentDfltFaxNumber,
      Address._CurrentDfltLandlinePhoneNmbr,
      Address._CurrentDfltMobilePhoneNumber,
      Address._DeliveryServiceTypeCode,
      Address._EmailAddress,
      Address._FaxNumber,
      Address._MainWebsiteURL,
      Address._PhoneNumber,
      Address._POBoxAddrNonDeliverableReason,
      Address._POBoxDeviatingCountry,
      Address._POBoxDeviatingRegion,
      Address._PrfrdCommMediumType,
      Address._StreetAddrNonDeliverableRsn,
      Address._TimeZone,
      Address._TransportationZone,
      Address._UniformResourceIdentifier,

      _Bank,
      _BankScriptVariant,
      _TelCountryPrefix

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRCURDEFAULTEMAILADDRESS",
"I_ADDRCURDEFAULTFAXNUMBER",
"I_ADDRCURDFLTLANDLINEPHONENMBR",
"I_ADDRCURDFLTMOBILEPHONENUMBER",
"I_BANK_2",
"I_ORGANIZATIONADDRESS"
],
"ASSOCIATED":
[
"I_ADDRCURDEFAULTEMAILADDRESS",
"I_ADDRCURDEFAULTFAXNUMBER",
"I_ADDRCURDFLTLANDLINEPHONENMBR",
"I_ADDRCURDFLTMOBILEPHONENUMBER",
"I_ADDRESSCOMMUNICATIONMETHOD",
"I_ADDRESSDELIVERYSERVICETYPE",
"I_ADDRESSEMAILADDRESS_2",
"I_ADDRESSFAXNUMBER_2",
"I_ADDRESSMAINWEBSITEURL",
"I_ADDRESSNONDELIVERABLEREASON",
"I_ADDRESSOBJECTTYPE",
"I_ADDRESSPERSONNAME",
"I_ADDRESSPHONENUMBER_2",
"I_ADDRESSREPRESENTATION",
"I_ADDRESSURI",
"I_BUSPARTTELCOUNTRYPREFIX",
"I_COUNTRY",
"I_FORMOFADDRESS",
"I_LANGUAGE",
"I_REGION",
"I_TIMEZONE",
"I_TRANSPORTATIONZONE",
"R_BANKSCRIPTEDADDRESSTP",
"R_BANKTP"
],
"BASE":
[
"I_ORGANIZATIONADDRESS"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/