I_ProductUnitsOfMeasure
Units of Measure of Product
I_ProductUnitsOfMeasure is a Basic CDS View (Dimension) that provides data about "Units of Measure of Product" in SAP S/4HANA. It reads from 1 data source (marm) and exposes 36 fields with key fields Product, AlternativeUnit. It has 15 associations to related views. Part of development package VDM_MD_PRODUCT_DDIC.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| marm | marm | from |
Associations (15)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Product | _Product | $projection.Product = _Product.Product |
| [0..1] | E_Productunitsofmeasure | _ProdUOMExt | $projection.Product = _ProdUOMExt.Product and $projection.AlternativeUnit = _ProdUOMExt.AlternativeUnit |
| [0..1] | I_UnitOfMeasure | _ProductMeasurementUnit | $projection.ProductMeasurementUnit = _ProductMeasurementUnit.UnitOfMeasure |
| [0..*] | I_UnitOfMeasureText | _ProductMeasurementUnitText | $projection.ProductMeasurementUnit = _ProductMeasurementUnitText.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _AlternativeUnit | $projection.AlternativeUnit = _AlternativeUnit.UnitOfMeasure |
| [0..*] | I_UnitOfMeasureText | _AlternativeUnitText | $projection.AlternativeUnit = _AlternativeUnitText.UnitOfMeasure |
| [0..1] | I_Intntnlartnmbcat | _GlobalTradeItemNumber | $projection.GlobalTradeItemNumberCategory = _GlobalTradeItemNumber.InternationalArticleNumberCat |
| [0..*] | I_Intntnlartnmbcattext | _GlobalTradeItemNumberText | $projection.GlobalTradeItemNumberCategory = _GlobalTradeItemNumberText.InternationalArticleNumberCat |
| [0..1] | I_UnitOfMeasure | _WeightUnitValueHelp | $projection.WeightUnit = _WeightUnitValueHelp.UnitOfMeasure |
| [0..*] | I_UnitOfMeasureText | _WeightUnitText | $projection.WeightUnit = _WeightUnitText.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _QuantityUnitValueHelp | $projection.VolumeUnit = _QuantityUnitValueHelp.UnitOfMeasure |
| [0..*] | I_UnitOfMeasureText | _VolumeUnitText | $projection.VolumeUnit = _VolumeUnitText.UnitOfMeasure |
| [0..1] | I_UnitOfMeasure | _LowerLevelPackagingUnit | $projection.LowerLevelPackagingUnit = _LowerLevelPackagingUnit.UnitOfMeasure |
| [0..*] | I_UnitOfMeasureText | _LowerLevelPackagingUnitText | $projection.LowerLevelPackagingUnit = _LowerLevelPackagingUnitText.UnitOfMeasure |
| [0..*] | I_ProductDescription_2 | _ProductDescription_2 | $projection.Product = _ProductDescription_2.Product |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPRDUOM | view | |
| AbapCatalog.preserveKey | true | view | |
| VDM.viewType | #BASIC | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Units of Measure of Product | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| Metadata.allowExtensions | true | view | |
| ObjectModel.representativeKey | PRODUCT | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.dataExtraction.enabled | true | view | |
| ObjectModel.sapObjectNodeType.name | ProductUnitOfMeasure | view |
Fields (36)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Product | |||
| KEY | AlternativeUnit | marm | meinh | |
| _AlternativeUnit | _AlternativeUnit | |||
| _AlternativeUnitText | _AlternativeUnitText | |||
| QuantityNumerator | ||||
| QuantityDenominator | ||||
| MaterialVolume | marm | volum | ||
| VolumeUnit | marm | voleh | ||
| _QuantityUnitValueHelp | _QuantityUnitValueHelp | |||
| _VolumeUnitText | _VolumeUnitText | |||
| GrossWeight | marm | brgew | ||
| WeightUnit | marm | gewei | ||
| _WeightUnitValueHelp | _WeightUnitValueHelp | |||
| _WeightUnitText | _WeightUnitText | |||
| GlobalTradeItemNumber | marm | ean11 | ||
| GlobalTradeItemNumberCategory | ||||
| _GlobalTradeItemNumber | _GlobalTradeItemNumber | |||
| _GlobalTradeItemNumberText | _GlobalTradeItemNumberText | |||
| UnitSpecificProductLength | marm | laeng | ||
| UnitSpecificProductWidth | marm | breit | ||
| UnitSpecificProductHeight | marm | hoehe | ||
| ProductMeasurementUnit | marm | meabm | ||
| _ProductMeasurementUnit | _ProductMeasurementUnit | |||
| _ProductMeasurementUnitText | _ProductMeasurementUnitText | |||
| LowerLevelPackagingUnit | marm | mesub | ||
| _LowerLevelPackagingUnit | _LowerLevelPackagingUnit | |||
| _LowerLevelPackagingUnitText | _LowerLevelPackagingUnitText | |||
| RemainingVolumeAfterNesting | marm | nest_ftr | ||
| MaximumStackingFactor | marm | max_stack | ||
| CapacityUsage | marm | capause | ||
| IsActiveEntity | ||||
| UnitOfMeasureCategory | marm | ty2tq | ||
| ProductGTINVariant | marm | gtin_variant | ||
| BaseUnit | _Product | BaseUnit | ||
| _Product | _Product | |||
| _ProductDescription_2 | _ProductDescription_2 |
// Product Units Of Measure (active)
@AbapCatalog.sqlViewName: 'IPRDUOM'
@AbapCatalog.preserveKey:true
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Units of Measure of Product'
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory : #L
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.allowExtensions: true
@ObjectModel.representativeKey:'PRODUCT'
@Metadata.ignorePropagatedAnnotations:true
@Analytics:{
dataCategory: #DIMENSION,
dataExtraction: {
enabled: true,
delta.changeDataCapture :{
mapping: [{ viewElement: ['PRODUCT', 'ALTERNATIVEUNIT'],
role: #MAIN,
table: 'MARM',
tableElement: ['MATNR', 'MEINH']},
{ viewElement: ['PRODUCT'],
role: #LEFT_OUTER_TO_ONE_JOIN,
table: 'MARA',
tableElement: ['MATNR']}
]
}
}
}
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET,
#EXTRACTION_DATA_SOURCE
]
@ObjectModel.sapObjectNodeType.name:'ProductUnitOfMeasure'
define view I_ProductUnitsOfMeasure
as select from marm
association [1..1] to I_Product as _Product on $projection.Product = _Product.Product
association [0..1] to E_Productunitsofmeasure as _ProdUOMExt on $projection.Product = _ProdUOMExt.Product
and $projection.AlternativeUnit = _ProdUOMExt.AlternativeUnit
association [0..1] to I_UnitOfMeasure as _ProductMeasurementUnit on $projection.ProductMeasurementUnit = _ProductMeasurementUnit.UnitOfMeasure
association [0..*] to I_UnitOfMeasureText as _ProductMeasurementUnitText on $projection.ProductMeasurementUnit = _ProductMeasurementUnitText.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _AlternativeUnit on $projection.AlternativeUnit = _AlternativeUnit.UnitOfMeasure
association [0..*] to I_UnitOfMeasureText as _AlternativeUnitText on $projection.AlternativeUnit = _AlternativeUnitText.UnitOfMeasure
association [0..1] to I_Intntnlartnmbcat as _GlobalTradeItemNumber on $projection.GlobalTradeItemNumberCategory = _GlobalTradeItemNumber.InternationalArticleNumberCat
association [0..*] to I_Intntnlartnmbcattext as _GlobalTradeItemNumberText on $projection.GlobalTradeItemNumberCategory = _GlobalTradeItemNumberText.InternationalArticleNumberCat
association [0..1] to I_UnitOfMeasure as _WeightUnitValueHelp on $projection.WeightUnit = _WeightUnitValueHelp.UnitOfMeasure
association [0..*] to I_UnitOfMeasureText as _WeightUnitText on $projection.WeightUnit = _WeightUnitText.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _QuantityUnitValueHelp on $projection.VolumeUnit = _QuantityUnitValueHelp.UnitOfMeasure
association [0..*] to I_UnitOfMeasureText as _VolumeUnitText on $projection.VolumeUnit = _VolumeUnitText.UnitOfMeasure
association [0..1] to I_UnitOfMeasure as _LowerLevelPackagingUnit on $projection.LowerLevelPackagingUnit = _LowerLevelPackagingUnit.UnitOfMeasure
association [0..*] to I_UnitOfMeasureText as _LowerLevelPackagingUnitText on $projection.LowerLevelPackagingUnit = _LowerLevelPackagingUnitText.UnitOfMeasure
association [0..*] to I_ProductDescription_2 as _ProductDescription_2 on $projection.Product = _ProductDescription_2.Product
{
// @ObjectModel.foreignKey.association: '_Product'
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ProductStdVH',
element: 'Product' },
useAsTemplate: true
}]
@ObjectModel.text.association: '_ProductDescription_2'
key cast ( marm.matnr as productnumber preserving type ) as Product,
@ObjectModel.foreignKey.association: '_AlternativeUnit'
@ObjectModel.text.association: '_AlternativeUnitText'
@Semantics.unitOfMeasure:true
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
key marm.meinh as AlternativeUnit,
_AlternativeUnit,
_AlternativeUnitText,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
cast(marm.umrez as cmd_base_uom_cnvrsn_fctr preserving type) as QuantityNumerator,
@Semantics.quantity.unitOfMeasure: 'AlternativeUnit'
cast(marm.umren as cmd_alt_uom_cnvrsn_fctr preserving type ) as QuantityDenominator,
@Semantics.quantity.unitOfMeasure: 'VolumeUnit'
marm.volum as MaterialVolume,
@Semantics.unitOfMeasure: true
@ObjectModel.text.association: '_VolumeUnitText'
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
marm.voleh as VolumeUnit,
_QuantityUnitValueHelp,
_VolumeUnitText,
@Semantics.quantity.unitOfMeasure: 'WeightUnit'
marm.brgew as GrossWeight,
@Semantics.unitOfMeasure: true
@ObjectModel.text.association: '_WeightUnitText'
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
marm.gewei as WeightUnit,
_WeightUnitValueHelp,
_WeightUnitText,
//Retail fields
marm.ean11 as GlobalTradeItemNumber,
@ObjectModel.foreignKey.association: '_GlobalTradeItemNumber'
@ObjectModel.text.association: '_GlobalTradeItemNumberText'
@ObjectModel.sapObjectNodeTypeReference:'GlobalTradeItemNumberCategory'
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_Intntnlartnmbcat', element : 'InternationalArticleNumberCat'},useAsTemplate: true }]
cast(marm.numtp as internationalarticlenumbercat preserving type ) as GlobalTradeItemNumberCategory,
_GlobalTradeItemNumber,
_GlobalTradeItemNumberText,
@Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
marm.laeng as UnitSpecificProductLength,
@Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
marm.breit as UnitSpecificProductWidth,
@Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
marm.hoehe as UnitSpecificProductHeight,
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_ProductMeasurementUnit'
@ObjectModel.text.association: '_ProductMeasurementUnitText'
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
marm.meabm as ProductMeasurementUnit,
_ProductMeasurementUnit,
_ProductMeasurementUnitText,
@ObjectModel.foreignKey.association: '_LowerLevelPackagingUnit'
@ObjectModel.text.association: '_LowerLevelPackagingUnitText'
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
marm.mesub as LowerLevelPackagingUnit,
_LowerLevelPackagingUnit,
_LowerLevelPackagingUnitText,
//EWM
marm.nest_ftr as RemainingVolumeAfterNesting,
marm.max_stack as MaximumStackingFactor,
marm.capause as CapacityUsage,
cast( 'X' as sdraft_is_active preserving type ) as IsActiveEntity, // to enbale extensibility in Draft 2.0
// New fields from MDG model, as part of unified API development
marm.ty2tq as UnitOfMeasureCategory,
marm.gtin_variant as ProductGTINVariant,
@Semantics.unitOfMeasure: true
@Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'} , useAsTemplate: true }]
_Product.BaseUnit as BaseUnit,
_Product,
@Analytics.hidden: true
_ProductDescription_2
}
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