I_PT_SAFTBillingOneTimeAddr
One Time Customer Addr for Billing Docs
I_PT_SAFTBillingOneTimeAddr is a Composite CDS View that provides data about "One Time Customer Addr for Billing Docs" in SAP S/4HANA. It reads from 4 data sources (I_SDDocumentCompletePartners, I_SDDocumentCompletePartners, I_BillingDocument, I_InvoiceList) and exposes 45 fields with key fields BillingDocument, FiscalYear, CompanyCode, PartnerFunction, AddressID. It has 1 association to related views. Part of development package GLO_FIN_IS_SAFT_PT.
Data Sources (4)
| Source | Alias | Join Type |
|---|---|---|
| I_SDDocumentCompletePartners | Cust | inner |
| I_SDDocumentCompletePartners | Cust | inner |
| I_BillingDocument | SDDoc | from |
| I_InvoiceList | SDDoc | union |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_CustomerCompany | _CustCompany | Cust.Customer = _CustCompany.Customer and SDDoc.CompanyCode = _CustCompany.CompanyCode |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| VDM.viewType | #COMPOSITE | view | |
| AccessControl.personalData.blocking | #BLOCKED_DATA_INCLUDED | view | |
| EndUserText.label | One Time Customer Addr for Billing Docs | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (45)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | BillingDocument | I_InvoiceList | BillingDocument | |
| KEY | FiscalYear | I_InvoiceList | FiscalYear | |
| KEY | CompanyCode | I_InvoiceList | CompanyCode | |
| KEY | PartnerFunction | |||
| KEY | AddressID | I_SDDocumentCompletePartners | AddressID | |
| InvoiceDate | I_InvoiceList | BillingDocumentDate | ||
| Customer | I_SDDocumentCompletePartners | Customer | ||
| IsOneTimeAccount | I_SDDocumentCompletePartners | PartnerIsOneTimeAccount | ||
| ReconciliationAccount | _CustCompany | ReconciliationAccount | ||
| AddressNumber | I_SDDocumentCompletePartners | AddressID | ||
| AddressPersonID | I_SDDocumentCompletePartners | AddressPersonID | ||
| FullName | ||||
| StreetName | Address | StreetName | ||
| StreetPrefixName | Address | StreetPrefixName1 | ||
| AdditionalStreetPrefixName | Address | StreetPrefixName1 | ||
| StreetSuffixName | Address | StreetSuffixName1 | ||
| AdditionalStreetSuffixName | Address | StreetSuffixName2 | ||
| HouseNumber | Address | HouseNumber | ||
| Region | Address | Region | ||
| PhoneNumber | Phone | PhoneAreaCodeSubscriberNumber | ||
| FaxNumber | ||||
| EmailAddress | EmailAddress | |||
| InvoiceListasBillingDocument | ||||
| KEY | FiscalYear | I_InvoiceList | FiscalYear | |
| KEY | CompanyCode | I_InvoiceList | CompanyCode | |
| KEY | PartnerFunction | |||
| KEY | AddressID | I_SDDocumentCompletePartners | AddressID | |
| InvoiceDate | I_InvoiceList | InvoiceListBillingDate | ||
| Customer | I_SDDocumentCompletePartners | Customer | ||
| IsOneTimeAccount | I_SDDocumentCompletePartners | PartnerIsOneTimeAccount | ||
| ReconciliationAccount | _CustCompany | ReconciliationAccount | ||
| AddressNumber | I_SDDocumentCompletePartners | AddressID | ||
| AddressPersonID | I_SDDocumentCompletePartners | AddressPersonID | ||
| FullName | ||||
| StreetName | Address | StreetName | ||
| StreetPrefixName | Address | StreetPrefixName1 | ||
| AdditionalStreetPrefixName | Address | StreetPrefixName1 | ||
| StreetSuffixName | Address | StreetSuffixName1 | ||
| AdditionalStreetSuffixName | Address | StreetSuffixName2 | ||
| HouseNumber | Address | HouseNumber | ||
| Region | Address | Region | ||
| PhoneNumber | Phone | PhoneAreaCodeSubscriberNumber | ||
| FaxNumber | ||||
| EmailAddress | EmailAddress | |||
| WebsiteURL |
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@AccessControl.personalData.blocking: #BLOCKED_DATA_INCLUDED
@EndUserText.label: 'One Time Customer Addr for Billing Docs'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #D,
sizeCategory: #XL,
dataClass: #MIXED
}
define view entity I_PT_SAFTBillingOneTimeAddr
as select from I_BillingDocument as SDDoc
inner join I_SDDocumentCompletePartners as Cust on SDDoc.BillingDocument = Cust.SDDocument
left outer to one join I_OneTimeCustomerTaxNumber as Tax on Cust.SDDocument = Tax.SDDocument
and Cust.SDDocumentItem = Tax.SDDocumentItem
and Cust.PartnerFunction = Tax.PartnerFunction
left outer to one join P_Address_2 as Address on Address.AddressID = Cust.AddressID
left outer to one join I_AddressEmailAddress_2 as email on email.AddressID = Cust.AddressID
and email.EmailAddressIsCurrentDefault = 'X'
left outer to one join I_AddressPhoneNumber_2 as Phone on Phone.AddressID = Cust.AddressID
and Phone.PhNmbrIsCurrentOverallDefault = 'X'
left outer to one join I_AddressFaxNumber_2 as Fax on Fax.AddressID = Cust.AddressID
and Fax.FaxNumberIsCurrentDefault = 'X'
association [0..1] to I_CustomerCompany as _CustCompany on Cust.Customer = _CustCompany.Customer
and SDDoc.CompanyCode = _CustCompany.CompanyCode //update 1905
{
key SDDoc.BillingDocument as BillingDocument,
key SDDoc.FiscalYear as FiscalYear,
key SDDoc.CompanyCode as CompanyCode,
key cast(Cust.PartnerFunction as parvw_unv ) as PartnerFunction,
key Cust.AddressID,
SDDoc.BillingDocumentDate as InvoiceDate,
Cust.Customer as Customer,
Cust.PartnerIsOneTimeAccount as IsOneTimeAccount,
cast(case
when SDDoc.VATRegistration is initial or SDDoc.VATRegistration is null
then Tax.TaxNumber1
else substring(SDDoc.VATRegistration,3,18)
end as stceg ) as CustomerVATRegistration,
_CustCompany.ReconciliationAccount as ReconciliationAccount,
Cust.AddressID as AddressNumber,
Cust.AddressPersonID,
concat_with_space(Address.OrganizationName1, Address.OrganizationName2, 1) as FullName,
Address.StreetName as StreetName,
Address.StreetPrefixName1 as StreetPrefixName,
Address.StreetPrefixName1 as AdditionalStreetPrefixName,
Address.StreetSuffixName1 as StreetSuffixName,
Address.StreetSuffixName2 as AdditionalStreetSuffixName,
Address.HouseNumber as HouseNumber,
Address.Region as Region,
// Cust._DfltAddrRprstn,
Phone.PhoneAreaCodeSubscriberNumber as PhoneNumber,
cast( Fax.InternationalFaxNumber as abap.char(31) ) as FaxNumber,
email.EmailAddress as EmailAddress,
' ' as WebsiteURL
// cast(lower(Cust._Address._DefaultURLAddress.SearchURLAddress) as ad_uri2) as WebsiteURL
}
where
Cust.PartnerIsOneTimeAccount = 'X'
union select from I_InvoiceList as SDDoc
inner join I_SDDocumentCompletePartners as Cust on SDDoc.InvoiceList = Cust.SDDocument
left outer to one join I_OneTimeCustomerTaxNumber as Tax on Cust.SDDocument = Tax.SDDocument
and Cust.SDDocumentItem = Tax.SDDocumentItem
and Cust.PartnerFunction = Tax.PartnerFunction
left outer to one join P_Address_2 as Address on Address.AddressID = Cust.AddressID
left outer to one join I_AddressEmailAddress_2 as email on email.AddressID = Cust.AddressID
and email.EmailAddressIsCurrentDefault = 'X'
left outer to one join I_AddressPhoneNumber_2 as Phone on Phone.AddressID = Cust.AddressID
and Phone.PhNmbrIsCurrentOverallDefault = 'X'
left outer to one join I_AddressFaxNumber_2 as Fax on Fax.AddressID = Cust.AddressID
and Fax.FaxNumberIsCurrentDefault = 'X'
association [0..1] to I_CustomerCompany as _CustCompany on Cust.Customer = _CustCompany.Customer
and SDDoc.CompanyCode = _CustCompany.CompanyCode //update 1905
{
key SDDoc.InvoiceList as BillingDocument,
key SDDoc.FiscalYear as FiscalYear,
key SDDoc.CompanyCode as CompanyCode,
key cast(Cust.PartnerFunction as parvw_unv ) as PartnerFunction,
key Cust.AddressID,
SDDoc.InvoiceListBillingDate as InvoiceDate, //VDM
Cust.Customer as Customer,
Cust.PartnerIsOneTimeAccount as IsOneTimeAccount,
cast(case
when SDDoc.VATRegistration is initial or SDDoc.VATRegistration is null
then Tax.TaxNumber1
else substring(SDDoc.VATRegistration,3,18)
end as stceg ) as CustomerVATRegistration,
_CustCompany.ReconciliationAccount as ReconciliationAccount,
Cust.AddressID as AddressNumber,
Cust.AddressPersonID,
concat_with_space(Address.OrganizationName1, Address.OrganizationName2, 1) as FullName,
Address.StreetName as StreetName,
Address.StreetPrefixName1 as StreetPrefixName,
Address.StreetPrefixName1 as AdditionalStreetPrefixName,
Address.StreetSuffixName1 as StreetSuffixName,
Address.StreetSuffixName2 as AdditionalStreetSuffixName,
Address.HouseNumber as HouseNumber,
Address.Region as Region,
// Cust._DfltAddrRprstn,
Phone.PhoneAreaCodeSubscriberNumber as PhoneNumber,
cast( Fax.InternationalFaxNumber as abap.char(31) ) as FaxNumber,
email.EmailAddress as EmailAddress,
' ' as WebsiteURL
// cast(lower(Cust._Address._DefaultURLAddress.SearchURLAddress) as ad_uri2) as WebsiteURL
}
where
Cust.PartnerIsOneTimeAccount = 'X'
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