I_BPCustomerMultiAddrVH

DDL: I_BPCUSTOMERMULTIADDRVH SQL: IMULTIADDRCUSTVH Type: view COMPOSITE

Customers by Multiple Addresses

I_BPCustomerMultiAddrVH is a Composite CDS View that provides data about "Customers by Multiple Addresses" in SAP S/4HANA. It reads from 4 data sources (I_Address_2, I_BusinessPartnerCustomer, I_BusPartAddress, I_Customer) and exposes 35 fields with key fields AddressID, BusinessPartner, Customer.

Data Sources (4)

SourceAliasJoin Type
I_Address_2 I_Address_2 inner
I_BusinessPartnerCustomer I_BusinessPartnerCustomer from
I_BusPartAddress I_BusPartAddress inner
I_Customer I_Customer inner

Annotations (17)

NameValueLevelField
AbapCatalog.sqlViewName IMULTIADDRCUSTVH view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
ObjectModel.dataCategory #VALUE_HELP view
ObjectModel.representativeKey Customer view
ObjectModel.modelingPattern #NONE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
Search.searchable true view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Customers by Multiple Addresses view
Consumption.ranked true view

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY AddressID I_BusPartAddress AddressID Address Number
KEY BusinessPartner I_BusinessPartnerCustomer BusinessPartner Business Partner
KEY Customer I_BusinessPartnerCustomer Customer
Country I_Address_2 Country
CityName I_Address_2 CityName
StreetName I_Address_2 StreetName
HouseNumber I_Address_2 HouseNumber
PostalCode I_Address_2 PostalCode
CustomerName I_Customer CustomerName Customer Name
BPCustomerName I_Customer BPCustomerName Customer Name
CustomerAccountGroup I_BusinessPartnerCustomer CustomerAccountGroup
AuthorizationGroup I_BusinessPartnerCustomer AuthorizationGroup
IsBusinessPurposeCompleted I_BusinessPartnerCustomer IsBusinessPurposeCompleted
BusinessPartnerType
AddressValidityStartDate
AddressValidityEndDate
AddressUsage I_Businesspartneraddressusage AddressUsage
OrganizationBPName1 I_Customer OrganizationBPName1 Name 1
BusinessPartnerName1 I_Customer BusinessPartnerName1 Name 1
OrganizationBPName2 I_Customer OrganizationBPName2 Name 2
BusinessPartnerName2 I_Customer BusinessPartnerName2 Name 2
AddressSearchTerm1 I_Address_2 AddressSearchTerm1 Search Term 1
AddressSearchTerm2 I_Address_2 AddressSearchTerm2 Search Term 2
BusPartAddrLayoutStdIsHidden
DataControllerSet I_Customer DataControllerSet
DataController1 I_Customer DataController1
DataController2 I_Customer DataController2
DataController3 I_Customer DataController3
DataController4 I_Customer DataController4
DataController5 I_Customer DataController5
DataController6 I_Customer DataController6
DataController7 I_Customer DataController7
DataController8 I_Customer DataController8
DataController9 I_Customer DataController9
DataController10 I_Customer DataController10
@AbapCatalog.sqlViewName: 'IMULTIADDRCUSTVH'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true

@VDM.viewType: #COMPOSITE

@ObjectModel.dataCategory: #VALUE_HELP
@ObjectModel.representativeKey: 'Customer'

