I_PRODUCT

CDS View

Product

I_PRODUCT is a CDS View in S/4HANA. Product. It contains 142 fields. 101 CDS views read from this table.

CDS Views using this table (101)

ViewTypeJoinVDMDescription
/SCMTMS/VE_PRDRT view_entity from BOPF: Product Root Representation Node
/VSCEW/A_Product view_entity from Product
/VSCEW/CC_Product_VH view_entity from Scenario Product VH
/VSCEW/I_ProductPlantMRP view_entity union Product Plant MRP Area
A_ATPRlvtProductMRPAreaSegment view_entity inner CONSUMPTION Product Availability per Segment
A_ClfnProduct view from BASIC Product
A_Product view from COMPOSITE Product
A_WhsePhysInventoryItem view_entity left_outer COMPOSITE Warehouse Physical Inventory Item
C_BufPositioningProdVH view_entity from CONSUMPTION Product Value Help
C_ChmlCmplncProductParamVH view from CONSUMPTION Chml Cmplnc Material val help with Param
C_CSPRProduct view from CONSUMPTION Count Products with RFID: Product
C_CustomerReturnPlantVH view from CONSUMPTION Value Help for Production Plant of Returns Order
C_CustomerReturnProductVH view from CONSUMPTION Value Help for Product of Returns Order
C_EAMProductQuickVw view from CONSUMPTION Product Quick View
C_ExistingProcurementProduct view left_outer CONSUMPTION Existing procurement products
C_GRC_ProductChangeLog view inner CONSUMPTION Product change log
C_MaterialBySlsOrgDistrChnl view from CONSUMPTION Materials By Sales Org and Distr Channel
C_ProcmtQltyMgmtDsbldProd view from CONSUMPTION QM in procurement disabled product
C_ProdAssgblToStoreVH view_entity from CONSUMPTION Product Assignable to Store
C_ProductBasicInfo view from CONSUMPTION Product Basic Info View
C_ProductObjPg view from CONSUMPTION Product Object Page
C_ProductObjPgVariant view from CONSUMPTION Product Object Page - Variant
C_QuickCreateProduct view from CONSUMPTION Consumption view for Quick Create
C_RecipeIngredientMaterialVH view from CONSUMPTION Recipe Ingredient Material Value Help
C_RptvManufacturingProductVH view from CONSUMPTION Repetitive Manufacturing Product
C_SalesInsightMaterialVH view from CONSUMPTION Sales Insight: Material Value Help
C_SchedProdnProductGroupVH view_entity inner CONSUMPTION Value Help for Product Group
C_SlsDocItemCustomerMaterialVH view inner CONSUMPTION Customer Material
C_SrvcOrdTmplProductVH view from CONSUMPTION Value Help for Product for Templates
Crms4v_Product view from Common Product Data with All Texts
Crms4v_ProductSales view from Product Sales
Crms4v_ProductUnit view from Product Unit of Measure
FAC_productVH view from Data Source for Account Assignment Type
I_ActiveLogisticalProduct view from COMPOSITE Active Logistical Product composite view
I_AsstmtMdlMDGenerationError view inner COMPOSITE Error During Assortment Postprocessing
I_AsstmtMdlMDGenerationError_1 view_entity inner BASIC Error During Assortment Postprocessing
I_AsstmtMdlMDGenerationError_2 view_entity inner BASIC Error During Assortment Postprocessing
I_ChangeRecordProduct view from COMPOSITE Change Record Material
I_CnsldtnMasterData view union_all COMPOSITE Consolidation - Combined Master Data
I_CO_MaterialBalance view_entity inner COMPOSITE Colombia Material Balance
I_EWM_WhseOrderHndlgUnit view left_outer BASIC EWM Warehouse Order Handling Unit
I_GenericArticleVH view_entity from BASIC Generic Article
I_JITPackggMatlVH view_entity from COMPOSITE Packaging Material Value Help
I_MaterialUoMConversionFactor view inner BASIC Material uom conversion factor
I_MatlValnMngMrkdReldCostEst view_entity inner COMPOSITE Matl Valuations Marked and Reld Cost Est
I_PlndIndepRqmtSegment view inner COMPOSITE Planned Independent Requirement Segment
I_ProdExQltyInfoRecdInProcmt view inner COMPOSITE Products without Q-Info records
I_ProductChangeDocument view_entity from COMPOSITE Product Change Document
I_ProductDistrCtrListingTP view_entity inner TRANSACTIONAL Product Assignment to Distribution Center
I_ProductList view_entity from COMPOSITE Data model for product list
I_ProductStdVH view from COMPOSITE Product Value Help
I_ProductTrdClassfctnEndUse view left_outer BASIC Product Classfication for End Use
I_ProductVH view from COMPOSITE Product Value Help
I_ProductVH_2 view_entity from COMPOSITE Product Value Help
I_ProductWD view from TRANSACTIONAL Product BO Product Node (draft)
I_PT_SAFTBillgInvcListProd view_entity inner COMPOSITE Product from Invoice List Document
I_PT_SAFTBillingDeliveryProd view_entity inner COMPOSITE Product from Delivery Document
I_PT_SAFTSlsInvcBillgProduct view_entity inner COMPOSITE Product from Billing Document
I_RetailStoreProductImage view from COMPOSITE Retail Store Product Image Helper
I_RO_SAFTMatlDocHeader view_entity inner COMPOSITE RO SAFT Material Document Header
I_RO_SAFTMatlDocLineItem view_entity inner COMPOSITE RO SAFT Matl Doc Lines
I_SuVolRtrckgMaterialSource view from BASIC Subst Vol Retracking Material Source Details
I_TrdClassfctnProduct view from BASIC Product
I_VASProductVH view_entity from BASIC Value Added Services Product
P_acdoca_m_extract_agg view_entity inner COMPOSITE P_ACDOCA_M_EXTRACT Aggrigation
P_ARunRelChkRunMatlUoM view from COMPOSITE Multiple UoM's and Conversion Factors of Material
P_CnsldtnProduct view from COMPOSITE Consolidation Combined Material
P_ConfigurableProductPlantBase view union CONSUMPTION Simulation - Product Plant base for search
P_EBPAO_AdjustedOrder4Quantity view_entity inner COMPOSITE Evt-Bsd Production Acctg Ovw - Adjusted Order for Quantity
P_EWM_HandlingUnitHeader view_entity inner COMPOSITE Warehouse Handling Unit Header
P_EWM_PINVCOUNTITEM06 view left_outer CONSUMPTION Help view of PI Items - item info
P_EWM_PInvDocBusKeyItem view_entity inner COMPOSITE Private view for Row of PInv Item with Quantity in Whse
P_MatlInvtryUnivJrnlAggrgn view_entity inner COMPOSITE Material Inventroy Aggregation from ACDOCA
P_Matval_Manage_Cost view_entity inner COMPOSITE Manage Material Valuations, table of cost estimates
P_MRPMaterialCrossPlantStatus view from COMPOSITE MRP Material Status
P_MSPWWorkItem view inner BASIC MPW: Worklist of proposed movements (helper)
P_NumberOfProductVar_F4543 view_entity from CONSUMPTION Number of Product Variants
P_PCLblProdCmbndByBusProc view from COMPOSITE Union Products by Business Processes
P_PCLblProdCmbndByBusProc view inner COMPOSITE Union Products by Business Processes
P_PhysInvtryNotPosted_L2 view_entity inner COMPOSITE Not posted master data
P_Prchinforecords_FS view left_outer BASIC private factsheet - purchasing info records
P_Product_Fs view from BASIC Private Factsheet - Product
P_ProductSearch view from BASIC Product anchor view for CDS search model
P_ProductWD view from COMPOSITE union
P_RtlPromnItmStoreSlsUoM_F4674 view inner COMPOSITE Retail Promotion Items with Qty in Sales Unit
P_Salesview_Fs view left_outer COMPOSITE Private Factsheet - Sales View
P_SI4_TrainingData10 view left_outer COMPOSITE Sales Performance Prediction
P_SimulationObjectSearch view inner CONSUMPTION Simulation - Simulation Objects Search
P_SlowMoMatPredCnsmpnDelta view_entity left_outer COMPOSITE Consumption Delta
P_SlowMoMatPredStockDelta view_entity left_outer COMPOSITE Stock Delta
P_SlowMoMatPrMoCnsmpnDelta view_entity left_outer COMPOSITE Consumption Delta
P_SlowMoMatPrMoStockDelta view_entity left_outer COMPOSITE Stock Delta
P_SpecAssignedMatlForKeyDate view from COMPOSITE Specification Material Assignment for Key Date
P_SPP_PredictionData06 view left_outer COMPOSITE Prediction Data 06
P_SPP_TrainingData06 view left_outer COMPOSITE Training Data 06
P_StRpBillgDocSuplrInvcItem view left_outer COMPOSITE Sales and Purchase Inv Item with Tax for Statutory Reporting
R_MatlValnEndgInvtryByKeyDate view_entity inner COMPOSITE Ending Invtry Qty and Amount by Date
R_MatlValnInvtryPerFsclPerd view_entity inner COMPOSITE M EXTRACT with references
R_ProductTP view_entity from TRANSACTIONAL Product
R_ProductTP_2 view_entity from TRANSACTIONAL Product - TP
SHSM_ASSGND_PROD_TO_DISTCTR_V view inner Products Assigned to Distribution Ctrs

