I_ActiveLogisticalProduct

DDL: I_ACTIVELOGISTICALPRODUCT Type: view COMPOSITE Package: VDM_RFM_PRODUCT

Active Logistical Product composite view

I_ActiveLogisticalProduct is a Composite CDS View that provides data about "Active Logistical Product composite view" in SAP S/4HANA. It reads from 2 data sources (I_Product, I_ProductRetail) and exposes 44 fields with key field Product. It has 20 associations to related views. Part of development package VDM_RFM_PRODUCT.

Data Sources (2)

SourceAliasJoin Type
I_Product product from
I_ProductRetail ProductRetail inner

Associations (20)

CardinalityTargetAliasCondition
[0..1] I_ProductDescription _Text $projection.Product = _Text.Product and _Text.Language = $session.system_language
[0..1] I_User _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] I_User _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID
[1..1] I_UserContactCard _CreatedByUserContactCard $projection.CreatedByUser = _CreatedByUserContactCard.ContactCardID
[0..1] I_UserContactCard _LastChangedByUserContactCard $projection.LastChangedByUser = _LastChangedByUserContactCard.ContactCardID
[1..1] I_Producttype _ProductType $projection.ProductType = _ProductType.ProductType
[0..1] I_ProductTypeText _ProductTypeText $projection.ProductType = _ProductTypeText.ProductType and _ProductTypeText.Language = $session.system_language
[1..1] I_ProductCategory _ProductCategory $projection.ProductCategory = _ProductCategory.ProductCategory
[0..*] I_ProductCategoryText _ProductCategoryText $projection.ProductCategory = _ProductCategoryText.ProductCategory
[1..1] I_ProductGroup _ProductGroup $projection.ProductGroup = _ProductGroup.MaterialGroup
[0..1] I_ProductGroupText _ProductGroupText $projection.ProductGroup = _ProductGroupText.MaterialGroup and _ProductGroupText.Language = $session.system_language
[1..1] I_UnitOfMeasure _BaseUnitOfMeasure $projection.BaseUnit = _BaseUnitOfMeasure.UnitOfMeasure
[0..1] I_UnitOfMeasureText _BaseUnitText $projection.BaseUnit = _BaseUnitText.UnitOfMeasure and _BaseUnitText.Language = $session.system_language
[0..1] I_ProductUnitsOfMeasure _GoodsIssueUnit $projection.Product = _GoodsIssueUnit.Product and $projection.GoodsIssueUnit = _GoodsIssueUnit.AlternativeUnit
[1..1] I_UnitOfMeasure _GoodsIssueUnitOfMeasure $projection.GoodsIssueUnit = _GoodsIssueUnitOfMeasure.UnitOfMeasure
[0..1] I_UnitOfMeasureText _GoodsIssueUnitText $projection.GoodsIssueUnit = _GoodsIssueUnitText.UnitOfMeasure and _GoodsIssueUnitText.Language = $session.system_language
[0..1] I_ProductUnitsOfMeasure _PurchaseOrderUnit $projection.Product = _PurchaseOrderUnit.Product and $projection.PurchaseOrderUnit = _PurchaseOrderUnit.AlternativeUnit
[1..1] I_UnitOfMeasure _PurchaseOrderUnitOfMeasure $projection.PurchaseOrderUnit = _PurchaseOrderUnitOfMeasure.UnitOfMeasure
[0..1] I_UnitOfMeasureText _PurchaseOrderUnitText $projection.PurchaseOrderUnit = _PurchaseOrderUnitText.UnitOfMeasure and _PurchaseOrderUnitText.Language = $session.system_language
[0..1] E_Product _ProductExt $projection.Product = _ProductExt.Product

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName IACTLOGPRD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Active Logistical Product composite view view

Fields (44)

