C_ProductObjPg

DDL: C_PRODUCTOBJPG SQL: CPRODUCTOBJPG Type: view CONSUMPTION

Product Object Page

C_ProductObjPg is a Consumption CDS View that provides data about "Product Object Page" in SAP S/4HANA. It reads from 1 data source (I_Product) and exposes 66 fields with key field Product. It has 14 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_Product I_Product from

Associations (14)

CardinalityTargetAliasCondition
[0..*] C_ProductObjPgSupplierContact _ProductObjPgSupplierContact $projection.Product = _ProductObjPgSupplierContact.Product
[0..*] C_ProductObjPgPurgInfoRecd _ProductObjPgPurgInfoRecd $projection.Product = _ProductObjPgPurgInfoRecd.Product
[0..*] C_ProductObjPgSite _ProductObjPgSite $projection.Product = _ProductObjPgSite.Product
[0..*] C_ProductObjPgPlant _ProductObjPgPlant $projection.Product = _ProductObjPgPlant.Product
[0..*] C_ProductObjPgPurchaseOrder _ProductObjPgPurchaseOrder $projection.Product = _ProductObjPgPurchaseOrder.Product
[0..*] C_ProductObjPgDistrChain _ProductObjPgDistrChain $projection.Product = _ProductObjPgDistrChain.Product
[0..*] C_ProductObjPgSalesOrder _ProductObjPgSalesOrder $projection.Product = _ProductObjPgSalesOrder.Product
[0..*] C_ProductObjPgAllocationTable _ProductObjPgAllocationTable $projection.Product = _ProductObjPgAllocationTable.Product
[0..*] C_ProductObjPgRetailPromotion _ProductObjPgRetailPromotion $projection.Product = _ProductObjPgRetailPromotion.Product
[0..*] C_ProductObjPgSeason _ProductObjPgSeason $projection.Product = _ProductObjPgSeason.Product
[1..1] I_ProductSeasonType _ProductSeasonType1 _ProductSeasonType1.ProductSeasonType = 'ST1'
[1..1] I_ProductSeasonType _ProductSeasonType2 _ProductSeasonType2.ProductSeasonType = 'ST2'
[1..1] I_ProductSeasonType _ProductSeasonType3 _ProductSeasonType3.ProductSeasonType = 'ST3'
[0..*] I_RegionText _RegionText $projection.regionoforigin = _RegionText.Region and $projection.countryoforigin = _RegionText.Country

Annotations (20)

NameValueLevelField
AbapCatalog.sqlViewName CPRODUCTOBJPG view
EndUserText.label Product Object Page view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
ObjectModel.compositionRoot true view
ObjectModel.representativeKey Product view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.text.control #ASSOCIATED_TEXT_UI_HIDDEN view
Search.searchable true view
Consumption.semanticObject Material view
UI.headerInfo.typeName Product view
UI.headerInfo.typeNamePlural Products view
UI.headerInfo.imageUrl ProductImageURL view
UI.headerInfo.title.value ProductName view
UI.headerInfo.description.value Product view

Fields (66)

