P_GrInvQtyInd
Assign Indicator to GR and Invoice Quantity
P_GrInvQtyInd is a Consumption CDS View that provides data about "Assign Indicator to GR and Invoice Quantity" in SAP S/4HANA. It reads from 1 data source (I_PurchaseOrderHistory) and exposes 10 fields with key fields PurchaseOrder, PurchaseOrderItem, PurchaseOrderTransactionType, MaterialDocument, MaterialDocumentYear. Part of development package ODATA_MM_PUR_POITEMS_MONI.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_PurchaseOrderHistory | PDHistory | from |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PGRINVQTYIND | view | |
| VDM.private | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view |
Fields (10)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PurchaseOrder | I_PurchaseOrderHistory | PurchaseOrder | |
| KEY | PurchaseOrderItem | I_PurchaseOrderHistory | PurchaseOrderItem | |
| KEY | PurchaseOrderTransactionType | I_PurchaseOrderHistory | PurchaseOrderTransactionType | |
| KEY | MaterialDocument | I_PurchaseOrderHistory | MaterialDocument | |
| KEY | MaterialDocumentYear | I_PurchaseOrderHistory | MaterialDocumentYear | |
| KEY | MaterialDocumentItem | I_PurchaseOrderHistory | MaterialDocumentItem | |
| KEY | AccountAssignmentNumber | I_PurchaseOrderHistory | AccountAssignmentNumber | |
| GdsRcptBlkdStkQtyInOrdQtyUnit | I_PurchaseOrderHistory | GdsRcptBlkdStkQtyInOrdQtyUnit | ||
| Quantityendelse0endasGoodsReceiptQty | ||||
| quan133endasInvoiceReceiptQty |
@AbapCatalog.sqlViewName: 'PGRINVQTYIND'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
define view P_GrInvQtyInd
as select from I_PurchaseOrderHistory as PDHistory
{
key PDHistory.PurchaseOrder as PurchaseOrder,
key PDHistory.PurchaseOrderItem as PurchaseOrderItem,
key PDHistory.PurchaseOrderTransactionType as PurchaseOrderTransactionType,
key PDHistory.MaterialDocument as MaterialDocument,
key PDHistory.MaterialDocumentYear as MaterialDocumentYear,
key PDHistory.MaterialDocumentItem as MaterialDocumentItem,
key PDHistory.AccountAssignmentNumber as AccountAssignmentNumber,
PDHistory.GdsRcptBlkdStkQtyInOrdQtyUnit,
/*Goods Receipt Quantity MENGE for Transaction Type - 1*/
case PurchaseOrderTransactionType
when '1' /*Goods Receipt */
then case PDHistory.DebitCreditCode
when 'S'
then PDHistory.Quantity
else (-1 * PDHistory.Quantity)
end
else 0
end as GoodsReceiptQty,
/*Invoice Receipt Quantity MENGE for Transaction Type - Invoice Receipt - 2*/
case PurchaseOrderTransactionType
when '2' /*Invoice Receipt */
then case PDHistory.DebitCreditCode
when 'S'
then PDHistory.Quantity
else (-1 * PDHistory.Quantity)
end
else 0
end as InvoiceReceiptQuantity ,
//Added the below code for Suplr Conf
case when PurchaseOrderTransactionType = '2'
then
case when DebitCreditCode = 'S'
then Quantity
else (-1 * Quantity)
end
else cast(0 as abap.quan(13, 3))
end as InvoiceReceiptQty,
case when PurchaseOrderTransactionType = '1' and PurchaseOrderAmount is not null
then
case when DebitCreditCode = 'S'
then PurchaseOrderAmount
else -abs(PurchaseOrderAmount)
end
else 0
end as PurchaseOrderAmount
// case when (PurchaseOrderTransactionType = '2' or PurchaseOrderTransactionType = '3')
// then
// case when DebitCreditCode = 'S'
// then
// cast(currency_conversion(
// amount => PurchaseOrderAmount,
// source_currency => Currency,
// round => 'X',
// target_currency => $parameters.P_DisplayCurrency,
// exchange_rate_date => PostingDate,
// error_handling => 'SET_TO_NULL'
// ) as abap.curr(15,2))
// else
// (-1 * cast(currency_conversion(
// amount => PurchaseOrderAmount,
// source_currency => Currency,
// round => 'X',
// target_currency => $parameters.P_DisplayCurrency,
// exchange_rate_date => PostingDate,
// error_handling => 'SET_TO_NULL'
// ) as abap.curr(15,2)))
// end
// else cast(0 as abap.curr(15,2))
// end as InvoiceReceiptAmount
}
where
( PurchaseOrderTransactionType = '1'
or PurchaseOrderTransactionType = '2' )
and _PurchaseOrderItem.PurchaseOrderItemCategory <> '9' //3074796
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