I_CHMLCOMPONENT

CDS View

Chemical Component

I_CHMLCOMPONENT is a CDS View in S/4HANA. Chemical Component. It contains 22 fields. 21 CDS views read from this table.

CDS Views using this table (21)

ViewTypeJoinVDMDescription
C_ChmlCompOfSubstBsdCmpstn view from CONSUMPTION Components of Substance Based Composition
C_ChmlCompositionComponentVH view from CONSUMPTION Composition Component
C_CmbndChmlAnlytlCmpstn view inner CONSUMPTION Substance based Analytical Composition
C_CmplRqRsltGHSLblHzdCompVH view from CONSUMPTION Substance indicated as Hazardous Inducing Component
C_CmplRqRsltHzdsIngrdntSubstVH view from CONSUMPTION Substance indicated as Hazardous Ingredient VH
C_CmplRqRsltTradeSecretSubstVH view from CONSUMPTION Substance Indicated as CBI Registration
C_GHSLblSensitizingCompVH view inner CONSUMPTION Substance indicated as Sensitizing Components
C_MatlBsdAfterProdCompSubVH view from CONSUMPTION Substances of Aft Prod Comp of MbC
C_MatlBsdRmngSubstVH view from CONSUMPTION Remaining Substance of MbC
C_MatlBsdSubstInRmngCompVH view from CONSUMPTION Substances in Aft Prod Comp of MbC
C_PCTrdScrtSubstVH view from CONSUMPTION Substance Indicated as CBI
C_RawChmlCompOfSuplrMatlCmpstn view from CONSUMPTION Component of Supplier Material Composition
C_US_AnlytlCmpstnRptblQtyCFR view inner CONSUMPTION Reportable Qunatity from Analytical Composition for 49 CFR
I_ChmlComponentOfReldCmpstn view from COMPOSITE Component of Chemical Composition in Status Released
I_ChmlComponentTP view from TRANSACTIONAL Components for composition
I_ChmlSuplrMatlComponentTP view from TRANSACTIONAL Supplier Material Component
P_ChmlSuplrMatlComponentCntr view from CONSUMPTION
P_CmbndChmlAnlytlCmpstnTotal view inner COMPOSITE
P_NmbrOfChmlCompInCmpst view inner BASIC
R_ProdMatlBsdProducedSubstTP view_entity from TRANSACTIONAL Produced Sub of Mat Bsd Composition - TP
R_SubstanceBasedComponentTP view_entity from TRANSACTIONAL Substance Bsd Composition Component - TP

Fields (22)

KeyField CDS FieldsUsed in Views
KEY ChmlCompUUID ChmlCompUUID 4
KEY SubstanceUUID CompanySubstanceNavgnLink,SubstanceUUID 10
_ChemicalComposition _ChemicalComposition 1
_ChmlCmplncInfo _ChmlCmplncInfo 2
_ComponentType _ComponentType 1
_OperatorLowerLimit _OperatorLowerLimit 1
_OperatorUpperLimit _OperatorUpperLimit 1
_Substance _Substance 2
_UnitOfMeasure _UnitOfMeasure 1
ChmlCmplncInfoUUID ChmlCmplncInfoUUID 4
ChmlCompIsRemoved ChmlCompIsRemoved 1
ChmlCompOperatorLowerLimit ChmlCompOperatorLowerLimit 3
ChmlCompOperatorUpperLimit ChmlCompOperatorUpperLimit,ChmlCompReldUprLimitQtyOptr 7
ChmlCompositionUUID ChmlCompositionUUID 4
ChmlCompQty ChmlCompQty 4
ChmlCompQtyAsText ChmlCompQtyAsText 4
ChmlCompQtyLowerLimit ChmlCompQtyLowerLimit 3
ChmlCompQtyLowerLimitAsText ChmlCompQtyLowerLimitAsText,ChmlCompReldLowrLimitQtyAsText 8
ChmlCompQtyUnit ChmlCompQtyUnit 5
ChmlCompQtyUpperLimit ChmlCompQtyUpperLimit 3
ChmlCompQtyUpperLimitAsText ChmlCompQtyUpperLimitAsText,ChmlCompReldUprLimitQtyAsText 8
ChmlCompType ChmlCompType 2
--Label of view
@EndUserText.label: 'Chemical Component'

