P_BillgProcDocPartnerAddress

DDL: P_BILLGPROCDOCPARTNERADDRESS Type: view_entity COMPOSITE Package: ODATA_SD_BIL_COMMON

Billing Process Document Partner Address

P_BillgProcDocPartnerAddress is a Composite CDS View that provides data about "Billing Process Document Partner Address" in SAP S/4HANA. It reads from 1 data source (I_BillingDocumentPartnerBasic) and exposes 28 fields with key fields BillingProcessDocument, PartnerFunction. It has 12 associations to related views. Part of development package ODATA_SD_BIL_COMMON.

Data Sources (1)

SourceAliasJoin Type
I_BillingDocumentPartnerBasic Partner from

Associations (12)

CardinalityTargetAliasCondition
[0..1] I_ContactPerson _ContactPerson $projection.ContactPerson = _ContactPerson.ContactPerson
[1] I_WorkAssignment _WorkAssignment $projection.Personnel = _WorkAssignment.WorkAssignment
[0..1] I_TransportationZone _TransportationZone $projection.transportzone = _TransportationZone.TransportZone and $projection.country = _TransportationZone.CountryCode
[0..1] I_OrganizationAddress _OrganizationAddress $projection.AddressID = _OrganizationAddress.AddressID and $projection.AddressPersonID = _OrganizationAddress.AddressPersonID and $projection.AddressObjectType = '1' and _OrganizationAddress.AddressRepresentationCode is initial
[0..1] I_PersonAddress _PersonAddress $projection.AddressID = _PersonAddress.AddressID and $projection.AddressPersonID = _PersonAddress.AddressPersonID and $projection.AddressObjectType = '2' and _PersonAddress.AddressRepresentationCode is initial
[0..1] I_PersonWorkplaceAddress _PersonWorkplaceAddress $projection.AddressID = _PersonWorkplaceAddress.AddressID and $projection.AddressPersonID = _PersonWorkplaceAddress.AddressPersonID and $projection.AddressObjectType = '3' and _PersonWorkplaceAddress.AddressRepresentationCode is initial
[0..1] P_BillingAddrOrgNamePostalAddr _OrgNamePostalAddress $projection.AddressID = _OrgNamePostalAddress.AddressID and _OrgNamePostalAddress.AddressRepresentationCode is initial
[0..1] P_BillingAddressPersonName _PersonName $projection.AddressPersonID = _PersonName.AddressPersonID and _PersonName.AddressRepresentationCode is initial
[0..1] I_AddrCurDfltLandlinePhoneNmbr _CurrentDfltLandlinePhoneNmbr $projection.AddressID = _CurrentDfltLandlinePhoneNmbr.AddressID and $projection.AddressPersonID = _CurrentDfltLandlinePhoneNmbr.AddressPersonID
[0..1] I_AddrCurDefaultEmailAddress _CurrentDfltEmailAddress $projection.AddressID = _CurrentDfltEmailAddress.AddressID and $projection.AddressPersonID = _CurrentDfltEmailAddress.AddressPersonID
[0..1] I_AddrCurDfltMobilePhoneNumber _CurrentDfltMobilePhoneNumber $projection.AddressID = _CurrentDfltMobilePhoneNumber.AddressID and $projection.AddressPersonID = _CurrentDfltMobilePhoneNumber.AddressPersonID
[0..1] I_AddrCurDefaultFaxNumber _CurrentDfltFaxNumber $projection.AddressID = _CurrentDfltFaxNumber.AddressID and $projection.AddressPersonID = _CurrentDfltFaxNumber.AddressPersonID

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Billing Process Document Partner Address view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
VDM.private true view
VDM.viewType #COMPOSITE view

Fields (28)

