C_ProdAssgblToStoreVH

DDL: C_PRODASSGBLTOSTOREVH Type: view_entity CONSUMPTION Package: RFM_ASSORTMENT_MDL_APPS_COMMON

Product Assignable to Store

C_ProdAssgblToStoreVH is a Consumption CDS View that provides data about "Product Assignable to Store" in SAP S/4HANA. It reads from 2 data sources (I_ProductRetail, I_Product) and exposes 34 fields with key field Product. It has 12 associations to related views. It is exposed through 2 OData services (UI_RFM_MNG_ASSTMT_MODULES, UI_RFM_PROD_ASSIGN_EXPL_ASM). It is used in 1 Fiori application: Manage Assortment Modules. Part of development package RFM_ASSORTMENT_MDL_APPS_COMMON.

Data Sources (2)

SourceAliasJoin Type
I_ProductRetail I_ProductRetail inner
I_Product Product from

Associations (12)

CardinalityTargetAliasCondition
[0..1] I_RetailCharacteristic _Characteristic1 _Characteristic1.CharcInternalID = Product.ProdCharc1InternalNumber
[0..1] I_RetailCharacteristic _Characteristic2 _Characteristic2.CharcInternalID = Product.ProdCharc2InternalNumber
[0..1] I_RetailCharacteristic _Characteristic3 _Characteristic3.CharcInternalID = Product.ProdCharc3InternalNumber
[0..1] I_RetailCharacteristicValueT _RetProdCharc1Text_2 _RetProdCharc1Text_2.CharacteristicInternalID = Product.ProdCharc1InternalNumber and _RetProdCharc1Text_2.RetailCharacteristicValue = Product.ProductCharacteristic1 and _RetProdCharc1Text_2.Language = $session.system_language
[0..1] I_RetailCharacteristicValueT _RetProdCharc2Text_2 _RetProdCharc2Text_2.CharacteristicInternalID = Product.ProdCharc2InternalNumber and _RetProdCharc2Text_2.RetailCharacteristicValue = Product.ProductCharacteristic2 and _RetProdCharc2Text_2.Language = $session.system_language
[0..1] I_RetailCharacteristicValueT _RetProdCharc3Text_2 _RetProdCharc3Text_2.CharacteristicInternalID = Product.ProdCharc3InternalNumber and _RetProdCharc3Text_2.RetailCharacteristicValue = Product.ProductCharacteristic3 and _RetProdCharc3Text_2.Language = $session.system_language
[0..1] I_UnitOfMeasure _BaseUnit $projection.BaseUnit = _BaseUnit.UnitOfMeasure
[0..1] I_UnitOfMeasure _WeightUnit $projection.WeightUnit = _WeightUnit.UnitOfMeasure
[0..1] I_ProductCategoryText _ProductCategoryText _ProductCategoryText.ProductCategory = $projection.ArticleCategory and _ProductCategoryText.Language = $session.system_language
[0..1] I_ProductGroupText_2 _ProductGroupText _ProductGroupText.ProductGroup = $projection.MerchandiseCategory and _ProductGroupText.Language = $session.system_language
[0..1] I_ProductText _ProductText _ProductText.Product = $projection.Product and _ProductText.Language = $session.system_language
[0..1] I_ProductDescription _MaterialText $projection.CrossPlantConfigurableProduct = _MaterialText.Product and _MaterialText.Language = $session.system_language

Annotations (13)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Consumption.ranked true view
EndUserText.label Product Assignable to Store view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.dataCategory #VALUE_HELP view
ObjectModel.representativeKey Product view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.dataClass #MASTER view
Search.searchable true view
VDM.viewType #CONSUMPTION view

OData Services (2)

ServiceBindingVersionContractRelease
UI_RFM_MNG_ASSTMT_MODULES UI_RFM_MNG_ASSTMT_MODULES V2 C1 NOT_RELEASED
UI_RFM_PROD_ASSIGN_EXPL_ASM UI_RFM_PROD_ASSGN_EXPL_ASM V2 C1 NOT_RELEASED

Fiori Apps (1)

App IDApp NameTypeDescription
F4892 Manage Assortment Modules Transactional An application to manage assortment modules.

Manage Assortment Modules

Business Role: Assortment Specialist - Retail

With this feature, you can select up to 1,000 products at a time to assign them to an assortment module version, including its follow-on versions.

Fields (34)

