P_RFM_SlsOrdPrgrsMntrPurReqn
P_RFM_SlsOrdPrgrsMntrPurReqn is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_PurchaseReqnAcctAssgmt, I_Purchaserequisitionitem) and exposes 13 fields with key fields SalesOrder, SalesOrderItem, PurchaseRequisition, PurchaseRequisitionItem.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_PurchaseReqnAcctAssgmt | PurReqnAcctAssgmt | from |
| I_Purchaserequisitionitem | PurReqnItm | inner |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| AbapCatalog.sqlViewName | PRFMSOPMPURREQN | view | |
| AbapCatalog.preserveKey | true | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view |
Fields (13)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | SalesOrder | I_PurchaseReqnAcctAssgmt | SalesOrder | |
| KEY | SalesOrderItem | I_PurchaseReqnAcctAssgmt | SalesOrderItem | |
| KEY | PurchaseRequisition | I_Purchaserequisitionitem | PurchaseRequisition | |
| KEY | PurchaseRequisitionItem | I_Purchaserequisitionitem | PurchaseRequisitionItem | |
| RequestedQuantity | I_Purchaserequisitionitem | RequestedQuantity | ||
| BaseUnit | I_Purchaserequisitionitem | BaseUnit | ||
| DeliveryDate | I_Purchaserequisitionitem | DeliveryDate | ||
| PurOrdItmFirstGRPostingDate | _PurOrdHist | PostingDate | ||
| DeliveryDateasdue_daysendasDueDays | ||||
| TotalSupplyQuantity | RequestedQuantity | |||
| ProcessedSupplyQuantity | OrderedQuantity | |||
| Material | I_Purchaserequisitionitem | Material | ||
| Plant | I_Purchaserequisitionitem | Plant |
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@VDM.private: true
@AccessControl: {
authorizationCheck: #NOT_REQUIRED,
personalData.blocking: #NOT_REQUIRED
}
@AbapCatalog: {
sqlViewName: 'PRFMSOPMPURREQN',
preserveKey:true,
compiler.compareFilter: true
}
@ObjectModel: {
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #A,
sizeCategory: #L
}
}
//@EndUserText.label: 'Purchase Requistion'
define view P_RFM_SlsOrdPrgrsMntrPurReqn
as select from I_PurchaseReqnAcctAssgmt as PurReqnAcctAssgmt
inner join I_Purchaserequisitionitem as PurReqnItm on PurReqnAcctAssgmt.PurchaseRequisition = PurReqnItm.PurchaseRequisition
and PurReqnAcctAssgmt.PurchaseRequisitionItem = PurReqnItm.PurchaseRequisitionItem
left outer to one join I_PurchaseOrderItem as PurOrd on PurReqnItm.PurchaseRequisition = PurOrd.PurchaseRequisition
and PurReqnItm.PurchaseRequisitionItem = PurOrd.PurchaseRequisitionItem
and PurOrd.PurchasingDocumentDeletionCode is initial
left outer to one join P_RFM_SlsOrdPrgrsMntrPOHist as _PurOrdHist on PurOrd.PurchaseOrder = _PurOrdHist.PurchasingDocument
and PurOrd.PurchaseOrderItem = _PurOrdHist.PurchasingDocumentItem
{
key PurReqnAcctAssgmt.SalesOrder,
key PurReqnAcctAssgmt.SalesOrderItem,
key PurReqnItm.PurchaseRequisition,
key PurReqnItm.PurchaseRequisitionItem,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
PurReqnItm.RequestedQuantity,
@Semantics.unitOfMeasure: true
PurReqnItm.BaseUnit,
PurReqnItm.DeliveryDate,
_PurOrdHist.PostingDate as PurOrdItmFirstGRPostingDate,
case
when _PurOrdHist.PostingDate is not initial
then cast(Dats_Days_Between( _PurOrdHist.PostingDate, PurReqnItm.DeliveryDate) as due_days)
else cast(Dats_Days_Between( cast($session.system_date as dats), PurReqnItm.DeliveryDate) as due_days)
end as DueDays,
case
when (_PurOrdHist.PostingDate is initial or _PurOrdHist.PostingDate is null ) and PurReqnItm.DeliveryDate <= $session.system_date
then 'X'
when _PurOrdHist.PostingDate is not initial and PurReqnItm.DeliveryDate <= _PurOrdHist.PostingDate
then 'X'
else ' '
end as DeliveryIsOverdue,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
RequestedQuantity as TotalSupplyQuantity,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
OrderedQuantity as ProcessedSupplyQuantity,
PurReqnItm.Material,
PurReqnItm.Plant
}
where
PurReqnItm.IsDeleted <> 'X'
and PurReqnItm.IsEndOfPurposeBlocked = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PURCHASEORDERITEM",
"I_PURCHASEREQNACCTASSGMT",
"I_PURCHASEREQUISITIONITEM",
"P_RFM_SLSORDPRGRSMNTRPOHIST"
],
"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