@AbapCatalog:
{
  -- SQL view name (16 characters)
  sqlViewName: 'ICCOMPONENT',

  --If it's true, the filter conditions are compared and, if they match, the associated join expression is evaluated only once
  compiler.compareFilter: true,
  preserveKey:true
}

--Access Control: Authorizations Checks
@AccessControl:
{
  authorizationCheck: #CHECK
}

--Client Handling of the view
@ClientHandling.algorithm: #SESSION_VARIABLE

--VDM view type
@VDM.viewType: #BASIC

@ObjectModel:
{

  --Performance Annotations
  usageType:
  {
    dataClass: #MASTER,
    sizeCategory: #XL,
    serviceQuality: #C
  }
}

/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ]  } */
define view I_ChmlComponent
  --Select data from master table 'Chemical Component'
  as select from ehfndv_ccmps_cmp as ChemicalComponent

  --Link to parent 'Chemical Composition'
  association [1..1] to I_ChmlComposition          as _ChemicalComposition on  $projection.ChmlCompositionUUID = _ChemicalComposition.ChmlCompositionUUID

  --Link to 'Chemcial Compliance Info' as root
  association [1..1] to I_ChmlCmplncInfo           as _ChmlCmplncInfo      on  $projection.ChmlCmplncInfoUUID = _ChmlCmplncInfo.ChmlCmplncInfoUUID

  association [0..1] to I_Substance                as _HostSubstance       on  $projection.HostSubstanceUUID = _HostSubstance.SubstanceUUID

  --Link to Substance
  association [0..1] to I_SubstanceEnhanced        as _Substance           on  $projection.SubstanceUUID = _Substance.SubstanceUUID

  --Link to Role of Ingredient
  association [0..1] to I_ChmlCompType             as _ComponentType       on  $projection.ChmlCompType = _ComponentType.ChmlCompType

  --Link to Unit of Measure
  association [0..1] to I_UnitOfMeasure            as _UnitOfMeasure       on  $projection.ChmlCompQtyUnit = _UnitOfMeasure.UnitOfMeasure

  --Link Operator of Lower Limit
  association [0..1] to I_ChmlComponentOptrLowrLmt as _OperatorLowerLimit  on  $projection.ChmlCompOperatorLowerLimit = _OperatorLowerLimit.ChmlCompOperatorLowerLimit

  --Link Operator of Upper Limit
  association [0..1] to I_ChmlComponentOptrUprLmt  as _OperatorUpperLimit  on  $projection.ChmlCompOperatorUpperLimit = _OperatorUpperLimit.ChmlCompOperatorUpperLimit

  association [0..1] to I_ChmlComposition          as _PolymerComposition  on  $projection.SubstanceUUID                 = _PolymerComposition.SubstanceUUID
                                                                           and $projection.PolymerCompositionIntIDRef    = _PolymerComposition.PolymerCompositionIntID
                                                                           and _PolymerComposition.ChmlCompositionStatus = 'RE'
                                                                           and _PolymerComposition.ChmlCompositionType   = 'POLYMER'


