I_ProductValuation
Product Valuation
I_ProductValuation is a Composite CDS View that provides data about "Product Valuation" in SAP S/4HANA. It reads from 4 data sources (marv, t001, t001k, mbew) and exposes 53 fields with key fields Product, ValuationArea, ValuationType. It has 17 associations to related views. Part of development package VDM_MD_PRODUCT_DDIC.
Data Sources (4)
Associations (17)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Product | _Product | $projection.Product = _Product.Product |
| [0..1] | I_Prodvaluationclass | _ValuationClass | $projection.ValuationClass = _ValuationClass.ValuationClass |
| [0..*] | I_Prodvaluationclasstxt | _ValuationClassText | $projection.ValuationClass = _ValuationClassText.ValuationClass |
| [0..1] | I_Prodvaluationclass | _ValnClassSalesOrderStock | $projection.ValuationClassSalesOrderStock = _ValnClassSalesOrderStock.ValuationClass |
| [0..*] | I_Prodvaluationclasstxt | _ValnClassSalesOrderStockText | $projection.ValuationClassSalesOrderStock = _ValnClassSalesOrderStockText.ValuationClass |
| [0..1] | I_Prodvaluationclass | _ValnClassProjectStock | $projection.ProjectStockValuationClass = _ValnClassProjectStock.ValuationClass |
| [0..*] | I_Prodvaluationclasstxt | _ValnClassProjectStockText | $projection.ProjectStockValuationClass = _ValnClassProjectStockText.ValuationClass |
| [0..1] | I_ProdValnPriceControl | _InventoryValnProcedure | $projection.InventoryValuationProcedure = _InventoryValnProcedure.InventoryValuationProcedure |
| [0..*] | I_ProdValnPriceControlText | _InventoryValnProcedureText | $projection.InventoryValuationProcedure = _InventoryValnProcedureText.InventoryValuationProcedure |
| [0..1] | I_PriceDeterminationControl | _PriceDeterminationControl | $projection.PriceDeterminationControl = _PriceDeterminationControl.PriceDeterminationControl |
| [0..*] | I_PriceDeterminationControlTxt | _PriceDeterminationControlText | $projection.PriceDeterminationControl = _PriceDeterminationControlText.PriceDeterminationControl |
| [0..1] | I_BR_MaterialUsage | _BR_MaterialUsage | $projection.ProductUsageType = _BR_MaterialUsage.BR_MaterialUsage |
| [0..*] | I_BR_MaterialUsageText | _BR_MaterialUsageText | $projection.ProductUsageType = _BR_MaterialUsageText.BR_MaterialUsage |
| [0..1] | I_BR_MaterialOrigin | _BR_MaterialOrigin | $projection.ProductOriginType = _BR_MaterialOrigin.BR_MaterialOrigin |
| [0..*] | I_BR_MaterialOriginText | _BR_MaterialOriginText | $projection.ProductOriginType = _BR_MaterialOriginText.BR_MaterialOrigin |
| [0..1] | E_Productvaluation | _ProdValuationExt | $projection.Product = _ProdValuationExt.Product and $projection.ValuationArea = _ProdValuationExt.ValuationArea and $projection.ValuationType = _ProdValuationExt.ValuationType |
| [0..1] | I_InventoryValuationType | _InventoryValuationType | $projection.ValuationType = _InventoryValuationType.InventoryValuationType |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPRDVALUATION | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Product Valuation | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.status | #DEPRECATED | view | |
| VDM.lifecycle.successor | I_ProductValuationBasic | view |
Fields (53)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Product | mbew | matnr | |
| KEY | ValuationArea | mbew | bwkey | |
| KEY | ValuationType | mbew | bwtar | |
| ValuationClass | mbew | bklas | ||
| PriceDeterminationControl | mbew | mlast | ||
| FiscalMonthCurrentPeriod | marv | lfmon | ||
| FiscalYearCurrentPeriod | marv | lfgja | ||
| StandardPrice | mbew | stprs | ||
| PriceUnitQty | mbew | peinh | ||
| InventoryValuationProcedure | ||||
| FutureEvaluatedAmountValue | mbew | zkprs | ||
| FuturePriceValidityStartDate | mbew | zkdat | ||
| PrevInvtryPriceInCoCodeCrcy | mbew | stprv | ||
| MovingAveragePrice | mbew | verpr | ||
| ValuationCategory | mbew | bwtty | ||
| ProductUsageType | ||||
| ProductOriginType | ||||
| IsProducedInhouse | mbew | ownpr | ||
| ProdCostEstNumber | mbew | kaln1 | ||
| IsMarkedForDeletion | mbew | lvorm | ||
| ValuationMargin | mbew | bwspa | ||
| IsActiveEntity | ||||
| CompanyCode | t001k | bukrs | ||
| ValuationClassSalesOrderStock | mbew | eklas | ||
| ProjectStockValuationClass | mbew | qklas | ||
| PlannedPrice1InCoCodeCrcy | mbew | zplp1 | ||
| PlannedPrice2InCoCodeCrcy | mbew | zplp2 | ||
| PlannedPrice3InCoCodeCrcy | mbew | zplp3 | ||
| FuturePlndPrice1ValdtyDate | mbew | zpld1 | ||
| FuturePlndPrice2ValdtyDate | mbew | zpld2 | ||
| FuturePlndPrice3ValdtyDate | mbew | zpld3 | ||
| TaxBasedPricesPriceUnitQty | mbew | bwpei | ||
| PriceLastChangeDate | mbew | laepr | ||
| PlannedPrice | mbew | zplpr | ||
| Currency | t001 | waers | ||
| MLIsActiveAtProductLevel | mbew | mlmaa | ||
| BaseUnit | _Product | BaseUnit | ||
| _Product | _Product | |||
| _ValuationClass | _ValuationClass | |||
| _ValuationClassText | _ValuationClassText | |||
| _ValnClassSalesOrderStock | _ValnClassSalesOrderStock | |||
| _ValnClassSalesOrderStockText | _ValnClassSalesOrderStockText | |||
| _ValnClassProjectStock | _ValnClassProjectStock | |||
| _ValnClassProjectStockText | _ValnClassProjectStockText | |||
| _InventoryValnProcedure | _InventoryValnProcedure | |||
| _InventoryValnProcedureText | _InventoryValnProcedureText | |||
| _PriceDeterminationControl | _PriceDeterminationControl | |||
| _PriceDeterminationControlText | _PriceDeterminationControlText | |||
| _BR_MaterialUsage | _BR_MaterialUsage | |||
| _BR_MaterialUsageText | _BR_MaterialUsageText | |||
| _BR_MaterialOrigin | _BR_MaterialOrigin | |||
| _BR_MaterialOriginText | _BR_MaterialOriginText | |||
| _InventoryValuationType | _InventoryValuationType |
// Product Valuation
@AbapCatalog.sqlViewName: 'IPRDVALUATION'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Product Valuation'
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.sizeCategory: #XL
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations:true
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET ]
@VDM:{
viewType: #COMPOSITE,
lifecycle: {
status: #DEPRECATED,
successor: 'I_ProductValuationBasic'
}
}
define view I_ProductValuation
as select from mbew as Valuation
inner join t001k on Valuation.bwkey = t001k.bwkey
inner join marv on marv.bukrs = t001k.bukrs
inner join t001 on t001.bukrs = t001k.bukrs
association [1..1] to I_Product as _Product on $projection.Product = _Product.Product
association [0..1] to I_Prodvaluationclass as _ValuationClass on $projection.ValuationClass = _ValuationClass.ValuationClass
association [0..*] to I_Prodvaluationclasstxt as _ValuationClassText on $projection.ValuationClass = _ValuationClassText.ValuationClass
association [0..1] to I_Prodvaluationclass as _ValnClassSalesOrderStock on $projection.ValuationClassSalesOrderStock = _ValnClassSalesOrderStock.ValuationClass
association [0..*] to I_Prodvaluationclasstxt as _ValnClassSalesOrderStockText on $projection.ValuationClassSalesOrderStock = _ValnClassSalesOrderStockText.ValuationClass
association [0..1] to I_Prodvaluationclass as _ValnClassProjectStock on $projection.ProjectStockValuationClass = _ValnClassProjectStock.ValuationClass
association [0..*] to I_Prodvaluationclasstxt as _ValnClassProjectStockText on $projection.ProjectStockValuationClass = _ValnClassProjectStockText.ValuationClass
association [0..1] to I_ProdValnPriceControl as _InventoryValnProcedure on $projection.InventoryValuationProcedure = _InventoryValnProcedure.InventoryValuationProcedure
association [0..*] to I_ProdValnPriceControlText as _InventoryValnProcedureText on $projection.InventoryValuationProcedure = _InventoryValnProcedureText.InventoryValuationProcedure
association [0..1] to I_PriceDeterminationControl as _PriceDeterminationControl on $projection.PriceDeterminationControl = _PriceDeterminationControl.PriceDeterminationControl
association [0..*] to I_PriceDeterminationControlTxt as _PriceDeterminationControlText on $projection.PriceDeterminationControl = _PriceDeterminationControlText.PriceDeterminationControl
association [0..1] to I_BR_MaterialUsage as _BR_MaterialUsage on $projection.ProductUsageType = _BR_MaterialUsage.BR_MaterialUsage
association [0..*] to I_BR_MaterialUsageText as _BR_MaterialUsageText on $projection.ProductUsageType = _BR_MaterialUsageText.BR_MaterialUsage
association [0..1] to I_BR_MaterialOrigin as _BR_MaterialOrigin on $projection.ProductOriginType = _BR_MaterialOrigin.BR_MaterialOrigin
association [0..*] to I_BR_MaterialOriginText as _BR_MaterialOriginText on $projection.ProductOriginType = _BR_MaterialOriginText.BR_MaterialOrigin
association [0..1] to E_Productvaluation as _ProdValuationExt on $projection.Product = _ProdValuationExt.Product
and $projection.ValuationArea = _ProdValuationExt.ValuationArea
and $projection.ValuationType = _ProdValuationExt.ValuationType
association [0..1] to I_InventoryValuationType as _InventoryValuationType on $projection.ValuationType = _InventoryValuationType.InventoryValuationType
{
key Valuation.matnr as Product,
key Valuation.bwkey as ValuationArea,
@ObjectModel.foreignKey.association: '_InventoryValuationType'
key Valuation.bwtar as ValuationType,
@ObjectModel : {
foreignKey.association: '_ValuationClass',
text.association: '_ValuationClassText'
}
Valuation.bklas as ValuationClass,
@ObjectModel.foreignKey.association: '_PriceDeterminationControl'
@ObjectModel.text.association:'_PriceDeterminationControlText'
Valuation.mlast as PriceDeterminationControl,
// Valuation.mlmaa as TaxClassificationCategory, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.vjbkl as ValuationClassInPrevYear, //pstat changes
// Valuation.vmbkl as ValuationClassInPrevPeriod, //pstat changes
marv.lfmon as FiscalMonthCurrentPeriod, // pstat
marv.lfgja as FiscalYearCurrentPeriod, //pstat
@Semantics.amount.currencyCode: 'Currency'
Valuation.stprs as StandardPrice,
Valuation.peinh as PriceUnitQty,
@ObjectModel.foreignKey.association: '_InventoryValnProcedure'
@ObjectModel.text.association:'_InventoryValnProcedureText'
cast(Valuation.vprsv as inventoryvaluationprocedure preserving type ) as InventoryValuationProcedure,
Valuation.zkprs as FutureEvaluatedAmountValue, //PSTAT Move : Moved to I_ProductValuationAcct
Valuation.zkdat as FuturePriceValidityStartDate, //PSTAT Move : Moved to I_ProductValuationAcct
//NEW FIELDS
@Semantics.amount.currencyCode: 'Currency'
Valuation.stprv as PrevInvtryPriceInCoCodeCrcy,
// cast (Valuation.lbkum as totalvalstockquantity ) as TotalValStockQuantity,
@Semantics.amount.currencyCode: 'Currency'
Valuation.verpr as MovingAveragePrice,
// cast (Valuation.vmkum as totalvalstockprevperiod ) as TotalValStockPrevPeriod, //pstat
// cast (Valuation.vmsal as totalvalstockprevperiodvalue) as TotalValStockPrevPeriodValue, //pstat
// cast (Valuation.vjkum as totalvalstockprevyear ) as TotalValStockPrevYear, //PSTAT Delete
// cast (Valuation.vjsal as totalvalstockprevyearvalue ) as TotalValStockPrevYearValue, //PSTAT Delete
Valuation.bwtty as ValuationCategory,
// cast (Valuation.salk3 as totalvalstockvalue ) as TotalValStockValue, //pstat
@ObjectModel.foreignKey.association: '_BR_MaterialUsage'
@ObjectModel.text.association:'_BR_MaterialUsageText'
cast (Valuation.mtuse as productusagetype preserving type ) as ProductUsageType,
@ObjectModel.foreignKey.association: '_BR_MaterialOrigin'
@ObjectModel.text.association:'_BR_MaterialOriginText'
cast (Valuation.mtorg as productorigintype preserving type ) as ProductOriginType,
Valuation.ownpr as IsProducedInhouse,
// Valuation.oklas as ValnClsForSpclStkAtVndr, //pstat
Valuation.kaln1 as ProdCostEstNumber,
// Valuation.kalnr as CostEstimateNumber,
Valuation.lvorm as IsMarkedForDeletion,
//Retail field
Valuation.bwspa as ValuationMargin,
cast( 'X' as sdraft_is_active preserving type ) as IsActiveEntity, // to enbale extensibility in Draft 2.0
//ML fields
t001k.bukrs as CompanyCode,
@ObjectModel : {
foreignKey.association: '_ValnClassSalesOrderStock',
text.association: '_ValnClassSalesOrderStockText'
}
Valuation.eklas as ValuationClassSalesOrderStock,
@ObjectModel : {
foreignKey.association: '_ValnClassProjectStock',
text.association: '_ValnClassProjectStockText'
}
Valuation.qklas as ProjectStockValuationClass,
@Semantics.amount.currencyCode: 'Currency'
@VDM.lifecycle.status: #DEPRECATED
Valuation.zplp1 as PlannedPrice1InCoCodeCrcy,
@Semantics.amount.currencyCode: 'Currency'
@VDM.lifecycle.status: #DEPRECATED
Valuation.zplp2 as PlannedPrice2InCoCodeCrcy,
@Semantics.amount.currencyCode: 'Currency'
@VDM.lifecycle.status: #DEPRECATED
Valuation.zplp3 as PlannedPrice3InCoCodeCrcy,
@VDM.lifecycle.status: #DEPRECATED
Valuation.zpld1 as FuturePlndPrice1ValdtyDate,
@VDM.lifecycle.status: #DEPRECATED
Valuation.zpld2 as FuturePlndPrice2ValdtyDate,
@VDM.lifecycle.status: #DEPRECATED
Valuation.zpld3 as FuturePlndPrice3ValdtyDate,
// Valuation.bwprs as TaxPricel1InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.bwps1 as TaxPrice2InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.vjbws as TaxPrice3InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.bwprh as CommercialPrice1InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.bwph1 as CommercialPrice2InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.vjbwh as CommercialPrice3InCoCodeCrcy, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.abwkz as DevaluationYearCount, //PSTAT Move : Moved to I_ProductValuationAcct
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
Valuation.bwpei as TaxBasedPricesPriceUnitQty,
// Valuation.mypol as LIFOValuationPoolNumber, //PSTAT Move : Moved to I_ProductValuationAcct
// Valuation.xlifo as IsLIFOAndFIFORelevant, //PSTAT Move : Moved to I_ProductValuationAcct
Valuation.laepr as PriceLastChangeDate,
@Semantics.amount.currencyCode: 'Currency'
@VDM.lifecycle.status: #DEPRECATED
Valuation.zplpr as PlannedPrice,
// Valuation.bwva1 as FutrCostEstValuationVariant, //PSTAT Delete : Read only
// Valuation.fbwst as FutrPlanProjSlsOrdValnStrategy, //PSTAT Delete : Read only
// Valuation.fplpx as FixedPortionOfPlannedPrice, //PSTAT Delete : Read only
// Valuation.vers1 as FutureCostEstCostingVersion, //PSTAT Delete : Read only
t001.waers as Currency,
Valuation.mlmaa as MLIsActiveAtProductLevel,
@Semantics.unitOfMeasure: true
_Product.BaseUnit,
// Valuation.pprdz as FutureCostEstimateFiscalPeriod,
// Valuation.pdatz as FutureCostEstFiscalYear,
_Product,
_ValuationClass,
_ValuationClassText,
_ValnClassSalesOrderStock,
_ValnClassSalesOrderStockText,
_ValnClassProjectStock,
_ValnClassProjectStockText,
_InventoryValnProcedure,
_InventoryValnProcedureText,
_PriceDeterminationControl,
_PriceDeterminationControlText,
_BR_MaterialUsage,
_BR_MaterialUsageText,
_BR_MaterialOrigin,
_BR_MaterialOriginText,
_InventoryValuationType
}
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