@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
}