P_PurReqnOpenQuantCalc
P view for Open Quantity Calculation
P_PurReqnOpenQuantCalc is a Consumption CDS View that provides data about "P view for Open Quantity Calculation" in SAP S/4HANA. It reads from 1 data source (I_Purchaserequisitionitem) and exposes 106 fields with key fields PurchaseRequisition, PurchaseRequisitionItem. It has 9 associations to related views. Part of development package ODATA_MM_PUR_PRITEM_MNTR.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_Purchaserequisitionitem | _Purchaserequisitionitem | from |
Associations (9)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_PurgDocumentItemCategory | _PurgDocumentItemCategory | $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory |
| [0..1] | I_PRReleaseIndicatorDesc | _ReleaseIndicatorDesc | _ReleaseIndicatorDesc.PurchasingReleaseStatus = $projection.ReleaseCode and _ReleaseIndicatorDesc.Language = $session.system_language |
| [0..1] | C_PurReqnCreationInd | _PurchaseReqnOrigin | _PurchaseReqnOrigin.DomainValue = $projection.PurReqnOrigin |
| [0..1] | I_User | _User | _User.UserID = $projection.CreatedByUser |
| [0..1] | I_PurchasingCategoryMatlGroup | _PurchasingCategoryMatlGroup | _Purchaserequisitionitem.MaterialGroup = _PurchasingCategoryMatlGroup.MaterialGroup |
| [0..1] | I_ProcmtBlockedSupplier | _ProcmtBlockedSupplier | _ProcmtBlockedSupplier.PurchasingIsBlockedForSupplier = 'X' |
| [0..*] | I_ReleaseStrategyDesc | _ReleaseStrategyDesc | _ReleaseStrategyDesc.PurchasingReleaseStrategy = $projection.ReleaseStrategy and _ReleaseStrategyDesc.ReleaseGroup = $projection.ReleaseGroup |
| [0..1] | C_PurchaseReqnSourceType | _PurchaseReqnSourceType | _PurchaseReqnSourceType.DomainValue = $projection.PurchasingSourceType |
| [1..1] | I_CalendarDate | _CalendarDate | _CalendarDate.CalendarDate = $session.system_date |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PPROPENQUANCALC | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| EndUserText.label | P view for Open Quantity Calculation | view | |
| VDM.private | true | view | |
| VDM.viewType | #CONSUMPTION | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (106)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | PurchaseRequisition | I_Purchaserequisitionitem | PurchaseRequisition | |
| KEY | PurchaseRequisitionItem | I_Purchaserequisitionitem | PurchaseRequisitionItem | |
| PurgCatUUID | _PurchasingCategoryMatlGroup | PurgCatUUID | ||
| MaterialGroup | I_Purchaserequisitionitem | MaterialGroup | ||
| PurchasingCategory | ||||
| PurchasingOrganization | I_Purchaserequisitionitem | PurchasingOrganization | ||
| PurchasingDocumentCategory | I_Purchaserequisitionitem | PurchasingDocumentCategory | ||
| PurchaseRequisitionType | I_Purchaserequisitionitem | PurchaseRequisitionType | ||
| FixedSupplier | I_Purchaserequisitionitem | FixedSupplier | ||
| SupplyingPlant | I_Purchaserequisitionitem | SupplyingPlant | ||
| AccountAssignmentCategory | I_Purchaserequisitionitem | AccountAssignmentCategory | ||
| Material | I_Purchaserequisitionitem | Material | ||
| Plant | I_Purchaserequisitionitem | Plant | ||
| BaseUnit | I_Purchaserequisitionitem | BaseUnit | ||
| PurchasingDocumentItemCategory | I_Purchaserequisitionitem | PurchasingDocumentItemCategory | ||
| PurchasingDocument | I_Purchaserequisitionitem | PurchasingDocument | ||
| PurchasingGroup | I_Purchaserequisitionitem | PurchasingGroup | ||
| DeliveryDate | I_Purchaserequisitionitem | DeliveryDate | ||
| RequestedQuantity | I_Purchaserequisitionitem | RequestedQuantity | ||
| PurchaseRequisitionPrice | I_Purchaserequisitionitem | PurchaseRequisitionPrice | ||
| PurReqnPriceQuantity | I_Purchaserequisitionitem | PurReqnPriceQuantity | ||
| PurReqnItemCurrency | I_Purchaserequisitionitem | PurReqnItemCurrency | ||
| PurgDocExternalItemCategory | ||||
| PurgDocItemCategoryName | ||||
| RequirementTracking | I_Purchaserequisitionitem | RequirementTracking | ||
| PurchaseRequisitionItemText | I_Purchaserequisitionitem | PurchaseRequisitionItemText | ||
| Supplier | I_Purchaserequisitionitem | Supplier | ||
| SupplierName | _DesiredSupplier | SupplierName | ||
| OpenQuantity | ||||
| PurReqnReleaseStatus | I_Purchaserequisitionitem | PurReqnReleaseStatus | ||
| PurchaseRequisitionReleaseDate | I_Purchaserequisitionitem | PurchaseRequisitionReleaseDate | ||
| PurReqCreationDate | I_Purchaserequisitionitem | PurReqCreationDate | ||
| ProcessingStatus | I_Purchaserequisitionitem | ProcessingStatus | ||
| ReleaseCode | I_Purchaserequisitionitem | ReleaseCode | ||
| PurchasingReleaseIndicatorDesc | _ReleaseIndicatorDesc | PurchasingReleaseIndicatorDesc | ||
| StorageLocation | I_Purchaserequisitionitem | StorageLocation | ||
| PurchasingInfoRecord | I_Purchaserequisitionitem | PurchasingInfoRecord | ||
| PurReqnRequestor | I_Purchaserequisitionitem | PurReqnRequestor | ||
| RequisitionerName | I_Purchaserequisitionitem | RequisitionerName | ||
| MRPController | I_Purchaserequisitionitem | MRPController | ||
| Batch | I_Purchaserequisitionitem | Batch | ||
| PurReqnOrigin | I_Purchaserequisitionitem | PurReqnOrigin | ||
| DomainText | _PurchaseReqnOrigin | DomainText | ||
| ReleaseStrategy | I_Purchaserequisitionitem | ReleaseStrategy | ||
| PurchasingReleaseStrategyDesc | _ReleaseStrategyDesc | PurchasingReleaseStrategyDesc | ||
| ReleaseGroup | I_Purchaserequisitionitem | ReleaseGroup | ||
| CreatedByUser | I_Purchaserequisitionitem | CreatedByUser | ||
| UserDescription | _User | UserDescription | ||
| CreationDate | I_Purchaserequisitionitem | CreationDate | ||
| IsClosed | I_Purchaserequisitionitem | IsClosed | ||
| IsDeleted | I_Purchaserequisitionitem | IsDeleted | ||
| PurchasingDocumentSubtype | I_Purchaserequisitionitem | PurchasingDocumentSubtype | ||
| IsPurReqnBlocked | I_Purchaserequisitionitem | IsPurReqnBlocked | ||
| IsPurReqnCmplt | I_Purchaserequisitionitem | IsPurReqnCmplt | ||
| CompanyCode | I_Purchaserequisitionitem | CompanyCode | ||
| CompanyCodeName | ||||
| OrderedQuantity | I_Purchaserequisitionitem | OrderedQuantity | ||
| PurchaseRequisitionStatus | I_Purchaserequisitionitem | PurchaseRequisitionStatus | ||
| ConsumptionPosting | I_Purchaserequisitionitem | ConsumptionPosting | ||
| PurchasingDocumentTypeName | ||||
| PurchasingIsBlocked | _DesiredSupplier | PurchasingIsBlocked | ||
| char10asPurchasingDocumentStatus | ||||
| ProductType | ProductType | |||
| SupplierMaterialNumber | SupplierMaterialNumber | |||
| MaterialRevisionLevel | MaterialRevisionLevel | |||
| ServicePerformer | ServicePerformer | |||
| MaterialPlannedDeliveryDurn | MaterialPlannedDeliveryDurn | |||
| PerformancePeriodStartDate | PerformancePeriodStartDate | |||
| PerformancePeriodEndDate | PerformancePeriodEndDate | |||
| PurchaseRequisitionIsFixed | PurchaseRequisitionIsFixed | |||
| MaterialGoodsReceiptDuration | MaterialGoodsReceiptDuration | |||
| GoodsReceiptIsExpected | GoodsReceiptIsExpected | |||
| InvoiceIsExpected | InvoiceIsExpected | |||
| GoodsReceiptIsNonValuated | GoodsReceiptIsNonValuated | |||
| SourceOfSupplyIsAssigned | SourceOfSupplyIsAssigned | |||
| LastChangedDate | LastChangedDate | |||
| SupplyingPlantName | _SupplyingPlant | PlantName | ||
| weekstart | ||||
| weekend | ||||
| secweekend | ||||
| calweek | ||||
| weekday1 | ||||
| weekday2 | ||||
| weekday4 | ||||
| weekday5 | ||||
| PFMTransDataFootprintUUID | PFMTransDataFootprintUUID | |||
| _PurchaseReqnSourceType | _PurchaseReqnSourceType | |||
| _PurchasingCategory | _PurchasingCategoryMatlGroup | _PurchasingCategory | ||
| _AccAssgnmtCategory | _AccAssgnmtCategory | |||
| _PurchasingOrganization | _PurchasingOrganization | |||
| _PurchasingGroup | _PurchasingGroup | |||
| _Plant | _Plant | |||
| _Material | _Material | |||
| _PurchasingInfoRecord | _PurchasingInfoRecord | |||
| _StorageLocation | _StorageLocation | |||
| _PurgDocumentItemCategory | _PurgDocumentItemCategory | |||
| _Supplier | _Supplier | |||
| _PurReqnAcctAssgmt | _PurReqnAcctAssgmt | |||
| _DesiredSupplier | _DesiredSupplier | |||
| _ReleaseIndicatorDesc | _ReleaseIndicatorDesc | |||
| _PurchaseReqnOrigin | _PurchaseReqnOrigin | |||
| _User | _User | |||
| _ProcmtBlockedSupplier | _ProcmtBlockedSupplier | |||
| _ReleaseStrategyDesc | _ReleaseStrategyDesc | |||
| _PurchasingCategoryMatlGroup | _PurchasingCategoryMatlGroup | |||
| _MaterialGroup | I_Purchaserequisitionitem | _MaterialGroup |
@AbapCatalog.sqlViewName: 'PPROPENQUANCALC'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'P view for Open Quantity Calculation'
@VDM.private: true
@VDM.viewType: #CONSUMPTION
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_PurReqnOpenQuantCalc
as select from I_Purchaserequisitionitem as _Purchaserequisitionitem
// association [0..1] to I_Supplier as _Supplier on $projection.Supplier = _Supplier.Supplier
//association [0..1] to I_MaterialGroup as _MaterialGroup on $projection.MaterialGroup = _MaterialGroup.MaterialGroup // 2741424
association [0..1] to I_PurgDocumentItemCategory as _PurgDocumentItemCategory on $projection.PurchasingDocumentItemCategory = _PurgDocumentItemCategory.PurchasingDocumentItemCategory
//// association [0..1] to I_Supplier as _DesiredSupplier on $projection.ExtDesiredSupplierForPurg = _DesiredSupplier.Supplier
association [0..1] to I_PRReleaseIndicatorDesc as _ReleaseIndicatorDesc on _ReleaseIndicatorDesc.PurchasingReleaseStatus = $projection.ReleaseCode
and _ReleaseIndicatorDesc.Language = $session.system_language
association [0..1] to C_PurReqnCreationInd as _PurchaseReqnOrigin on _PurchaseReqnOrigin.DomainValue = $projection.PurReqnOrigin
association [0..1] to I_User as _User on _User.UserID = $projection.CreatedByUser
association [0..1] to I_PurchasingCategoryMatlGroup as _PurchasingCategoryMatlGroup on _Purchaserequisitionitem.MaterialGroup = _PurchasingCategoryMatlGroup.MaterialGroup //2741424
// association[1..1] to I_ProcurementDomainValues as _DomainText on _DomainText.Name = 'VDM_BLOCKED_SUPPLIER'
// and _DomainText.Language = $session.system_language
// and _DomainText.DomainValue = 'X'
association [0..1] to I_ProcmtBlockedSupplier as _ProcmtBlockedSupplier on _ProcmtBlockedSupplier.PurchasingIsBlockedForSupplier = 'X'
association [0..*] to I_ReleaseStrategyDesc as _ReleaseStrategyDesc on _ReleaseStrategyDesc.PurchasingReleaseStrategy = $projection.ReleaseStrategy
and _ReleaseStrategyDesc.ReleaseGroup = $projection.ReleaseGroup
association [0..1] to C_PurchaseReqnSourceType as _PurchaseReqnSourceType on _PurchaseReqnSourceType.DomainValue = $projection.PurchasingSourceType
// association [1..1] to P_PurReqOpenValCalc as _PurReqOpenValCalc on _PurReqOpenValCalc.PurchaseRequisition = $projection.PurchaseRequisition
// and _PurReqOpenValCalc.PurchaseRequisitionItem = $projection.PurchaseRequisitionItem
association [1..1] to I_CalendarDate as _CalendarDate on _CalendarDate.CalendarDate = $session.system_date
{
key _Purchaserequisitionitem.PurchaseRequisition,
key _Purchaserequisitionitem.PurchaseRequisitionItem,
_PurchasingCategoryMatlGroup.PurgCatUUID,
_Purchaserequisitionitem.MaterialGroup,
_PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory,
//_PurchasingCategoryMatlGroup._MaterialGroup,
_Purchaserequisitionitem.PurchasingOrganization,
_Purchaserequisitionitem.PurchasingDocumentCategory,
_Purchaserequisitionitem.PurchaseRequisitionType,
_Purchaserequisitionitem.FixedSupplier, //// as Supplier ,
_Purchaserequisitionitem.SupplyingPlant,
_Purchaserequisitionitem.AccountAssignmentCategory,
_Purchaserequisitionitem.Material,
_Purchaserequisitionitem.Plant,
_Purchaserequisitionitem.BaseUnit,
_Purchaserequisitionitem.PurchasingDocumentItemCategory,
_Purchaserequisitionitem.PurchasingDocument,
_Purchaserequisitionitem.PurchasingGroup,
// case when _Purchaserequisitionitem.DeliveryDate < $session.system_date and _Purchaserequisitionitem.DeliveryDate is not null and _Purchaserequisitionitem.DeliveryDate <> '00000000'
// then '1'
// else '2'
// end as IsOverdue,
_Purchaserequisitionitem.DeliveryDate,
_Purchaserequisitionitem.RequestedQuantity,
_Purchaserequisitionitem.PurchaseRequisitionPrice,
_Purchaserequisitionitem.PurReqnPriceQuantity,
_Purchaserequisitionitem.PurReqnItemCurrency,
_PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocExternalItemCategory,
_PurgDocumentItemCategory._Text[1: Language = $session.system_language ].PurgDocItemCategoryName,
_Purchaserequisitionitem.RequirementTracking,
_Purchaserequisitionitem.PurchaseRequisitionItemText,
_Purchaserequisitionitem.Supplier, //// as ExtDesiredSupplierForPurg ,
_DesiredSupplier.SupplierName, //// as PreferredSupplierName,
case PurReqnPriceQuantity
when 0 then cast(PurchaseRequisitionPrice * RequestedQuantity as abap.curr( 25, 2 ))
else
case when RequestedQuantity = 0
then PurchaseRequisitionPrice
else
cast(division(
cast(PurchaseRequisitionPrice * RequestedQuantity as abap.dec( 25, 2 )),
cast(PurReqnPriceQuantity as abap.dec( 25, 2 )),2
) as abap.curr( 25, 2 ))
end
end as PurReqnTotalAmountInDspCrcy,
_Purchaserequisitionitem.RequestedQuantity-_Purchaserequisitionitem.OrderedQuantity as OpenQuantity,
_Purchaserequisitionitem.PurReqnReleaseStatus,
_Purchaserequisitionitem.PurchaseRequisitionReleaseDate,
_Purchaserequisitionitem.PurReqCreationDate,
_Purchaserequisitionitem.ProcessingStatus,
_Purchaserequisitionitem.ReleaseCode,
_ReleaseIndicatorDesc.PurchasingReleaseIndicatorDesc,
_Purchaserequisitionitem.StorageLocation,
_Purchaserequisitionitem.PurchasingInfoRecord,
//_Purchaserequisitionitem.PurReqnSSPRequestor,
_Purchaserequisitionitem.PurReqnRequestor,
_Purchaserequisitionitem.RequisitionerName,
_Purchaserequisitionitem.MRPController,
_Purchaserequisitionitem.Batch,
_Purchaserequisitionitem.PurReqnOrigin,
_PurchaseReqnOrigin.DomainText,
_Purchaserequisitionitem.ReleaseStrategy,
_ReleaseStrategyDesc.PurchasingReleaseStrategyDesc,
_Purchaserequisitionitem.ReleaseGroup,
_Purchaserequisitionitem.CreatedByUser,
_User.UserDescription,
_Purchaserequisitionitem.CreationDate,
_Purchaserequisitionitem.IsClosed,
_Purchaserequisitionitem.IsDeleted,
_Purchaserequisitionitem.PurchasingDocumentSubtype,
_Purchaserequisitionitem.IsPurReqnBlocked,
_Purchaserequisitionitem.IsPurReqnCmplt,
_Purchaserequisitionitem.CompanyCode,
_Purchaserequisitionitem._PurchaseOrder._CompanyCode.CompanyCodeName,
_Purchaserequisitionitem.OrderedQuantity,
_Purchaserequisitionitem.PurchaseRequisitionStatus,
_Purchaserequisitionitem.ConsumptionPosting,
_Purchaserequisitionitem._PurchasingDocumentType._Text[1: Language = $session.system_language ].PurchasingDocumentTypeName,
_DesiredSupplier.PurchasingIsBlocked,
// _Supplier.PurchasingIsBlocked,
case when
_DesiredSupplier.PurchasingIsBlocked = 'X'
// _Supplier.PurchasingIsBlocked = 'X'
then
_ProcmtBlockedSupplier._Text[1: Language = $session.system_language].SupplierName
// _DomainText.DomainText
else
' '
end as PurchasingIsBlockedForSupplier,
//visual filter case statements
cast(case when
(_Purchaserequisitionitem.PurReqnReleaseStatus = '03' and _Purchaserequisitionitem.ProcessingStatus = 'N') or (_Purchaserequisitionitem.PurReqnReleaseStatus = '04' and _Purchaserequisitionitem.ProcessingStatus = 'N') or (_Purchaserequisitionitem.PurReqnReleaseStatus = '02' and _Purchaserequisitionitem.ProcessingStatus = 'N' and _Purchaserequisitionitem.PurReqnCmpltnsCat = 'A')
then '1' //In Approval
when (_Purchaserequisitionitem.PurReqnReleaseStatus = '02' and _Purchaserequisitionitem.ProcessingStatus = 'N') or
(_Purchaserequisitionitem.PurReqnReleaseStatus = '05' and _Purchaserequisitionitem.ProcessingStatus = 'N')
then '2' //without-follow on documents
else '3' //others
end as abap.char( 10 )) as PurchasingDocumentStatus,
//Newly added fields as part of code clean up based on scope document
ProductType,
SupplierMaterialNumber,
MaterialRevisionLevel,
ServicePerformer,
MaterialPlannedDeliveryDurn,
PerformancePeriodStartDate,
PerformancePeriodEndDate,
PurchaseRequisitionIsFixed,
MaterialGoodsReceiptDuration,
GoodsReceiptIsExpected,
InvoiceIsExpected,
GoodsReceiptIsNonValuated,
SourceOfSupplyIsAssigned,
LastChangedDate,
case
when PurchaseContract <> ''
then concat(concat(PurchaseContract, '/'), PurchaseContractItem)
when PurchasingInfoRecord <> ''
then PurchasingInfoRecord
else
' '
end as SourceDocument,
case
when PurchaseContractItem <> '00000'
then 'AG'
when PurchasingInfoRecord <> ''
then 'IR'
else
''
end as PurchasingSourceType,
_SupplyingPlant.PlantName as SupplyingPlantName,
//// _PurReqOpenValCalc.IsOverdue,
////
//// _PurReqOpenValCalc.NetValueAmount,
////
//// _PurReqOpenValCalc.DurationToNextStatusInDays,
//Logic for sun to sat
dats_add_days(_CalendarDate.FirstDayOfWeekDate,-1,'NULL') as weekstart,
dats_add_days(_CalendarDate.FirstDayOfWeekDate,5,'NULL') as weekend,
dats_add_days(_CalendarDate.FirstDayOfWeekDate,12,'NULL') as secweekend,
dats_add_days(_CalendarDate.FirstDayOfWeekDate,26,'NULL') as fourthweekend,
//_CalendarDate.WeekDay,
cast(cast(_CalendarDate.CalendarWeek as abap.int1( 3 )) - 1 as abap.char( 12 )) as calweek,
7-cast(_CalendarDate.WeekDay as abap.int8) as weekday1,
14-cast(_CalendarDate.WeekDay as abap.int8) as weekday2,
28-cast(_CalendarDate.WeekDay as abap.int8) as weekday4,
dats_add_days(_CalendarDate.FirstDayOfWeekDate,-1,'NULL') as weekday5,
//Carbon footprint UUID
PFMTransDataFootprintUUID,
//Associations
_PurchaseReqnSourceType,
_PurchasingCategoryMatlGroup._PurchasingCategory,
// _PurchasingCategoryMatlGroup._MaterialGroup,
_AccAssgnmtCategory,
_PurchasingOrganization,
_PurchasingGroup,
_Plant,
_Material,
_PurchasingInfoRecord,
_StorageLocation,
_PurgDocumentItemCategory,
_Supplier,
_PurReqnAcctAssgmt,
// _Supplier as _FixedSupplier,
_DesiredSupplier,
_ReleaseIndicatorDesc,
_PurchaseReqnOrigin,
_User,
_ProcmtBlockedSupplier,
// _DomainText,
_ReleaseStrategyDesc,
_PurchasingCategoryMatlGroup,
_Purchaserequisitionitem._MaterialGroup as _MaterialGroup // 2741424
}
where
PurchasingDocumentCategory = 'B'
and IsPurReqnBlocked = ' '
and(
IsPurReqnCmplt = ' '
or(
IsPurReqnCmplt = 'X'
and PurReqnCmpltnsCat = 'A'
)
)
and(
(
_Purchaserequisitionitem.Supplier = ' '
)
or(
_DesiredSupplier.IsBusinessPurposeCompleted = ' '
)
)
and(
(
FixedSupplier = ' '
)
or(
_Supplier.IsBusinessPurposeCompleted = ' '
)
)
and IsDeleted = ' '
and IsClosed = ' '
and(
(
(
(
(
OrderedQuantity < RequestedQuantity
)
or(
RequestedQuantity = 0
and _Purchaserequisitionitem.PurchasingDocumentItemCategory = 'A'
)
)
or PurchasingDocumentItemCategory = '8'
)
and PurchasingDocumentSubtype <> 'R'
)
or(
PurchasingDocumentSubtype = 'R'
and ProcessingStatus <> 'K'
and ProcessingStatus <> 'L'
)
)
and IsOutline = ' '
and ProcurementHubSourceSystem = ' '
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