KeyFieldSource TableSource FieldDescription
KEY Product I_Product Product
ProductDescription _Text ProductDescription
ProductExternalID I_Product ProductExternalID
CreationDate I_Product CreationDate
CreatedByUser I_Product CreatedByUser
_CreatedByUser _CreatedByUser
_CreatedByUserContactCard _CreatedByUserContactCard
LastChangeDate I_Product LastChangeDate
LastChangeTime I_Product LastChangeTime
LastChangeDateTime I_Product LastChangeDateTime
LastChangedByUser I_Product LastChangedByUser
_LastChangedByUser _LastChangedByUser
_LastChangedByUserContactCard _LastChangedByUserContactCard
ProductStandardID I_Product ProductStandardID
AuthorizationGroup I_Product AuthorizationGroup
SalesProduct I_Product SalesProduct
LogisticalProductCategory
BaseUnit I_Product BaseUnit
_BaseUnitOfMeasure _BaseUnitOfMeasure
_BaseUnitText _BaseUnitText
ProductType I_Product ProductType
_ProductType _ProductType
_ProductTypeText _ProductTypeText
ProductCategory I_Product ProductCategory
_ProductCategory _ProductCategory
_ProductCategoryText _ProductCategoryText
ProductGroup I_Product ProductGroup
_ProductGroup _ProductGroup
_ProductGroupText _ProductGroupText
IndustrySector IndustrySector
PurchaseOrderUnit
_PurchaseOrderUnit _PurchaseOrderUnit
_PurchaseOrderUnitOfMeasure _PurchaseOrderUnitOfMeasure
_PurchaseOrderUnitText _PurchaseOrderUnitText
PurchaseOrderUnitName _PurchaseOrderUnitText UnitOfMeasureName
OrderToBaseQuantityDnmntr _PurchaseOrderUnit QuantityDenominator
OrderToBaseQuantityNmrtr _PurchaseOrderUnit QuantityNumerator
GoodsIssueUnit
_GoodsIssueUnit _GoodsIssueUnit
_GoodsIssueUnitOfMeasure _GoodsIssueUnitOfMeasure
_GoodsIssueUnitText _GoodsIssueUnitText
GoodsIssueUnitName _GoodsIssueUnitText UnitOfMeasureName
GoodsIssueToBaseQuantityDnmntr _GoodsIssueUnit QuantityDenominator
GoodsIssueToBaseQuantityNmrtr _GoodsIssueUnit QuantityNumerator
@AbapCatalog:
  { sqlViewName: 'IACTLOGPRD',
    compiler.compareFilter: true,
    preserveKey: true
  }

@VDM.viewType: #COMPOSITE
@AccessControl.authorizationCheck: #CHECK

@ObjectModel:
  { usageType: { serviceQuality: #C,
                 sizeCategory : #L,
                 dataClass: #MASTER
               },
    semanticKey:['Product']
  }

@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Active Logistical Product composite view'
define view I_ActiveLogisticalProduct
  as select from I_Product       as product

    inner join   I_ProductRetail as ProductRetail on product.Product = ProductRetail.Product

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

  association [0..1] to I_User                  as _CreatedByUser                on  $projection.CreatedByUser = _CreatedByUser.UserID

  association [0..1] to I_User                  as _LastChangedByUser            on  $projection.LastChangedByUser = _LastChangedByUser.UserID

  association [1..1] to I_UserContactCard       as _CreatedByUserContactCard     on  $projection.CreatedByUser = _CreatedByUserContactCard.ContactCardID

  association [0..1] to I_UserContactCard       as _LastChangedByUserContactCard on  $projection.LastChangedByUser = _LastChangedByUserContactCard.ContactCardID

  association [1..1] to I_Producttype           as _ProductType                  on  $projection.ProductType = _ProductType.ProductType

  association [0..1] to I_ProductTypeText       as _ProductTypeText              on  $projection.ProductType   = _ProductTypeText.ProductType
                                                                                 and _ProductTypeText.Language = $session.system_language

  association [1..1] to I_ProductCategory       as _ProductCategory              on  $projection.ProductCategory = _ProductCategory.ProductCategory

  association [0..*] to I_ProductCategoryText   as _ProductCategoryText          on  $projection.ProductCategory = _ProductCategoryText.ProductCategory

  association [1..1] to I_ProductGroup          as _ProductGroup                 on  $projection.ProductGroup = _ProductGroup.MaterialGroup

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

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

  association [0..1] to I_UnitOfMeasureText     as _BaseUnitText                 on  $projection.BaseUnit   = _BaseUnitText.UnitOfMeasure
                                                                                 and _BaseUnitText.Language = $session.system_language

  association [0..1] to I_ProductUnitsOfMeasure as _GoodsIssueUnit               on  $projection.Product        = _GoodsIssueUnit.Product
                                                                                 and $projection.GoodsIssueUnit = _GoodsIssueUnit.AlternativeUnit

  association [1..1] to I_UnitOfMeasure         as _GoodsIssueUnitOfMeasure      on  $projection.GoodsIssueUnit = _GoodsIssueUnitOfMeasure.UnitOfMeasure

  association [0..1] to I_UnitOfMeasureText     as _GoodsIssueUnitText           on  $projection.GoodsIssueUnit   = _GoodsIssueUnitText.UnitOfMeasure
                                                                                 and _GoodsIssueUnitText.Language = $session.system_language

  association [0..1] to I_ProductUnitsOfMeasure as _PurchaseOrderUnit            on  $projection.Product           = _PurchaseOrderUnit.Product
                                                                                 and $projection.PurchaseOrderUnit = _PurchaseOrderUnit.AlternativeUnit

  association [1..1] to I_UnitOfMeasure         as _PurchaseOrderUnitOfMeasure   on  $projection.PurchaseOrderUnit = _PurchaseOrderUnitOfMeasure.UnitOfMeasure

  association [0..1] to I_UnitOfMeasureText     as _PurchaseOrderUnitText        on  $projection.PurchaseOrderUnit   = _PurchaseOrderUnitText.UnitOfMeasure
                                                                                 and _PurchaseOrderUnitText.Language = $session.system_language

  association [0..1] to E_Product               as _ProductExt                   on  $projection.Product = _ProductExt.Product