KeyFieldSource TableSource FieldDescription
KEY Product Product
ProductName
ProductType ProductType
ProductGroup ProductGroup
ProductCategory ProductCategory
CrossPlantConfigurableProduct CrossPlantConfigurableProduct
CrsPlntConfigurableProductName Configurable Product Description
BaseUnit BaseUnit
ProductStandardID ProductStandardID
InternationalArticleNumberCat InternationalArticleNumberCat
Brand Brand
CountryOfOrigin _ProductRetail CountryOfOrigin
RegionOfOrigin _ProductRetail RegionOfOrigin
ProductManufacturerNumber ProductManufacturerNumber Manufacturer Part Number
GrossWeight GrossWeight
WeightUnit WeightUnit
ProductMeasurement
BaseUnitSpecificProductLength BaseUnitSpecificProductLength
BaseUnitSpecificProductWidth BaseUnitSpecificProductWidth
BaseUnitSpecificProductHeight BaseUnitSpecificProductHeight
ProductMeasurementUnit ProductMeasurementUnit
MaterialVolume MaterialVolume
VolumeUnit VolumeUnit
CreatedByUser CreatedByUser
CreationDateTime CreationDateTime
LastChangedByUser LastChangedByUser
LastChangeDateTime LastChangeDateTime
ProductImageURL
ProductSeasonType1Name
ProductSeasonType2Name
ProductSeasonType3Name
ProductIsConfigurable ProductIsConfigurable
AuthorizationGroup AuthorizationGroup
ItemCategoryGroup ItemCategoryGroup
_Text _Text
_ProductType _ProductType
_ProductTypeName _ProductTypeName
_ProductCategory _ProductCategory
_ProductCategoryText _ProductCategoryText
_ProductGroup_2 _ProductGroup_2
_ProductGroupText_2 _ProductGroupText_2
_CrossPlantConfigurableProduct _CrossPlantConfigurableProduct
_BaseUnitOfMeasure _BaseUnitOfMeasure
_BaseUnitOfMeasureText _BaseUnitOfMeasureText
_InternationalArticleNumberCat _InternationalArticleNumberCat
_IntArticleNumberText _IntArticleNumberText
_Brand _Brand
_BrandText _BrandText
_CountryOfOrigin _ProductRetail _CountryOfOrigin
_CountryText _ProductRetail _CountryText
_RegionOfOrigin _ProductRetail _RegionOfOrigin
_RegionText _RegionText
_ProductObjPgSupplierContact _ProductObjPgSupplierContact
_ProductObjPgPurgInfoRecd _ProductObjPgPurgInfoRecd
_ProductObjPgSite _ProductObjPgSite
_ProductObjPgPlant _ProductObjPgPlant
_ProductObjPgPurchaseOrder _ProductObjPgPurchaseOrder
_ProductObjPgDistrChain _ProductObjPgDistrChain
_ProductObjPgSalesOrder _ProductObjPgSalesOrder
_ProductObjPgAllocationTable _ProductObjPgAllocationTable
_ProductObjPgRetailPromotion _ProductObjPgRetailPromotion
_ProductObjPgSeason _ProductObjPgSeason
_CreatedByUserContactCard _CreatedByUserContactCard
_LastChangedByUserContactCard _LastChangedByUserContactCard
_ItemCategoryGroup _ItemCategoryGroup
_ItemCategoryGroupText _ItemCategoryGroupText
@AbapCatalog.sqlViewName: 'CPRODUCTOBJPG'
@EndUserText.label: 'Product Object Page'

@AbapCatalog.compiler.compareFilter: true
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #NOT_REQUIRED,
  privilegedAssociations: ['_CreatedByUserContactCard', '_LastChangedByUserContactCard']
}
@ClientHandling.algorithm: #SESSION_VARIABLE

@VDM.viewType: #CONSUMPTION
@ObjectModel: {
    compositionRoot: true,
    semanticKey: ['Product'],
    representativeKey: 'Product',
    usageType: {
        serviceQuality: #C,
        sizeCategory : #L,
        dataClass: #MIXED
   },
   text.control: #ASSOCIATED_TEXT_UI_HIDDEN
}

@Search.searchable: true
@Consumption.semanticObject: 'Material'

@UI.headerInfo: {
    typeName: 'Product',
    typeNamePlural: 'Products',
    imageUrl: 'ProductImageURL',
    title: {
        value: 'ProductName'
    },
    description: {
        value: 'Product'
    }
}