KeyFieldSource TableSource FieldDescription
KEY BillingProcessDocument
KEY PartnerFunction
Personnel Personnel
ContactPerson ContactPerson
AddressID AddressID
AddressPersonID AddressPersonID
AddressObjectType AddressObjectType
StreetPrefixName1 _OrgNamePostalAddress StreetPrefixName1
StreetPrefixName2 _OrgNamePostalAddress StreetPrefixName2
StreetName _OrgNamePostalAddress StreetName
StreetSuffixName1 _OrgNamePostalAddress StreetSuffixName1
StreetSuffixName2 _OrgNamePostalAddress StreetSuffixName2
HouseNumber _OrgNamePostalAddress HouseNumber
PostalCode _OrgNamePostalAddress PostalCode
DistrictName _OrgNamePostalAddress DistrictName
CityName _OrgNamePostalAddress CityName
POBox _OrgNamePostalAddress POBox
POBoxPostalCode _OrgNamePostalAddress POBoxPostalCode
TaxJurisdiction _OrgNamePostalAddress TaxJurisdiction
Country _OrgNamePostalAddress Country
CountryName
Region _OrgNamePostalAddress Region
RegionName
TransportZone _OrgNamePostalAddress TransportZone
TransportZoneDescription
_Country _OrgNamePostalAddress _Country
_Region _OrgNamePostalAddress _Region
_TransportationZone _TransportationZone
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA')
@EndUserText.label: 'Billing Process Document Partner Address'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
@VDM.private:true
@VDM.viewType: #COMPOSITE
define view entity P_BillgProcDocPartnerAddress
  as select from I_BillingDocumentPartnerBasic as Partner
  association [0..1] to I_ContactPerson                as _ContactPerson                on  $projection.ContactPerson = _ContactPerson.ContactPerson
  association [1]    to I_WorkAssignment               as _WorkAssignment               on  $projection.Personnel = _WorkAssignment.WorkAssignment

  association [0..1] to I_TransportationZone           as _TransportationZone           on  $projection.transportzone = _TransportationZone.TransportZone
                                                                                        and $projection.country       = _TransportationZone.CountryCode
  association [0..1] to I_OrganizationAddress          as _OrganizationAddress          on  $projection.AddressID                          = _OrganizationAddress.AddressID
                                                                                        and $projection.AddressPersonID                    = _OrganizationAddress.AddressPersonID
                                                                                        and $projection.AddressObjectType                  = '1'
                                                                                        and _OrganizationAddress.AddressRepresentationCode is initial
  association [0..1] to I_PersonAddress                as _PersonAddress                on  $projection.AddressID                    = _PersonAddress.AddressID
                                                                                        and $projection.AddressPersonID              = _PersonAddress.AddressPersonID
                                                                                        and $projection.AddressObjectType            = '2'
                                                                                        and _PersonAddress.AddressRepresentationCode is initial

  association [0..1] to I_PersonWorkplaceAddress       as _PersonWorkplaceAddress       on  $projection.AddressID                             = _PersonWorkplaceAddress.AddressID
                                                                                        and $projection.AddressPersonID                       = _PersonWorkplaceAddress.AddressPersonID
                                                                                        and $projection.AddressObjectType                     = '3'
                                                                                        and _PersonWorkplaceAddress.AddressRepresentationCode is initial
  association [0..1] to P_BillingAddrOrgNamePostalAddr as _OrgNamePostalAddress         on  $projection.AddressID                           = _OrgNamePostalAddress.AddressID
                                                                                        and _OrgNamePostalAddress.AddressRepresentationCode is initial

  association [0..1] to P_BillingAddressPersonName     as _PersonName                   on  $projection.AddressPersonID           = _PersonName.AddressPersonID
                                                                                        and _PersonName.AddressRepresentationCode is initial


  association [0..1] to I_AddrCurDfltLandlinePhoneNmbr as _CurrentDfltLandlinePhoneNmbr on  $projection.AddressID       = _CurrentDfltLandlinePhoneNmbr.AddressID
                                                                                        and $projection.AddressPersonID = _CurrentDfltLandlinePhoneNmbr.AddressPersonID

  association [0..1] to I_AddrCurDefaultEmailAddress   as _CurrentDfltEmailAddress      on  $projection.AddressID       = _CurrentDfltEmailAddress.AddressID
                                                                                        and $projection.AddressPersonID = _CurrentDfltEmailAddress.AddressPersonID

  association [0..1] to I_AddrCurDfltMobilePhoneNumber as _CurrentDfltMobilePhoneNumber on  $projection.AddressID       = _CurrentDfltMobilePhoneNumber.AddressID
                                                                                        and $projection.AddressPersonID = _CurrentDfltMobilePhoneNumber.AddressPersonID

  association [0..1] to I_AddrCurDefaultFaxNumber      as _CurrentDfltFaxNumber         on  $projection.AddressID       = _CurrentDfltFaxNumber.AddressID
                                                                                        and $projection.AddressPersonID = _CurrentDfltFaxNumber.AddressPersonID

