P_RU_VATDocumentExtraInfo1
P_RU_VATDocumentExtraInfo1 is a Composite CDS View in SAP S/4HANA. It reads from 4 data sources (I_JournalEntry, I_JournalEntry, P_RU_ExtNumByDefault, P_RU_CFinVatDocExtrasCm) and exposes 38 fields with key fields CompanyCode, AccountingDocument, FiscalYear, AccountingDocument, FiscalYear.
Data Sources (4)
| Source | Alias | Join Type |
|---|---|---|
| I_JournalEntry | AccDoc | from |
| I_JournalEntry | AccDoc | union_all |
| P_RU_ExtNumByDefault | ExtNumDefault | inner |
| P_RU_CFinVatDocExtrasCm | VatLongTexts | inner |
Annotations (7)
| Name | Value | Level | Field |
|---|---|---|---|
| VDM.private | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| AbapCatalog.sqlViewName | PRUVATDOCEXTINF1 | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (38)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CompanyCode | I_JournalEntry | CompanyCode | |
| KEY | AccountingDocument | I_JournalEntry | AccountingDocument | |
| KEY | FiscalYear | I_JournalEntry | FiscalYear | |
| AccountingDocumentType | I_JournalEntry | AccountingDocumentType | ||
| ManualExternalInvoice | P_RU_CFinVatDocExtrasCm | ExternalInvoice | ||
| ManualExternalInvoiceDate | P_RU_CFinVatDocExtrasCm | InvoiceDate | ||
| ExtDocNmbrAndDteAreFilled | P_RU_ExtNumByDefault | ExtDocNmbrAndDteAreFilled | ||
| SenderLogicalSystem | I_JournalEntry | SenderLogicalSystem | ||
| SenderCompanyCode | I_JournalEntry | SenderCompanyCode | ||
| SenderAccountingDocument | I_JournalEntry | SenderAccountingDocument | ||
| SenderFiscalYear | I_JournalEntry | SenderFiscalYear | ||
| ExternalInvoice | ||||
| InvoiceDate | ||||
| ExternalPayment | ||||
| PaymentDate | ||||
| Supplier | ||||
| Customer | ||||
| RU_IncomingInvoiceNumber | ||||
| CompanyCode | ||||
| KEY | AccountingDocument | I_JournalEntry | AccountingDocument | |
| KEY | FiscalYear | I_JournalEntry | FiscalYear | |
| AccountingDocumentType | I_JournalEntry | AccountingDocumentType | ||
| ManualExternalInvoice | ||||
| ManualExternalInvoiceDate | ||||
| ExtDocNmbrAndDteAreFilled | P_RU_ExtNumByDefault | ExtDocNmbrAndDteAreFilled | ||
| DefaultExternalInvoiceDate | I_JournalEntry | DocumentDate | ||
| SenderLogicalSystem | I_JournalEntry | SenderLogicalSystem | ||
| SenderCompanyCode | I_JournalEntry | SenderCompanyCode | ||
| SenderAccountingDocument | I_JournalEntry | SenderAccountingDocument | ||
| SenderFiscalYear | I_JournalEntry | SenderFiscalYear | ||
| ExternalInvoice | ||||
| InvoiceDate | ||||
| ExternalPayment | ||||
| PaymentDate | ||||
| Supplier | ||||
| Customer | ||||
| RU_IncomingInvoiceNumber | ||||
| RU_IncomingInvoiceDate |
@VDM.private: true
@VDM.viewType: #COMPOSITE
@AbapCatalog.sqlViewName: 'PRUVATDOCEXTINF1'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_RU_VATDocumentExtraInfo1
//data from ExtraTexts
as select from I_JournalEntry as AccDoc
inner join P_RU_CFinVatDocExtrasCm as VatLongTexts on VatLongTexts.CompanyCode = AccDoc.CompanyCode
and VatLongTexts.AccountingDocument = AccDoc.AccountingDocument
and VatLongTexts.FiscalYear = AccDoc.FiscalYear
and (
VatLongTexts.ExternalInvoice <> ''
or VatLongTexts.InvoiceDate <> '00000000'
)
left outer to one join P_RU_ExtNumByDefault as ExtNumDefault on ExtNumDefault.CompanyCode = AccDoc.CompanyCode
and ExtNumDefault.AccountingDocumentType = AccDoc.AccountingDocumentType
and ExtNumDefault.ExtDocNmbrAndDteAreFilled = 'X'
{
key AccDoc.CompanyCode,
key AccDoc.AccountingDocument,
key AccDoc.FiscalYear,
AccDoc.AccountingDocumentType,
VatLongTexts.ExternalInvoice as ManualExternalInvoice,
VatLongTexts.InvoiceDate as ManualExternalInvoiceDate,
ExtNumDefault.ExtDocNmbrAndDteAreFilled,
case when ExtNumDefault.ExtDocNmbrAndDteAreFilled is not null
then case when AccDoc.SenderLogicalSystem <> ''
then ltrim(AccDoc.SenderAccountingDocument, '0')
else ltrim(AccDoc.AccountingDocument, '0')
end
else ''
end as DefaultExternalInvoice,
case when ExtNumDefault.CompanyCode is not null
then AccDoc.DocumentDate
else '00010101' //if set 00000000 - attribute will not output in XML. To output it with empty value, we replace 00010101 on empty in the formatter method
end as DefaultExternalInvoiceDate,
AccDoc.SenderLogicalSystem,
AccDoc.SenderCompanyCode,
AccDoc.SenderAccountingDocument,
AccDoc.SenderFiscalYear,
'' as ExternalInvoice,
'00000000' as InvoiceDate,
'' as ExternalPayment,
'00000000' as PaymentDate,
'' as Supplier,
'' as Customer,
'' as RU_IncomingInvoiceNumber,
'00000000' as RU_IncomingInvoiceDate
}
//data from BKPF (if ExtraTexts do not exist)
union all select from I_JournalEntry as AccDoc
inner join P_RU_ExtNumByDefault as ExtNumDefault on ExtNumDefault.CompanyCode = AccDoc.CompanyCode
and ExtNumDefault.AccountingDocumentType = AccDoc.AccountingDocumentType
and ExtNumDefault.ExtDocNmbrAndDteAreFilled = 'X'
left outer to one join P_RU_CFinVatDocExtrasCm as VatLongTexts on VatLongTexts.CompanyCode = AccDoc.CompanyCode
and VatLongTexts.AccountingDocument = AccDoc.AccountingDocument
and VatLongTexts.FiscalYear = AccDoc.FiscalYear
and (
VatLongTexts.ExternalInvoice <> ''
or VatLongTexts.InvoiceDate <> '00000000'
)
{
key AccDoc.CompanyCode,
key AccDoc.AccountingDocument,
key AccDoc.FiscalYear,
AccDoc.AccountingDocumentType,
'' as ManualExternalInvoice,
'00000000' as ManualExternalInvoiceDate,
ExtNumDefault.ExtDocNmbrAndDteAreFilled,
case when AccDoc.SenderLogicalSystem <> ''
then ltrim(AccDoc.SenderAccountingDocument, '0')
else ltrim(AccDoc.AccountingDocument, '0')
end as DefaultExternalInvoice,
AccDoc.DocumentDate as DefaultExternalInvoiceDate,
AccDoc.SenderLogicalSystem,
AccDoc.SenderCompanyCode,
AccDoc.SenderAccountingDocument,
AccDoc.SenderFiscalYear,
'' as ExternalInvoice,
'00000000' as InvoiceDate,
'' as ExternalPayment,
'00000000' as PaymentDate,
'' as Supplier,
'' as Customer,
'' as RU_IncomingInvoiceNumber,
'00000000' as RU_IncomingInvoiceDate
}
where
VatLongTexts.CompanyCode is null
and AccDoc.TaxReportingDate <> '00000000'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_JOURNALENTRY",
"P_RU_CFINVATDOCEXTRASCM",
"P_RU_EXTNUMBYDEFAULT"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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