define view C_ProductObjPg
  as select from I_Product
  association [0..*] to C_ProductObjPgSupplierContact as _ProductObjPgSupplierContact on  $projection.Product = _ProductObjPgSupplierContact.Product
  association [0..*] to C_ProductObjPgPurgInfoRecd    as _ProductObjPgPurgInfoRecd    on  $projection.Product = _ProductObjPgPurgInfoRecd.Product
  association [0..*] to C_ProductObjPgSite            as _ProductObjPgSite            on  $projection.Product = _ProductObjPgSite.Product
  association [0..*] to C_ProductObjPgPlant           as _ProductObjPgPlant           on  $projection.Product = _ProductObjPgPlant.Product
  association [0..*] to C_ProductObjPgPurchaseOrder   as _ProductObjPgPurchaseOrder   on  $projection.Product = _ProductObjPgPurchaseOrder.Product
  association [0..*] to C_ProductObjPgDistrChain      as _ProductObjPgDistrChain      on  $projection.Product = _ProductObjPgDistrChain.Product
  association [0..*] to C_ProductObjPgSalesOrder      as _ProductObjPgSalesOrder      on  $projection.Product = _ProductObjPgSalesOrder.Product
  association [0..*] to C_ProductObjPgAllocationTable as _ProductObjPgAllocationTable on  $projection.Product = _ProductObjPgAllocationTable.Product
  association [0..*] to C_ProductObjPgRetailPromotion as _ProductObjPgRetailPromotion on  $projection.Product = _ProductObjPgRetailPromotion.Product
  //  association [0..*] to C_ProductObjPgVariant         as _ProductObjPgVariant         on $projection.Product = _ProductObjPgVariant.CrossPlantConfigurableProduct

  association [0..*] to C_ProductObjPgSeason          as _ProductObjPgSeason          on  $projection.Product = _ProductObjPgSeason.Product
  association [1..1] to I_ProductSeasonType           as _ProductSeasonType1          on  _ProductSeasonType1.ProductSeasonType = 'ST1'
  association [1..1] to I_ProductSeasonType           as _ProductSeasonType2          on  _ProductSeasonType2.ProductSeasonType = 'ST2'
  association [1..1] to I_ProductSeasonType           as _ProductSeasonType3          on  _ProductSeasonType3.ProductSeasonType = 'ST3'

  association [0..*] to I_RegionText                  as _RegionText                  on  $projection.regionoforigin  = _RegionText.Region
                                                                                      and $projection.countryoforigin = _RegionText.Country
{
      @EndUserText.quickInfo: 'Product'
      @UI.selectionField: [{position: 10}]
      @UI.lineItem: [{position: 10, importance: #HIGH}]
      @Consumption: { valueHelpDefinition: [{ entity: { name: 'I_ProductVH', element: 'Product'} }] }
      @ObjectModel.text: {
        element: ['ProductName'],
        control: #NONE
       }
      @Search.fuzzinessThreshold: 0.9
  key Product,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #MEDIUM
      @UI.selectionField: [{position: 20}]
      _Text[1: Language=$session.system_language].ProductName,

      @UI.fieldGroup: [{qualifier: 'header_1', position: 10, importance: #HIGH, groupLabel: 'Product Data 1'}]
      ProductType,
      @UI.fieldGroup: [{qualifier: 'header_1', position: 20, importance: #HIGH}]
      @UI.selectionField: [{position: 40}]
      ProductGroup,
      @UI.fieldGroup: [{qualifier: 'header_1', position: 30, importance: #HIGH}]
      @UI.selectionField: [{position: 50}]
      ProductCategory,
      @Consumption.semanticObject: 'Material'
      @ObjectModel.text: {
        element: 'CrsPlntConfigurableProductName',
        control: #NONE
      }
      @EndUserText: {
          label: 'Configurable Product',
          quickInfo: 'Configurable Product'
      }
      @UI.fieldGroup: [{qualifier: 'header_1', position: 40, importance: #HIGH}]
      @Search.defaultSearchElement: false
      @Consumption: { valueHelpDefinition: [{ entity: { name: 'I_ProductVH', element: 'Product'} }] }
      CrossPlantConfigurableProduct,
      @Consumption.filter.hidden: true
      @Search.defaultSearchElement: false
      @EndUserText.label: 'Configurable Product Description'
      _CrossPlantConfigurableProduct._Text [1: Language=$session.system_language].ProductName as CrsPlntConfigurableProductName,

      @UI.fieldGroup: [{qualifier: 'header_2', position: 10, importance: #HIGH, groupLabel: 'Product Data 2'}]
      @Consumption.filter.hidden: true
      BaseUnit,
      @EndUserText.quickInfo: 'Global Trade Item Number'
      @UI.fieldGroup: [{qualifier: 'header_2', position: 20, importance: #HIGH}]
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.95
      @Search.ranking: #HIGH
      @UI.selectionField: [{position: 30}]
      ProductStandardID,
      @EndUserText: {
          label: 'GTIN Category',
          quickInfo: 'Global Trade Item Number Category'
      }
      @UI.fieldGroup: [{qualifier: 'header_2', position: 30, importance: #HIGH}]
      @Consumption.filter.hidden: true
      InternationalArticleNumberCat,

      @UI.fieldGroup: [{qualifier: 'origin', position: 10, importance: #HIGH, groupLabel: 'Origin'}]
      Brand,
      @EndUserText: {
          label: 'Country/Region of Origin',
          quickInfo: 'Country/Region of Origin'
      }
      @UI.fieldGroup: [{qualifier: 'origin', position: 20, importance: #HIGH}]
            @Consumption.valueHelpDefinition: [{ entity: { name: 'I_CountryVH', element: 'Country'} }]
      _ProductRetail.CountryOfOrigin,
      @EndUserText: {
          label: 'Region of Origin',
          quickInfo: 'Region of Origin'
      }
      @UI.fieldGroup: [{qualifier: 'origin', position: 30, importance: #HIGH}]
      @ObjectModel.text.association: '_RegionText'
      _ProductRetail.RegionOfOrigin,
      @EndUserText.label: 'Manufacturer Part Number'
      @UI.fieldGroup: [{qualifier: 'origin', position: 40, importance: #HIGH}]
      ProductManufacturerNumber,

      @UI.fieldGroup: [{qualifier: 'measurements', position: 10, importance: #HIGH, groupLabel: 'Measurements'}]
      @Consumption.filter.hidden: true
      GrossWeight,
      @Consumption.filter.hidden: true
      WeightUnit,
      @EndUserText: {
          label: 'Dimension (LxWxH)',
          quickInfo: 'Dimension (LxWxH)'
      }
      @UI.fieldGroup: [{qualifier: 'measurements', position: 20, importance: #HIGH}]
      @Consumption.filter.hidden: true
      cast(rpad('', 80, ' ') as char80 preserving type)                                       as ProductMeasurement,
      @Consumption.filter.hidden: true
      BaseUnitSpecificProductLength,
      @Consumption.filter.hidden: true
      BaseUnitSpecificProductWidth,
      @Consumption.filter.hidden: true
      BaseUnitSpecificProductHeight,
      @Consumption.filter.hidden: true
      ProductMeasurementUnit,
      @UI.fieldGroup: [{qualifier: 'measurements', position: 30, importance: #HIGH}]
      @Consumption.filter.hidden: true
      MaterialVolume,
      @Consumption.filter.hidden: true
      VolumeUnit,

      @EndUserText: {
          label: 'Created By',
          quickInfo: 'Created By'
      }
      @UI.fieldGroup: [{qualifier: 'administration', position: 10, importance: #HIGH, label: 'Created By', groupLabel: 'Administration', type:#AS_CONTACT, value:'_CreatedByUserContactCard'}]
      CreatedByUser,
      @EndUserText: {
          label: 'Created On',
          quickInfo: 'Created On'
      }
      @UI.fieldGroup: [{qualifier: 'administration', position: 20, importance: #HIGH}]
      CreationDateTime,
      @EndUserText: {
          label: 'Last Changed By',
          quickInfo: 'Last Changed By'
      }
      @UI.fieldGroup: [{qualifier: 'administration', position: 30, importance: #HIGH, label: 'Last Changed By', type:#AS_CONTACT, value: '_LastChangedByUserContactCard'}]
      LastChangedByUser,
      @EndUserText: {
          label: 'Last Changed On',
          quickInfo: 'Last Changed On'
      }
      @UI.fieldGroup: [{qualifier: 'administration', position: 40, importance: #HIGH}]
      LastChangeDateTime,

      @Semantics.imageUrl: true
      @Consumption.filter.hidden: true
      cast('' as productimageurl)                                                             as ProductImageURL,

      @UI.hidden: true
      _ProductSeasonType1._Text[1: Language=$session.system_language].ProductSeasonTypeName   as ProductSeasonType1Name,
      @UI.hidden: true
      _ProductSeasonType2._Text[1: Language=$session.system_language].ProductSeasonTypeName   as ProductSeasonType2Name,
      @UI.hidden: true
      _ProductSeasonType3._Text[1: Language=$session.system_language].ProductSeasonTypeName   as ProductSeasonType3Name,

      @UI.hidden: true
      ProductIsConfigurable,

      @Consumption.hidden: true
      AuthorizationGroup,

      @Consumption.valueHelpDefinition: [{ entity: { name: 'I_ItemCategoryGroup', element: 'ItemCategoryGroup'} }]
      @UI.fieldGroup: [{qualifier: 'generalData', position: 10, importance: #HIGH, groupLabel: 'General Data', label: 'General Item Category Group'}]
      ItemCategoryGroup,

      @Consumption.filter.hidden: true
      _Text,
      @Consumption.filter.hidden: true
      _ProductType,
      @Consumption.filter.hidden: true
      _ProductTypeName,
      @Consumption.filter.hidden: true
      _ProductCategory,
      @Consumption.filter.hidden: true
      _ProductCategoryText,
      @Consumption.filter.hidden: true
      _ProductGroup_2,
      @Consumption.filter.hidden: true
      _ProductGroupText_2,
      @Consumption.filter.hidden: true
      _CrossPlantConfigurableProduct,
      @Consumption.filter.hidden: true
      _BaseUnitOfMeasure,
      @Consumption.filter.hidden: true
      _BaseUnitOfMeasureText,
      @Consumption.filter.hidden: true
      _InternationalArticleNumberCat,
      @Consumption.filter.hidden: true
      _IntArticleNumberText,
      @Consumption.filter.hidden: true
      _Brand,
      @Consumption.filter.hidden: true
      _BrandText,
      @Consumption.filter.hidden: true
      _ProductRetail._CountryOfOrigin,
      @Consumption.filter.hidden: true
      _ProductRetail._CountryText,
      @Consumption.filter.hidden: true
      _ProductRetail._RegionOfOrigin,
      @Consumption.filter.hidden: true
      _RegionText,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgSupplierContact,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgPurgInfoRecd,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgSite,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgPlant,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgPurchaseOrder,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgDistrChain,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgSalesOrder,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgAllocationTable,
      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgRetailPromotion,
      //      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]

      //      _ProductObjPgVariant,

      @ObjectModel.association.type: [#TO_COMPOSITION_CHILD]
      _ProductObjPgSeason,
      @Consumption.filter.hidden: true
      _CreatedByUserContactCard,
      @Consumption.filter.hidden: true
      _LastChangedByUserContactCard,
      @Consumption.filter.hidden: true
      _ItemCategoryGroup,
      @Consumption.filter.hidden: true
      _ItemCategoryGroupText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PRODUCT",
"I_PRODUCTRETAIL",
"I_PRODUCTSEASONTYPE",
"I_PRODUCTSEASONTYPET",
"I_PRODUCTTEXT"
],
"ASSOCIATED":
[
"C_PRODUCTOBJPGALLOCATIONTABLE",
"C_PRODUCTOBJPGDISTRCHAIN",
"C_PRODUCTOBJPGPLANT",
"C_PRODUCTOBJPGPURCHASEORDER",
"C_PRODUCTOBJPGPURGINFORECD",
"C_PRODUCTOBJPGRETAILPROMOTION",
"C_PRODUCTOBJPGSALESORDER",
"C_PRODUCTOBJPGSEASON",
"C_PRODUCTOBJPGSITE",
"C_PRODUCTOBJPGSUPPLIERCONTACT",
"I_BRAND",
"I_BRANDTEXT",
"I_COUNTRY",
"I_COUNTRYTEXT",
"I_INTNTNLARTNMBCAT",
"I_INTNTNLARTNMBCATTEXT",
"I_ITEMCATEGORYGROUP",
"I_ITEMCATEGORYGROUPTEXT",
"I_PRODUCT",
"I_PRODUCTCATEGORY",
"I_PRODUCTCATEGORYTEXT",
"I_PRODUCTGROUPTEXT_2",
"I_PRODUCTGROUP_2",
"I_PRODUCTSEASONTYPE",
"I_PRODUCTTEXT",
"I_PRODUCTTYPE",
"I_PRODUCTTYPETEXT",
"I_REGION",
"I_REGIONTEXT",
"I_UNITOFMEASURE",
"I_UNITOFMEASURETEXT",
"I_USERCONTACTCARD"
],
"BASE":
[
"I_PRODUCT",
"I_PRODUCTRETAIL"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/