Fields (142)

KeyField CDS FieldsUsed in Views
KEY Product ActiveProduct,Material,PackagingMaterial,Product,ProductForEdit,SubstVolRetrackingSource,SubstVolRetrackingSrceName,SuVolRtrckgSrcePrimSrchName,SuVolRtrckgSrceSecdrySrchName 30
KEY ProductGroup MaterialGroup,ProductGroup 28
KEY ProductType ProductType 27
KEY ProductUUID product_uuid,ProductUUID 4
_BaseUnitOfMeasure _BaseUnitOfMeasure 1
_BR_ANPCode _BR_ANPCode 1
_BR_ANPCodeText _BR_ANPCodeText 1
_Brand _Brand 1
_BrandText _BrandText 1
_ChemicalComplianceRelevant _ChemicalComplianceRelevant 1
_ChemicalComplianceRlvtText _ChemicalComplianceRlvtText 1
_CreatedByUserContactCard _CreatedByUserContactCard 1
_CrossPlantConfigurableProduct _CrossPlantConfigurableProduct 1
_Division _Division 1
_DivisionText _DivisionText 1
_ExternalProductGroup _ExternalProductGroup 1
_ExtProdGrpText _ExtProdGrpText 1
_ItemCategoryGroup _ItemCategoryGroup 2
_ItemCategoryGroupText _ItemCategoryGroupText 2
_LastChangedByUser _LastChangedByUser 1
_LastChangedByUserContactCard _LastChangedByUserContactCard 1
_MaterialText _MaterialText 1
_ProductCategory _ProductCategory 1
_ProductCategoryText _ProductCategoryText 1
_ProductGroup _ProductGroup 2
_ProductGroup_2 _ProductGroup,_ProductGroup_2 8
_ProductGroupText _ProductGroupText 1
_ProductGroupText_2 _ProductGroupText_2 1
_ProductHierarchy _ProductHierarchy 1
_ProductHierarchyText _ProductHierarchyText 1
_ProductStatus _ProductStatus 3
_ProductStatusText _ProductStatusText 1
_ProductType _ProductType 8
_ProductType_2 _ProductType 1
_ProductTypeName _ProductTypeName 1
_ProdUnivHierarchyNode _ProdUnivHierarchyNode 1
_Text _PackagingMaterialText,_Text 2
AdjustmentProfile AdjustmentProfile 1
ANPCode ANPCode 3
ArticleCategory ArticleCategory 5
AssortmentListType AssortmentListType 2
AuthorizationGroup AuthorizationGroup,ProductAuthorizationGroup 21
BaseUnit BaseUnit,UnitOfMeasure,ValuationQuantityUnit 25
BaseUnitSpecificProductHeight BaseUnitSpecificProductHeight 2
BaseUnitSpecificProductLength BaseUnitSpecificProductLength 2
BaseUnitSpecificProductWidth BaseUnitSpecificProductWidth 2
BasicMaterial BasicMaterial 1
Brand Brand 3
ChangeNumber ChangeNumber 1
ComparisonPriceQuantity ComparisonPriceQuantity 2
CompetitorID CompetitorID 4
ContentUnit ContentUnit 2
CountryOfOrigin CountryOfOrigin,herkl 3
CreatedByUser CreatedByUser,SubstVolRetrackingSrceCrtedBy 9
CreationDate CreationDate 7
CreationDateTime CreationDateTime 2
CreationTime CreationTime 3
CrossPlantConfigurableProduct CrossPlantConfigurableProduct 4
CrossPlantStatus CrossPlantStatus 6
CrossPlantStatusValidityDate CrossPlantStatusValidityDate 4
DangerousGoodsIndProfile dgprofl 1
Division Division 6
ExternalProductGroup ExternalProductGroup 3
GrossContent GrossContent 2
GrossWeight GrossWeight 6
HandlingIndicator HandlingIndicator 1
HandlingUnitType HandlingUnitType 1
HasEmptiesBOM HasEmptiesBOM 2
HasTextilePartsWthAnimalOrigin HasTextilePartsWthAnimalOrigin 2
HasVariableTareWeight HasVariableTareWeight 1
IndustrySector IndustrySector 2
IndustryStandardName IndustryStandardName 2
InternationalArticleNumberCat InternationalArticleNumberCat 2
IsApprovedBatchRecordReqd IsApprovedBatchRecordReqd 1
IsBatchManagementRequired IsBatchManagementRequired 6
IsChemicalComplianceRelevant IsChemicalComplianceRelevant 1
IsMarkedForDeletion IsMarkedForDeletion 4
IsPilferable IsPilferable 1
IsRelevantForHzdsSubstances IsRelevantForHzdsSubstances 1
ItemCategoryGroup ItemCategoryGroup 4
LaboratoryOrDesignOffice LaboratoryOrDesignOffice 1
LastChangeDate LastChangeDate 6
LastChangeDateTime LastChangeDateTime,SubstVolRetrckgSrceChgdDteTme 3
LastChangedByUser LastChangedByUser 6
LastChangeTime LastChangeTime 2
LowLevelCode LowLevelCode 1
ManufacturerNumber ManufacturerNumber 4
ManufacturerPartProfile ManufacturerPartProfile 3
MaterialRevisionLevel MaterialRevisionLevel 1
MaterialVolume MaterialVolume 2
MaximumCapacity MaximumCapacity 1
MaximumPackagingHeight MaximumPackagingHeight 1
MaximumPackagingLength MaximumPackagingLength 1
MaximumPackagingWidth MaximumPackagingWidth 1
NetContent NetContent 2
NetWeight NetWeight,ntgew 6
OvercapacityTolerance OvercapacityTolerance 1
OwnInventoryManagedProduct Material,OwnInventoryManagedProduct 2
PackagingMaterialGroup PackagingMaterialGroup 1
ProdNoInGenProdInPrepackProd ProdNoInGenProdInPrepackProd 2
ProductCategory ProductCategory 4
ProductConfiguration ProductConfiguration 1
ProductDocumentChangeNumber ProductDocumentChangeNumber 1
ProductDocumentNumber ProductDocumentNumber 1
ProductDocumentPageCount ProductDocumentPageCount 1
ProductDocumentPageFormat ProductDocumentPageFormat 1
ProductDocumentPageNumber ProductDocumentPageNumber 1
ProductDocumentType ProductDocumentType 1
ProductDocumentVersion ProductDocumentVersion 1
ProductExternalID ProductExternalID 6
ProductHierarchy ProductHierarchy 5
ProductIsConfigurable ProductIsConfigurable 4
ProductIsLocked ProductIsLocked 1
ProductManufacturerNumber ProductManufacturerNumber 6
ProductMeasurementUnit ProductMeasurementUnit 2
ProductOldID ProductOldID 5
ProductSeasonUsageCategory ProductSeasonUsageCategory 2
ProductStandardID ProductStandardID 6
ProductValidEndDate ProductValidEndDate 2
ProductValidStartDate ProductValidStartDate 1
PurchaseOrderQuantityUnit PurchaseOrderQuantityUnit 3
QltyMgmtInProcmtIsActive QltyMgmtInProcmtIsActive 2
QualityInspectionGroup QualityInspectionGroup 1
QuarantinePeriod QuarantinePeriod 1
SalesProduct SalesProduct 1
SalesStatus SalesStatus 2
SalesStatusValidityDate SalesStatusValidityDate 1
SegmentationStrategy SegmentationStrategy 1
SerialIdentifierAssgmtProfile SerialIdentifierAssgmtProfile 1
SerialNoExplicitnessLevel SerialNoExplicitnessLevel 2
SerialNumberProfile SerialNumberProfile 1
SizeOrDimensionText SizeOrDimensionText 3
SourceOfSupply SourceOfSupply 2
StandardHandlingUnitType StandardHandlingUnitType 1
TimeUnitForQuarantinePeriod TimeUnitForQuarantinePeriod 1
UnitForMaxPackagingDimensions UnitForMaxPackagingDimensions 1
ValidityStartDate ValidityStartDate 2
VarblPurOrdUnitIsActive VarblPurOrdUnitIsActive 1
VolumeUnit VolumeUnit 2
WarehouseProductGroup WarehouseProductGroup 1
WarehouseStorageCondition WarehouseStorageCondition 1
WeightUnit gewei,WeightUnit 7
// active core entity

