P_RU_VATDocumentExtraInfo1

DDL: P_RU_VATDOCUMENTEXTRAINFO1 SQL: PRUVATDOCEXTINF1 Type: view COMPOSITE

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)

SourceAliasJoin Type
I_JournalEntry AccDoc from
I_JournalEntry AccDoc union_all
P_RU_ExtNumByDefault ExtNumDefault inner
P_RU_CFinVatDocExtrasCm VatLongTexts inner

Annotations (7)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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":""
}
}*/