I_ProdAssgblToExplctModuleTP

DDL: I_PRODASSGBLTOEXPLCTMODULETP Type: view_entity TRANSACTIONAL Package: RFM_ASSORTMENT_RAP_EXPLICIT

Product Assignable to Assortment Module

I_ProdAssgblToExplctModuleTP is a Transactional CDS View that provides data about "Product Assignable to Assortment Module" in SAP S/4HANA. It reads from 2 data sources (I_ProdToExplicitAsstmtModule, I_ProdToExplicitAsstmtModule) and exposes 39 fields with key field Product. It has 2 associations to related views. Part of development package RFM_ASSORTMENT_RAP_EXPLICIT.

Data Sources (2)

SourceAliasJoin Type
I_ProdToExplicitAsstmtModule ProdExplctAssortmentMdl inner
I_ProdToExplicitAsstmtModule ProdExplctAssortmentMdl left_outer

Associations (2)

CardinalityTargetAliasCondition
[0..*] I_ProdToExplicitAsstmtMdlTP _ProductAssortMdlListing $projection.Product = _ProductAssortMdlListing.Product
[0..1] I_ArticleHierNodeToProduct _ArticleHierNode $projection.Product = _ArticleHierNode.Product

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
EndUserText.label Product Assignable to Assortment Module view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.sapObjectNodeType.name Product view
Metadata.ignorePropagatedAnnotations true view

Fields (39)

KeyFieldSource TableSource FieldDescription
KEY Product Product Product
ProdIsLstdInAnyExplctAsstmtMdl
ProductGroup
ProductCategory Product ProductCategory
ProductType Product ProductType
AuthorizationGroup Product AuthorizationGroup
ProductStandardID Product ProductStandardID
CrossPlantConfigurableProduct
HierarchyID _ArticleHierNode HierarchyID
RetailArticleHierarchyNode _ArticleHierNode RetailArticleHierarchyNode
_ArticleHierNode _ArticleHierNode
_ArtHierNodeText _ArticleHierNode _NodeText
_ActiveArticleHierarchy _ArticleHierNode _ActiveArticleHierarchy
_Text Product _Text
_ProductType Product _ProductType
_ProductCategory Product _ProductCategory
_ProductGroup Product _ProductGroup
_ProductGroup_2 Product _ProductGroup_2
_CrossPlantConfigurableProduct Product _CrossPlantConfigurableProduct
ProductasProduct
ProdIsLstdInAnyExplctAsstmtMdl
ProductGroup
ProductCategory Product ProductCategory
ProductType Product ProductType
AuthorizationGroup Product AuthorizationGroup
ProductStandardID Product ProductStandardID
CrossPlantConfigurableProduct
HierarchyID _ArticleHierNode HierarchyID
RetailArticleHierarchyNode _ArticleHierNode RetailArticleHierarchyNode
_ArticleHierNode _ArticleHierNode
_ArtHierNodeText _ArticleHierNode _NodeText
_ActiveArticleHierarchy _ArticleHierNode _ActiveArticleHierarchy
_Text Product _Text
_ProductType Product _ProductType
_ProductCategory Product _ProductCategory
_ProductGroup Product _ProductGroup
_ProductGroup_2 Product _ProductGroup_2
_CrossPlantConfigurableProduct Product _CrossPlantConfigurableProduct
_ProductAssortMdlListing _ProductAssortMdlListing
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@EndUserText.label: 'Product Assignable to Assortment Module'

@VDM: {
  viewType: #TRANSACTIONAL,

  lifecycle: {
    contract: {
      type: #SAP_INTERNAL_API
    }
  }
}
@ObjectModel: {
    usageType: {
        serviceQuality: #C,
        sizeCategory: #L,
        dataClass: #MASTER
   },
   sapObjectNodeType.name: 'Product'
}

@Metadata.ignorePropagatedAnnotations: true