{
  key product.Product                                                                                                                                                                                                                                                                                         as  Product,

      _Text.ProductDescription                                                                                                                                                                                                                                                                                as  ProductDescription,

      product.ProductExternalID                                                                                                                                                                                                                                                                               as  ProductExternalID,

      product.CreationDate                                                                                                                                                                                                                                                                                    as  CreationDate,

      product.CreatedByUser                                                                                                                                                                                                                                                                                   as  CreatedByUser,
      _CreatedByUser,
      _CreatedByUserContactCard,

      product.LastChangeDate                                                                                                                                                                                                                                                                                  as  LastChangeDate,

      product.LastChangeTime                                                                                                                                                                                                                                                                                  as  LastChangeTime,

      product.LastChangeDateTime                                                                                                                                                                                                                                                                              as  LastChangeDateTime,

      product.LastChangedByUser                                                                                                                                                                                                                                                                               as  LastChangedByUser,
      _LastChangedByUser,
      _LastChangedByUserContactCard,

      product.ProductStandardID                                                                                                                                                                                                                                                                               as  ProductStandardID,

      product.AuthorizationGroup                                                                                                                                                                                                                                                                              as  AuthorizationGroup,

      product.SalesProduct                                                                                                                                                                                                                                                                                    as  SalesProduct,

      cast( product.LogisticalProductCategory as logisticalproductcategory preserving type )                                                                                                                                                                                                                  as  LogisticalProductCategory,

      @ObjectModel.foreignKey.association: '_BaseUnitOfMeasure'
      @ObjectModel.text.association: '_BaseUnitText'
      product.BaseUnit                                                                                                                                                                                                                                                                                        as  BaseUnit,
      _BaseUnitOfMeasure,
      _BaseUnitText,

      @ObjectModel.foreignKey.association: '_ProductType'
      @ObjectModel.text.association: '_ProductTypeText'
      product.ProductType                                                                                                                                                                                                                                                                                     as  ProductType,
      _ProductType,
      _ProductTypeText,

      @ObjectModel.foreignKey.association: '_ProductCategory'
      @ObjectModel.text.association: '_ProductCategoryText'
      product.ProductCategory                                                                                                                                                                                                                                                                                 as  ProductCategory,
      _ProductCategory,
      _ProductCategoryText,

      @ObjectModel.foreignKey.association: '_ProductGroup'
      @ObjectModel.text.association: '_ProductGroupText'
      product.ProductGroup                                                                                                                                                                                                                                                                                    as  ProductGroup,
      _ProductGroup,
      _ProductGroupText,

      IndustrySector                                                                                                                                                                                                                                                                                          as  IndustrySector,

      @ObjectModel.foreignKey.association: '_PurchaseOrderUnitOfMeasure'
      @ObjectModel.text.association: '_PurchaseOrderUnitText'
      cast( product.PurchaseOrderQuantityUnit as purorderquantityunit preserving type )                                                                                                                                                                                                                       as  PurchaseOrderUnit,
      _PurchaseOrderUnit,
      _PurchaseOrderUnitOfMeasure,
      _PurchaseOrderUnitText,

      _PurchaseOrderUnitText.UnitOfMeasureName                                                                                                                                                                                                                                                                as  PurchaseOrderUnitName,

      _PurchaseOrderUnit.QuantityDenominator                                                                                                                                                                                                                                                                  as  OrderToBaseQuantityDnmntr,
      _PurchaseOrderUnit.QuantityNumerator                                                                                                                                                                                                                                                                    as  OrderToBaseQuantityNmrtr,

      @ObjectModel.foreignKey.association: '_GoodsIssueUnitOfMeasure'
      @ObjectModel.text.association: '_GoodsIssueUnitText'
      cast( ProductRetail.GoodsIssueUnit as goodsissueunit preserving type )                                                                                                                                                                                                                                  as  GoodsIssueUnit,
      _GoodsIssueUnit,
      _GoodsIssueUnitOfMeasure,
      _GoodsIssueUnitText,

      _GoodsIssueUnitText.UnitOfMeasureName                                                                                                                                                                                                                                                                   as  GoodsIssueUnitName,

      _GoodsIssueUnit.QuantityDenominator                                                                                                                                                                                                                                                                     as  GoodsIssueToBaseQuantityDnmntr,
      _GoodsIssueUnit.QuantityNumerator                                                                                                                                                                                                                                                                       as  GoodsIssueToBaseQuantityNmrtr
      
}
where
  (
       // The where condition deliveres all procurement products

       // These are beside the generated displays with logistical_mat_category = 'P' also all single articles

       // For the PurchaseOrderUnit of a single article no extra procurement product is generated

       // In this case the single article has also the role of a procurement product for its PurchaseOrderUnit

       product.LogisticalProductCategory = 'P'
    or product.ProductCategory           = '00'
  )
  and  IsMarkedForDeletion               = ''