C_PriceVarianceQuery
Price Variance
C_PriceVarianceQuery is a Consumption CDS View that provides data about "Price Variance" in SAP S/4HANA. It reads from 1 data source (C_PriceVarianceCube) and exposes 44 fields with key field PurchaseOrderItem. It is used in 5 Fiori applications: Supplier Evaluation by Quantity (Version 2), Supplier Evaluation by Price (Version 2), Supplier Evaluation by Time (Version 2), .... Part of development package ODATA_MM_ANALYTICS.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| C_PriceVarianceCube | C_PriceVarianceCube | from |
Parameters (4)
| Name | Type | Default |
|---|---|---|
| P_DisplayCurrency | displaycurrency | |
| P_StartDate | vdm_validitystart | |
| P_EndDate | vdm_validityend | |
| P_DateFunction | datefunctionid |
Annotations (16)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | CMMSEBYPRICEQRY | view | |
| EndUserText.label | Price Variance | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| VDM.viewType | #CONSUMPTION | view | |
| OData.publish | true | view | |
| Analytics.settings.maxProcessingEffort | #MEDIUM | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| Analytics.query | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.modelingPattern | #ANALYTICAL_QUERY | view | |
| Metadata.ignorePropagatedAnnotations | true | view |
Fiori Apps (5)
| App ID | App Name | Type | Description |
|---|---|---|---|
| F1661A | Supplier Evaluation by Quantity (Version 2) | Analytical | With the Supplier Evaluation by Quantity app, you can determine the quantity variance, which is based on the variance between the ordered quantity and delivered quantity of items. Both the excess and less delivered quantities are considered. |
| F1663A | Supplier Evaluation by Price (Version 2) | Analytical | With the Supplier Evaluation by Price app, you can determine the score of a given supplier in an organization based on the variance in the price of ordered items and delivered items. The score is calculated over a period of one year and is based on the difference in the purchase order amount and invoice amount. Both the excess and less price are considered as variance. |
| F1664A | Supplier Evaluation by Time (Version 2) | Analytical | You can use this app to determine the score of a given supplier in an organisation based on the difference in time between the ordered date of items and delivered date of items. The score is calculated over a period of 365 days. Both the late and earlier deliveries of items are considered as variance. |
| F2309A | Supplier Evaluation by Quality (Version 2) | Analytical | With the Supplier Evaluation by Quality app, you can determine the scores for given suppliers based on the inspection lot. |
| F3295A | Supplier Evaluation By Quality (for Quality Notification) (Version 2) | Analytical |
Supplier Evaluation by Quantity (Version 2)
Business Role: Strategic Buyer
With the Supplier Evaluation by Quantity app, you can determine the quantity variance, which is based on the variance between the ordered quantity and delivered quantity of items. Both the excess and less delivered quantities are considered. The role Strategic Buyer (SAP_BR_BUYER) is required to access the app. The score is determined over a period of 365 days. The KPI is displayed in the following views: •By Supplier•By Purchasing Group•By Purchasing Organization•By Material Group•Document•Trend
Supplier Evaluation by Price (Version 2)
Business Role: Strategic Buyer
This new app is a replacement for the app , which is planned to be deprecated with SAP S/4HANA Cloud 2102. We recommend that you start using this new app instead of the old app Supplier Evaluation by Quality (Deprecated). SAP Fiori ID for this app is F3295A. You can now view number of purchase orders and number of purchase order items with this app.
Supplier Evaluation by Time (Version 2)
Business Role: Strategic Buyer
You can use this app to determine the score of a given supplier in an organization based on the difference in time between the ordered date of items and delivered date of items. The score is calculated over a period of 365 days. Both the late and earlier deliveries of items are considered as variance. The role Strategic Buyer (SAP_BR_BUYER) is required to access the role. The KPI is displayed in the following views: •By Supplier•By Purchasing Group•By Purchasing Organization•By Material Group•Document•Trend
Supplier Evaluation by Quality (Version 2)
Business Role: Strategic Buyer
This app determines the score of a supplier in an organization based on the weighted average of the quantity, price, and time variances. The score is calculated over a period of 365 days. It combines scores from the weighted hard facts available from the different criteria (price, time, and quantity), and the soft facts available from questionnaire results. The role Strategic Buyer (SAP_BR_BUYER) is required to access the app.
Supplier Evaluation By Quality (for Quality Notification) (Version 2)
Business Role: Strategic Buyer
With this app you can evaluate suppliers based on score that is calculated on the basis of quality complaints received. You can identify the suppliers with less received complaint notifications and thus with higher quality evaluation score. This helps you to determine the suppliers with the best performance and reliability. This app can also help you to decide which supplier to select if the purchasing conditions such as quality and price of material, quotation and delivery time are the same.
Fields (44)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| resultElementDateFunctionStartDate | ||||
| resultElementDateFunctionEndDate | ||||
| P_DisplayCurrency | ||||
| P_StartDate | ||||
| P_EndDatekeyPurchaseOrder | Purchasing Document | |||
| KEY | PurchaseOrderItem | PurchaseOrderItem | Purchasing Document Item | |
| PurgDocMigrtnIsCmpltdForAnlyts | PurgDocMigrtnIsCmpltdForAnlyts | |||
| SuplrEvalRelevantDocCategory | SuplrEvalRelevantDocCategory | |||
| PurchaseOrderDate | PurchaseOrderDate | |||
| CalendarYear | CalendarYear | |||
| CalendarQuarter | CalendarQuarter | |||
| CalendarMonth | CalendarMonth | |||
| CalendarWeek | CalendarWeek | |||
| PurchasingOrganization | PurchasingOrganization | |||
| PurchasingGroup | PurchasingGroup | |||
| CompanyCode | CompanyCode | |||
| Supplier | Supplier | |||
| SupplierCountry | SupplierCountry | |||
| Region | Region | |||
| Plant | Plant | |||
| Material | Material | |||
| MaterialGroup | MaterialGroup | |||
| PurchasingCategory | PurchasingCategory | |||
| PurgCatName | PurgCatName | |||
| PurchasingDocumentCategory | PurchasingDocumentCategory | Purchasing Document Category | ||
| PurchasingDocumentCategoryName | ||||
| Currency | Currency | |||
| PurchaseOrderQuantityUnit | PurchaseOrderQuantityUnit | |||
| OrderPriceUnit | OrderPriceUnit | |||
| DisplayCurrency | DisplayCurrency | |||
| PriceVarianceInPct | PriceVarianceInPct | |||
| PriceVarianceAmount | PriceVarianceAmount | |||
| PurchaseOrderNetPriceAmount | PurchaseOrderNetPriceAmount | |||
| InvoicePrice | InvoicePrice | |||
| PriceVarianceScore | PriceVarianceScore | |||
| NumberOfPurchaseOrders | NumberOfPurchaseOrders | |||
| NumberOfPurchaseOrderItems | NumberOfPurchaseOrderItems | |||
| SuplrEvalPriceVarcInPercent | Variance % | |||
| SuplrEvalPriceVarianceAmt | Price Variance Amount | |||
| AmountPerPurchaseOrderPrcUnit | PO Price Per OPU | |||
| PerInvoicePrcUnitAmount | Invc Price Per OPU | |||
| DeliveredQuantity | DeliveredQuantity | Delivered Quantity | ||
| OrderedQuantity | OrderedQuantity | |||
| PriceVarianceScoreValue | Variance Score |
@AbapCatalog.sqlViewName: 'CMMSEBYPRICEQRY'
@EndUserText.label: 'Price Variance'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #CONSUMPTION
@OData.publish: true
@Analytics.settings.maxProcessingEffort:#MEDIUM
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@Analytics.query: true
@AbapCatalog.preserveKey:true
@ObjectModel.supportedCapabilities: [ #ANALYTICAL_QUERY]
@ObjectModel.modelingPattern: #ANALYTICAL_QUERY
@Metadata.ignorePropagatedAnnotations:true
define view C_PriceVarianceQuery
with parameters
@Consumption.defaultValue: 'EUR'
P_DisplayCurrency : displaycurrency,
@Consumption.derivation: { lookupEntity: 'I_SglGregorianCalDateFunction',
resultElement: 'DateFunctionStartDate', binding: [ {
targetParameter: 'P_DateFunction', type: #PARAMETER, value : 'P_DateFunction' } ]
}
@Consumption.hidden: true
P_StartDate: vdm_validitystart,
@Consumption.derivation: { lookupEntity: 'I_SglGregorianCalDateFunction',
resultElement: 'DateFunctionEndDate', binding: [ {
targetParameter: 'P_DateFunction', type: #PARAMETER, value : 'P_DateFunction' } ]
}
@Consumption.hidden: true
P_EndDate : vdm_validityend,
@Consumption.defaultValue: 'PREVIOUSYEARTODATE'
@Consumption.valueHelpDefinition: [{
entity: {
name:'C_GregorianCalDateFuncVH',
element:'DateFunction'
}
}]
P_DateFunction : datefunctionid
as select from C_PriceVarianceCube( P_DisplayCurrency : $parameters.P_DisplayCurrency,
P_StartDate : $parameters.P_StartDate,
P_EndDate : $parameters.P_EndDate )
{
@EndUserText.label: 'Purchasing Document'
@EndUserText.quickInfo: 'Purchasing Document'
key PurchaseOrder,
@EndUserText.label: 'Purchasing Document Item'
@EndUserText.quickInfo: 'Purchasing Document Item'
key PurchaseOrderItem,
@Consumption: {
filter: {
mandatory: false,
hidden: true,
selectionType: #SINGLE,
multipleSelections: false
},
derivation: {
lookupEntity: 'F_ProcmtAnalyticsDataSelMeth',
resultElement: 'PurgDocMigrtnIsCmpltdForAnlyts'
}
}
@UI.hidden: true
PurgDocMigrtnIsCmpltdForAnlyts,
@Consumption: {
filter: {
mandatory: false,
hidden: true,
selectionType: #SINGLE,
multipleSelections: false
},
derivation: {
lookupEntity: 'F_SuplrEvalDocCatConfign',
resultElement: 'SuplrEvalRelevantDocCategory'
}
}
@Environment.sql.passValue: true
@UI.hidden: true
SuplrEvalRelevantDocCategory,
@UI.hidden: true
PurchaseOrderDate,
CalendarYear,
CalendarQuarter,
CalendarMonth,
CalendarWeek,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
PurchasingOrganization,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
PurchasingGroup,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
CompanyCode,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
Supplier,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
SupplierCountry,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
Region,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
Plant,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
Material,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
MaterialGroup,
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
PurchasingCategory,
PurgCatName,
@EndUserText.label: 'Purchasing Document Category'
@AnalyticsDetails.query.display: #KEY_TEXT
@AnalyticsDetails.query.axis: #FREE
@Analytics.internalName:#LOCAL
PurchasingDocumentCategory,
@Semantics.text: true
_PurchasingDocumentCatName._Text[1: Language = $session.system_language].PurchasingDocumentCategoryName as PurchasingDocumentCategoryName ,
Currency,
PurchaseOrderQuantityUnit,
OrderPriceUnit,
@UI.hidden: true
DisplayCurrency,
@DefaultAggregation: #SUM
@Consumption.hidden: true
PriceVarianceInPct,
@DefaultAggregation: #SUM
@Consumption.hidden: true
PriceVarianceAmount,
@DefaultAggregation: #SUM
@Consumption.hidden: true
PurchaseOrderNetPriceAmount,
@DefaultAggregation: #SUM
@Consumption.hidden: true
InvoicePrice,
@DefaultAggregation: #SUM
@Consumption.hidden: true
PriceVarianceScore,
@DefaultAggregation: #SUM
NumberOfPurchaseOrders,
@DefaultAggregation: #SUM
NumberOfPurchaseOrderItems,
@DefaultAggregation: #FORMULA
@EndUserText.label: ' Variance %'
@AnalyticsDetails.query.formula :' $projection.PriceVarianceInPct / $projection.NumberOfPurchaseOrderItems'
cast( 1 as mm_ana_price_var_pct) as SuplrEvalPriceVarcInPercent,
@DefaultAggregation: #FORMULA
@EndUserText.label: ' Price Variance Amount'
@AnalyticsDetails.query.formula :' $projection.PriceVarianceAmount / $projection.NumberOfPurchaseOrderItems'
cast( 1 as abap.curr(13,3) ) as SuplrEvalPriceVarianceAmt,
@DefaultAggregation: #FORMULA
@EndUserText.label: 'PO Price Per OPU'
@AnalyticsDetails.query.formula :' $projection.PurchaseOrderNetPriceAmount / $projection.NumberOfPurchaseOrderItems'
cast( 1 as abap.curr(13,3) ) as AmountPerPurchaseOrderPrcUnit,
@DefaultAggregation: #FORMULA
@EndUserText.label: 'Invc Price Per OPU'
@EndUserText.quickInfo: 'Invoice Price Per OPU'
@AnalyticsDetails.query.formula :' $projection.InvoicePrice / $projection.NumberOfPurchaseOrderItems'
cast( 1 as abap.curr(13,3) ) as PerInvoicePrcUnitAmount,
@DefaultAggregation: #SUM
@EndUserText.label: 'Delivered Quantity'
DeliveredQuantity,
@DefaultAggregation: #SUM
OrderedQuantity,
@DefaultAggregation: #FORMULA
@EndUserText.label: 'Variance Score'
@AnalyticsDetails.query.formula :' $projection.PriceVarianceScore / $projection.NumberOfPurchaseOrderItems'
cast( 1 as mm_a_variance_score ) as PriceVarianceScoreValue
}
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