@AbapCatalog.sqlViewName: 'IBPADDRUSAGETP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@EndUserText.label: 'Business Partner Address Usage BOPF View'
@VDM.viewType: #TRANSACTIONAL
//@ObjectModel.writeEnabled: true
@ObjectModel.writeDraftPersistence: 'BUPA_ADRU_D'
@ObjectModel.draftEnabled:true
@Search.searchable: true
@ObjectModel.createEnabled
@ObjectModel.updateEnabled
@ObjectModel.deleteEnabled: 'EXTERNAL_CALCULATION'
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MASTER
define view I_BusinessPartnerAddrUsageTP
as select from I_Businesspartneraddressusage as BusinessPartnerAddrUsage
association [1..1] to I_BusinessPartnerTP as _BusinessPartner on $projection.BusinessPartner = _BusinessPartner.BusinessPartner
association [1..1] to I_BusinessPartnerAddressTP as _BusinessPartnerAddress on $projection.BusinessPartner = _BusinessPartnerAddress.BusinessPartner
and $projection.AddressNumber = _BusinessPartnerAddress.AddressNumber
// association [0..1] to I_DraftAdministrativeData as _DraftAdministrativeData on _DraftAdministrativeData.DraftUUID = $projection.DraftAdministrativeDataUUID
//
// association [0..1] to i_businesspartneraddrusagetp as _SiblingEntity on $projection.AddressUsage = _SiblingEntity.AddressUsage
// //and $projection.ValidityEndDate = _SiblingEntity.ValidityEndDate
// and $projection.BusinessPartner = _SiblingEntity.BusinessPartner
// and $projection.AddressNumber = _SiblingEntity.AddressNumber
// and $projection.IsActiveEntity <> _SiblingEntity.IsActiveEntity
{
// key BusinessPartnerAddrUsage.DraftUUID,
@semanticKey: true
key BusinessPartnerAddrUsage.BusinessPartner,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@semanticKey: true
key cast(case when ValidityEndDate != 00010101000000
then tstmp_to_dats(ValidityEndDate,'UTC', $session.client, 'NULL')
else cast ( '99991231' as abap.dats)
end as abap.char( 8 )) as BPAddressUsageValidityEndDate,
@semanticKey: true
key BusinessPartnerAddrUsage.AddressUsage,
@semanticKey: true
key BusinessPartnerAddrUsage.AddressNumber,
//@SemanticKey: true
//key BusinessPartnerAddrUsage.ValidityEndDate,
// BusinessPartnerAddrUsage.ParentDraftUUID,
// BusinessPartnerAddrUsage.RootDraftUUID,
BusinessPartnerAddrUsage.BusinessPartner as BusinessPartnerForEdit,
@Search.defaultSearchElement: true
@Search.fuzzinessThreshold: 0.8
@Search.ranking: #HIGH
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
BusinessPartnerAddrUsage.AddressUsage as AddressUsageForEdit,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
BusinessPartnerAddrUsage.AddressNumber as AddressNumberForEdit,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
//cast(substring (cast(BusinessPartnerAddrUsage.ValidityStartDate as abap.char(32)),1,8) as abap.dats) as AddressUsageValidityStartDate,
tstmp_to_dats(BusinessPartnerAddrUsage.ValidityStartDate,'UTC', $session.client, 'NULL') as AddressUsageValidityStartDate,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
@ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
//cast(substring (cast(BusinessPartnerAddrUsage.ValidityEndDate as abap.char(32)),1,8) as abap.dats) as AddressUsageValidityEndDate,
tstmp_to_dats(BusinessPartnerAddrUsage.ValidityEndDate,'UTC', $session.client, 'NULL') as AddressUsageValidityEndDate,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
BusinessPartnerAddrUsage.ValidityEndDate,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
BusinessPartnerAddrUsage.ValidityStartDate,
@ObjectModel.mandatory: 'EXTERNAL_CALCULATION'
BusinessPartnerAddrUsage.StandardUsage,
// BusinessPartnerAddrUsage.ValidFrom,
/* case when AddressUsage ='XXDEFAULT'
then cast('X' as boole_d )
else cast('' as boole_d)
end as Standardusage,*/
/*case when AddressUsage ='XXDEFAULT'
then BusinessPartnerAddressID
end as StandardAddress, //trial*/
// BusinessPartnerAddrUsage.IsActiveEntity,
// BusinessPartnerAddrUsage.HasActiveEntity,
// BusinessPartnerAddrUsage.HasDraftEntity,
// BusinessPartnerAddrUsage.DraftAdministrativeDataUUID,
@ObjectModel.association.type: [ #TO_COMPOSITION_ROOT ]
_BusinessPartner,
@ObjectModel.association.type: [ #TO_COMPOSITION_PARENT ]
_BusinessPartnerAddress
// _DraftAdministrativeData,
// _SiblingEntity
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNERADDRESSUSAGE"
],
"ASSOCIATED":
[
"I_BUSINESSPARTNERADDRESSTP",
"I_BUSINESSPARTNERTP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/