I_BusinessPartnerAddrUsageTP

DDL: I_BUSINESSPARTNERADDRUSAGETP SQL: IBPADDRUSAGETP Type: view TRANSACTIONAL

Business Partner Address Usage BOPF View

I_BusinessPartnerAddrUsageTP is a Transactional CDS View that provides data about "Business Partner Address Usage BOPF View" in SAP S/4HANA. It reads from 1 data source (I_Businesspartneraddressusage) and exposes 14 fields with key fields BusinessPartner, char8asBPAddressUsageValidityEndDate, AddressUsage, AddressNumber. It has 2 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_Businesspartneraddressusage BusinessPartnerAddrUsage from

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_BusinessPartnerTP _BusinessPartner $projection.BusinessPartner = _BusinessPartner.BusinessPartner
[1..1] I_BusinessPartnerAddressTP _BusinessPartnerAddress $projection.BusinessPartner = _BusinessPartnerAddress.BusinessPartner and $projection.AddressNumber = _BusinessPartnerAddress.AddressNumber

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName IBPADDRUSAGETP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Business Partner Address Usage BOPF View view
VDM.viewType #TRANSACTIONAL view
ObjectModel.writeDraftPersistence BUPA_ADRU_D view
ObjectModel.draftEnabled true view
Search.searchable true view
ObjectModel.deleteEnabled EXTERNAL_CALCULATION view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MASTER view

Fields (14)

KeyFieldSource TableSource FieldDescription
KEY BusinessPartner I_Businesspartneraddressusage BusinessPartner
KEY char8asBPAddressUsageValidityEndDate
KEY AddressUsage I_Businesspartneraddressusage AddressUsage
KEY AddressNumber I_Businesspartneraddressusage AddressNumber
BusinessPartnerForEdit I_Businesspartneraddressusage BusinessPartner
AddressUsageForEdit I_Businesspartneraddressusage AddressUsage
AddressNumberForEdit I_Businesspartneraddressusage AddressNumber
AddressUsageValidityStartDate
AddressUsageValidityEndDate
ValidityEndDate I_Businesspartneraddressusage ValidityEndDate
ValidityStartDate I_Businesspartneraddressusage ValidityStartDate
StandardUsage I_Businesspartneraddressusage StandardUsage
_BusinessPartner _BusinessPartner
_BusinessPartnerAddress _BusinessPartnerAddress
@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


}