C_Product

DDL: C_PRODUCT SQL: CPRODUCT Type: view CONSUMPTION

Product Master Basic Data

C_Product is a Consumption CDS View that provides data about "Product Master Basic Data" in SAP S/4HANA. It reads from 1 data source (I_ProductWD) and exposes 46 fields with key field Product. It has 40 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ProductWD Product from

Associations (40)

CardinalityTargetAliasCondition
[0..*] C_Productdescription _Description $projection.Product = _Description.Product
[0..*] C_Productplant _Plant $projection.Product = _Plant.Product
[0..*] C_Productstore _Store $projection.Product = _Store.Product and _Store.PlantCategory = 'A'
[0..*] C_Productdistributioncenter _DistributionCenter $projection.Product = _DistributionCenter.Product and _DistributionCenter.PlantCategory = 'B'
[0..*] C_Productstoragelocationref _StorageLocation $projection.Product = _StorageLocation.Product and _StorageLocation.PlantCategory = ''
[0..1] C_Productsales _ProductSales $projection.Product = _ProductSales.Product
[0..1] C_Productqm _ProductQualityMgmt $projection.Product = _ProductQualityMgmt.Product
[0..*] C_Productsalesdelivery _SalesDelivery $projection.Product = _SalesDelivery.Product
[0..*] C_Productunitsofmeasure _UnitOfMeasure $projection.Product = _UnitOfMeasure.Product
[0..*] C_Productvaluation _Valuation $projection.Product = _Valuation.Product
[0..1] C_Productstorage _ProductStorage $projection.Product = _ProductStorage.Product
[0..1] C_Productprocurement _ProductProcurement $projection.Product = _ProductProcurement.Product
[0..1] C_Productscm _SupplyChainManagement $projection.Product = _SupplyChainManagement.Product
[0..*] C_Productvariantmatrix _ProductVariant $projection.Product = _ProductVariant.Product
[0..*] C_Productstoragelocationref _ReferenceDistributionCenter $projection.Product = _ReferenceDistributionCenter.Product
[0..*] C_Productstoragelocationref _ReferenceStore $projection.Product = _ReferenceStore.Product
[0..*] C_Product _ConfProductVariant $projection.Product = _ConfProductVariant.CrossPlantConfigurableProduct and $projection.Product <> ''
[0..*] C_ProductBOM _ProductBOM $projection.Product = _ProductBOM.Material
[0..*] C_ProductSeasons _ProductSeasons $projection.Product = _ProductSeasons.Product
[0..*] C_ProductPlantMRP _PlantMRPArea $projection.Product = _PlantMRPArea.Product
[0..*] C_ProdEWMWarehouse _Warehouse $projection.Product = _Warehouse.Product
[0..*] C_ProductReplenishment _ProductReplenishment $projection.Product = _ProductReplenishment.Product
[0..*] C_Productsalestax _ProductSalesTax $projection.Product = _ProductSalesTax.Product
[0..*] C_Srnoexpllvltexttemp _SerialNoText $projection.SerialNoExplicitnessLevel = _SerialNoText.SerialNoExplicitnessLevel
[0..1] C_Productcategoryvh _MaterialCategory $projection.ArticleCategory = _MaterialCategory.ArticleCategory
[0..*] I_ProductCategoryText _ArticleCategoryText $projection.ArticleCategory = _ArticleCategoryText.ProductCategory
[0..1] C_ProductUnitOfMeasureVH _ProductUnitOfMeasureVH $projection.BaseUnit = _ProductUnitOfMeasureVH.UnitOfMeasure
[0..*] C_Revisionlevellist _RevisionLevelOrder $projection.Product = _RevisionLevelOrder.Product
[0..*] C_MDProductHierarchyInfo _ProductHierarchyInfo $projection.Product = _ProductHierarchyInfo.Product
[0..1] C_ProductBasicInfo _CrossPlantConfigurableProduct $projection.CrossPlantConfigurableProduct = _CrossPlantConfigurableProduct.Product
[1..1] I_Product _ExternalProduct $projection.Product = _ExternalProduct.Product
[0..1] I_ProductChangeNumberVH _ChangeNumber $projection.ChangeNumber = _ChangeNumber.ChangeNumber
[0..1] C_ProductBasicInfo _ProductInfo $projection.ProductForEdit = _ProductInfo.Product
[0..1] C_ProductESPP _ProductESPP $projection.Product = _ProductESPP.Product
[0..*] C_ProdSCMProductGroup _ProdSCMProductGroup $projection.Product = _ProdSCMProductGroup.Product
[0..1] I_UserDescription _CreatedByUserName $projection.CreatedByUser = _CreatedByUserName.UserID
[0..1] I_UserDescription _LastChangedByUserName $projection.LastChangedByUser = _LastChangedByUserName.UserID
[0..*] I_ManufacturerPartProfileText _ManufacturerPartProfileText $projection.ManufacturerPartProfile = _ManufacturerPartProfileText.ManufacturerPartProfile
[0..*] I_MaterialGroupPackMatText _MaterialGroupPackMatText $projection.PackagingMaterialGroup = _MaterialGroupPackMatText.MaterialGroup
[0..1] C_ProductBasicInfo _OwnInventoryManagedProduct $projection.OwnInventoryManagedProduct = _OwnInventoryManagedProduct.Product