@ObjectModel.supportedCapabilities: [#SQL_DATA_SOURCE,
                                     #CDS_MODELING_DATA_SOURCE,
                                     #CDS_MODELING_ASSOCIATION_TARGET,
                                     #VALUE_HELP_PROVIDER,
                                     #SEARCHABLE_ENTITY]
@ObjectModel.modelingPattern:#NONE
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MASTER

@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED

@ClientHandling.algorithm: #SESSION_VARIABLE

@Search.searchable: true

@Metadata.ignorePropagatedAnnotations: true

@EndUserText.label: 'Customers by Multiple Addresses'
@Consumption.ranked: true

define view I_BPCustomerMultiAddrVH
  as select from           I_BusinessPartnerCustomer
    inner join             I_BusPartAddress              on I_BusPartAddress.BusinessPartner = I_BusinessPartnerCustomer.BusinessPartner
    inner join             I_Address_2                   on  I_Address_2.AddressID                 = I_BusPartAddress.AddressID
                                                         and I_Address_2.AddressRepresentationCode = ' '
    inner join             I_Customer                    on I_Customer.Customer = I_BusinessPartnerCustomer.Customer
    left outer to one join I_Businesspartneraddressusage on  I_Businesspartneraddressusage.BusinessPartner   =  I_BusPartAddress.BusinessPartner
                                                         and I_Businesspartneraddressusage.AddressNumber     =  I_BusPartAddress.AddressID

                                                         and I_Businesspartneraddressusage.AddressUsage      =  'XXDEFAULT'
                                                         and I_Businesspartneraddressusage.ValidityStartDate <= tstmp_current_utctimestamp()

                                                         and I_Businesspartneraddressusage.ValidityEndDate   >= tstmp_current_utctimestamp()

{

      @EndUserText.label: 'Address Number'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      @UI.hidden: true
      @Consumption.filter.hidden: true
  key I_BusPartAddress.AddressID,

      @EndUserText.label: 'Business Partner'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
  key I_BusinessPartnerCustomer.BusinessPartner,

      @ObjectModel.text.element: ['CustomerName']
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
  key I_BusinessPartnerCustomer.Customer,

 //     @EndUserText.label: 'Country/Region'

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Address_2.Country,

 //     @EndUserText.label: 'City'

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Address_2.CityName,

 //     @EndUserText.label: 'Street'

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Address_2.StreetName,
      
      
 //     @EndUserText.label: 'House Number'

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      I_Address_2.HouseNumber,

 //     @EndUserText.label: 'Postal Code'

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Address_2.PostalCode,


 //     @EndUserText.label: 'Standard Address'

      @ObjectModel.readOnly: true
      @EndUserText.quickInfo: 'Standard Address Indicator'
      case when I_Businesspartneraddressusage.AddressUsage ='XXDEFAULT'
      then cast('X' as boole_d)
      else cast(' ' as boole_d)
      end                                                                               as StandardUsage,
      
      

      @EndUserText.label: 'Customer Name'
      @Semantics.text: true
      // @Search.defaultSearchElement: true

      //  @Search.fuzzinessThreshold: 0.8

      //  @Search.ranking: #HIGH

      I_Customer.CustomerName,
      
      @EndUserText.label: 'Customer Name'
      @Semantics.text: true
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.BPCustomerName,

      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_BusinessPartnerCustomer.CustomerAccountGroup,

      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_BusinessPartnerCustomer.AuthorizationGroup,

      @UI.hidden: true
      @Consumption.filter.hidden: true
 //     @EndUserText.label: 'Purpose Complete Flag'

      @Semantics.booleanIndicator: true
      I_BusinessPartnerCustomer.IsBusinessPurposeCompleted,

 //     @EndUserText.label: 'Business Partner Type'

      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer._CustomerToBusinessPartner._BusinessPartner.BusinessPartnerType,

//      @EndUserText.label: 'Valid From'

      tstmp_to_dats(I_BusPartAddress.ValidityStartDate,'UTC',  $session.client, 'NULL') as AddressValidityStartDate,

//      @EndUserText.label: 'Valid To'

      tstmp_to_dats(I_BusPartAddress.ValidityEndDate,'UTC',  $session.client, 'NULL')   as AddressValidityEndDate,


      // valid_on,   todo


      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Businesspartneraddressusage.AddressUsage,

      @EndUserText.label: 'Name 1'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Customer.OrganizationBPName1,
      
      @EndUserText.label: 'Name 1'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.BusinessPartnerName1,

      @EndUserText.label: 'Name 2'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      //@Search.ranking: #HIGH

      @Search.ranking: #LOW
      I_Customer.OrganizationBPName2,
      
      @EndUserText.label: 'Name 2'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.BusinessPartnerName2,
      
      
      @EndUserText.label: 'Search Term 1'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      I_Address_2.AddressSearchTerm1,
 //     I_Customer._CustomerToBusinessPartner._BusinessPartner.SearchTerm1,

      
      
      @EndUserText.label: 'Search Term 2'
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #LOW
      I_Address_2.AddressSearchTerm2,
//      I_Customer._CustomerToBusinessPartner._BusinessPartner.SearchTerm2,

      

      @UI.hidden: true
      @Consumption.filter.hidden: true
      cast(' ' as abap_boolean preserving type)                                         as BusPartAddrLayoutStdIsHidden,
      
      
      
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataControllerSet,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController1,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController2,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController3,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController4,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController5,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController6,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController7,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController8,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController9,
      @UI.hidden: true
      @Consumption.filter.hidden: true
      I_Customer.DataController10
      

      
      





}