P_PriceVariance4

DDL: P_PRICEVARIANCE4 SQL: PMMPRICEVAR4 Type: view CONSUMPTION Package: ODATA_MM_ANALYTICS

Price Variance 4

P_PriceVariance4 is a Consumption CDS View that provides data about "Price Variance 4" in SAP S/4HANA. It reads from 1 data source (I_PurchaseOrderHistory) and exposes 23 fields with key fields PurchaseOrder, PurchaseOrderItem. It has 2 associations to related views. Part of development package ODATA_MM_ANALYTICS.

Data Sources (1)

SourceAliasJoin Type
I_PurchaseOrderHistory History from

Parameters (2)

NameTypeDefault
P_StartDate budat
P_EndDate budat

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_PurchaseOrder _PurchaseOrder $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
[1..1] I_PurchaseOrderItem _PurchaseOrderItem $projection.PurchaseOrder = _PurchaseOrderItem.PurchaseOrder and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName PMMPRICEVAR4 view
VDM.viewType #CONSUMPTION view
VDM.private true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Price Variance 4 view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder I_PurchaseOrderHistory PurchaseOrder
KEY PurchaseOrderItem I_PurchaseOrderHistory PurchaseOrderItem
PurchaseOrderDate _PurchaseOrder PurchaseOrderDate
PurchasingOrganization _PurchaseOrder PurchasingOrganization
PurchasingGroup _PurchaseOrder PurchasingGroup
Supplier _PurchaseOrder Supplier
PurchaseOrderType
Material _PurchaseOrderItem Material
MaterialGroup _PurchaseOrderItem MaterialGroup
Plant _PurchaseOrderItem Plant
CompanyCode _PurchaseOrderItem CompanyCode
PurchasingDocumentCategory _PurchaseOrderItem PurchaseOrderCategory
NetPriceAmount _PurchaseOrderItem NetPriceAmount
NetPriceQuantity _PurchaseOrderItem NetPriceQuantity
OrderQuantity _PurchaseOrderItem OrderQuantity
PurchaseOrderQuantityUnit _PurchaseOrderItem PurchaseOrderQuantityUnit
NetAmount _PurchaseOrderItem NetAmount
DocumentCurrency _PurchaseOrder DocumentCurrency
Quantity I_PurchaseOrderHistory Quantity
PurchaseOrderAmount I_PurchaseOrderHistory InvoiceAmtInCoCodeCrcy
InvoiceCurrency I_PurchaseOrderHistory Currency
InvoiceDate I_PurchaseOrderHistory PostingDate
OrderPriceUnit OrderPriceUnit
@AbapCatalog.sqlViewName: 'PMMPRICEVAR4'
@VDM.viewType: #CONSUMPTION
@VDM.private : true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@EndUserText.label: 'Price Variance 4'
define view P_PriceVariance4
  with parameters
    P_StartDate : budat,
    P_EndDate   : budat
  as select from I_PurchaseOrderHistory as History
  association [1..1] to I_PurchaseOrder     as _PurchaseOrder     on  $projection.PurchaseOrder = _PurchaseOrder.PurchaseOrder
  association [1..1] to I_PurchaseOrderItem as _PurchaseOrderItem on  $projection.PurchaseOrder     = _PurchaseOrderItem.PurchaseOrder
                                                                  and $projection.PurchaseOrderItem = _PurchaseOrderItem.PurchaseOrderItem


{
  key History.PurchaseOrder,
  key History.PurchaseOrderItem,

      _PurchaseOrder.PurchaseOrderDate,
      _PurchaseOrder.PurchasingOrganization,
      _PurchaseOrder.PurchasingGroup,
      _PurchaseOrder.Supplier,
      _PurchaseOrderItem._PurchaseOrder.PurchaseOrderType,

      _PurchaseOrderItem.Material,
      _PurchaseOrderItem.MaterialGroup,
      _PurchaseOrderItem.Plant,
      _PurchaseOrderItem.CompanyCode,
      _PurchaseOrderItem.PurchaseOrderCategory as PurchasingDocumentCategory,

      _PurchaseOrderItem.NetPriceAmount,
      _PurchaseOrderItem.NetPriceQuantity,
      _PurchaseOrderItem.OrderQuantity,
      _PurchaseOrderItem.PurchaseOrderQuantityUnit,

      _PurchaseOrderItem.NetAmount,

      _PurchaseOrder.DocumentCurrency,
      History.Quantity,

      History.InvoiceAmtInCoCodeCrcy           as PurchaseOrderAmount,

        History.Currency as InvoiceCurrency,                //3463291


        History.PostingDate as InvoiceDate,                 //3463291


      case _PurchaseOrderItem.IsReturnsItem
          when 'X' then case History.DebitCreditCode
                          when 'S' then -1 * History.PurchaseOrderAmount
                          when 'H' then  History.PurchaseOrderAmount
                          else 0
                        end
          else  case History.DebitCreditCode
                  when 'S' then History.PurchaseOrderAmount
                  when 'H' then -1 * History.PurchaseOrderAmount
                  else 0
                end
      end                                      as InvoiceAmountInDocCurrency,

      case _PurchaseOrderItem.IsReturnsItem
          when 'X' then case DebitCreditCode
                          when 'S' then -1 * History.QtyInPurchaseOrderPriceUnit
                          when 'H' then  History.QtyInPurchaseOrderPriceUnit
                          else 0
                        end
          else  case History.DebitCreditCode
                  when 'S' then History.QtyInPurchaseOrderPriceUnit
                  when 'H' then -1 * History.QtyInPurchaseOrderPriceUnit
                  else 0
                end
       end                                     as QtyInPurchaseOrderPricUnit,
      OrderPriceUnit

}
where
         _PurchaseOrderItem.PurchasingDocumentDeletionCode =  ''
  and    _PurchaseOrder.PurchasingDocumentDeletionCode     =  ''
  and    History.PurchaseOrderTransactionType              =  '2'
  and    _PurchaseOrder.PurchasingCompletenessStatus != 'X'
  and    _PurchaseOrder.ReleaseIsNotCompleted != 'X'
  and(
         _PurchaseOrder.Supplier                           <> ''
    or   _PurchaseOrder.Supplier                           is not null
  ) //2809288

  and    _PurchaseOrder.PurchaseOrderDate                  <= $parameters.P_EndDate
  and    _PurchaseOrder.PurchaseOrderDate                  >= $parameters.P_StartDate
  and(
         _PurchaseOrderItem.IsStatisticalItem              =  ''
    or   _PurchaseOrderItem.Material                       <> ''
  )
  and    not(
       _PurchaseOrderItem.ProductType                      =  '2'
       or(
            _PurchaseOrderItem.PurchaseOrderItemCategory   =  '9'
         or _PurchaseOrderItem.PurchaseOrderItemCategory   =  '1'
         or _PurchaseOrderItem.PurchaseOrderItemCategory   =  'A'
       )
     )