P_PurOrderItemCalculation

DDL: P_PURORDERITEMCALCULATION SQL: PPORDITEMCALC Type: view CONSUMPTION Package: ODATA_MM_PUR_MYPURGDOCITEMS

PO Item Calculated fields

P_PurOrderItemCalculation is a Consumption CDS View that provides data about "PO Item Calculated fields" in SAP S/4HANA. It reads from 2 data sources (I_PurchaseOrderItem, I_PurchaseOrderItem) and exposes 113 fields with key fields PurchaseOrder, PurchaseOrderItem, PurgDocMigrtnIsCmpltdForAnlyts, PurchaseOrderItem, PurgDocMigrtnIsCmpltdForAnlyts. It has 5 associations to related views. Part of development package ODATA_MM_PUR_MYPURGDOCITEMS.

Data Sources (2)

SourceAliasJoin Type
I_PurchaseOrderItem I_PurchaseOrderItem from
I_PurchaseOrderItem I_PurchaseOrderItem union_all

Associations (5)

CardinalityTargetAliasCondition
[1..1] P_PurchaseOrderConvertedAmount _ConvertedNetAmount $projection.PurchaseOrder = _ConvertedNetAmount.PurchaseOrder and $projection.PurchaseOrderItem = _ConvertedNetAmount.PurchaseOrderItem
[1..1] R_PurgDocGoodsReceiptCalc _GoodsReceiptCalc $projection.PurchaseOrder = _GoodsReceiptCalc.PurchaseOrder and $projection.PurchaseOrderItem = _GoodsReceiptCalc.PurchaseOrderItem
[0..1] P_POItemHistoryCalc _POItemHistory $projection.PurchaseOrder = _POItemHistory.PurchaseOrder and $projection.PurchaseOrderItem = _POItemHistory.PurchaseOrderItem
[1..1] R_POItemEnhcdNextDeliveryCalc _POItemEnhcdNextDeliveryCalc _POItemEnhcdNextDeliveryCalc.PurchaseOrder = $projection.PurchaseOrder and _POItemEnhcdNextDeliveryCalc.PurchaseOrderItem = $projection.PurchaseOrderItem
[1..1] R_POItemNextDeliveryCalc _POItemNextDeliveryCalc _POItemNextDeliveryCalc.PurchaseOrder = $projection.PurchaseOrder and _POItemNextDeliveryCalc.PurchaseOrderItem = $projection.PurchaseOrderItem

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName PPORDITEMCALC view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
VDM.private true view
ObjectModel.usageType.serviceQuality #P view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
EndUserText.label PO Item Calculated fields view