{
      --UUID of component
  key ChemicalComponent.chmlcompuuid                                                     as ChmlCompUUID,

      --UUID of chemical compliance information
      @ObjectModel.foreignKey.association: '_ChmlCmplncInfo'
      ChemicalComponent.chmlcmplncinfouuid                                               as ChmlCmplncInfoUUID,

      --UUID of referenced supplier material
      ChemicalComponent.chmlsuplrmatluuid                                                as ChmlSuplrMatlUUID,

      --UUID of referenced substance (host substance)
      ChemicalComponent.hostsubstanceuuid                                                as HostSubstanceUUID,

      --UUID of chemical composition
      ChemicalComponent.chmlcompositionuuid                                              as ChmlCompositionUUID,

      --Date/Time of creation
      @Semantics.systemDateTime.createdAt: true
      ChemicalComponent.creationutcdatetime                                              as CreationUTCDateTime,

      --Created by
      @Semantics.user.createdBy: true
      ChemicalComponent.createdbyuser                                                    as CreatedByUser,

      --Date/Time of change
      @Semantics.systemDateTime.lastChangedAt: true
      ChemicalComponent.lastchangeutcdatetime                                            as LastChangeUTCDateTime,

      --Changed by
      @Semantics.user.lastChangedBy: true
      ChemicalComponent.lastchangedbyuser                                                as LastChangedByUser,

      --UUID of Substance (component)
      @ObjectModel.foreignKey.association: '_Substance'
      ChemicalComponent.substanceuuid                                                    as SubstanceUUID,

      --Indicator: Is a component removed - Neccessary for Calculation of Component Status
      ChemicalComponent.chmlcompisremoved                                                as ChmlCompIsRemoved,

      --Role of Ingredient
      @ObjectModel.foreignKey.association: '_ComponentType'
      cast( ChemicalComponent.chmlcomptype as ehfnd_cci_ccomp_type_nce preserving type ) as ChmlCompType,

      --Concentration of component
      @Semantics.quantity.unitOfMeasure: 'ChmlCompQtyUnit'
      /*=> if you specify "@Semantics.quantity.unitOfMeasure", you have to expose the unit of measure in the consumption view*/
      ChemicalComponent.chmlcompqty                                                      as ChmlCompQty,

      --Concentration as text (for correct formatting with decimals exactly as entered by user)
      ChemicalComponent.chmlcompqtyastext                                                as ChmlCompQtyAsText,

      --Unit of measurment of concentration
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_UnitOfMeasure'
      ChemicalComponent.chmlcompqtyunit                                                  as ChmlCompQtyUnit,

      --Operator Lower limit of concentration
      @ObjectModel.foreignKey.association: '_OperatorLowerLimit'
      ChemicalComponent.chmlcompoperatorlowerlimit                                       as ChmlCompOperatorLowerLimit,

      --Lower limit of concentration
      @Semantics.quantity.unitOfMeasure: 'ChmlCompQtyUnit'
      ChemicalComponent.chmlcompqtylowerlimit                                            as ChmlCompQtyLowerLimit,

      --Lower limit as text (for correct formatting with decimals exactly as entered by user)
      ChemicalComponent.chmlcompqtylowerlimitastext                                      as ChmlCompQtyLowerLimitAsText,

      --Operator Upper limit of concentration
      @ObjectModel.foreignKey.association: '_OperatorUpperLimit'
      ChemicalComponent.chmlcompoperatorupperlimit                                       as ChmlCompOperatorUpperLimit,

      --Upper limit of concentration
      @Semantics.quantity.unitOfMeasure: 'ChmlCompQtyUnit'
      ChemicalComponent.chmlcompqtyupperlimit                                            as ChmlCompQtyUpperLimit,

      --Upper limit as text (for correct formatting with decimals exactly as entered by user)
      ChemicalComponent.chmlcompqtyupperlimitastext                                      as ChmlCompQtyUpperLimitAsText,

      --Refrence of polymer composition integrate with Anlytical composition
      ChemicalComponent.polymercompositionintidref                                       as PolymerCompositionIntIDRef,

      --Trade Secret: Identity is Masked
      ChemicalComponent.pctrdscrtidentityismasked                                        as PCTrdScrtIdentityIsMasked,

      --Trade Secret: Range is marked
      ChemicalComponent.pctrdscrtrangeismasked                                           as PCTrdScrtRangeIsMasked,

      /*Association*/
      _ChemicalComposition,
      _ChmlCmplncInfo,
      _HostSubstance,

      _Substance,
      _PolymerComposition,

      _ComponentType,
      _UnitOfMeasure,
      _OperatorLowerLimit,
      _OperatorUpperLimit
}