define root view entity I_ProdAssgblToExplctModuleTP
  as select distinct from I_Product                    as Product
    inner to one join     I_AsstmtMdlMgmtSolnGenSetting                           on I_AsstmtMdlMgmtSolnGenSetting.AsstmtMdlMgmtSolnIsEnbld = 'X'

    inner join            I_ProdToExplicitAsstmtModule as ProdExplctAssortmentMdl on Product.Product = ProdExplctAssortmentMdl.Product

  association [0..*] to I_ProdToExplicitAsstmtMdlTP as _ProductAssortMdlListing on $projection.Product = _ProductAssortMdlListing.Product

  association [0..1] to I_ArticleHierNodeToProduct  as _ArticleHierNode         on $projection.Product = _ArticleHierNode.Product
{

  key Product.Product                                                                                as Product,
      cast( 'X' as rfm_asm_prd_asgnd_to_expl_mod preserving type )                                   as ProdIsLstdInAnyExplctAsstmtMdl,
      cast ( Product.ProductGroup as  rfm_mrchdscategory preserving type   ) as ProductGroup,
      Product.ProductCategory,
      Product.ProductType,
      Product.AuthorizationGroup,
      Product.ProductStandardID,
      cast ( Product.CrossPlantConfigurableProduct as rfm_asm_crossplant_conf_prod preserving type ) as CrossPlantConfigurableProduct,
      _ArticleHierNode.HierarchyID                                                                   as HierarchyID,
      _ArticleHierNode.RetailArticleHierarchyNode                                                    as RetailArticleHierarchyNode,

      _ArticleHierNode,
      _ArticleHierNode._NodeText                                                                     as _ArtHierNodeText,
      _ArticleHierNode._ActiveArticleHierarchy                                                       as _ActiveArticleHierarchy,
      Product._Text,
      Product._ProductType,
      Product._ProductCategory,
      Product._ProductGroup,
      Product._ProductGroup_2,
      Product._CrossPlantConfigurableProduct,

      _ProductAssortMdlListing
}
where
       Product.ProductCategory     <> ''
  and(
       Product.ProductCategory     =  '00'
    or Product.ProductCategory     =  '02'
    or Product.ProductCategory     =  '10'
    or Product.ProductCategory     =  '11'
    or Product.ProductCategory     =  '12'
  )
  and  Product.IsMarkedForDeletion =  ' '

union all select distinct from I_Product                    as Product
  inner to one join            I_AsstmtMdlMgmtSolnGenSetting                           on I_AsstmtMdlMgmtSolnGenSetting.AsstmtMdlMgmtSolnIsEnbld = 'X'
  left outer join              I_ProdToExplicitAsstmtModule as ProdExplctAssortmentMdl on Product.Product = ProdExplctAssortmentMdl.Product

association [0..*] to I_ProdToExplicitAsstmtMdlTP as _ProductAssortMdlListing on $projection.Product = _ProductAssortMdlListing.Product

association [0..1] to I_ArticleHierNodeToProduct  as _ArticleHierNode         on $projection.Product = _ArticleHierNode.Product
{

  key Product.Product                                                                                as Product,
      cast( ' ' as rfm_asm_prd_asgnd_to_expl_mod preserving type )                                   as ProdIsLstdInAnyExplctAsstmtMdl,
      cast ( Product.ProductGroup as  rfm_mrchdscategory preserving type   ) as ProductGroup,
      Product.ProductCategory,
      Product.ProductType,
      Product.AuthorizationGroup,
      Product.ProductStandardID,
      cast ( Product.CrossPlantConfigurableProduct as rfm_asm_crossplant_conf_prod preserving type ) as CrossPlantConfigurableProduct,
      _ArticleHierNode.HierarchyID                                                                   as HierarchyID,
      _ArticleHierNode.RetailArticleHierarchyNode                                                    as RetailArticleHierarchyNode,

      _ArticleHierNode,
      _ArticleHierNode._NodeText                                                                     as _ArtHierNodeText,
      _ArticleHierNode._ActiveArticleHierarchy                                                       as _ActiveArticleHierarchy,
      Product._Text,
      Product._ProductType,
      Product._ProductCategory,
      Product._ProductGroup,
      Product._ProductGroup_2,
      Product._CrossPlantConfigurableProduct,

      _ProductAssortMdlListing
}
where
       ProdExplctAssortmentMdl.AssortmentModuleUUID is null
  and  Product.ProductCategory                      <> ''
  and(
       Product.ProductCategory                      =  '00'
    or Product.ProductCategory                      =  '02'
    or Product.ProductCategory                      =  '10'
    or Product.ProductCategory                      =  '11'
    or Product.ProductCategory                      =  '12'
  )
  and  Product.IsMarkedForDeletion                  =  ' ';