Fields (113)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder PurchaseOrder Purchasing Document
KEY PurchaseOrderItem PurchaseOrderItem Purchasing Document Item
KEY PurgDocMigrtnIsCmpltdForAnlyts
PurchaseOrderItemUniqueID PurchaseOrderItemUniqueID Document Item
FormattedPurchaseOrderItem
PurchaseOrderItemText PurchaseOrderItemText Short Text
AccountAssignmentCategory AccountAssignmentCategory Acct Assgmt Cat
MaterialGroup MaterialGroup Product Group
Material Material Vehicle Model
CompanyCode CompanyCode Receiver Company Code
Plant Plant Valuation Area
StorageLocation StorageLocation StorageLocation
StorageLocationName _StorageLocation StorageLocationName Storage Loc. Name
ServicePerformer ServicePerformer Service Performer
ProductType ProductType Product Type Group
IsReturnsItem IsReturnsItem Returns Item
ObjectType
OrderQuantity OrderQuantity Quantity
NetPriceAmount NetPriceAmount Net Price
NetPriceQuantity NetPriceQuantity Price Unit
NetAmountInCoCodeCurrency _ConvertedNetAmount NetAmountInCoCodeCurrency
OrderPriceUnit OrderPriceUnit Order Price Un.
PurchaseOrderQuantityUnit PurchaseOrderQuantityUnit Order Unit
PurchaseOrderItemCategory PurchaseOrderItemCategory Item Category
DocumentCurrency DocumentCurrency Document Currency
CompanyCodeCurrency _CompanyCode Currency Valuation Crcy
WorkItem
GoodsReceiptIsExpected GoodsReceiptIsExpected Goods Receipt
IsCompletelyDelivered IsCompletelyDelivered Is completely delivered
InvoiceIsExpected InvoiceIsExpected Invoice Receipt
IsFinallyInvoiced IsFinallyInvoiced Final Invoice
MultipleAcctAssgmtDistribution MultipleAcctAssgmtDistribution Distribution
PurgDocExternalItemCategory
PlantName _Plant PlantName Plant Name
CompanyCodeName _CompanyCode CompanyCodeName Company Name
CreatedByUser _PurchaseOrder CreatedByUser User Name
PurchasingOrganization _PurchaseOrder PurchasingOrganization Purchasing Organization
PurchasingGroup _PurchaseOrder PurchasingGroup Purchasing Group
PurchasingGroupName
SupplyingPlant _PurchaseOrder SupplyingPlant Supplying Plant
SupplyingPlantName
PurgDocItemCategoryName
Supplier _PurchaseOrder Supplier Supplier
SupplierName
PurchaseOrderDate _PurchaseOrder PurchaseOrderDate PO Date
PurchasingDocumentType _PurchaseOrder PurchaseOrderType PO Type
CreationDate _PurchaseOrder CreationDate Time Stamp
PurchasingDocumentTypeName
IsBusinessPurposeCompleted
curr215asGoodsReceiptAmount
curr215asStillToBeDeliveredValue
InvoiceReceiptQtyendasInvoiceReceiptQty
quan133endendendasStillToInvoiceQuantity
curr215asStillToInvoiceValue
PurchaseOrderType _PurchaseOrder PurchaseOrderType PO Type
_PurchaseOrder _PurchaseOrder
PurchaseOrderItemkeyPurchaseOrder
KEY PurchaseOrderItem PurchaseOrderItem Purchasing Document Item
KEY PurgDocMigrtnIsCmpltdForAnlyts
PurchaseOrderItemUniqueID PurchaseOrderItemUniqueID Document Item
FormattedPurchaseOrderItem
PurchaseOrderItemText PurchaseOrderItemText Short Text
AccountAssignmentCategory AccountAssignmentCategory Acct Assgmt Cat
MaterialGroup MaterialGroup Product Group
Material Material Vehicle Model
CompanyCode CompanyCode Receiver Company Code
Plant Plant Valuation Area
StorageLocation StorageLocation StorageLocation
StorageLocationName _StorageLocation StorageLocationName Storage Loc. Name
ServicePerformer ServicePerformer Service Performer
ProductType ProductType Product Type Group
IsReturnsItem IsReturnsItem Returns Item
ObjectType
OrderQuantity OrderQuantity Quantity
NetPriceAmount NetPriceAmount Net Price
NetPriceQuantity NetPriceQuantity Price Unit
NetAmountInCoCodeCurrency _ConvertedNetAmount NetAmountInCoCodeCurrency
OrderPriceUnit OrderPriceUnit Order Price Un.
PurchaseOrderQuantityUnit PurchaseOrderQuantityUnit Order Unit
PurchaseOrderItemCategory PurchaseOrderItemCategory Item Category
DocumentCurrency DocumentCurrency Document Currency
CompanyCodeCurrency _CompanyCode Currency Valuation Crcy
WorkItem
GoodsReceiptIsExpected GoodsReceiptIsExpected Goods Receipt
IsCompletelyDelivered IsCompletelyDelivered Is completely delivered
InvoiceIsExpected InvoiceIsExpected Invoice Receipt
IsFinallyInvoiced IsFinallyInvoiced Final Invoice
MultipleAcctAssgmtDistribution MultipleAcctAssgmtDistribution Distribution
PurgDocExternalItemCategory
PlantName _Plant PlantName Plant Name
CompanyCodeName _CompanyCode CompanyCodeName Company Name
CreatedByUser _PurchaseOrder CreatedByUser User Name
PurchasingOrganization _PurchaseOrder PurchasingOrganization Purchasing Organization
PurchasingGroup _PurchaseOrder PurchasingGroup Purchasing Group
PurchasingGroupName
SupplyingPlant _PurchaseOrder SupplyingPlant Supplying Plant
SupplyingPlantName
PurgDocItemCategoryName
Supplier _PurchaseOrder Supplier Supplier
SupplierName
PurchaseOrderDate _PurchaseOrder PurchaseOrderDate PO Date
PurchasingDocumentType _PurchaseOrder PurchaseOrderType PO Type
CreationDate _PurchaseOrder CreationDate Time Stamp
PurchasingDocumentTypeName
IsBusinessPurposeCompleted
curr215asGoodsReceiptAmount
curr215asStillToBeDeliveredValue
InvoiceReceiptQtyendasInvoiceReceiptQty
quan133endendendasStillToInvoiceQuantity
curr215asStillToInvoiceValue
PurchaseOrderType _PurchaseOrder PurchaseOrderType PO Type
_PurchaseOrder _PurchaseOrder
_ProductType _ProductType

