I_ProdToExplicitAsstmtModule

DDL: I_PRODTOEXPLICITASSTMTMODULE SQL: IPRODTOEXPLASM Type: view COMPOSITE

Product Assignment to Assortment Module

I_ProdToExplicitAsstmtModule is a Composite CDS View that provides data about "Product Assignment to Assortment Module" in SAP S/4HANA. It reads from 3 data sources (I_ExplicitAssortmentModule, I_ProductToAssortmentModule, I_ExplicitAsstmtModuleVersion) and exposes 12 fields with key fields AssortmentModuleUUID, Product, AssortmentModuleName. It has 3 associations to related views.

Data Sources (3)

SourceAliasJoin Type
I_ExplicitAssortmentModule module from
I_ProductToAssortmentModule product_assignments inner
I_ExplicitAsstmtModuleVersion version inner

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_ExplctAsstmtMdlExclsnRatio _ExclusionRatio $projection.AssortmentModuleUUID = _ExclusionRatio.AssortmentModuleGroupUUID and $projection.Product = _ExclusionRatio.Product
[1..*] I_ProdAssgblToExplctMdlVersTP _ModuleVersion $projection.AssortmentModuleName = _ModuleVersion.AssortmentModuleName and $projection.Product = _ModuleVersion.Product
[1..*] I_AssortmentModuleText _Text _Text.AssortmentModuleUUID = $projection.AssortmentModuleUUID

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IPRODTOEXPLASM view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
EndUserText.label Product Assignment to Assortment Module view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view

Fields (12)

KeyFieldSource TableSource FieldDescription
KEY AssortmentModuleUUID I_ExplicitAssortmentModule AssortmentModuleUUID
KEY Product I_ProductToAssortmentModule Product
KEY AssortmentModuleName I_ExplicitAssortmentModule AssortmentModuleName
ProductIsMandatoryInAssortment I_ProductToAssortmentModule ProductIsMandatoryInAssortment
ValidityStartDate
ValidityEndDate
LastChangeDateTime
LastChangeDate
_ModuleVersion _ModuleVersion
_Text _Text
_Product I_ProductToAssortmentModule _Product
_ExclusionRatio _ExclusionRatio
@AbapCatalog.sqlViewName: 'IPRODTOEXPLASM'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@EndUserText.label: 'Product Assignment to Assortment Module'

@ClientHandling.algorithm: #SESSION_VARIABLE

@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #BLOCKED_DATA_EXCLUDED
}

@VDM: {
  viewType: #COMPOSITE,

  lifecycle: {
    contract: {
      type: #SAP_INTERNAL_API
    }
  }
}
@ObjectModel: {
    usageType: {
        serviceQuality: #C,
        sizeCategory: #L,
        dataClass: #MASTER
   }
}

define view I_ProdToExplicitAsstmtModule
  as select from    I_ExplicitAssortmentModule    as module
    inner join      I_ExplicitAsstmtModuleVersion as version             on module.AssortmentModuleUUID = version.AssortmentModuleUUID
    inner join      I_ProductToAssortmentModule   as product_assignments on version.AssortmentModuleVersionUUID = product_assignments.AssortmentModuleUUID
    
  
    association [0..1] to I_ExplctAsstmtMdlExclsnRatio  as _ExclusionRatio      on  $projection.AssortmentModuleUUID = _ExclusionRatio.AssortmentModuleGroupUUID
                                                                         and $projection.Product = _ExclusionRatio.Product
  association [1..*] to I_ProdAssgblToExplctMdlVersTP as _ModuleVersion on  $projection.AssortmentModuleName = _ModuleVersion.AssortmentModuleName
                                                                        and $projection.Product              = _ModuleVersion.Product
  association [1..*] to I_AssortmentModuleText        as _Text          on  _Text.AssortmentModuleUUID = $projection.AssortmentModuleUUID
{
  key module.AssortmentModuleUUID,
  key product_assignments.Product                                                                                                as Product,
  key module.AssortmentModuleName                                                                                                as AssortmentModuleName,
      product_assignments.ProductIsMandatoryInAssortment,
      cast ( min( product_assignments.ValidityStartDate ) as rfm_asm_valid_from preserving type )                                as ValidityStartDate,
      cast ( max( product_assignments.ValidityEndDate )   as rfm_asm_valid_to preserving type )                                  as ValidityEndDate,
      @Semantics.systemDateTime.lastChangedAt:true
      cast ( max( product_assignments.LastChangeDateTime )  as tzntstmps preserving type  )                                      as LastChangeDateTime,
      max( product_assignments.LastChangeDate )                                                                                  as LastChangeDate,
      _ModuleVersion,
      _Text,
      product_assignments._Product,
      _ExclusionRatio
}
group by
  module.AssortmentModuleUUID,
  product_assignments.Product,
  ProductIsMandatoryInAssortment,
  module.AssortmentModuleName