KeyFieldSource TableSource FieldDescription
KEY Product I_Product Product
ProductName _ProductText ProductName
ProductStandardID I_Product ProductStandardID
MerchandiseCategory
CrossPlantConfigurableProduct
CrsPlntConfigurableProductName
LongProductCharacteristic1
LongProductCharacteristic2
LongProductCharacteristic3
ArticleCategory I_Product ArticleCategory
CreationDate I_Product CreationDate
RetailCharc1WithValueName
RetailCharc2WithValueName
RetailCharc3WithValueName
ProductCharacteristic1Desc
ProductCharacteristic2Desc
ProductCharacteristic3Desc
ProductExternalID I_Product ProductExternalID
IndustrySector I_Product IndustrySector
ProductType I_Product ProductType
_ProductType I_Product _ProductType_2
MerchandiseCategoryName
BaseUnit I_Product BaseUnit
GrossWeight I_Product GrossWeight
NetWeight I_Product NetWeight
WeightUnit I_Product WeightUnit
ManufacturerNumber I_Product ManufacturerNumber
AuthorizationGroup I_Product AuthorizationGroup
IsBatchManagementRequired I_Product IsBatchManagementRequired
ProductManufacturerNumber I_Product ProductManufacturerNumber
ProductCategoryName
_ProductGroup I_Product _ProductGroup_2
_BaseUnit _BaseUnit
_WeightUnit _WeightUnit
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED

@Consumption.ranked: true

@EndUserText.label: 'Product Assignable to Store'

@Metadata.allowExtensions: true
@Metadata.ignorePropagatedAnnotations: true