Derived SQL interpretation, reconstructed from the parsed view metadata (data sources, associations, and field mappings). SAP annotations are omitted and the structure is reformulated as SQL — this is a functional approximation, not the verbatim SAP source.

-- Derived SQL interpretation of CDS view P_PurOrderItemCalculation.
-- Reconstructed from parsed metadata (data sources, associations, fields).
-- SAP annotations are omitted and the structure is reformulated as SQL;
-- this is a functional approximation, not the verbatim SAP source. Some join
-- conditions may be unavailable and a few CDS constructs are kept as-is.
-- SQL view name: PPORDITEMCALC

CREATE VIEW P_PurOrderItemCalculation AS
SELECT
  PurchaseOrder,
  PurchaseOrderItem,
  cast ('X' as migration_completed) AS PurgDocMigrtnIsCmpltdForAnlyts,
  PurchaseOrderItemUniqueID,
  concat(concat(PurchaseOrder, '/'), PurchaseOrderItem) AS FormattedPurchaseOrderItem,
  PurchaseOrderItemText,
  AccountAssignmentCategory,
  MaterialGroup,
  Material,
  CompanyCode,
  Plant,
  StorageLocation,
  _StorageLocation.StorageLocationName AS StorageLocationName,
  ServicePerformer,
  ProductType,
  IsReturnsItem,
  cast('1' as numc1) AS ObjectType,
  OrderQuantity,
  NetPriceAmount,
  NetPriceQuantity,
  _ConvertedNetAmount.NetAmountInCoCodeCurrency AS NetAmountInCoCodeCurrency,
  OrderPriceUnit,
  PurchaseOrderQuantityUnit,
  PurchaseOrderItemCategory,
  DocumentCurrency,
  _CompanyCode.Currency AS CompanyCodeCurrency,
  cast('' as /cpd/pfp_workitem_id) AS WorkItem,
  GoodsReceiptIsExpected,
  IsCompletelyDelivered,
  InvoiceIsExpected,
  IsFinallyInvoiced,
  MultipleAcctAssgmtDistribution,
  _PurgDocumentItemCategory._Text[1:Language=$session.system_language].PurgDocExternalItemCategory AS PurgDocExternalItemCategory,
  _Plant.PlantName AS PlantName,
  _CompanyCode.CompanyCodeName AS CompanyCodeName,
  _PurchaseOrder.CreatedByUser AS CreatedByUser,
  _PurchaseOrder.PurchasingOrganization AS PurchasingOrganization,
  _PurchaseOrder.PurchasingGroup AS PurchasingGroup,
  _PurchaseOrder._PurchasingGroup.PurchasingGroupName AS PurchasingGroupName,
  _PurchaseOrder.SupplyingPlant AS SupplyingPlant,
  _PurchaseOrder._SupplyingPlant.PlantName AS SupplyingPlantName,
  _PurgDocumentItemCategory._Text[1:Language=$session.system_language].PurgDocItemCategoryName AS PurgDocItemCategoryName,
  _PurchaseOrder.Supplier AS Supplier,
  _PurchaseOrder._Supplier.SupplierName AS SupplierName,
  _PurchaseOrder.PurchaseOrderDate AS PurchaseOrderDate,
  _PurchaseOrder.PurchaseOrderType AS PurchasingDocumentType,
  _PurchaseOrder.CreationDate AS CreationDate,
  _PurchaseOrder._PurchaseOrderType._Text[1:Language = $session.system_language].PurchasingDocumentTypeName AS PurchasingDocumentTypeName,
  _PurchaseOrder._Supplier.IsBusinessPurposeCompleted AS IsBusinessPurposeCompleted,
  cast( case when (PurchaseOrderItemCategory = 'A' and ProductType = '1') then 0 when (PurchaseOrderItemCategory = 'A' and ProductType = '2') then _POItemHistory.GoodsReceiptAmount when (_GoodsReceiptCalc.GoodsReceiptQuantity is null or OrderQuantity is null or OrderQuantity = 0) then 0 when IsReturnsItem = 'X' then -abs(_GoodsReceiptCalc.GoodsReceiptQuantity * division(NetAmount, OrderQuantity, 4)) else _GoodsReceiptCalc.GoodsReceiptQuantity * division(NetAmount, OrderQuantity, 4) end as abap.curr(21,5)) as GoodsReceiptAmount AS curr215asGoodsReceiptAmount,
  cast(case when (GoodsReceiptIsExpected <> 'X' or IsCompletelyDelivered = 'X' or (PurchaseOrderItemCategory = 'A' and ProductType = '1')) then 0 when (PurchaseOrderItemCategory = 'A' and ProductType = '2') then case when _POItemHistory.GoodsReceiptAmount is null then NetAmount else NetAmount - _POItemHistory.GoodsReceiptAmount end when OrderQuantity is null or OrderQuantity = 0 then 0 when IsReturnsItem = 'X' then case when _GoodsReceiptCalc.GoodsReceiptQuantity is null then -abs(NetAmount) else -abs((OrderQuantity - _GoodsReceiptCalc.GoodsReceiptQuantity) * division(NetAmount, OrderQuantity, 4)) end else case when _GoodsReceiptCalc.GoodsReceiptQuantity is null then NetAmount else (OrderQuantity - _GoodsReceiptCalc.GoodsReceiptQuantity) * division(NetAmount, OrderQuantity, 4) end end as abap.curr(21,5)) as StillToBeDeliveredValue AS curr215asStillToBeDeliveredValue,
  case when (PurchaseOrderItemCategory = 'A') or _POItemHistory.InvoiceRcptAmtInCoCodeCrcy is null then cast (0 as abap.quan(13, 3)) else _POItemHistory.InvoiceReceiptQty end as InvoiceReceiptQty AS InvoiceReceiptQtyendasInvoiceReceiptQty,
  case when (InvoiceIsExpected <> 'X' or IsFinallyInvoiced = 'X' or PurchaseOrderItemCategory = 'A') then cast(0 as abap.quan(13, 3)) else case when _GoodsReceiptCalc.GoodsReceiptQuantity > OrderQuantity then case when IsReturnsItem = 'X' then cast((-1 * _GoodsReceiptCalc.GoodsReceiptQuantity) - (coalesce(_POItemHistory.InvoiceReceiptQty, 0)) as abap.quan(13,3)) else cast(_GoodsReceiptCalc.GoodsReceiptQuantity - (coalesce(_POItemHistory.InvoiceReceiptQty, 0)) as abap.quan(13,3)) end else case when IsReturnsItem = 'X' then cast((-1 * OrderQuantity) - (coalesce(_POItemHistory.InvoiceReceiptQty, 0)) as abap.quan(13,3)) else cast(OrderQuantity - (coalesce(_POItemHistory.InvoiceReceiptQty, 0)) as abap.quan(13,3)) end end end as StillToInvoiceQuantity AS quan133endendendasStillToInvoiceQuantity,
  cast(case when (InvoiceIsExpected <> 'X' or IsFinallyInvoiced = 'X') then 0 when (_POItemHistory.InvoiceRcptAmtInCoCodeCrcy is null and IsReturnsItem = 'X') then -abs(_ConvertedNetAmount.NetAmountInCoCodeCurrency) when _POItemHistory.InvoiceRcptAmtInCoCodeCrcy is null then _ConvertedNetAmount.NetAmountInCoCodeCurrency when _POItemHistory.InvoiceRcptAmtInCoCodeCrcy >= _ConvertedNetAmount.NetAmountInCoCodeCurrency then 0 when PurchaseOrderItemCategory = 'A' then _ConvertedNetAmount.NetAmountInCoCodeCurrency - _POItemHistory.InvoiceRcptAmtInCoCodeCrcy when OrderQuantity is null or OrderQuantity = 0 then 0 when IsReturnsItem = 'X' then -abs((OrderQuantity - abs(_POItemHistory.InvoiceReceiptQty)) * division(_ConvertedNetAmount.NetAmountInCoCodeCurrency, OrderQuantity, 4)) when _POItemHistory.InvoiceReceiptQty >= OrderQuantity then cast(0 as abap.curr(21,5)) else (OrderQuantity - abs(_POItemHistory.InvoiceReceiptQty)) * division(_ConvertedNetAmount.NetAmountInCoCodeCurrency, OrderQuantity, 4) end as abap.curr(21,5)) as StillToInvoiceValue AS curr215asStillToInvoiceValue,
  _PurchaseOrder.PurchaseOrderType AS PurchaseOrderType