{
  key  cast(Partner.BillingDocument as billing_process_document preserving type) as BillingProcessDocument,
  key  cast(PartnerFunction as parvw_unv preserving type )                       as PartnerFunction,

       Personnel,
       ContactPerson,

       AddressID,
       AddressPersonID,
       AddressObjectType,

       @Semantics.name.fullName: true
       @Semantics.text: true
       cast(
       case Partner.AddressID
         when ''
          then
           case
             when Partner.Personnel != '00000000'
               then coalesce(_WorkAssignment.PersonFullName,
                             _WorkAssignment._WorkforcePerson.LastName)
           end
         else
           case
             when Partner.AddressObjectType = '1'
               then
                  case
                    when Partner.ContactPerson != '0000000000'
                      then
                        cast(substring(replace(concat(_ContactPerson.FirstName,
                                               concat(' &@', _ContactPerson.LastName) ), '&@', '') ,1,80) as ad_namtext )
                    when Partner.Personnel != '00000000'
                      then _OrganizationAddress.AddresseeName1  //Document specific personnel

                    else
                      cast(concat_with_space(_OrganizationAddress.AddresseeName1,
                                             _OrganizationAddress.AddresseeName2, 1) as ad_namtext )
                   end
             when Partner.AddressObjectType = '2'
               then _PersonAddress.PersonFullName
             when Partner.AddressObjectType = '3'
               then _PersonWorkplaceAddress.PersonFullName
           end
         end as ad_namtext preserving type )                                                     as FullName,
       
       @Semantics.address.street: true
       _OrgNamePostalAddress.StreetPrefixName1,
       @Semantics.address.street: true
       _OrgNamePostalAddress.StreetPrefixName2,
       @Semantics.address.street: true
       _OrgNamePostalAddress.StreetName,
       @Semantics.address.street: true
       _OrgNamePostalAddress.StreetSuffixName1,
       @Semantics.address.street: true
       _OrgNamePostalAddress.StreetSuffixName2,
       @Semantics.address.streetNoNumber: true
       _OrgNamePostalAddress.HouseNumber,
       @Semantics.address.zipCode:true
       _OrgNamePostalAddress.PostalCode,
       _OrgNamePostalAddress.DistrictName,
       @Semantics.address.city:true
       _OrgNamePostalAddress.CityName,
       @Semantics.address.postBox: true
       _OrgNamePostalAddress.POBox,
       @Semantics.address.zipCode:true
       _OrgNamePostalAddress.POBoxPostalCode,
       _OrgNamePostalAddress.TaxJurisdiction,

       @Semantics.telephone.type: [#WORK]
       cast(coalesce(_CurrentDfltLandlinePhoneNmbr.InternationalPhoneNumber,
                     _WorkAssignment._WorkplaceAddress.NormalizedPhoneNumber)
         as ad_telnrlg preserving type )                                         as InternationalPhoneNumber,

       @Semantics.telephone.type:  [#CELL]
       cast(coalesce(_CurrentDfltMobilePhoneNumber.InternationalPhoneNumber,
                     _WorkAssignment._WorkplaceAddress.MblNormalizedPhoneNumber)
         as ad_telnrlg preserving type )                                         as InternationalMobilePhoneNumber,

       @Semantics.telephone.type: [#FAX]
       cast(coalesce(_CurrentDfltFaxNumber.InternationalFaxNumber,
                     _WorkAssignment._WorkplaceAddress.InternationalFaxNumber)
         as ad_fxnrlng preserving type )                                         as InternationalFaxNumber,

       @Semantics.eMail.address: true
       @Semantics.eMail.type:  [#WORK]
       cast(coalesce( _CurrentDfltEmailAddress.EmailAddress,
                   _WorkAssignment._WorkplaceAddress.DefaultEmailAddress)
        as vdm_sd_ad_smtpadr preserving type )                                   as EmailAddress,

       @Semantics.address.country:true
       @ObjectModel.foreignKey.association: '_Country'
       _OrgNamePostalAddress.Country,
       _OrgNamePostalAddress._Country._Text[1: Language=$session.system_language].CountryName,

       @Semantics.address.region: true
       @ObjectModel.foreignKey.association: '_Region'
       _OrgNamePostalAddress.Region,
       _OrgNamePostalAddress._Region._RegionText[1: Language=$session.system_language].RegionName,

       @ObjectModel.foreignKey.association: '_TransportationZone'
       _OrgNamePostalAddress.TransportZone,
       _OrgNamePostalAddress._TransportationZone._Text[1: Language=$session.system_language].TransportZoneDescription,

       @Semantics.name.jobTitle: true
       cast(coalesce(_PersonName.FormOfAddress,
                     _OrgNamePostalAddress.FormOfAddress)
         as ad_title preserving type )                                           as FormOfAddress,

       cast(coalesce(_PersonName._FormOfAddress._Text[1: Language=$session.system_language].FormOfAddressName,
                     _OrgNamePostalAddress._FormOfAddress._Text[1: Language=$session.system_language].FormOfAddressName)
         as ad_titletx preserving type )                                         as FormOfAddressName,

       coalesce(_PersonName.CorrespondenceLanguage,
                _OrgNamePostalAddress.CorrespondenceLanguage)                    as CorrespondenceLanguage,

       cast(coalesce(_PersonName._CorrespondenceLanguage._Text[1: Language=$session.system_language].LanguageName,
                     _OrgNamePostalAddress._CorrespondenceLanguage._Text[1: Language=$session.system_language].LanguageName)
         as sptxt preserving type )                                              as CorrespondenceLanguageName,

       _OrgNamePostalAddress._Country,
       _OrgNamePostalAddress._Region,
       _TransportationZone

}