@AbapCatalog: {
  sqlViewName: 'IPRODUCT',
  preserveKey: true
}
@VDM.viewType: #BASIC

@AccessControl: {
  authorizationCheck: #CHECK,
//As I_TextObjectPlainLongText has a DCL0,

//the following annotation is required for enterprise search "Products"

  privilegedAssociations: ['_ESHTextObjectPlainLongText']
}
@EndUserText.label: 'Product'
@ObjectModel.representativeKey: 'Product'
@Analytics.dataCategory: #DIMENSION
//@ObjectModel.entityChangeStateId: 'LastChangeDateTime'

@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory : #L
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Search.searchable: true
@Metadata.allowExtensions:true
@Metadata.ignorePropagatedAnnotations: true
@Analytics:{
    dataExtraction: {
        enabled: true,
        delta.changeDataCapture.automatic: true
    }
}
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
                                      #CDS_MODELING_DATA_SOURCE,
                                      #CDS_MODELING_ASSOCIATION_TARGET,
                                      #EXTRACTION_DATA_SOURCE,
                                      #SEARCHABLE_ENTITY,
                                      #ANALYTICAL_DIMENSION
]
@ObjectModel.alternativeKey:[{id:'OID',element:['ProductOID']}]
@ObjectModel.sapObjectNodeType.name:'Product'
@ObjectModel.objectIdentifier.oidElement:'ProductOID'