FROM I_PurchaseOrderItem
LEFT OUTER JOIN P_PurchaseOrderConvertedAmount AS _ConvertedNetAmount ON PurchaseOrder = _ConvertedNetAmount.PurchaseOrder AND PurchaseOrderItem = _ConvertedNetAmount.PurchaseOrderItem  -- association [1..1]
LEFT OUTER JOIN R_PurgDocGoodsReceiptCalc AS _GoodsReceiptCalc ON PurchaseOrder = _GoodsReceiptCalc.PurchaseOrder AND PurchaseOrderItem = _GoodsReceiptCalc.PurchaseOrderItem  -- association [1..1]
LEFT OUTER JOIN P_POItemHistoryCalc AS _POItemHistory ON PurchaseOrder = _POItemHistory.PurchaseOrder AND PurchaseOrderItem = _POItemHistory.PurchaseOrderItem  -- association [0..1]
LEFT OUTER JOIN R_POItemEnhcdNextDeliveryCalc AS _POItemEnhcdNextDeliveryCalc ON _POItemEnhcdNextDeliveryCalc.PurchaseOrder = PurchaseOrder AND _POItemEnhcdNextDeliveryCalc.PurchaseOrderItem = PurchaseOrderItem  -- association [1..1]
LEFT OUTER JOIN R_POItemNextDeliveryCalc AS _POItemNextDeliveryCalc ON _POItemNextDeliveryCalc.PurchaseOrder = PurchaseOrder AND _POItemNextDeliveryCalc.PurchaseOrderItem = PurchaseOrderItem  -- association [1..1]
-- UNION ALL with additional select branch(es): I_PurchaseOrderItem
;