P_PH_PaytClrdReceivablePyblItm

DDL: P_PH_PAYTCLRDRECEIVABLEPYBLITM SQL: PPHPAYTCLRPITM Type: view COMPOSITE

P_PH_PaytClrdReceivablePyblItm is a Composite CDS View in SAP S/4HANA. It reads from 4 data sources (I_OperationalAcctgDocItem, I_OperationalAcctgDocItem, I_AccountingDocument, I_AccountingDocument) and exposes 36 fields with key fields CompanyCode, AccountingDocument, FiscalYear, AccountingDocumentItem, InvoiceReference.

Data Sources (4)

SourceAliasJoin Type
I_OperationalAcctgDocItem _InvoiceApArItem left_outer
I_OperationalAcctgDocItem _PaymentClearingItem from
I_AccountingDocument _SourceInvoiceHeader left_outer
I_AccountingDocument _SourceInvoiceHeader1 left_outer

Annotations (7)

NameValueLevelField
AbapCatalog.sqlViewName PPHPAYTCLRPITM view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
VDM.private true view
VDM.viewType #COMPOSITE view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (36)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode I_OperationalAcctgDocItem CompanyCode
KEY AccountingDocument I_OperationalAcctgDocItem AccountingDocument
KEY FiscalYear I_OperationalAcctgDocItem FiscalYear
KEY AccountingDocumentItem I_OperationalAcctgDocItem AccountingDocumentItem
KEY InvoiceReference I_OperationalAcctgDocItem AccountingDocument
KEY InvoiceReferenceFiscalYear I_OperationalAcctgDocItem FiscalYear
KEY InvoiceItemReference I_OperationalAcctgDocItem AccountingDocumentItem
BusinessPlace
PostingDate I_OperationalAcctgDocItem PostingDate
AccountingDocumentType I_OperationalAcctgDocItem AccountingDocumentType
FinancialAccountType I_OperationalAcctgDocItem FinancialAccountType
IsUsedInPaymentTransaction I_OperationalAcctgDocItem IsUsedInPaymentTransaction
ClearingAccountingDocument I_OperationalAcctgDocItem ClearingJournalEntry
ClearingDocFiscalYear I_OperationalAcctgDocItem ClearingJournalEntryFiscalYear
ClearingDate I_OperationalAcctgDocItem ClearingDate
GLAccount I_OperationalAcctgDocItem GLAccount
DebitCreditCodeendasDebitCreditCode
Customer I_OperationalAcctgDocItem Customer
Supplier I_OperationalAcctgDocItem Supplier
InvoiceDebitCreditCode I_OperationalAcctgDocItem DebitCreditCode
TransactionCurrency I_OperationalAcctgDocItem TransactionCurrency
InvoiceAmtInTransactionCrcy
PaymentAmtInTransactionCrcy
CompanyCodeCurrency I_OperationalAcctgDocItem CompanyCodeCurrency
InvoiceAmtInCompanyCodeCrcy
PaymentAmtInCompanyCodeCrcy
AdditionalCurrency1 I_OperationalAcctgDocItem AdditionalCurrency1
InvoiceAmtInAdditionalCrcy1
PaytAmtInAdditionalCrcy1
AdditionalCurrency2 I_OperationalAcctgDocItem AdditionalCurrency2
InvoiceAmtInAdditionalCrcy2
PaytAmtInAdditionalCrcy2
InvoiceCompanyCode I_OperationalAcctgDocItem CompanyCode
_Customer I_OperationalAcctgDocItem _Customer
_Supplier I_OperationalAcctgDocItem _Supplier
_OneTimeAccountBP I_OperationalAcctgDocItem _OneTimeAccountBP
@AbapCatalog.sqlViewName: 'PPHPAYTCLRPITM'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_PH_PaytClrdReceivablePyblItm
 as select from I_OperationalAcctgDocItem as _PaymentClearingItem
    left outer join I_OperationalAcctgDocItem as _InvoiceApArItem on   _InvoiceApArItem.ClearingAccountingDocument  = _PaymentClearingItem.AccountingDocument
                                                                                                  and _InvoiceApArItem.ClearingDocFiscalYear             = _PaymentClearingItem.FiscalYear
                                                                                                  and _InvoiceApArItem.CompanyCode                         = _PaymentClearingItem.CompanyCode
                                                                                                  // Exclude clearing payment join itself

                                                                                                  // DocumentNumber    ClearingDocument

                                                                                                  //        1400000001              1400000001

                                                                                                  //and not ( _InvoiceApArItem.AccountingDocument      = _InvoiceApArItem.ClearingAccountingDocument

                                                                                                  //                    and _InvoiceApArItem.FiscalYear          = _InvoiceApArItem.ClearingDocFiscalYear)

                                                                                                  // Exclude partial payment item cleared by payment document

                                                                                                  // DocumentNumber    ClearingDocument    InvoiceReference

                                                                                                  //        1400000001              1400000002           1800000001

                                                                                                  //and _InvoiceApArItem.IsUsedInPaymentTransaction = ''

                                                                                                  and _InvoiceApArItem.DebitCreditCode <> _PaymentClearingItem.DebitCreditCode
    left outer join I_AccountingDocument as _SourceInvoiceHeader on ( _InvoiceApArItem.AccountingDocument = _SourceInvoiceHeader.AccountingDocument and (_InvoiceApArItem.InvoiceReference is null or _InvoiceApArItem.InvoiceReference is initial))
                                                                     // or _InvoiceApArItem.InvoiceReference = _SourceInvoiceHeader.AccountingDocument)

                                                                                                  and _InvoiceApArItem.FiscalYear                = _SourceInvoiceHeader.FiscalYear
                                                                                                  and _InvoiceApArItem.CompanyCode          = _SourceInvoiceHeader.CompanyCode
    left outer join I_AccountingDocument as _SourceInvoiceHeader1 on _InvoiceApArItem.InvoiceReference = _SourceInvoiceHeader1.AccountingDocument 
                                                                                                  and _InvoiceApArItem.FiscalYear                = _SourceInvoiceHeader.FiscalYear
                                                                                                  and _InvoiceApArItem.CompanyCode          = _SourceInvoiceHeader.CompanyCode                                                            
{
  key _PaymentClearingItem.CompanyCode,
  key _PaymentClearingItem.AccountingDocument,
  key _PaymentClearingItem.FiscalYear,
  key _PaymentClearingItem.AccountingDocumentItem,
  key _InvoiceApArItem.AccountingDocument as InvoiceReference,
  key _InvoiceApArItem.FiscalYear   as InvoiceReferenceFiscalYear,
  key _InvoiceApArItem.AccountingDocumentItem as  InvoiceItemReference,    
      
      case when _InvoiceApArItem.InvoiceReference is not initial
        then _InvoiceApArItem.InvoiceReference
           when _InvoiceApArItem.InvoiceReference is initial or _InvoiceApArItem.InvoiceReference is null
        then _InvoiceApArItem.AccountingDocument
      end as ClearedInvoiceNumber,
      coalesce( _PaymentClearingItem.BusinessPlace, _InvoiceApArItem.BusinessPlace ) as BusinessPlace,
      _PaymentClearingItem.PostingDate,
      _PaymentClearingItem.AccountingDocumentType,
      _PaymentClearingItem.FinancialAccountType,
      _PaymentClearingItem.IsUsedInPaymentTransaction,
      _PaymentClearingItem.ClearingJournalEntry as ClearingAccountingDocument,
      _PaymentClearingItem.ClearingJournalEntryFiscalYear as ClearingDocFiscalYear,
      _PaymentClearingItem.ClearingDate,
      _PaymentClearingItem.GLAccount,
      case _PaymentClearingItem.IsNegativePosting
          when 'X' then
              case _PaymentClearingItem.DebitCreditCode
                  when 'H' then 'S'
                  when 'S' then 'H'
              end
          else _PaymentClearingItem.DebitCreditCode
      end as DebitCreditCode,
//      _PaymentClearingItem.DebitCreditCode,

      _PaymentClearingItem.Customer,
      _PaymentClearingItem.Supplier,
      case when _SourceInvoiceHeader.DocumentReferenceID != '' then _SourceInvoiceHeader.DocumentReferenceID
           else _SourceInvoiceHeader1.DocumentReferenceID end as DocumentReferenceID,
        
      
      
      _InvoiceApArItem.DebitCreditCode as InvoiceDebitCreditCode,
      
      _InvoiceApArItem.TransactionCurrency,
      abs( _InvoiceApArItem.AmountInTransactionCurrency) as InvoiceAmtInTransactionCrcy,
      abs(_PaymentClearingItem.AmountInTransactionCurrency) as PaymentAmtInTransactionCrcy,
      _InvoiceApArItem.CompanyCodeCurrency,
      abs( _InvoiceApArItem.AmountInCompanyCodeCurrency) as InvoiceAmtInCompanyCodeCrcy,
      abs(_PaymentClearingItem.AmountInCompanyCodeCurrency) as PaymentAmtInCompanyCodeCrcy,
      _InvoiceApArItem.AdditionalCurrency1,
      abs(_InvoiceApArItem.AmountInAdditionalCurrency1) as InvoiceAmtInAdditionalCrcy1,
      abs(_PaymentClearingItem.AmountInAdditionalCurrency1) as PaytAmtInAdditionalCrcy1,
      _InvoiceApArItem.AdditionalCurrency2,
      abs(_InvoiceApArItem.AmountInAdditionalCurrency2) as InvoiceAmtInAdditionalCrcy2,
      abs(_PaymentClearingItem.AmountInAdditionalCurrency2) as PaytAmtInAdditionalCrcy2,
      
      
      _InvoiceApArItem.CompanyCode as InvoiceCompanyCode,
      _PaymentClearingItem._Customer,
      _PaymentClearingItem._Supplier,
      _InvoiceApArItem._OneTimeAccountBP
} where _PaymentClearingItem.IsUsedInPaymentTransaction = 'X'
   //This is a payment document which clears itself

   and (_PaymentClearingItem.AccountingDocument         = _PaymentClearingItem.ClearingJournalEntry
            and _PaymentClearingItem.FiscalYear                 = _PaymentClearingItem.ClearingJournalEntryFiscalYear )
   and not ( _InvoiceApArItem.AccountingDocument      = _InvoiceApArItem.ClearingAccountingDocument
              and _InvoiceApArItem.FiscalYear          = _InvoiceApArItem.ClearingDocFiscalYear)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ACCOUNTINGDOCUMENT",
"I_OPERATIONALACCTGDOCITEM"
],
"ASSOCIATED":
[
"I_CUSTOMER",
"I_ONETIMEACCOUNTBP",
"I_SUPPLIER"
],
"BASE":
[
"I_OPERATIONALACCTGDOCITEM"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/