@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
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ADDRESS_2",
"I_BUSINESSPARTNER",
"I_BUSINESSPARTNERADDRESSUSAGE",
"I_BUSINESSPARTNERCUSTOMER",
"I_BUSPARTADDRESS",
"I_CUSTOMER",
"I_CUSTOMERTOBUSINESSPARTNER"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/