Annotations (17)

NameValueLevelField
AbapCatalog.sqlViewName CPRODUCT view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Product Master Basic Data view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #CONSUMPTION view
ObjectModel.compositionRoot true view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.createEnabled true view
ObjectModel.draftEnabled true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.text.control #ASSOCIATED_TEXT_UI_HIDDEN view
Search.searchable true view
AccessControl.authorizationCheck #CHECK view
Metadata.allowExtensions true view

Fields (46)

KeyFieldSource TableSource FieldDescription
KEY Product I_ProductWD Product
ProductExternalID _ExternalProduct ProductExternalID
ProductForEdit I_ProductWD ProductForEdit
ProductDescription I_ProductWD ProductDescription
ProductType I_ProductWD ProductType
CrossPlantStatus I_ProductWD CrossPlantStatus
CrossPlantStatusValidityDate I_ProductWD CrossPlantStatusValidityDate Cross-Plant Status Valid From
ProductGroup I_ProductWD ProductGroup
BaseUnit I_ProductWD BaseUnit
CreationDate I_ProductWD CreationDate Created On (Date)
CreationTime I_ProductWD CreationTime
CreationDateTime I_ProductWD CreationDateTime
CreatedByUser I_ProductWD CreatedByUser
LastChangeDate I_ProductWD LastChangeDate Last Changed On (Date)
LastChangeDateTime I_ProductWD LastChangeDateTime Last Changed On
LastChangeTime I_ProductWD LastChangeTime
LastChangedByUser I_ProductWD LastChangedByUser
LastChangedByUserName _LastChangedByUserName UserDescription
CreatedByUserName _CreatedByUserName UserDescription
IsMarkedForDeletion I_ProductWD IsMarkedForDeletion
ProductOldID I_ProductWD ProductOldID
GrossWeight I_ProductWD GrossWeight
WeightUnit I_ProductWD WeightUnit
NetWeight I_ProductWD NetWeight
VolumeUnit I_ProductWD VolumeUnit
MaterialVolume I_ProductWD MaterialVolume
CompetitorID I_ProductWD CompetitorID
ItemCategoryGroup I_ProductWD ItemCategoryGroup
ProductHierarchy I_ProductWD ProductHierarchy
Division I_ProductWD Division
BasicMaterial I_ProductWD BasicMaterial
ANPCode I_ProductWD ANPCode
Brand I_ProductWD Brand
ValidityStartDate I_ProductWD ValidityStartDate
ProdNoInGenProdInPrepackProd I_ProductWD ProdNoInGenProdInPrepackProd
SizeOrDimensionText I_ProductWD SizeOrDimensionText
IndustryStandardName I_ProductWD IndustryStandardName
ProductStandardID I_ProductWD ProductStandardID
InternationalArticleNumberCat I_ProductWD InternationalArticleNumberCat
ProductIsConfigurable I_ProductWD ProductIsConfigurable
IsBatchManagementRequired I_ProductWD IsBatchManagementRequired
ExternalProductGroup I_ProductWD ExternalProductGroup
CrossPlantConfigurableProduct I_ProductWD CrossPlantConfigurableProduct
SerialNoExplicitnessLevel I_ProductWD SerialNoExplicitnessLevel Level of Explicitness for Serial Number
ProductManufacturerNumber I_ProductWD ProductManufacturerNumber
ManufacturerNumber I_ProductWD ManufacturerNumber
@AbapCatalog.sqlViewName: 'CPRODUCT'
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Product Master Basic Data'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@VDM.viewType: #CONSUMPTION
@ObjectModel: {
    compositionRoot: true,
    transactionalProcessingDelegated:true,
    semanticKey: ['Product'],
    createEnabled:true,
    updateEnabled:#('EXTERNAL_CALCULATION'),
    deleteEnabled:#('EXTERNAL_CALCULATION'),
    draftEnabled: true,
    usageType.serviceQuality: #C,
    usageType.sizeCategory : #L,
    usageType.dataClass: #MIXED,
    text.control: #ASSOCIATED_TEXT_UI_HIDDEN
}

