C_ChmlCmplncInfoProdMntr

DDL: C_CHMLCMPLNCINFOPRODMNTR Type: view CONSUMPTION Package: EHFND_CNS_CCI

Packaged Product

C_ChmlCmplncInfoProdMntr is a Consumption CDS View that provides data about "Packaged Product" in SAP S/4HANA. It reads from 1 data source (I_ChmlCmplncInfo) and exposes 24 fields. It has 8 associations to related views. Part of development package EHFND_CNS_CCI.

Data Sources (1)

SourceAliasJoin Type
I_ChmlCmplncInfo ChemicalCompliance from

Associations (8)

CardinalityTargetAliasCondition
[0..1] I_ChmlCmplncProdAssgmt _ChmlCmplncProdAssgmt $projection.ChmlCmplncInfoUUID = _ChmlCmplncProdAssgmt.ChmlCmplncInfoUUID and _ChmlCmplncProdAssgmt.ChmlCmplncInfoType = 'BU' --Product Information
[0..1] I_ProductGroup_2 _ProductGroupVH $projection.MaterialGroup = _ProductGroupVH.ProductGroup
[0..1] I_ProductHierarchy _ProductHierarchyVH $projection.ProductHierarchy = _ProductHierarchyVH.ProductHierarchy
[0..1] I_Division _DivisionVH $projection.Division = _DivisionVH.Division
[0..1] I_ExtProdGrp _ExternalProdGrpVH $projection.ExternalProductGroup = _ExternalProdGrpVH.ExternalProductGroup
[0..1] C_ChmlCmplncPrimMatl _MaterialDataPrimary ChemicalCompliance.ChmlCmplncInfoUUID = _MaterialDataPrimary.ChmlCmplncInfoUUID
[0..1] C_ChmlCmplncInfoQuickView _ChmlCmplncInfoQuickVw $projection.Specification = _ChmlCmplncInfoQuickVw.Specification
[0..1] C_ChmlCmplncInfoQuickView _ChmlCmplncInfoQuickVwUnpckgd $projection.UnpckgdChemicalComplianceInfo = _ChmlCmplncInfoQuickVwUnpckgd.Specification

Annotations (15)

NameValueLevelField
EndUserText.label Packaged Product view
AbapCatalog.sqlViewName CCCINFOPPMNTR view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
ObjectModel.createEnabled false view
ObjectModel.updateEnabled false view
ObjectModel.deleteEnabled false view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #C view
Metadata.allowExtensions true view
Search.searchable true view

Fields (24)

KeyFieldSource TableSource FieldDescription
ChmlCmplncInfoUUIDasChmlCmplncInfoUUID
MaterialasMaterial
UnpckgdChemicalComplianceInfo
ChmlCmplncInfoUnpckgdProdName
ProductNameasProductName
ProductGroupasMaterialGroup
ProductGroupNameasMaterialGroupName
ProductHierarchyasProductHierarchy
ProductHierarchyText
DivisionasDivision
DivisionName
ExternalProductGroupName
SpecificationasSpecification
ChmlCmplncInfoType I_ChmlCmplncInfo ChmlCmplncInfoType
MaterialIsSold I_ChmlCmplncInfo MaterialIsSold
MaterialIsTransported I_ChmlCmplncInfo MaterialIsTransported
MaterialIsProduced I_ChmlCmplncInfo MaterialIsProduced
_ProductGroupVH _ProductGroupVH
_RespUnitForProductStewardship _RespUnitForProductStewardship
_ProductHierarchyVH _ProductHierarchyVH
_DivisionVH _DivisionVH
_ExternalProdGrpVH _ExternalProdGrpVH
_ChmlCmplncInfoQuickVw _ChmlCmplncInfoQuickVw
_ChmlCmplncInfoQuickVwUnpckgd _ChmlCmplncInfoQuickVwUnpckgd
//Manage Basic Compliance Data - Packaged Product (Monitor)

@EndUserText.label: 'Packaged Product'

@AbapCatalog:
{
  sqlViewName: 'CCCINFOPPMNTR',
  compiler.compareFilter: true
}

@AccessControl:
{
  authorizationCheck: #MANDATORY,
  // blocking of personal data not required (no personal data fields exposed for material (MARA))

  personalData.blocking: #NOT_REQUIRED
}

@ClientHandling.algorithm: #SESSION_VARIABLE

@VDM.viewType: #CONSUMPTION