@ObjectModel.dataCategory: #VALUE_HELP
@ObjectModel.representativeKey: 'Product'
@ObjectModel.usageType: { serviceQuality: #C, sizeCategory: #XXL, dataClass: #MASTER }

@Search.searchable: true

@VDM.viewType: #CONSUMPTION

define view entity C_ProdAssgblToStoreVH
  as select from I_Product       as Product

    inner join   I_ProductRetail            on Product.Product = I_ProductRetail.Product

  association [0..1] to I_RetailCharacteristic       as _Characteristic1
    on _Characteristic1.CharcInternalID = Product.ProdCharc1InternalNumber

  association [0..1] to I_RetailCharacteristic       as _Characteristic2
    on _Characteristic2.CharcInternalID = Product.ProdCharc2InternalNumber

  association [0..1] to I_RetailCharacteristic       as _Characteristic3
    on _Characteristic3.CharcInternalID = Product.ProdCharc3InternalNumber

  association [0..1] to I_RetailCharacteristicValueT as _RetProdCharc1Text_2
    on  _RetProdCharc1Text_2.CharacteristicInternalID  = Product.ProdCharc1InternalNumber
    and _RetProdCharc1Text_2.RetailCharacteristicValue = Product.ProductCharacteristic1
    and _RetProdCharc1Text_2.Language                  = $session.system_language

  association [0..1] to I_RetailCharacteristicValueT as _RetProdCharc2Text_2
    on  _RetProdCharc2Text_2.CharacteristicInternalID  = Product.ProdCharc2InternalNumber
    and _RetProdCharc2Text_2.RetailCharacteristicValue = Product.ProductCharacteristic2
    and _RetProdCharc2Text_2.Language                  = $session.system_language

  association [0..1] to I_RetailCharacteristicValueT as _RetProdCharc3Text_2
    on  _RetProdCharc3Text_2.CharacteristicInternalID  = Product.ProdCharc3InternalNumber
    and _RetProdCharc3Text_2.RetailCharacteristicValue = Product.ProductCharacteristic3
    and _RetProdCharc3Text_2.Language                  = $session.system_language

  association [0..1] to I_UnitOfMeasure              as _BaseUnit
    on $projection.BaseUnit = _BaseUnit.UnitOfMeasure

  association [0..1] to I_UnitOfMeasure              as _WeightUnit
    on $projection.WeightUnit = _WeightUnit.UnitOfMeasure

  association [0..1] to I_ProductCategoryText        as _ProductCategoryText
    on  _ProductCategoryText.ProductCategory = $projection.ArticleCategory
    and _ProductCategoryText.Language        = $session.system_language

  association [0..1] to I_ProductGroupText_2         as _ProductGroupText
    on  _ProductGroupText.ProductGroup = $projection.MerchandiseCategory
    and _ProductGroupText.Language     = $session.system_language

  association [0..1] to I_ProductText                as _ProductText
    on  _ProductText.Product  = $projection.Product
    and _ProductText.Language = $session.system_language

  association [0..1] to I_ProductDescription         as _MaterialText
    on  $projection.CrossPlantConfigurableProduct = _MaterialText.Product
    and _MaterialText.Language                    = $session.system_language

{
      @ObjectModel.text.element: [ 'ProductName' ]
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #HIGH
  key Product.Product,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #MEDIUM
      @Semantics.text: true
      _ProductText.ProductName                                                                                          as ProductName,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_RFM_ASM_PROD_GTIN_FILTER'
      Product.ProductStandardID, // this is the GTIN


      @ObjectModel.text.element: [ 'MerchandiseCategoryName' ]
      @Search.ranking: #LOW
      cast(Product.ProductGroup as  rfm_mrchdscategory preserving type)                                                 as MerchandiseCategory,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @ObjectModel.text.element: [ 'CrsPlntConfigurableProductName' ]
      @Search.ranking: #LOW
      cast(Product.CrossPlantConfigurableProduct as rfm_asm_generic_article preserving type)                            as CrossPlantConfigurableProduct,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @Search.ranking: #LOW
      @Semantics.text: true
      cast(_MaterialText.ProductDescription as rfm_asm_generic_article_desc preserving type)                            as CrsPlntConfigurableProductName,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_RFM_ASM_PROD_CHRCTR_FILTER'
      @ObjectModel.text.element: [ 'ProductCharacteristic1Desc' ]
      @Search.ranking: #LOW
      cast(Product.ProductCharacteristic1 as rfm_asm_color_long)                                                        as LongProductCharacteristic1,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_RFM_ASM_PROD_CHRCTR_FILTER'
      @ObjectModel.text.element: [ 'ProductCharacteristic2Desc' ]
      @Search.ranking: #LOW
      cast(Product.ProductCharacteristic2 as rfm_asm_main_size_long)                                                    as LongProductCharacteristic2,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @ObjectModel.filter.transformedBy: 'ABAP:CL_RFM_ASM_PROD_CHRCTR_FILTER'
      @ObjectModel.text.element: [ 'ProductCharacteristic3Desc' ]
      @Search.ranking: #LOW
      cast(Product.ProductCharacteristic3 as rfm_asm_sec_size_long)                                                     as LongProductCharacteristic3,

      @ObjectModel.text.element: [ 'ProductCategoryName' ]
      Product.ArticleCategory,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      Product.CreationDate,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      cast(concat(concat(_Characteristic1.Characteristic, ' ('), concat(Product.ProductCharacteristic1, ')')) as rfm_asm_color_long preserving type)
                                                                                                                        as RetailCharc1WithValueName,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      cast(concat(concat(_Characteristic2.Characteristic, ' ('), concat(Product.ProductCharacteristic2, ')')) as rfm_asm_main_size_long preserving type)
                                                                                                                        as RetailCharc2WithValueName,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      cast(concat(concat(_Characteristic3.Characteristic, ' ('), concat(Product.ProductCharacteristic3, ')')) as rfm_asm_sec_size_long preserving type)
                                                                                                                        as RetailCharc3WithValueName,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @Semantics.text: true
      cast(_RetProdCharc1Text_2.RetailCharacteristicValueDesc as rfm_asm_color_long_desc preserving type)               as ProductCharacteristic1Desc,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @Semantics.text: true
      cast(_RetProdCharc2Text_2.RetailCharacteristicValueDesc as rfm_asm_main_size_long_desc preserving type)           as ProductCharacteristic2Desc,

      @Feature: 'RFM_ASM_F4892_MASS_PROD_ASSIGN'
      @Semantics.text: true
      cast(_RetProdCharc3Text_2.RetailCharacteristicValueDesc as rfm_asm_sec_size_long_desc preserving type)            as ProductCharacteristic3Desc,

      @Consumption.hidden: true
      @Search.defaultSearchElement: true
      @Search.ranking: #LOW
      Product.ProductExternalID,

      @Search.ranking: #LOW
      Product.IndustrySector                                                                                            as IndustrySector,

      @Search.ranking: #LOW
      Product.ProductType,

      @Search.ranking: #LOW
      Product._ProductType_2                                                                                            as _ProductType,

      @Semantics.text: true
      cast(_ProductGroupText.ProductGroupName   as rfm_mrchdscategory_desc preserving type)                             as MerchandiseCategoryName,

      @ObjectModel.foreignKey.association: '_BaseUnit'
      @Search.ranking: #LOW
      Product.BaseUnit,

      @DefaultAggregation: #NONE
      @Search.ranking: #LOW
      @Semantics.quantity.unitOfMeasure: 'WeightUnit'
      Product.GrossWeight,

      @DefaultAggregation: #NONE
      @Search.ranking: #LOW
      @Semantics.quantity.unitOfMeasure: 'WeightUnit'
      Product.NetWeight,

      @ObjectModel.foreignKey.association: '_WeightUnit'
      @Search.ranking: #LOW
      Product.WeightUnit,

      @Search.ranking: #LOW
      Product.ManufacturerNumber,

      @Consumption.hidden: true
      @Search.ranking: #LOW
      Product.AuthorizationGroup,

      @Search.ranking: #LOW
      Product.IsBatchManagementRequired,

      @Search.ranking: #LOW
      Product.ProductManufacturerNumber,

      @Semantics.text: true
      cast(_ProductCategoryText.Name as rfm_asm_product_category_desc preserving type)                                  as ProductCategoryName,

      @Search.ranking: #LOW
      Product._ProductGroup_2                                                                                           as _ProductGroup,

      _BaseUnit,
      _WeightUnit
}

where (   Product.ArticleCategory = '00'
       or Product.ArticleCategory = '02'
       or Product.ArticleCategory = '10'
       or Product.ArticleCategory = '11'
       or Product.ArticleCategory = '12')
  and Product.IsMarkedForDeletion = ''