P_PurOrdQuantityVariance

DDL: P_PURORDQUANTITYVARIANCE SQL: PMMPOQUANTVAR Type: view CONSUMPTION Package: ODATA_MM_ANALYTICS

Purchase Order Quantity Variance

P_PurOrdQuantityVariance is a Consumption CDS View that provides data about "Purchase Order Quantity Variance" in SAP S/4HANA. It reads from 2 data sources (P_PurOrdDeliveredQty, I_PurchasingCategoryMatlGroup) and exposes 23 fields with key fields PurchaseOrder, PurchaseOrderItem. Part of development package ODATA_MM_ANALYTICS.

Data Sources (2)

SourceAliasJoin Type
P_PurOrdDeliveredQty P_PurOrdDeliveredQty from
I_PurchasingCategoryMatlGroup PurchasingCategoryMatlGroup left_outer

Parameters (3)

NameTypeDefault
P_DisplayCurrency displaycurrency
P_StartDate bedat
P_EndDate bedat

Annotations (8)

NameValueLevelField
AbapCatalog.sqlViewName PMMPOQUANTVAR view
ClientDependent true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
VDM.viewType #CONSUMPTION view
VDM.private true view
EndUserText.label Purchase Order Quantity Variance view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY PurchaseOrder Items PurchaseOrder
KEY PurchaseOrderItem Items PurchaseOrderItem
PurchasingOrganization Items PurchasingOrganization
PurchasingGroup Items PurchasingGroup
CompanyCode CompanyCode
Supplier Items Supplier
NetAmount Items NetAmount
PurchaseOrderDate Items PurchaseOrderDate
FinalPostingDate
FirstPostingDate
Material Items Material
MaterialGroup Items MaterialGroup
Plant Items Plant
PurchasingCategory
PurgCatName
PurchaseOrderQuantityUnit Items PurchaseOrderQuantityUnit
Currency Currency
OrderedQuantity OrderQuantity
DeliveredQuantity DeliveredQuantity
NetPriceAmount NetPriceAmount
QuantityVarianceInOrdUnit
QuantityVarianceInPct
SuplrEvalCritraDelivCompleted SuplrEvalCritraDelivCompleted
@AbapCatalog.sqlViewName: 'PMMPOQUANTVAR'
@ClientDependent: true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType : #CONSUMPTION
@VDM.private : true
@EndUserText.label: 'Purchase Order Quantity Variance'
@AccessControl.personalData.blocking: #NOT_REQUIRED

define view P_PurOrdQuantityVariance 

with parameters 
   P_DisplayCurrency : displaycurrency,
   P_StartDate : bedat,
   P_EndDate   : bedat    

as select from P_PurOrdDeliveredQty( P_StartDate : $parameters.P_StartDate  , 
                                     P_EndDate:$parameters.P_EndDate  ) as Items
    
 left outer join I_PurchasingCategoryMatlGroup as PurchasingCategoryMatlGroup on Items.MaterialGroup = PurchasingCategoryMatlGroup.MaterialGroup 
    
{
    /*Key Fields */
    key Items.PurchaseOrder, 
    key Items.PurchaseOrderItem,  

    /* Org Data*/
    Items.PurchasingOrganization,
    Items.PurchasingGroup,
    CompanyCode,
    
    /* Supplier*/
    Items.Supplier,
    Items.NetAmount,
    Items.PurchaseOrderDate,
    cast(FinalPostingDate as mmpur_a_poi_finalgrpostgdate) as FinalPostingDate,
    cast(FirstPostingDate as  mmpur_a_poi_firstgrpostgdate ) as FirstPostingDate,
    
    Items.Material,
    Items.MaterialGroup,
    Items.Plant,
    
    @ObjectModel.text.element: ['PurgCatName']
    @Consumption.labelElement: 'PurgCatName'
    PurchasingCategoryMatlGroup._PurchasingCategory.PurchasingCategory                                 as PurchasingCategory,
    @Semantics.text: true
    PurchasingCategoryMatlGroup._PurchasingCategory.PurgCatName                                        as PurgCatName,
    
    //Items.BaseUnit,

    Items.PurchaseOrderQuantityUnit,
    Currency,
    
    OrderQuantity as OrderedQuantity,
    DeliveredQuantity,
    NetPriceAmount,
    
    /* Variance in Order Price Unit */
    cast(currency_conversion( amount => NetPriceAmount, 
                         source_currency => Currency, 
                         target_currency => $parameters.P_DisplayCurrency, 
                         exchange_rate_date => Items.PurchaseOrderDate,
                         exchange_rate_type => 'M',
                         error_handling => 'SET_TO_NULL'
    ) as abap.curr(17,5)) * ( DeliveredQuantity - OrderQuantity)  as     QuantityVarianceInDspCrcy,    //3009063

    
    /* Variance in Order Price Unit */
    ( DeliveredQuantity - OrderQuantity) as QuantityVarianceInOrdUnit,                                //3009063

    
    
    /* Variance in Percentage with sign */
    DIVISION(  DeliveredQuantity,OrderQuantity, 3  ) * 100  as  QuantityVarianceInPct ,      // Absolute Pct

    SuplrEvalCritraDelivCompleted
    
}  where DeliveredQuantity != 0