@ObjectModel:
{
  createEnabled: false,
  updateEnabled: false,
  deleteEnabled: false,
  usageType:
  {
    dataClass: #MIXED,
    sizeCategory: #L,
    serviceQuality: #C
  },
  semanticKey:  [ 'ChmlCmplncInfoCombinedName' ]
}

@Metadata.allowExtensions: true
@Search.searchable : true

define view C_ChmlCmplncInfoProdMntr
  --Select data from basic view of chemical compliance information
  as select from I_ChmlCmplncInfo as ChemicalCompliance

  --Additional Information
  --Cardinality is okay as one PP has only one UP assigned1
  association [0..1] to I_ChmlCmplncProdAssgmt    as _ChmlCmplncProdAssgmt         on  $projection.ChmlCmplncInfoUUID           = _ChmlCmplncProdAssgmt.ChmlCmplncInfoUUID
                                                                                   and _ChmlCmplncProdAssgmt.ChmlCmplncInfoType = 'BU'

  --Product Information
  association [0..1] to I_ProductGroup_2          as _ProductGroupVH               on  $projection.MaterialGroup = _ProductGroupVH.ProductGroup
  association [0..1] to I_ProductHierarchy        as _ProductHierarchyVH           on  $projection.ProductHierarchy = _ProductHierarchyVH.ProductHierarchy
  association [0..1] to I_Division                as _DivisionVH                   on  $projection.Division = _DivisionVH.Division
  association [0..1] to I_ExtProdGrp              as _ExternalProdGrpVH            on  $projection.ExternalProductGroup = _ExternalProdGrpVH.ExternalProductGroup
  association [0..1] to C_ChmlCmplncPrimMatl      as _MaterialDataPrimary          on  ChemicalCompliance.ChmlCmplncInfoUUID = _MaterialDataPrimary.ChmlCmplncInfoUUID
  association [0..1] to C_ChmlCmplncInfoQuickView as _ChmlCmplncInfoQuickVw        on  $projection.Specification = _ChmlCmplncInfoQuickVw.Specification
  association [0..1] to C_ChmlCmplncInfoQuickView as _ChmlCmplncInfoQuickVwUnpckgd on  $projection.UnpckgdChemicalComplianceInfo = _ChmlCmplncInfoQuickVwUnpckgd.Specification


