P_UpdatedResidualOpenItem
P_UpdatedResidualOpenItem is a Consumption CDS View in SAP S/4HANA. It reads from 3 data sources (I_AccountingDocument, I_OperationalAcctgDocItem, P_ResItemSession) and exposes 29 fields with key fields CompanyCode, FiscalYear, AccountingDocument, AccountingDocumentItem, ChangeDocCreationDate.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_AccountingDocument | ResidualHeader | inner |
| I_OperationalAcctgDocItem | ResidualItem | from |
| P_ResItemSession | Session | inner |
Annotations (12)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PAGRIU | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #MANDATORY | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| VDM.viewType | #CONSUMPTION | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| VDM.private | true | view |
Fields (29)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CompanyCode | I_OperationalAcctgDocItem | CompanyCode | |
| KEY | FiscalYear | I_OperationalAcctgDocItem | FiscalYear | |
| KEY | AccountingDocument | I_OperationalAcctgDocItem | AccountingDocument | |
| KEY | AccountingDocumentItem | I_OperationalAcctgDocItem | AccountingDocumentItem | |
| KEY | ChangeDocCreationDate | ResidualChange | CreationDate | |
| KEY | ChangeDocumentCreationTime | ResidualChange | CreationTime | |
| KEY | ChangeDocument | ResidualChange | ChangeDocument | |
| AssignmentReference | I_OperationalAcctgDocItem | AssignmentReference | ||
| AccountingDocumentHeaderText | I_AccountingDocument | AccountingDocumentHeaderText | ||
| DocumentItemText | I_OperationalAcctgDocItem | DocumentItemText | ||
| PaymentDifferenceReason | I_OperationalAcctgDocItem | PaymentDifferenceReason | ||
| CreationDate | I_AccountingDocument | AccountingDocumentCreationDate | ||
| CreationTime | I_AccountingDocument | CreationTime | ||
| LastChangeDate | I_AccountingDocument | LastChangeDate | ||
| PostingDate | I_OperationalAcctgDocItem | PostingDate | ||
| DocumentDate | I_OperationalAcctgDocItem | DocumentDate | ||
| NetDueDate | I_OperationalAcctgDocItem | NetDueDate | ||
| CashDiscountBaseAmount | I_OperationalAcctgDocItem | CashDiscountBaseAmount | ||
| CashDiscountAmount | I_OperationalAcctgDocItem | CashDiscountAmount | ||
| PaymentTerms | I_OperationalAcctgDocItem | PaymentTerms | ||
| CashDiscount1Days | I_OperationalAcctgDocItem | CashDiscount1Days | ||
| CashDiscount2Days | I_OperationalAcctgDocItem | CashDiscount2Days | ||
| NetPaymentDays | I_OperationalAcctgDocItem | NetPaymentDays | ||
| CashDiscount1Percent | I_OperationalAcctgDocItem | CashDiscount1Percent | ||
| CashDiscount2Percent | I_OperationalAcctgDocItem | CashDiscount2Percent | ||
| DueCalculationBaseDate | I_OperationalAcctgDocItem | DueCalculationBaseDate | ||
| FixedCashDiscount | I_OperationalAcctgDocItem | FixedCashDiscount | ||
| PaymentBlockingReason | I_OperationalAcctgDocItem | PaymentBlockingReason | ||
| TransactionCurrency | I_OperationalAcctgDocItem | TransactionCurrency |
@AbapCatalog.sqlViewName: 'PAGRIU'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #MANDATORY
//@EndUserText.label: 'Residual item update'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking: #NOT_REQUIRED
//@ObjectModel.representativeKey: 'AccountingDocumentItem'
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@VDM.viewType: #CONSUMPTION
@Metadata.ignorePropagatedAnnotations: true
//@UI.presentationVariant.sortOrder.by: 'LastChangeDate, ChangeDocumentCreationDate, ChangeDocumentCreationTime'
//@UI.presentationVariant.sortOrder.direction: #ASC
@VDM.private: true
define view P_UpdatedResidualOpenItem as
select from I_OperationalAcctgDocItem as ResidualItem
inner join I_AccountingDocument as ResidualHeader on
// Make sure that ResidualItem is A/R item
ResidualItem.FinancialAccountType = 'D' and
// Make sure that ResidualItem is only searched in relevant categories
(
ResidualItem.AccountingDocumentCategory = '' or
ResidualItem.AccountingDocumentCategory = 'S' or
ResidualItem.AccountingDocumentCategory = 'A'
) and
// Make sure that ResidualItem is a residual item
ResidualItem.FollowOnDocumentType = 'V' and
// Make sure that ResidualHeader is not a reversal accounting document
ResidualItem.CompanyCode = ResidualHeader.CompanyCode and
ResidualItem.FiscalYear = ResidualHeader.FiscalYear and
ResidualItem.AccountingDocument = ResidualHeader.AccountingDocument and
( ResidualHeader.IsReversal is null or ResidualHeader.IsReversal = '' )
inner join P_ResItemSession as Session on client = $session.client
left outer to many join I_ChangeDocument as ResidualChange on
(
ResidualChange.ChangeDocObjectClass = 'BELEG' or
ResidualChange.ChangeDocObjectClass = 'BELEGR'
) and
ResidualChange.ChangeDocObject = concat(
Session.client, concat(
ResidualHeader.CompanyCode, concat(
ResidualHeader.AccountingDocument, ResidualHeader.FiscalYear
)
)
)
{
key ResidualItem.CompanyCode,
key ResidualItem.FiscalYear,
key ResidualItem.AccountingDocument,
key ResidualItem.AccountingDocumentItem,
key ResidualChange.CreationDate as ChangeDocCreationDate,
key ResidualChange.CreationTime as ChangeDocumentCreationTime,
key ResidualChange.ChangeDocument,
ResidualItem.AssignmentReference,
ResidualHeader.AccountingDocumentHeaderText,
ResidualItem.DocumentItemText,
ResidualItem.PaymentDifferenceReason,
ResidualHeader.AccountingDocumentCreationDate as CreationDate,
ResidualHeader.CreationTime as CreationTime,
ResidualHeader.LastChangeDate as LastChangeDate,
ResidualItem.PostingDate,
ResidualItem.DocumentDate,
ResidualItem.NetDueDate,
@Semantics.amount.currencyCode: 'TransactionCurrency'
ResidualItem.CashDiscountBaseAmount,
@Semantics.amount.currencyCode: 'TransactionCurrency'
ResidualItem.CashDiscountAmount,
ResidualItem.PaymentTerms,
ResidualItem.CashDiscount1Days,
ResidualItem.CashDiscount2Days,
ResidualItem.NetPaymentDays,
ResidualItem.CashDiscount1Percent,
ResidualItem.CashDiscount2Percent,
ResidualItem.DueCalculationBaseDate,
ResidualItem.FixedCashDiscount,
ResidualItem.PaymentBlockingReason,
ResidualItem.TransactionCurrency
}
where
( LastChangeDate is not null or LastChangeDate <> '00000000' )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ACCOUNTINGDOCUMENT",
"I_CHANGEDOCUMENT",
"I_OPERATIONALACCTGDOCITEM",
"P_RESITEMSESSION"
],
"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