I_ProductUnitsOfMeasure

DDL: I_PRODUCTUNITSOFMEASURE SQL: IPRDUOM Type: view BASIC Package: VDM_MD_PRODUCT_DDIC

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)

SourceAliasJoin Type
marm marm from

Associations (15)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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

}