define view I_Product
  as select from mara
  //    left outer join maw1 on mara.matnr = maw1.matnr //moved to _ProductRetail

  association [0..*] to I_ProductText                  as _Text                          on  $projection.Product = _Text.Product
  association [0..1] to I_ProductGroup                 as _ProductGroup                  on  $projection.ProductGroup = _ProductGroup.MaterialGroup
  association [0..*] to I_ProductGroupText             as _ProductGroupText              on  $projection.ProductGroup = _ProductGroupText.MaterialGroup
  association [0..1] to I_ProductGroup_2               as _ProductGroup_2                on  $projection.ProductGroup = _ProductGroup_2.ProductGroup
  association [0..*] to I_ProductGroupText_2           as _ProductGroupText_2            on  $projection.ProductGroup = _ProductGroupText_2.ProductGroup
  association [0..1] to I_ProductRetail                as _ProductRetail                 on  $projection.Product = _ProductRetail.Product //added for VH

  association [0..1] to I_Division                     as _Division                      on  $projection.Division = _Division.Division
  association [0..*] to I_DivisionText                 as _DivisionText                  on  $projection.Division = _DivisionText.Division
  association [0..1] to I_ExtProdGrp                   as _ExternalProductGroup          on  $projection.ExternalProductGroup = _ExternalProductGroup.ExternalProductGroup
  association [0..*] to I_ExtProdGrpText               as _ExtProdGrpText                on  $projection.ExternalProductGroup = _ExtProdGrpText.ExternalProductGroup
  association [0..1] to I_ProductHierarchy             as _ProductHierarchy              on  $projection.ProductHierarchy = _ProductHierarchy.ProductHierarchy
  association [0..*] to I_ProductHierarchyText         as _ProductHierarchyText          on  $projection.ProductHierarchy = _ProductHierarchyText.ProductHierarchy
  association [1..1] to I_Producttype                  as _ProductType                   on  $projection.ProductType = _ProductType.ProductType
  association [0..*] to I_ProductTypeText              as _ProductTypeName               on  $projection.ProductType = _ProductTypeName.ProductType
  association [0..1] to I_Intntnlartnmbcat             as _InternationalArticleNumberCat on  $projection.InternationalArticleNumberCat = _InternationalArticleNumberCat.InternationalArticleNumberCat
  association [0..*] to I_Intntnlartnmbcattext         as _IntArticleNumberText          on  $projection.InternationalArticleNumberCat = _IntArticleNumberText.InternationalArticleNumberCat
  association [1..1] to I_ProductCategory              as _ProductCategory               on  $projection.ProductCategory = _ProductCategory.ProductCategory
  association [0..*] to I_ProductCategoryText          as _ProductCategoryText           on  $projection.ProductCategory = _ProductCategoryText.ProductCategory
  association [0..*] to I_ProductCategoryText          as _ArticleCategoryText           on  $projection.ArticleCategory = _ArticleCategoryText.ProductCategory
  association [1..1] to I_UnitOfMeasure                as _BaseUnitOfMeasure             on  $projection.BaseUnit = _BaseUnitOfMeasure.UnitOfMeasure
  association [0..*] to I_UnitOfMeasureText            as _BaseUnitOfMeasureText         on  $projection.BaseUnit = _BaseUnitOfMeasureText.UnitOfMeasure
  association [0..1] to I_Product                      as _CrossPlantConfigurableProduct on  $projection.CrossPlantConfigurableProduct = _CrossPlantConfigurableProduct.Product
  association [0..1] to I_Brand                        as _Brand                         on  $projection.Brand = _Brand.Brand
  association [0..1] to I_User                         as _CreatedByUser                 on  $projection.CreatedByUser = _CreatedByUser.UserID
  association [0..1] to I_User                         as _LastChangedByUser             on  $projection.LastChangedByUser = _LastChangedByUser.UserID
  association [1..1] to I_UserContactCard              as _CreatedByUserContactCard      on  $projection.CreatedByUser = _CreatedByUserContactCard.ContactCardID
  association [0..1] to I_UserContactCard              as _LastChangedByUserContactCard  on  $projection.LastChangedByUser = _LastChangedByUserContactCard.ContactCardID
  association [0..1] to I_BasicMaterial                as _BasicMaterial                 on  $projection.BasicMaterial = _BasicMaterial.BasicMaterial

  association [0..1] to E_Product                      as _ProductExt                    on  mara.matnr = _ProductExt.Product
  association [0..1] to I_UnitOfMeasure                as _ContentUnit                   on  $projection.ContentUnit = _ContentUnit.UnitOfMeasure
  association [0..*] to I_UnitOfMeasureText            as _ContentUnitText               on  $projection.ContentUnit = _ContentUnitText.UnitOfMeasure
  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_Productprocurement           as _ProductProcurement            on  $projection.Product = _ProductProcurement.Product
  association [0..1] to I_ProductSales                 as _ProductSales                  on  $projection.Product = _ProductSales.Product
  association [0..1] to I_ProductStatus                as _ProductStatus                 on  $projection.CrossPlantStatus = _ProductStatus.Status
  association [0..*] to I_ProductStatusText            as _ProductStatusText             on  $projection.CrossPlantStatus = _ProductStatusText.Status
  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 _QuantityUnitText              on  $projection.VolumeUnit = _QuantityUnitText.UnitOfMeasure
  association [0..1] to I_UnitOfMeasure                as _UnitForMaxPackaging           on  $projection.UnitForMaxPackagingDimensions = _UnitForMaxPackaging.UnitOfMeasure
  association [0..*] to I_UnitOfMeasureText            as _UnitForMaxPackagingText       on  $projection.UnitForMaxPackagingDimensions = _UnitForMaxPackagingText.UnitOfMeasure

  association [0..1] to I_UnitOfMeasure                as _TimeUnitForQuarantinePeriod   on  $projection.TimeUnitForQuarantinePeriod             = _TimeUnitForQuarantinePeriod.UnitOfMeasure
                                                                                         and _TimeUnitForQuarantinePeriod.UnitOfMeasureDimension = 'TIME'
  association [0..*] to I_UnitOfMeasureText            as _TimeUnitQuarantinePeriodText  on  $projection.TimeUnitForQuarantinePeriod = _TimeUnitQuarantinePeriodText.UnitOfMeasure
  //  association [0..1] to I_Productvh            as _CrossPlantConfigurableProduct on  $projection.CrossPlantConfigurableProduct = _CrossPlantConfigurableProduct.Product

  association [0..*] to I_ProductDescription           as _MaterialText                  on  $projection.CrossPlantConfigurableProduct = _MaterialText.Product

  association [0..*] to I_MDProductHierarchyNode       as _MDProductHierarchyNode -- Not part of 1705 [Pushing down from I_ProductWD to I_Product Applegreen ticket]
                                                                                         on  $projection.Product = _MDProductHierarchyNode.Product

  association [0..1] to I_ChangeMstrObjTypeRevisionLvl as _MaterialRevisionLevel         on  $projection.MaterialRevisionLevel             = _MaterialRevisionLevel.RevisionLevel
                                                                                         and _MaterialRevisionLevel.ChangeNumberObjectType = '41'

  association [0..1] to I_ChemicalComplianceRelevant   as _ChemicalComplianceRelevant    on  $projection.IsChemicalComplianceRelevant = _ChemicalComplianceRelevant.IsChemicalComplianceRelevant
  association [0..*] to I_ChemicalComplianceRlvtText   as _ChemicalComplianceRlvtText    on  $projection.IsChemicalComplianceRelevant = _ChemicalComplianceRlvtText.IsChemicalComplianceRelevant

  association [0..1] to I_ItemCategoryGroup            as _ItemCategoryGroup             on  $projection.ItemCategoryGroup = _ItemCategoryGroup.ItemCategoryGroup
  association [0..*] to I_ItemCategoryGroupText        as _ItemCategoryGroupText         on  $projection.ItemCategoryGroup = _ItemCategoryGroupText.ItemCategoryGroup

  association [0..*] to I_BrandText                    as _BrandText                     on  $projection.Brand = _BrandText.Brand

  //Start: enterprise search help (ESH) related associations----------------------------------------------------------------------------------------------------------------------

  association [0..*] to I_ProductSalesDelivery         as _ESHProductSalesDelivery       on  $projection.Product = _ESHProductSalesDelivery.Product
  association [0..*] to I_SourceOfSupplyCategoryT      as _ESHSourceOfSupply             on  $projection.SourceOfSupply = _ESHSourceOfSupply.SourceOfSupplyCategory
  association [0..1] to I_Supplier                     as _ESHSupplier                   on  $projection.ManufacturerNumber = _ESHSupplier.Supplier
  association [0..*] to I_TextObjectPlainLongText      as _ESHTextObjectPlainLongText    on  $projection.Product                            = _ESHTextObjectPlainLongText.TextObjectKey
                                                                                         and _ESHTextObjectPlainLongText.TextObjectCategory = 'MATERIAL'
  association [0..*] to I_DocumentInfoRecordObjectLink as _ESHDocInfoRecordObjectLink    on  $projection.Product                         = _ESHDocInfoRecordObjectLink.LinkedSAPObjectKey
                                                                                         and _ESHDocInfoRecordObjectLink.LinkedSAPObject = 'MARA'
  association [0..*] to I_UnitOfMeasureText            as _ESHPurOrderQuantityUnitText   on  $projection.PurchaseOrderQuantityUnit = _ESHPurOrderQuantityUnitText.UnitOfMeasure
  association [0..*] to I_ProductPlant                 as _ESHProductPlant               on  $projection.Product = _ESHProductPlant.Product

  //In 1905 Classification related associations are added to get classification related fields into the

  //search model

  association [0..*] to I_ClfnObjectCharcValForKeyDate as _ESHCharValueAssignment        on  $projection.Product                     = _ESHCharValueAssignment.ClfnObjectID
                                                                                         and _ESHCharValueAssignment.ClfnObjectTable = 'MARA'
  association [0..*] to I_ClfnObjectClassForKeyDate    as _ESHClassAssignment            on  $projection.Product                 = _ESHClassAssignment.ClfnObjectID
                                                                                         and _ESHClassAssignment.ClfnObjectTable = 'MARA'
  //End of ESH related associations-----------------------------------------------------------------------------------------------------------------------------------------------

  association [0..*] to I_ProdUnivHierarchyNode        as _ProdUnivHierarchyNode         on  $projection.Product = _ProdUnivHierarchyNode.Product

  association [0..1] to I_AssortmentListType           as _AssortmentListType            on  $projection.AssortmentListType = _AssortmentListType.AssortmentListType
  association [0..*] to I_AssortmentListTypeT          as _AssortmentListTypeText        on  $projection.AssortmentListType = _AssortmentListTypeText.AssortmentListType

  association [0..1] to I_BR_ANPCode                   as _BR_ANPCode                    on  $projection.ANPCode = _BR_ANPCode.BR_ANPCode
  association [0..*] to I_BR_ANPCodeText               as _BR_ANPCodeText                on  $projection.ANPCode = _BR_ANPCodeText.BR_ANPCode

  association [0..1] to I_EWM_MaterialHandling         as _HandlingIndicator             on  $projection.HandlingIndicator = _HandlingIndicator.MaterialHandling
  association [0..*] to I_EWM_MaterialHandlingT        as _HandlingIndicatorText         on  $projection.HandlingIndicator = _HandlingIndicatorText.MaterialHandling

  association [0..1] to I_EWM_WarehouseMaterialGroup   as _WarehouseProductGroup         on  $projection.WarehouseProductGroup = _WarehouseProductGroup.WarehouseProductGroup
  association [0..*] to I_EWM_WarehouseMaterialGroupT  as _WarehouseProductGroupText     on  $projection.WarehouseProductGroup = _WarehouseProductGroupText.WarehouseProductGroup

  association [0..1] to I_EWM_WhseStorageCondition     as _WarehouseStorageCondition     on  $projection.WarehouseStorageCondition = _WarehouseStorageCondition.WarehouseStorageCondition
  association [0..*] to I_EWM_WhseStorageConditionT    as _WarehouseStorageConditionText on  $projection.WarehouseStorageCondition = _WarehouseStorageConditionText.WarehouseStorageCondition

  association [0..1] to I_EWM_HandlingUnitType         as _StandardHandlingUnitType      on  $projection.StandardHandlingUnitType = _StandardHandlingUnitType.HandlingUnitType
  association [0..*] to I_EWM_HandlingUnitTypeT        as _StandardHandlingUnitTypeText  on  $projection.StandardHandlingUnitType = _StandardHandlingUnitTypeText.HandlingUnitType

  association [0..1] to I_EWM_SerialNumberProfile      as _SerialNumberProfile           on  $projection.SerialNumberProfile = _SerialNumberProfile.SerialNumberProfile
  association [0..*] to I_EWM_SerialNumberProfileT     as _SerialNumberProfileText       on  $projection.SerialNumberProfile = _SerialNumberProfileText.SerialNumberProfile

  association [0..1] to I_EWM_QtyAdjustmentProfile     as _AdjustmentProfile             on  $projection.AdjustmentProfile = _AdjustmentProfile.AdjustmentProfile
  association [0..*] to I_EWM_QtyAdjustmentProfileT    as _AdjustmentProfileText         on  $projection.AdjustmentProfile = _AdjustmentProfileText.AdjustmentProfile

  association [0..1] to I_ProdEWMAdjmtProfile          as _AdjustmentProfile_2           on  $projection.AdjustmentProfile = _AdjustmentProfile_2.AdjustmentProfile
  association [0..*] to I_ProdEWMAdjmtProfileText      as _AdjustmentProfileText_2       on  $projection.AdjustmentProfile = _AdjustmentProfileText_2.AdjustmentProfile

  association [0..1] to I_EWM_QualityInspectionGroup   as _QualityInspectionGroup        on  $projection.QualityInspectionGroup = _QualityInspectionGroup.QualityInspectionGroup
  association [0..*] to I_EWM_QualityInspectionGroupT  as _QualityInspectionGroupText    on  $projection.QualityInspectionGroup = _QualityInspectionGroupText.QualityInspectionGroup

  association [0..1] to I_EWM_HandlingUnitType         as _HandlingUnitType              on  $projection.HandlingUnitType = _HandlingUnitType.HandlingUnitType
  association [0..*] to I_EWM_HandlingUnitTypeT        as _HandlingUnitTypeText          on  $projection.HandlingUnitType = _HandlingUnitTypeText.HandlingUnitType

  association [0..1] to I_ProductESPP                  as _ProductESPP                   on  $projection.Product = _ProductESPP.Product
  association [1..1] to I_Productscm                   as _ProductSCM                    on  $projection.Product = _ProductSCM.Product
  association [1..1] to I_ProductType_2                as _ProductType_2                 on  $projection.ProductType = _ProductType_2.ProductType
  association [0..*] to I_ProductTypeText_2            as _ProductTypeName_2             on  $projection.ProductType = _ProductTypeName_2.ProductType
  association [0..*] to I_ProductDescription_2         as _ProductDescription_2          on  $projection.CrossPlantConfigurableProduct = _ProductDescription_2.Product
  association [0..1] to I_RetailCharacteristicValue    as _RetProdCharc1                 on  $projection.ProdCharc1InternalNumber = _RetProdCharc1.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic1   = _RetProdCharc1.RetailCharacteristicValue
  association [0..*] to I_RetailCharacteristicValueT   as _RetProdCharc1Text             on  $projection.ProdCharc1InternalNumber = _RetProdCharc1Text.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic1   = _RetProdCharc1Text.RetailCharacteristicValue

  association [0..1] to I_RetailCharacteristicValue    as _RetProdCharc2                 on  $projection.ProdCharc2InternalNumber = _RetProdCharc2.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic2   = _RetProdCharc2.RetailCharacteristicValue
  association [0..*] to I_RetailCharacteristicValueT   as _RetProdCharc2Text             on  $projection.ProdCharc2InternalNumber = _RetProdCharc2Text.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic2   = _RetProdCharc2Text.RetailCharacteristicValue

  association [0..1] to I_RetailCharacteristicValue    as _RetProdCharc3                 on  $projection.ProdCharc3InternalNumber = _RetProdCharc3.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic3   = _RetProdCharc3.RetailCharacteristicValue
  association [0..*] to I_RetailCharacteristicValueT   as _RetProdCharc3Text             on  $projection.ProdCharc3InternalNumber = _RetProdCharc3Text.CharacteristicInternalID
                                                                                         and $projection.ProductCharacteristic3   = _RetProdCharc3Text.RetailCharacteristicValue
  association [0..1] to I_FashionProdInfoField1        as _FashionProdInfoFld1           on  $projection.FashionProdInformationField1 = _FashionProdInfoFld1.FashionProdInformationField1
  association [0..*] to I_FashionProdInfoFld1Text      as _FashionProdInfoFld1Text       on  $projection.FashionProdInformationField1 = _FashionProdInfoFld1Text.FashionProdInformationField1
  association [0..1] to I_FashionProdInfoField2        as _FashionProdInfoFld2           on  $projection.FashionProdInformationField2 = _FashionProdInfoFld2.FashionProdInformationField2
  association [0..*] to I_FashionProdInfoFld2Text      as _FashionProdInfoFld2Text       on  $projection.FashionProdInformationField2 = _FashionProdInfoFld2Text.FashionProdInformationField2
  association [0..1] to I_FashionProdInfoField3        as _FashionProdInfoFld3           on  $projection.FashionProdInformationField3 = _FashionProdInfoFld3.FashionProdInformationField3
  association [0..*] to I_FashionProdInfoFld3Text      as _FashionProdInfoFld3Text       on  $projection.FashionProdInformationField3 = _FashionProdInfoFld3Text.FashionProdInformationField3
  association [0..*] to I_VarblPurOrdUnitActvStatusTxt as _VarblPurOrdUnitActvStatusTxt  on  $projection.VarblPurOrdUnitIsActive = _VarblPurOrdUnitActvStatusTxt.VarblPurOrdUnitIsActive
  association [0..*] to I_SerialNoExplicitnessLevelTxt as _SerialNoExplicitnessLevelTxt  on  $projection.SerialNoExplicitnessLevel = _SerialNoExplicitnessLevelTxt.SerialNoExplicitnessLevel
  association [0..*] to I_TransportationGroupText      as _TransportationGroupText       on  $projection.TransportationGroup = _TransportationGroupText.TransportationGroup
  association [0..1] to I_IndustrySector               as _IndustrySector                on  $projection.IndustrySector = _IndustrySector.IndustrySector
  association [0..*] to I_IndustrySectorText_2         as _IndustrySectorText            on  $projection.IndustrySector = _IndustrySectorText.IndustrySector
  association [0..*] to I_CountryText                  as _CountryOfOriginText           on  $projection.CountryOfOrigin = _CountryOfOriginText.Country
  association [0..*] to I_UnitOfMeasureText            as _PreferredUnitOfMeasureText    on  $projection.PreferredUnitOfMeasure = _PreferredUnitOfMeasureText.UnitOfMeasure

  association [0..*] to I_ProductDescription_2         as _SalesProductDescription       on  $projection.SalesProduct = _SalesProductDescription.Product
  association [0..*] to I_ProductDescription_2         as _GenericProductDescription     on  $projection.ProdNoInGenProdInPrepackProd = _GenericProductDescription.Product
  association [0..*] to I_ProductDescription_2         as _PackgRefProductDescription    on  $projection.PackingReferenceProduct = _PackgRefProductDescription.Product
  association [0..*] to I_ProductDescription_2         as _OwnInvtryMngdProdDescription  on  $projection.OwnInventoryManagedProduct = _OwnInvtryMngdProdDescription.Product
  association [0..*] to I_ProductDescription_2         as _MfrBookPartNumberDescription  on  $projection.ManufacturerBookPartNumber = _MfrBookPartNumberDescription.Product


