C_CmbndChmlAnlytlCmpstn

DDL: C_CMBNDCHMLANLYTLCMPSTN SQL: CCMBCHLANLCMPTN Type: view CONSUMPTION Package: EHFND_CNS_CCI

Substance based Analytical Composition

C_CmbndChmlAnlytlCmpstn is a Consumption CDS View that provides data about "Substance based Analytical Composition" in SAP S/4HANA. It reads from 4 data sources (P_CmbndChmlAssocdAnlytlCmpstn, I_ChmlCmplncInfo, I_ChmlComponent, I_ChmlComposition) and exposes 10 fields with key fields ChmlCmplncInfoUUID, ChmlCompositionUUID, ChmlCompUUID. It has 1 association to related views. Part of development package EHFND_CNS_CCI.

Data Sources (4)

SourceAliasJoin Type
P_CmbndChmlAssocdAnlytlCmpstn ActiveComposition inner
I_ChmlCmplncInfo ChmlCmplncInfo from
I_ChmlComponent Component inner
I_ChmlComposition Composition inner

Associations (1)

CardinalityTargetAliasCondition
[0..1] P_SubstanceNameText _Substance Component.SubstanceUUID = _Substance.SubstanceUUID

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName CCMBCHLANLCMPTN view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Substance based Analytical Composition view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
Metadata.allowExtensions true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #C view

Fields (10)

KeyFieldSource TableSource FieldDescription
KEY ChmlCmplncInfoUUID I_ChmlComposition ChmlCmplncInfoUUID
KEY ChmlCompositionUUID I_ChmlComposition ChmlCompositionUUID
KEY ChmlCompUUID I_ChmlComponent ChmlCompUUID
SubstanceUUID I_ChmlComponent SubstanceUUID
SubstanceName _Substance SubstanceName
CASNumber _Substance CASNumber
ChmlCompQty I_ChmlComponent ChmlCompQty
ChmlCompQtyUnitasChmlCompQtyUnit
ChmlCompositionStatusName
_ChmlCmplncInfo _ChmlCmplncInfo
@AbapCatalog.sqlViewName: 'CCMBCHLANLCMPTN'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Substance based Analytical Composition'

@ClientHandling.algorithm: #SESSION_VARIABLE

@VDM.viewType: #CONSUMPTION

@Metadata.allowExtensions: true

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

}

define view C_CmbndChmlAnlytlCmpstn
  as select from I_ChmlCmplncInfo              as ChmlCmplncInfo
    inner join   I_ChmlComposition             as Composition       on  ChmlCmplncInfo.ChmlCmplncInfoUUID = Composition.ChmlCmplncInfoUUID
    inner join   P_CmbndChmlAssocdAnlytlCmpstn as ActiveComposition on ChmlCmplncInfo.ChmlCmplncInfoUUID = ActiveComposition.ChmlCmplncInfoUUID
                                                                    and ActiveComposition.ChmlCompositionUUID = Composition.ChmlCompositionUUID
    inner join   I_ChmlComponent               as Component         on Composition.ChmlCompositionUUID = Component.ChmlCompositionUUID

  association [0..1] to P_SubstanceNameText           as _Substance          on Component.SubstanceUUID = _Substance.SubstanceUUID

{
  key Composition.ChmlCmplncInfoUUID,
  key Composition.ChmlCompositionUUID,
  key Component.ChmlCompUUID,


      Component.SubstanceUUID,
      _Substance.SubstanceName                                                                 as SubstanceName,
      _Substance.CASNumber                                                                     as CASNumber,

      @Semantics.quantity.unitOfMeasure: 'ChmlCompQtyUnit'
      Component.ChmlCompQty,
      -- UoM Code (e.g. PPM)
      @Semantics.unitOfMeasure: true
      Component.ChmlCompQtyUnit                                                                as ChmlCompQtyUnit,

      case
        when Component.ChmlCompQtyLowerLimitAsText is not initial and Component.ChmlCompQtyUpperLimitAsText is not initial then
          concat_with_space( concat_with_space(concat('>=',Component.ChmlCompQtyLowerLimitAsText),'-',1), concat('<=',Component.ChmlCompQtyUpperLimitAsText), 1)
        else ''
      end                                                                                      as CmbndChmlCompConcnRangeText,
      
      -- Product Categorization
      Composition.ChmlCmplncProdCatztnPhrsUUID                                                 as ChmlCmplncProdCatztnPhrsUUID,

      Composition._CompositionStatus._Text[1: Language = $session.system_language ].ChmlCompositionStatusName,

      _ChmlCmplncInfo

}
where 
  -- Only for analytical composition
  Composition.ChmlCompositionType     = 'ANALYTIC1'
  -- Only in process or resolved
  and(
    Composition.ChmlCompositionStatus = 'IP'
    or
    Composition.ChmlCompositionStatus = 'RE'
  )