{
      --UUID of active chemical compliance information
      @ObjectModel.readOnly: true
  key ChemicalCompliance.ChmlCmplncInfoUUID                                                                                                       as ChmlCmplncInfoUUID,

      --Material/Product number
      @ObjectModel.readOnly: true
      @ObjectModel.text.element: ['ProductName']
      @Consumption: {
        valueHelpDefinition: [{
          entity: {name: 'I_ProductVH', element: 'Product'} }]
      }
  key ChemicalCompliance._MaterialAssignment.Material                                                                                             as Material,

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------
      -- Unpackaged Product Info
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------

      --UUID of Unpackaged Product - Used for Navigation
      @ObjectModel.readOnly: true
      _ChmlCmplncProdAssgmt.ChmlCmplncProdUUID                                                                                                    as ChmlCmplncInfoNavgnLink,

      @ObjectModel:
      {
        readOnly: true,
        text.element:  [ 'ChmlCmplncInfoUnpckgdProdName' ],
        foreignKey.association: '_ChmlCmplncInfoQuickVwUnpckgd'
      }
      _ChmlCmplncProdAssgmt._ChmlCmplncInfoProduct.Specification                                                                                  as UnpckgdChemicalComplianceInfo,

      @ObjectModel.readOnly: true
      @Semantics.text:true
      _ChmlCmplncProdAssgmt._ChmlCmplncInfoProduct.ChmlCmplncInternalName                                                                         as ChmlCmplncInfoUnpckgdProdName,

      -----------------------------------------------------------------------------------------------------------------------------------------------------------------

      --Material name or internal name
      @ObjectModel.readOnly: true
      _MaterialDataPrimary.ChmlCmplncInfoCombinedName                                                                                             as ChmlCmplncInfoCombinedName,

      --Material name
      @ObjectModel.readOnly: true
      ChemicalCompliance._MaterialAssignment._Product._Text[1: Language = $session.system_language ].ProductName                                  as ProductName,

      --Internal name of chemical compliance information
      @ObjectModel.readOnly: true
      @Semantics.text:true
      ChemicalCompliance.ChmlCmplncInternalName                                                                                                   as ChmlCmplncInternalName,

      --Product group
      @ObjectModel:
      {
        readOnly: true,
        text.element:  [ 'MaterialGroupName' ],
        foreignKey.association: '_ProductGroupVH'
      }
      ChemicalCompliance._MaterialAssignment._Product.ProductGroup                                                                                as MaterialGroup,

      --Material Group Name
      @ObjectModel.readOnly: true
      ChemicalCompliance._MaterialAssignment._Product._ProductGroup_2._ProductGroupText[1: Language = $session.system_language ].ProductGroupName as MaterialGroupName,

      --Responsible unit of PSS
      @ObjectModel.readOnly: true
      @Consumption.hidden: true
      ChemicalCompliance.ProdStewardshipRespUnit                                                                                                  as ProdStewardshipRespUnit,

      --Product Hierarchy
      @ObjectModel:
      {
        readOnly: true,
      //        foreignKey.association: '_ProductHierarchyVH'

        text.element:  [ 'ProductHierarchyText' ]
      }
      ChemicalCompliance._MaterialAssignment._Product.ProductHierarchy                                                                            as ProductHierarchy,

      ChemicalCompliance._MaterialAssignment._Product._ProductHierarchyText[1: Language = $session.system_language ].ProductHierarchyText         as ProductHierarchyText,

      --Product Division
      @ObjectModel:
      {
        readOnly: true,
      //        foreignKey.association: '_DivisionVH',

        text.element:  [ 'DivisionName' ]
      }
      ChemicalCompliance._MaterialAssignment._Product.Division                                                                                    as Division,

      ChemicalCompliance._MaterialAssignment._Product._DivisionText[1: Language = $session.system_language ].DivisionName                         as DivisionName,

      --External product group
      @ObjectModel:
      {
        readOnly: true,
        text.element:  [ 'ExternalProductGroupName' ],
        foreignKey.association: '_ExternalProdGrpVH'
      }
      cast( ChemicalCompliance._MaterialAssignment._Product.ExternalProductGroup as ehfnd_ext_material_group_l )                                  as ExternalProductGroup,

      --Description of External Product Group
      @ObjectModel.readOnly: true
      ChemicalCompliance._MaterialAssignment._Product._ExternalProductGroup._Text[1: Language = $session.system_language ].ExternalProductGroupName,
      
      -------------------------------------------------------------------------------------------------------
      // Semantic Object

      -------------------------------------------------------------------------------------------------------
      @ObjectModel.readOnly: true
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_TYPE_IMAGE_CALC_EXT'
      cast( '' as /ui2/semantic_object )                                                                                                          as SemanticObject,

      --Specification
      @ObjectModel:
      {
        readOnly: true,
        text.element:  [ 'ChmlCmplncInternalName' ],
        foreignKey.association: '_ChmlCmplncInfoQuickVw'
      }
      ChemicalCompliance.Specification                                                                                                            as Specification,

      --R&D Indicator: Product under Research
      @ObjectModel.readOnly: true
      ChemicalCompliance.ChmlCmplncProdIsResearched                                                                                               as ChmlCmplncProdIsResearched,

      ChemicalCompliance.ChmlCmplncInfoType                                                                                                       as ChmlCmplncInfoType,

      ChemicalCompliance.MaterialIsSold                                                                                                           as MaterialIsSold,

      ChemicalCompliance.MaterialIsTransported                                                                                                    as MaterialIsTransported,

      ChemicalCompliance.MaterialIsProduced                                                                                                       as MaterialIsProduced,

      -- Is MCP - needed  for navigation from LR to OP
      @Semantics.booleanIndicator: true
      ChemicalCompliance.MatlIsMultiComponentProduct                                                                                              as MatlIsMultiComponentProduct,

      /*Association*/
      @Consumption.filter.hidden: true
      _ProductGroupVH,

      @Consumption.filter.hidden: true
      _RespUnitForProductStewardship,

      @Consumption.filter.hidden: true
      _ProductHierarchyVH,

      @Consumption.filter.hidden: true
      _DivisionVH,

      @Consumption.filter.hidden: true
      _ExternalProdGrpVH,

      @Consumption.filter.hidden: true
      _ChmlCmplncInfoQuickVw,

      @Consumption.filter.hidden: true
      _ChmlCmplncInfoQuickVwUnpckgd
}
where
       ChemicalCompliance.ChmlCmplncInfoType = 'PP'
  and(
       ChemicalCompliance.MaterialIsSold     = 'X'
    or ChemicalCompliance.MaterialIsProduced = 'X'
    // or ChemicalCompliance.MaterialIsTransported = 'X' --  No longer a mandatory role - PSSPROD-3445

  )