{ // root node fields


      @ObjectModel: {
        text.association: '_Text',
        hierarchy.association: '_ProdUnivHierarchyNode'
      }
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
  key cast (mara.matnr as productnumber preserving type )                  as Product,
      _Text,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
      mara.matnr_external                                                  as ProductExternalID,
      mara.productoid                                                      as ProductOID,
      @ObjectModel.foreignKey.association: '_ProductType'
      @ObjectModel.text.association: '_ProductTypeName'
      @ObjectModel.sapObjectNodeTypeReference:'ProductType'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductTypeVH', element : 'ProductType'} , useAsTemplate: true }]     
      cast (mara.mtart as producttype preserving type )                    as ProductType,
      @VDM.lifecycle: {
        status: #DEPRECATED,
        successor: '_ProductType_2'
      }
      _ProductType,
      @Semantics.systemDate.createdAt: true
      mara.ersda                                                           as CreationDate,
      @Semantics.systemTime.createdAt: true
      mara.created_at_time                                                 as CreationTime,

      @Semantics.systemDateTime.createdAt: true
      cast ( dats_tims_to_tstmp( mara.ersda,
                                 mara.created_at_time,
                                 abap_system_timezone( $session.client,'NULL' ),
                                 $session.client,
                                 'NULL' ) as cmd_prd_creation_date_time  ) as CreationDateTime,
      @ObjectModel.foreignKey.association: '_CreatedByUserContactCard'
      mara.ernam                                                           as CreatedByUser,
      _CreatedByUser,
      _CreatedByUserContactCard,
      @Semantics.systemDate.lastChangedAt: true
      mara.laeda                                                           as LastChangeDate,
      @ObjectModel.foreignKey.association: '_LastChangedByUserContactCard'
      case when mara.aenam <> '' then mara.aenam
                                 else cast( mara.ernam as aenam preserving type )
      end                                                                  as LastChangedByUser,
      //mara.aenam                                                           as LastChangedByUser,

      _LastChangedByUser,
      _LastChangedByUserContactCard,
      cast (mara.lvorm as ismarkedfordeletion)                             as IsMarkedForDeletion,
      @ObjectModel.foreignKey.association: '_ProductStatus'
      @ObjectModel.text.association: '_ProductStatusText'
      @ObjectModel.sapObjectNodeTypeReference:'ProductProfileCode'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStatus', element : 'Status'}, useAsTemplate: true }]
      cast (mara.mstae as crossplantstatus)                                as CrossPlantStatus,
      _ProductStatus,
      _ProductStatusText,
      mara.mstde                                                           as CrossPlantStatusValidityDate,
      // common node fields -> no common node

      cast (mara.bismt as productoldid)                                    as ProductOldID,
      @Semantics.quantity.unitOfMeasure: 'WeightUnit'
      mara.brgew                                                           as GrossWeight,
      @ObjectModel.text.association: '_ESHPurOrderQuantityUnitText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }]  
      mara.bstme                                                           as PurchaseOrderQuantityUnit,
      mara.bwscl                                                           as SourceOfSupply,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association:'_WeightUnitValueHelp'
      @ObjectModel.text.association: '_WeightUnitText'
      mara.gewei                                                           as WeightUnit,
      _WeightUnitValueHelp,
      _WeightUnitText,
      @ObjectModel.text.association: '_CountryOfOriginText'
      @Consumption.valueHelpDefinition: [ { entity:  { name: 'I_CountryVH',  element: 'Country' }, useAsTemplate: true }]
      mara.herkl                                                           as CountryOfOrigin,
      mara.kunnr                                                           as CompetitorID,
      @ObjectModel.foreignKey.association: '_ProductGroup_2'
      @ObjectModel.text.association: '_ProductGroupText_2'
      @ObjectModel.sapObjectNodeTypeReference:'ProductGroup'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductGroup_2', element : 'ProductGroup'}, useAsTemplate: true }]
      cast (mara.matkl as productgroup preserving type )                   as ProductGroup,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_ProductGroup_2'
      _ProductGroup,
      @VDM.lifecycle.status: #DEPRECATED
      @VDM.lifecycle.successor: '_ProductGroupText_2'
      _ProductGroupText,
      _ProductGroup_2,
      _ProductGroupText_2,
      @ObjectModel.foreignKey.association: '_BaseUnitOfMeasure'
      @ObjectModel.text.association: '_BaseUnitOfMeasureText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }]  
      mara.meins                                                           as BaseUnit,
      _BaseUnitOfMeasure,
      _BaseUnitOfMeasureText,
      @ObjectModel.foreignKey.association: '_ItemCategoryGroup'
      @ObjectModel.text.association: '_ItemCategoryGroupText'
      mara.mtpos_mara                                                      as ItemCategoryGroup,
      @Semantics.quantity.unitOfMeasure: 'WeightUnit'
      mara.ntgew                                                           as NetWeight,
      @ObjectModel.foreignKey.association: '_ProductHierarchy'
      @ObjectModel.text.association: '_ProductHierarchyText'
      mara.prdha                                                           as ProductHierarchy,
      _ProductHierarchy,
      _ProductHierarchyText,
      @ObjectModel.foreignKey.association: '_Division'
      @ObjectModel.text.association: '_DivisionText'
      mara.spart                                                           as Division,
      _Division,
      _DivisionText,
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_VarblPurOrdUnitActvStatus', element : 'VarblPurOrdUnitIsActive'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_VarblPurOrdUnitActvStatusTxt'
      mara.vabme                                                           as VarblPurOrdUnitIsActive,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association:'_QuantityUnitValueHelp'
      @ObjectModel.text.association: '_QuantityUnitText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }]  
      mara.voleh                                                           as VolumeUnit,
      _QuantityUnitValueHelp,
      _QuantityUnitText,
      @Semantics.quantity.unitOfMeasure: 'VolumeUnit'
      cast (mara.volum as materialvolume)                                  as MaterialVolume,
      mara.mstav                                                           as SalesStatus, -- added on 12.08.2015
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_TransportationGroup', element : 'TransportationGroup'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_TransportationGroupText'
      mara.tragr                                                           as TransportationGroup,
      mara.mstdv                                                           as SalesStatusValidityDate,
      mara.begru                                                           as AuthorizationGroup,
      // NEW FIELDS

      @ObjectModel:{
        foreignKey.association: '_BR_ANPCode',
        text.association: '_BR_ANPCodeText'
      }
      mara.anp                                                             as ANPCode,
      @ObjectModel.foreignKey.association: '_ProductCategory'
      @ObjectModel.text.association: '_ProductCategoryText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductCategory', element : 'ProductCategory'}, useAsTemplate: true }]
      cast (mara.attyp as prodcategory preserving type )                   as ProductCategory,
      _ProductCategory,
      _ProductCategoryText,
      @ObjectModel.foreignKey.association: '_Brand'
      @ObjectModel.text.association: '_BrandText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_Brand', element : 'Brand'}, useAsTemplate: true }]
      mara.brand_id                                                        as Brand,
      _Brand,
      mara.bwvor                                                           as ProcurementRule,
      mara.datab                                                           as ValidityStartDate,
      mara.disst                                                           as LowLevelCode,
      @ObjectModel.text.association: '_GenericProductDescription'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
      mara.gennr                                                           as ProdNoInGenProdInPrepackProd,
      mara.serial                                                          as SerialIdentifierAssgmtProfile,
      mara.groes                                                           as SizeOrDimensionText,
      mara.normt                                                           as IndustryStandardName,
      cast( mara.ean11 as globaltradeitemnumber)                           as ProductStandardID,
      @ObjectModel.foreignKey.association: '_InternationalArticleNumberCat'
      @ObjectModel.text.association:'_IntArticleNumberText'
      @ObjectModel.sapObjectNodeTypeReference:'GlobalTradeItemNumberCategory'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_Intntnlartnmbcat', element : 'InternationalArticleNumberCat'}, useAsTemplate: true }]
      mara.numtp                                                           as InternationalArticleNumberCat,
      _InternationalArticleNumberCat,
      _IntArticleNumberText,
      cast( mara.kzkfg as productisconfigurable preserving type )          as ProductIsConfigurable,
      mara.xchpf                                                           as IsBatchManagementRequired,
      mara.mlgut                                                           as HasEmptiesBOM,
      @ObjectModel.foreignKey.association: '_ExternalProductGroup'
      @ObjectModel.text.association: '_ExtProdGrpText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ExtProdGrp', element : 'ExternalProductGroup'}, useAsTemplate: true }]
      cast (mara.extwg as externalproductgroup preserving type )           as ExternalProductGroup,
      _ExternalProductGroup,
      _ExtProdGrpText,
      //--[ GENERATED:012:GFBfhxvv7jY4jTYbPy8kum

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_ProductStdVH',
                     element: 'Product' }
        }]
      // ]--GENERATED

      @ObjectModel.foreignKey.association: '_CrossPlantConfigurableProduct'
      @ObjectModel.text.association: '_MaterialText'
 //     @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]

      cast (mara.satnr as crossplantconfigurableproduct preserving type )  as CrossPlantConfigurableProduct,
      _CrossPlantConfigurableProduct,
      _MaterialText,
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_SerialNoExplicitnessLevel', element : 'SerialNoExplicitnessLevel'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_SerialNoExplicitnessLevelTxt'
      mara.serlv                                                           as SerialNoExplicitnessLevel,
      mara.mfrpn                                                           as ProductManufacturerNumber,
      mara.mfrnr                                                           as ManufacturerNumber,
      mara.mprof                                                           as ManufacturerPartProfile,
      mara.qmpur                                                           as QltyMgmtInProcmtIsActive,
      // _Text  //added for VH


      -- Added on 21.4.16 not releven for Product Master

      mara.xgchp                                                           as IsApprovedBatchRecordReqd,

      //EWM fields------------------------------

      //for EWM............

      @ObjectModel.foreignKey.association: '_HandlingIndicator'
      @ObjectModel.text.association: '_HandlingIndicatorText'
      mara.hndlcode                                                        as HandlingIndicator,
      @ObjectModel.foreignKey.association: '_WarehouseProductGroup'
      @ObjectModel.text.association: '_WarehouseProductGroupText'
      mara.whmatgr                                                         as WarehouseProductGroup,
      @ObjectModel.foreignKey.association: '_WarehouseStorageCondition'
      @ObjectModel.text.association: '_WarehouseStorageConditionText'
      mara.whstc                                                           as WarehouseStorageCondition,
      @ObjectModel.foreignKey.association: '_StandardHandlingUnitType'
      @ObjectModel.text.association: '_StandardHandlingUnitTypeText'
      mara.hutyp_dflt                                                      as StandardHandlingUnitType,
      @ObjectModel.foreignKey.association: '_SerialNumberProfile'
      @ObjectModel.text.association: '_SerialNumberProfileText'
      mara.serial                                                          as SerialNumberProfile,
      @ObjectModel.foreignKey.association: '_AdjustmentProfile_2'
      @ObjectModel.text.association: '_AdjustmentProfileText_2'
      mara.adprof                                                          as AdjustmentProfile,
      @ObjectModel.text.association: '_PreferredUnitOfMeasureText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }] 
      mara.scm_puom                                                        as PreferredUnitOfMeasure,
      mara.pilferable                                                      as IsPilferable,
      mara.hazmat                                                          as IsRelevantForHzdsSubstances,
      @Semantics.quantity.unitOfMeasure : 'TimeUnitForQuarantinePeriod'
      mara.qqtime                                                          as QuarantinePeriod,
      @ObjectModel.foreignKey.association:'_TimeUnitForQuarantinePeriod'
      @Semantics.unitOfMeasure : true
      @ObjectModel.text.association: '_TimeUnitQuarantinePeriodText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }] 
      mara.qqtimeuom                                                       as TimeUnitForQuarantinePeriod,
      _TimeUnitForQuarantinePeriod,
      _TimeUnitQuarantinePeriodText,
      @ObjectModel.foreignKey.association: '_QualityInspectionGroup'
      @ObjectModel.text.association: '_QualityInspectionGroupText'
      mara.qgrp                                                            as QualityInspectionGroup,
      //WM packaging fields

      @ObjectModel.foreignKey.association: '_HandlingUnitType'
      @ObjectModel.text.association: '_HandlingUnitTypeText'
      mara.hutyp                                                           as HandlingUnitType,
      //    mara.hutyp_dflt,

      mara.tare_var                                                        as HasVariableTareWeight,
      @Semantics.quantity.unitOfMeasure: 'UnitForMaxPackagingDimensions'
      mara.maxl                                                            as MaximumPackagingLength,
      @Semantics.quantity.unitOfMeasure: 'UnitForMaxPackagingDimensions'
      mara.maxb                                                            as MaximumPackagingWidth,
      @Semantics.quantity.unitOfMeasure: 'UnitForMaxPackagingDimensions'
      mara.maxh                                                            as MaximumPackagingHeight,
      mara.maxc                                                            as MaximumCapacity,
      mara.maxc_tol                                                        as OvercapacityTolerance,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_UnitForMaxPackaging'
      @ObjectModel.text.association: '_UnitForMaxPackagingText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }] 
      mara.maxdim_uom                                                      as UnitForMaxPackagingDimensions,
      _UnitForMaxPackaging,
      _UnitForMaxPackagingText,

      //      Retail Fields


      @Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
      mara.laeng                                                           as BaseUnitSpecificProductLength,
      @Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
      mara.breit                                                           as BaseUnitSpecificProductWidth,
      @Semantics.quantity.unitOfMeasure: 'ProductMeasurementUnit'
      mara.hoehe                                                           as BaseUnitSpecificProductHeight,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_ProductMeasurementUnit'
      @ObjectModel.text.association: '_ProductMeasurementUnitText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }]  
      mara.meabm                                                           as ProductMeasurementUnit,
      _ProductMeasurementUnit,
      _ProductMeasurementUnitText,
      mara.datab                                                           as ProductValidStartDate,
      @ObjectModel.sapObjectNodeTypeReference:'ProductCategory'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductCategory', element : 'ProductCategory'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_ArticleCategoryText'
      cast (mara.attyp as prodcategory preserving type )                   as ArticleCategory,
      @ObjectModel.foreignKey.association: '_ContentUnit'
      @ObjectModel.text.association: '_ContentUnitText'
      @Semantics.unitOfMeasure: true
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_UnitOfMeasureStdVH', element : 'UnitOfMeasure'}, useAsTemplate: true }]  
      mara.inhme                                                           as ContentUnit,
      _ContentUnit,
      _ContentUnitText,
      @Semantics.quantity.unitOfMeasure: 'ContentUnit'
      mara.inhal                                                           as NetContent,
      @Semantics.quantity.unitOfMeasure: 'ContentUnit'
      @EndUserText.label: 'Comparison Price Unit'
      mara.vpreh                                                           as ComparisonPriceQuantity,
      @Semantics.quantity.unitOfMeasure: 'ContentUnit'
      mara.inhbr                                                           as GrossContent,
      mara.liqdt                                                           as ProductValidEndDate,
      @ObjectModel.foreignKey.association: '_AssortmentListType'
      @ObjectModel.text.association: '_AssortmentListTypeText'
      mara.bbtyp                                                           as AssortmentListType,
      mara.animal_origin                                                   as HasTextilePartsWthAnimalOrigin,
      mara.fsh_sealv                                                       as ProductSeasonUsageCategory,

      // moved to _ProductRetail

      //      maw1.servv                                         as ServiceAgreement,

      //      maw1.wmaab                                         as ConsumptionValueCategory, // ref. handling for MARC

      //      maw1.wausm                                         as GoodsIssueUnit, // ref. handling for MARC

      //      maw1.wherl                                         as CountryOfOrigin, // ref. handling for MARC

      //      maw1.wherr                                         as RegionOfOrigin, // ref. handling for MARC

      //      maw1.sstuf                                         as AssortmentGrade,

      //      maw1.lstfl                                         as StoreListingProcedure,

      //      maw1.lstvz                                         as DistrCntrListingProcedure,

      //      maw1.ldvfl                                         as StoreListingStartDate,

      //      maw1.ldbfl                                         as StoreListingEndDate,

      //      maw1.ldvzl                                         as DistrCntrListingStartDate,

      //      maw1.ldbzl                                         as DistrCntrListingEndDate,

      //      maw1.vdvfl                                         as StoreSaleStartDate,

      //      maw1.vdbfl                                         as StoreSaleEndDate,

      //      maw1.vdvzl                                         as DistrCntrSaleStartDate,

      //      maw1.vdbzl                                         as DistrCntrSaleEndDate,

      //      maw1.wbkla                                         as ValuationClass, // ref. handling for MBEW

      //      maw1.wstaw                                         as CommodityCode,

      //      maw1.wbwsp                                         as ValuationMargin, // ref. handling for MBEW

      //      maw1.wexpm                                         as CommoditiyCodeNumberUnit,


      //

      @ObjectModel.text.association: '_IndustrySectorText'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_Industrysectorvh', element : 'IndustrySector'} , useAsTemplate: true }]
      mara.mbrsh                                                           as IndustrySector, //added for external VH request'

      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ChangeMasterStdVH', element : 'ChangeNumber'} , useAsTemplate: true }]
      cast('' as changenumber )                                            as ChangeNumber,
      //      @ObjectModel.foreignKey.association: '_MaterialRevisionLevel'

      cast('' as productrevisionlevel)                                     as MaterialRevisionLevel,
      cast( 'X' as sdraft_is_active preserving type )                      as IsActiveEntity,

      @Semantics.systemDateTime.lastChangedAt: true
      case when mara.aenam <> ''
        then cast(dats_tims_to_tstmp(mara.laeda, mara.last_changed_time, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL') as changedatetime )
        else cast(dats_tims_to_tstmp(mara.ersda, mara.last_changed_time, abap_system_timezone( $session.client,'NULL' ), $session.client, 'NULL') as changedatetime )
      end                                                                  as LastChangeDateTime,


      //new fields

      @Semantics.systemTime.lastChangedAt: true
      mara.last_changed_time                                               as LastChangeTime,
      mara.profl                                                           as DangerousGoodsIndProfile,
      mara.scm_matid_guid16                                                as ProductUUID,
      mara.scm_matid_guid22                                                as ProdSupChnMgmtUUID22,
      //new fields- Unified API

      mara.aeszn                                                           as ProductDocumentChangeNumber,
      mara.blanz                                                           as ProductDocumentPageCount,
      mara.blatt                                                           as ProductDocumentPageNumber,
      @ObjectModel.text.association: '_OwnInvtryMngdProdDescription'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
      mara.bmatn                                                           as OwnInventoryManagedProduct,
      mara.cadkz                                                           as DocumentIsCreatedByCAD,
      mara.ferth                                                           as ProductionOrInspectionMemoTxt,
      mara.formt                                                           as ProductionMemoPageFormat,
      mara.gtin_variant                                                    as GlobalTradeItemNumberVariant,
      mara.ihivi                                                           as ProductIsHighlyViscous,
      mara.iloos                                                           as TransportIsInBulk,
      mara.kosch                                                           as ProdAllocDetnProcedure,
      mara.kzeff                                                           as ProdEffctyParamValsAreAssigned,
      mara.kzumw                                                           as ProdIsEnvironmentallyRelevant,
      mara.labor                                                           as LaboratoryOrDesignOffice,
      mara.magrv                                                           as PackagingMaterialGroup,
      cast( mara.matfi as productislocked preserving type )                as ProductIsLocked,
      mara.nrfhg                                                           as DiscountInKindEligibility,
      mara.ps_smartform                                                    as SmartFormName,
      @ObjectModel.text.association: '_PackgRefProductDescription'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
      mara.rmatp                                                           as PackingReferenceProduct,
      @ObjectModel.foreignKey.association: '_BasicMaterial'
      mara.wrkst                                                           as BasicMaterial,
      mara.zeinr                                                           as ProductDocumentNumber,
      mara.zeivr                                                           as ProductDocumentVersion,
      mara.zeiar                                                           as ProductDocumentType,
      mara.zeifo                                                           as ProductDocumentPageFormat,
      mara.cuobf                                                           as ProductConfiguration,
      mara.sgt_covsa                                                       as SegmentationStrategy,
      mara.sgt_rel                                                         as SegmentationIsRelevant,
      mara.przus                                                           as ProductCompositionIsRelevant,
      @ObjectModel.foreignKey.association: '_ChemicalComplianceRelevant'
      @ObjectModel.text.association: '_ChemicalComplianceRlvtText'
      cast( mara.chml_cmplnc_rlvnce_ind as chml_cmplnc_rlvnce_ind_pm )     as IsChemicalComplianceRelevant,
      @ObjectModel.text.association: '_MfrBookPartNumberDescription'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
      mara.msbookpartno                                                    as ManufacturerBookPartNumber,
      //      The below fields are requested by Retail Colleagues.

      mara.logistical_mat_category                                         as LogisticalProductCategory,
      @ObjectModel.text.association: '_SalesProductDescription'
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_ProductStdVH', element : 'Product'} , useAsTemplate: true }]
      mara.sales_material                                                  as SalesProduct,

      //      The below fields are requested by Retail Fashion Colleagues.

      mara.color_atinn                                                     as ProdCharc1InternalNumber,
      mara.size1_atinn                                                     as ProdCharc2InternalNumber,
      mara.size2_atinn                                                     as ProdCharc3InternalNumber,
      mara.color                                                           as ProductCharacteristic1,
      mara.size1                                                           as ProductCharacteristic2,
      mara.size2                                                           as ProductCharacteristic3,
      mara.pstat                                                           as MaintenanceStatus,
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_FashionProdInfoField1', element : 'FashionProdInformationField1'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_FashionProdInfoFld1Text'
      mara.fsh_mg_at1                                                      as FashionProdInformationField1,
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_FashionProdInfoField2', element : 'FashionProdInformationField2'},useAsTemplate: true }]
      @ObjectModel.text.association: '_FashionProdInfoFld2Text'
      mara.fsh_mg_at2                                                      as FashionProdInformationField2,
      @Consumption.valueHelpDefinition:[{ entity : { name: 'I_FashionProdInfoField3', element : 'FashionProdInformationField3'}, useAsTemplate: true }]
      @ObjectModel.text.association: '_FashionProdInfoFld3Text'
      mara.fsh_mg_at3                                                      as FashionProdInformationField3,
      @VDM.lifecycle: {
        status: #DEPRECATED,
        successor: '_ProductTypeName_2'
      }
      _ProductTypeName,
      _ProductRetail,
      _ProductProcurement,
      _ProductSales,
      _MDProductHierarchyNode,
      _ChemicalComplianceRlvtText,
      _ChemicalComplianceRelevant,
      _ItemCategoryGroupText,
      _ItemCategoryGroup,
      _BrandText,
      _ProdUnivHierarchyNode,
      _BasicMaterial,
      //Start of ESH related associations---------------------------

      _ESHProductSalesDelivery,
      _ESHSourceOfSupply,
      _ESHSupplier,
      _ESHTextObjectPlainLongText,
      _ESHDocInfoRecordObjectLink,
      _ESHPurOrderQuantityUnitText,
      _ESHProductPlant,
      _ESHCharValueAssignment,
      _ESHClassAssignment,
      //End of ESH related associations------------------------------

      _MaterialRevisionLevel,
      _AssortmentListType,
      _AssortmentListTypeText,
      _BR_ANPCode,
      _BR_ANPCodeText,
      _HandlingIndicator,
      _HandlingIndicatorText,
      _WarehouseProductGroup,
      _WarehouseProductGroupText,
      _WarehouseStorageCondition,
      _WarehouseStorageConditionText,
      _StandardHandlingUnitType,
      _StandardHandlingUnitTypeText,
      _SerialNumberProfile,
      _SerialNumberProfileText,
      @VDM.lifecycle: {
        status: #DEPRECATED,
        successor: '_AdjustmentProfile_2'
      }
      _AdjustmentProfile,
      @VDM.lifecycle: {
        status: #DEPRECATED,
        successor: '_AdjustmentProfileText_2'
      }
      _AdjustmentProfileText,
      _AdjustmentProfile_2,
      _AdjustmentProfileText_2,
      _QualityInspectionGroup,
      _QualityInspectionGroupText,
      _HandlingUnitType,
      _HandlingUnitTypeText,
      _ProductESPP,
      _ProductSCM,
      _ProductType_2,
      _ProductTypeName_2,
      _ProductDescription_2,
      _RetProdCharc1,
      _RetProdCharc1Text,
      _RetProdCharc2,
      _RetProdCharc2Text,
      _RetProdCharc3,
      _RetProdCharc3Text,
      _FashionProdInfoFld1,
      _FashionProdInfoFld1Text,
      _FashionProdInfoFld2,
      _FashionProdInfoFld2Text,
      _FashionProdInfoFld3,
      _FashionProdInfoFld3Text,
      //      _VarblPurOrdUnitActvStatus,

      _VarblPurOrdUnitActvStatusTxt,
      //      _SerialNoExplicitnessLevel,

      _SerialNoExplicitnessLevelTxt,
      //      _TransportationGroup,

      _TransportationGroupText,
      _ArticleCategoryText,
      _IndustrySectorText,
      _IndustrySector,
      _CountryOfOriginText,
      _PreferredUnitOfMeasureText,
      _SalesProductDescription,
      _GenericProductDescription,
      _PackgRefProductDescription,
      _OwnInvtryMngdProdDescription,
      _MfrBookPartNumberDescription
      
      
}