@Search.searchable: true
@AccessControl: {
    authorizationCheck: #CHECK,
    privilegedAssociations: ['_CreatedByUserContactCard', '_LastChangedByUserContactCard']
}
@Metadata.allowExtensions: true

define view C_Product

  as select from I_ProductWD as Product

  association [0..*] to C_Productdescription        as _Description                   on  $projection.Product = _Description.Product
  association [0..*] to C_Productplant              as _Plant                         on  $projection.Product = _Plant.Product
  association [0..*] to C_Productstore              as _Store                         on  $projection.Product  = _Store.Product
                                                                                      and _Store.PlantCategory = 'A' //Store added to where condition of view

  association [0..*] to C_Productdistributioncenter as _DistributionCenter            on  $projection.Product               = _DistributionCenter.Product
                                                                                      and _DistributionCenter.PlantCategory = 'B' //Distribution center added to where condition of view

  association [0..*] to C_Productstoragelocationref as _StorageLocation               on  $projection.Product            = _StorageLocation.Product
                                                                                      and _StorageLocation.PlantCategory = ''
  association [0..1] to C_Productsales              as _ProductSales                  on  $projection.Product = _ProductSales.Product

  association [0..1] to C_Productqm                 as _ProductQualityMgmt            on  $projection.Product = _ProductQualityMgmt.Product

  association [0..*] to C_Productsalesdelivery      as _SalesDelivery                 on  $projection.Product = _SalesDelivery.Product

  association [0..*] to C_Productunitsofmeasure     as _UnitOfMeasure                 on  $projection.Product = _UnitOfMeasure.Product
  association [0..*] to C_Productvaluation          as _Valuation                     on  $projection.Product = _Valuation.Product

  association [0..1] to C_Productstorage            as _ProductStorage                on  $projection.Product = _ProductStorage.Product

  association [0..1] to C_Productprocurement        as _ProductProcurement            on  $projection.Product = _ProductProcurement.Product

  association [0..1] to C_Productscm                as _SupplyChainManagement         on  $projection.Product = _SupplyChainManagement.Product
  association [0..*] to C_Productvariantmatrix      as _ProductVariant                on  $projection.Product = _ProductVariant.Product
  association [0..*] to C_Productstoragelocationref as _ReferenceDistributionCenter   on  $projection.Product = _ReferenceDistributionCenter.Product
  //                                                                                    and _ReferenceDistributionCenter.PlantCategory = 'B'

  association [0..*] to C_Productstoragelocationref as _ReferenceStore                on  $projection.Product = _ReferenceStore.Product
  //                                                                                    and _ReferenceStore.PlantCategory = 'A'

  association [0..*] to C_Product                   as _ConfProductVariant            on  $projection.Product =  _ConfProductVariant.CrossPlantConfigurableProduct
                                                                                      and $projection.Product <> ''
  association [0..*] to C_ProductBOM                as _ProductBOM                    on  $projection.Product = _ProductBOM.Material
  association [0..*] to C_ProductSeasons            as _ProductSeasons                on  $projection.Product = _ProductSeasons.Product
  association [0..*] to C_ProductPlantMRP           as _PlantMRPArea                  on  $projection.Product = _PlantMRPArea.Product
  association [0..*] to C_ProdEWMWarehouse          as _Warehouse                     on  $projection.Product = _Warehouse.Product
  association [0..*] to C_ProductReplenishment      as _ProductReplenishment          on  $projection.Product = _ProductReplenishment.Product
  association [0..*] to C_Productsalestax           as _ProductSalesTax               on  $projection.Product = _ProductSalesTax.Product
  //Value Help, Text Associations and Foreign Key associations


  association [0..*] to C_Srnoexpllvltexttemp       as _SerialNoText                  on  $projection.SerialNoExplicitnessLevel = _SerialNoText.SerialNoExplicitnessLevel
  association [0..1] to C_Productcategoryvh         as _MaterialCategory              on  $projection.ArticleCategory = _MaterialCategory.ArticleCategory
  association [0..*] to I_ProductCategoryText       as _ArticleCategoryText           on  $projection.ArticleCategory = _ArticleCategoryText.ProductCategory
  association [0..1] to C_ProductUnitOfMeasureVH    as _ProductUnitOfMeasureVH        on  $projection.BaseUnit = _ProductUnitOfMeasureVH.UnitOfMeasure

  association [0..*] to C_Revisionlevellist         as _RevisionLevelOrder            on  $projection.Product = _RevisionLevelOrder.Product
  association [0..*] to C_MDProductHierarchyInfo    as _ProductHierarchyInfo          on  $projection.Product = _ProductHierarchyInfo.Product
  association [0..1] to C_ProductBasicInfo          as _CrossPlantConfigurableProduct on  $projection.CrossPlantConfigurableProduct = _CrossPlantConfigurableProduct.Product
  association [1..1] to I_Product                   as _ExternalProduct               on  $projection.Product = _ExternalProduct.Product
  association [0..1] to I_ProductChangeNumberVH     as _ChangeNumber                  on  $projection.ChangeNumber = _ChangeNumber.ChangeNumber
  association [0..1] to C_ProductBasicInfo          as _ProductInfo                   on  $projection.ProductForEdit = _ProductInfo.Product
  association [0..1] to C_ProductESPP               as _ProductESPP                   on  $projection.Product = _ProductESPP.Product
  association [0..*] to C_ProdSCMProductGroup       as _ProdSCMProductGroup           on  $projection.Product = _ProdSCMProductGroup.Product
  association [0..1] to I_UserDescription           as _CreatedByUserName             on  $projection.CreatedByUser = _CreatedByUserName.UserID
  association [0..1] to I_UserDescription           as _LastChangedByUserName         on  $projection.LastChangedByUser = _LastChangedByUserName.UserID
  association [0..*] to I_ManufacturerPartProfileText as _ManufacturerPartProfileText on  $projection.ManufacturerPartProfile = _ManufacturerPartProfileText.ManufacturerPartProfile
  //association [0..*] to C_ProductBOMLink            as _ProductBOM                    on  $projection.Product = _ProductBOM.Product

  association [0..*] to I_MaterialGroupPackMatText  as _MaterialGroupPackMatText      on  $projection.PackagingMaterialGroup =  _MaterialGroupPackMatText.MaterialGroup
  association [0..1] to C_ProductBasicInfo          as _OwnInventoryManagedProduct on  $projection.OwnInventoryManagedProduct = _OwnInventoryManagedProduct.Product
{
       @ObjectModel.readOnly:true
       @Search.defaultSearchElement: false
       //@Search.fuzzinessThreshold: 1

       //@Search.ranking: #HIGH

  key  Product.Product,
       @ObjectModel.readOnly:true
       _ExternalProduct.ProductExternalID,
       //@Search.defaultSearchElement: true

       //@Search.fuzzinessThreshold: 1

       //@Search.ranking: #HIGH

       @ObjectModel:{
        text: {
          element: ['ProductDescription'],
          control: #NONE
        },
        foreignKey.association: '_ProductInfo'
       }
       @Consumption: {
         semanticObject: 'Material',
         valueHelpDefinition: [{ entity: { name : 'I_ProductStdVH', element: 'Product' }, label: 'Products by Description' },
            { entity: { name: 'I_ProductByPlantVH', element: 'Product' }, qualifier: 'ProdPlant', label: 'Products by Plant' },
            { entity: { name: 'I_ProductByDistributionChainVH', element: 'Product' }, qualifier: 'ProdDistrChain', label: 'Products by Distribution Chain' },
            { entity: { name: 'I_ProdByEWMWarehouseVH', element: 'Product' }, qualifier: 'ProdEwm', label: 'Products by EWM Warehouse' },
            { entity: { name: 'I_ProductByChangeMasterVH', element: 'Product'}, qualifier: 'ProdChangeMaster', label: 'Products by Change Number' },
            { entity: { name: 'I_ProductByValuationVH', element: 'Product'}, qualifier: 'ProdValuation', label: 'Products by Valuation' }]
         }
       Product.ProductForEdit, //Material,

       @Search.defaultSearchElement: true
       @Search.fuzzinessThreshold: 0.8
       @Search.ranking: #MEDIUM
       Product.ProductDescription,

       @Search.defaultSearchElement: true
       @Search.fuzzinessThreshold: 0.8
       @Consumption.valueHelpDefinition: [{entity: { name: 'I_Producttype', element: 'ProductType'}  }]
       Product.ProductType, //MaterialType,                  // offen: neuer Eintrag im Feldkatalog: ProductType


       @Consumption.valueHelpDefinition: [{entity: { name: 'I_ProductStatus', element: 'Status'}  }]
       Product.CrossPlantStatus, // offen: Cross-Plant Material Status


       @Consumption.filter.selectionType: #INTERVAL
       @EndUserText.label: 'Cross-Plant Status Valid From'
       Product.CrossPlantStatusValidityDate, // offen: Date from which the cross-plant material status is valid

       @Search.defaultSearchElement: true
       @Search.fuzzinessThreshold: 0.8
       @Consumption.valueHelpDefinition: [{entity: { name: 'I_ProductGroup_2', element: 'ProductGroup'}  }]
       Product.ProductGroup, //MaterialGroup,


       @Search.defaultSearchElement: true
       @Search.fuzzinessThreshold: 0.8
       @ObjectModel: { mandatory: true }
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductUnitOfMeasureVH', element: 'UnitOfMeasure'} }]
       }
       Product.BaseUnit,

       @ObjectModel.readOnly: true
       @EndUserText.label: 'Created On (Date)'
       @Consumption.filter.selectionType: #INTERVAL
       Product.CreationDate,
       @Consumption.hidden: true
       Product.CreationTime,
       @ObjectModel.readOnly: true
       Product.CreationDateTime,
       @ObjectModel: {
          readOnly: true,
          text.element: ['CreatedByUserName']
       }
       @Semantics.user.createdBy: true
       //@Search.defaultSearchElement: true

       //@Search.fuzzinessThreshold: 0.8

       Product.CreatedByUser, //CreatedByUser,


       @ObjectModel.readOnly: true
       @Semantics.systemDate.lastChangedAt: true
       @EndUserText.label: 'Last Changed On (Date)'
       @Consumption.filter.selectionType: #INTERVAL
       Product.LastChangeDate, //LastChangeDate, // offen: neuer Eintrag im Feldkatalog

       @ObjectModel.readOnly: true
       @EndUserText.label: 'Last Changed On'
       Product.LastChangeDateTime,
       @ObjectModel.readOnly: true
       @Consumption.hidden: true
       Product.LastChangeTime,

       @ObjectModel: {
        readOnly: true,
        text.element:  [ 'LastChangedByUserName' ]
       }
       Product.LastChangedByUser, //LastChangedByUser,


       @ObjectModel.readOnly: true
       _LastChangedByUserName.UserDescription as LastChangedByUserName,

       @ObjectModel.readOnly: true
       _CreatedByUserName.UserDescription     as CreatedByUserName,

       Product.IsMarkedForDeletion, //MaterialIsMarkedForDeletion,


       Product.ProductOldID, //MaterialOldID,

       @Semantics.quantity.unitOfMeasure: 'WeightUnit'
       Product.GrossWeight, //MaterialGrossWeight,


       @Semantics.unitOfMeasure: true
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_Weightuom', element: 'WeightUnit'} }]
       }
       Product.WeightUnit, //MaterialWeightUnit,


       Product.NetWeight, //MaterialNetWeight,


       @Semantics.unitOfMeasure: true
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_Volumeuom', element: 'VolumeUnit'} }]
       }
       Product.VolumeUnit, //Volume unit



       Product.MaterialVolume,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_Customer_VH', element: 'Customer'},
                                additionalBinding: [{ element: 'IsCompetitor', localConstant: 'X', usage:#FILTER}] }]
       }
       Product.CompetitorID, //Customer,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_ItemCategoryGroup', element: 'ItemCategoryGroup'} }]
       }
       Product.ItemCategoryGroup,
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_ProductHierarchy', element: 'ProductHierarchy'} }]
       }
       Product.ProductHierarchy, //ProductHierarchy,


       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_DivisionValueHelp', element: 'Division'} }]
       }
       Product.Division, //Division,


       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'I_BASICMATERIALVH', element: 'BasicMaterial'} }]
       }
       Product.BasicMaterial, //Basic Material


       @Consumption: {
         valueHelpDefinition: [{entity: {name: 'I_BR_ANPCode', element: 'BR_ANPCode'} }]
       }
       Product.ANPCode, //Anp Code


       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_Brand', element: 'Brand'} }]
       }
       Product.Brand, //Brand na

       @Consumption.filter.selectionType: #INTERVAL
       Product.ValidityStartDate, //Valid-Form Date na


       Product.ProdNoInGenProdInPrepackProd, //Material Number of the Generic Material in Prepack Materials na


       Product.SizeOrDimensionText,

       Product.IndustryStandardName, // Industry Standard Description (such as ANSI or ISO)


       Product.ProductStandardID, // International Article Number (EAN/UPC) BD1


       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'I_Intntnlartnmbcat', element: 'InternationalArticleNumberCat'} }]
       }
       Product.InternationalArticleNumberCat, // Category of International Article Number (EAN) BD1


       //Field annotated in WebIDE annotation

       Product.ProductIsConfigurable, // Configurable Material BD2


       Product.IsBatchManagementRequired, // Batch management requirement indicator //sales


       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'I_ExtProdGrp', element: 'ExternalProductGroup'} }]
       }
       Product.ExternalProductGroup, // External Material Group(General Data) BD1

       @Consumption.valueHelpDefinition: [{ entity: {name: 'I_ProductVH', element: 'Product'} }]
       @ObjectModel.foreignKey.association: '_CrossPlantConfigurableProduct'
       Product.CrossPlantConfigurableProduct, // Cross-Plant Configurable Material BD2


       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'C_Srnoexpllvltemp', element: 'SerialNoExplicitnessLevel'} }]
       }
       @ObjectModel.text.association: '_SerialNoText'
       @EndUserText.label: 'Level of Explicitness for Serial Number'
       Product.SerialNoExplicitnessLevel, // Level of Explicitness for Serial Number //sales


       Product.ProductManufacturerNumber,

       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'I_Supplier_VH', element: 'Supplier'} }]
       }
       Product.ManufacturerNumber,

       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'I_ManufacturerPartProfile', element: 'ManufacturerPartProfile'} }]
       }
       @ObjectModel.text.association: '_ManufacturerPartProfileText'
       Product.ManufacturerPartProfile,


       @Semantics.imageUrl: true
       @ObjectModel.readOnly: true
       @ObjectModel.virtualElement
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_PRODUCT_ROOT_CALC_EXIT1'
       cast( '' as productimageurl )          as ProductImageURL,

       //****************************

       //Retail Fields

       //****************************

       Product.BaseUnitSpecificProductLength,

       Product.BaseUnitSpecificProductWidth,

       Product.BaseUnitSpecificProductHeight,

       @Semantics.unitOfMeasure
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductLengthUoMVH', element: 'UnitOfMeasure'} }]
       }
       Product.ProductMeasurementUnit,

       //       Product.ProductValidStartDate,   "PSTAT Delete



       @ObjectModel.text.association: '_ArticleCategoryText'
       @ObjectModel.readOnly : true
       @Search.defaultSearchElement: true
       @Consumption: {
           valueHelpDefinition: [{
             entity: { name: 'I_ProductCategory', element: 'ProductCategory'},
             distinctValues: true}]
             }
       Product.ArticleCategory,
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductUnitOfMeasureVH', element: 'UnitOfMeasure'} }]
       }
       Product.ContentUnit,

       Product.NetContent,

       @Semantics.quantity.unitOfMeasure: 'ContentUnit'
       Product.ComparisonPriceQuantity,

       Product.GrossContent,

       @Consumption.filter.selectionType: #INTERVAL
       Product.ProductValidEndDate,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_AssortmentListTypeStdVH', element: 'AssortmentListType'} }]
       }
       Product.AssortmentListType,

       Product.HasTextilePartsWthAnimalOrigin,

       Product.ProductSeasonUsageCategory,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_ProductServiceAgreement', element: 'ProductServiceAgreement'} }]
       }
       Product.ServiceAgreement,

       @Consumption.valueHelpDefinition: [{entity:{ name: 'I_Region', element: 'Region'},
                                          additionalBinding: [{element: 'Country', localElement: 'CountryOfOrigin', usage: #FILTER }]}]
       Product.RegionOfOrigin,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_Country', element: 'Country'} }]
       }
       Product.CountryOfOrigin,

       //Delivery Unit of measure

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductUnitOfMeasureVH', element: 'UnitOfMeasure'} }]
       }
       Product.GoodsIssueUnit,

       @ObjectModel.foreignKey.association:'_ConsumptionValueCategory'
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_Matlabcclassification', element: 'MaterialABCClassification'} }]
       }
       Product.ConsumptionValueCategory,

       @Consumption.valueHelpDefinition: [{entity:{ name: 'I_ProdValnClassByProdTypeVH', element: 'ValuationClass'},
                                          additionalBinding: [{element: 'ProductType', localElement: 'ProductType', usage: #FILTER }]}]
       @ObjectModel.mandatory: true
       Product.ValuationClass,

       Product.ValuationMargin,

       @Consumption.valueHelpDefinition: [{
         entity : { name: 'I_ProductChangeNumberVH',
                    element: 'ChangeNumber'} }]
       @ObjectModel:{
         filter.enabled: false,
         sort.enabled: false
       }
       Product.ChangeNumber,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_ChangeMstrObjTypeRevisionLvl', element: 'RevisionLevel'},
                                additionalBinding: [{ element: 'ChangeNumberObjectType', localConstant: '41', usage:#FILTER}] }]
       }
       @ObjectModel:{
         filter.enabled: false,
         sort.enabled: false
       }
       Product.MaterialRevisionLevel,

       //EWM-----------------------------------------------------

       //WM execution


       @Consumption.valueHelpDefinition: [{ entity: { name: 'I_EWM_MaterialHandling', element: 'MaterialHandling'} }]
       Product.HandlingIndicator,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_EWM_WarehouseMaterialGroup', element: 'WarehouseProductGroup'} }]
       }
       Product.WarehouseProductGroup,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_EWM_WhseStorageCondition', element: 'WarehouseStorageCondition'} }]
       }
       Product.WarehouseStorageCondition,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_EWM_HandlingUnitType', element: 'HandlingUnitType'} }]
       }
       Product.StandardHandlingUnitType,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_EWM_SerialNumberProfile', element: 'SerialNumberProfile'} }]
       }
       Product.SerialNumberProfile,

       @Consumption.valueHelpDefinition: [{ entity: { name: 'I_ProdEWMAdjmtProfile', element: 'AdjustmentProfile'} }]
       Product.AdjustmentProfile,

       Product.IsPilferable,

       Product.IsRelevantForHzdsSubstances,

       @Semantics.quantity.unitOfMeasure : 'TimeUnitForQuarantinePeriod'
       Product.QuarantinePeriod,

       @Semantics.unitOfMeasure : true
       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductUnitOfMeasureVH', element: 'UnitOfMeasure'} }]
       }
       Product.TimeUnitForQuarantinePeriod,

       @Consumption.valueHelpDefinition: [{ entity: { name: 'I_EWM_QualityInspectionGroup', element: 'QualityInspectionGroup'} }]
       Product.QualityInspectionGroup,

       //WM packaging.......................................................................................................



       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_EWM_HandlingUnitType', element: 'HandlingUnitType'} }]
       }
       Product.HandlingUnitType,

       Product.MaximumCapacity,

       Product.OvercapacityTolerance,

       Product.HasVariableTareWeight,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'C_ProductLengthUoMVH', element: 'UnitOfMeasure'} }]
       }
       Product.UnitForMaxPackagingDimensions,

       @EndUserText.label: 'Maximum Packaging Length'
       Product.MaximumPackagingLength,

       @EndUserText.label: 'Maximum Packaging Width'
       Product.MaximumPackagingWidth,

       @EndUserText.label: 'Maximum Packaging Height'
       Product.MaximumPackagingHeight,

       Product.HasEmptiesBOM,

       //  **************Retail Specific END *************

       // Field for Interim Classification UI Direct Refresh


       Product.ClassificationSideEffect,
       // Field for Interim Configuration UI Direct Refresh

       Product.ConfigurationSideEffect,

       //Alias ProductAuthorizationGroup is removed as part of DCL cleanup -> CE2005

       Product.AuthorizationGroup, //as ProductAuthorizationGroup,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_ChemicalComplianceRelevant', element: 'IsChemicalComplianceRelevant'} }]
       }
       Product.IsChemicalComplianceRelevant,

       @ObjectModel.readOnly:true
       @ObjectModel.virtualElement: true
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_AH_ASSGMT_LVL_CALC_EXIT1'
       cast('' as boole_d)                    as HasGlobalHierarchy,

       @ObjectModel.readOnly:true
       @ObjectModel.virtualElement: true
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_PRODUCT_ROOT_CALC_EXIT1'
       cast('' as boole_d)                    as IsVariantConfigurationEnabled,

       @ObjectModel.readOnly: true
       @ObjectModel.virtualElement
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_PRODUCT_ROOT_CALC_EXIT1'
       cast( 0 as cmd_prd_num_prod_variants ) as NumberOfProductVariants,

       @ObjectModel.readOnly: true
       @ObjectModel.virtualElement
       @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_MD_PRODUCT_ROOT_CALC_EXIT1'
       cast( 0 as  abap.int2)                 as NumberOfProcessedProdVariants,

       @ObjectModel: {
         readOnly: true,
         virtualElement: true,
         virtualElementCalculatedBy: 'ABAP:CL_CMD_PRD_TRSNT_UOM_CALC_EXIT'
       }
       @Semantics.unitOfMeasure: true
       cast( '' as msehi )                    as OvercapacityToleranceUnit,

       Product.ReferenceProduct,
       @Consumption: {
       valueHelpDefinition: [{ entity: { name: 'C_ProductUnitOfMeasureVH', element: 'UnitOfMeasure'} }]
       }
       Product.SalesUnit,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_DocumentInfoRecordLbtryOffc', element: 'LaboratoryOrDesignOffice'} }]
       }
       Product.LaboratoryOrDesignOffice,

       @Consumption: {
        valueHelpDefinition: [{ entity: { name: 'I_MaterialGroupPackMaterials', element: 'MaterialGroup'} }]
       }
       @ObjectModel.text.association: '_MaterialGroupPackMatText'
       Product.PackagingMaterialGroup,

       // Design Fields added in 2005

       Product.ProductDocumentNumber,

       Product.ProductDocumentVersion,

       Product.ProductDocumentType,

       Product.ProductDocumentChangeNumber,

       Product.ProductDocumentPageCount,

       Product.ProductDocumentPageNumber,

       Product.ProductDocumentPageFormat,

       @Consumption.valueHelpDefinition: [{entity: { name : 'I_ProductStdVH', element: 'Product'} }]
       @ObjectModel.foreignKey.association: '_OwnInventoryManagedProduct'
       Product.OwnInventoryManagedProduct,

       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _Description,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _Plant,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _Valuation,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _ProductSales,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _SalesDelivery,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _UnitOfMeasure,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _ProductStorage,
       @ObjectModel.association.type: #TO_COMPOSITION_CHILD
       _ProductProcurement,
       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _ProductQualityMgmt,

       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _Store,
       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _DistributionCenter,
       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _SupplyChainManagement,
       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _ProductVariant,
       @ObjectModel.association.type: [#TO_COMPOSITION_CHILD ]
       _ProductSeasons,
       @ObjectModel.association.type:  #TO_COMPOSITION_CHILD
       _Warehouse,
       @ObjectModel.association.type:  [#TO_COMPOSITION_CHILD ]
       _ProductReplenishment,
       @ObjectModel.association.type:  [#TO_COMPOSITION_CHILD ]
       _ProductSalesTax,
       @ObjectModel.association.type:  [#TO_COMPOSITION_CHILD ]
       _ProductESPP,
       @ObjectModel.association.type:  [#TO_COMPOSITION_CHILD ]
       _ProdSCMProductGroup,
       _ConfProductVariant,
       _ProductGroup,
       _ProductGroupText,
       _ProductGroup_2,
       _ProductGroupText_2,
       _ReferenceDistributionCenter,
       _ReferenceStore,
       _StorageLocation,
       _BaseUnitOfMeasure,
       _QuantityUnitValueHelp,
       Product._ItemCategoryGroup,
       _ProductHierarchy,
       _CrossPlantConfigurableProduct,
       _OwnInventoryManagedProduct,
       _SerialNoText,
       _MaterialCategory,
       _Brand,
       _GoodsIssueUnit,
       _ConsumptionValueCategory,
       _InternationalArticleNumberCat,
       _HandlingIndicator,
       _WarehouseProductGroup,
       _WarehouseStorageCondition,
       _StandardHandlingUnitType,
       _SerialNumberProfile,
       _AdjustmentProfile_2,
       _QualityInspectionGroup,
       _HandlingUnitType,
       _UnitForMaxPackaging,
       _TimeUnitForQuarantinePeriod,
       _RevisionLevelOrder,
       _ProductHierarchyInfo,
       @ObjectModel.association.draft.enabled: true
       //@ObjectModel.association.draft.fieldNamePrefix: 'Product'

       @ObjectModel.association.reverseAssociation: '_ProductWD'
       _ProductBOM,
       _ProductTypeName,
       _UnitForMaxPackagingText,
       _ProductType,
       _ContentUnit,
       _ProductMeasurementUnit,
       _ExternalProductGroup,
       _Division,
       _BasicMaterial,
       _WeightUnitValueHelp,
       _ProductStatus,
       _PlantMRPArea,
       _ArticleCategoryText,
       _ExternalProduct,
       _BaseUnitOfMeasureText,
       _ProductUnitOfMeasureVH,
       _CreatedByUserContactCard,
       _LastChangedByUserContactCard,
       Product._ChemicalComplianceRelevant,
       Product._ChemicalComplianceRlvtText,
       Product._SalesUnit,
       _ChangeNumber,
       _ProductInfo,
       _MaterialRevisionLevel,
       _AssortmentListType,
       _ProductServiceAgreement,
       _BR_ANPCode,
       Product._ValuationClass,
       Product._ValuationClassText,
       _ManufacturerPartProfileText,
       _MaterialGroupPackMatText
}