P_BillgProcDocPartnerAddress
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)
| Source | Alias | Join Type |
|---|---|---|
| I_BillingDocumentPartnerBasic | Partner | from |
Associations (12)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA