C_ChmlCompOfSubstBsdCmpstn

DDL: C_CHMLCOMPOFSUBSTBSDCMPSTN Type: view CONSUMPTION

Components of Substance Based Composition

C_ChmlCompOfSubstBsdCmpstn is a Consumption CDS View that provides data about "Components of Substance Based Composition" in SAP S/4HANA. It reads from 1 data source (I_ChmlComponent) and exposes 15 fields. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_ChmlComponent Component from

Associations (1)

CardinalityTargetAliasCondition
[0..1] C_SubstanceVH _SubstanceVH $projection.SubstanceUUID = _SubstanceVH.SubstanceUUID

Annotations (14)

NameValueLevelField
EndUserText.label Components of Substance Based Composition view
AbapCatalog.sqlViewName CCCMPSUBBCMPS view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #C view
UI.headerInfo.typeName Component view
UI.headerInfo.typeNamePlural Components view
UI.headerInfo.title.label Component in Composition view
UI.headerInfo.title.value SubstanceName view

Fields (15)

KeyFieldSource TableSource FieldDescription
ChmlCompUUID
ChmlCompositionStatus
ChmlCompositionType
ChmlCompositionUUID
ChmlCmplncInfoUUID
SubstanceUUID
CompanySubstanceNavgnLink I_ChmlComponent SubstanceUUID
SubstanceNameasSubstanceName
CASNumber
ChmlCompType
ChmlCompTypeName
ChmlCompOperatorLowerLimit
ChmlCompOperatorUpperLimit
ChmlCompQtyUnit I_ChmlComponent ChmlCompQtyUnit
_ChmlCmplncInfo
@EndUserText.label: 'Components of Substance Based Composition'

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

@AccessControl:
{
  authorizationCheck: #CHECK,
  // 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:
{
  --Annotation for the UI
  semanticKey:  [ 'SubstanceName' ],
  usageType:
  {
    dataClass: #MIXED,
    sizeCategory: #L,
    serviceQuality: #C
  }
}

--Header information
@UI:
{
  headerInfo:
  {
    typeName: 'Component',
    typeNamePlural: 'Components',
    title:
    {
      label: 'Component in Composition',
      value: 'SubstanceName'
    }
  },
  presentationVariant:
  {
    sortOrder:
    [
      {
        by: 'ChmlCompQty',
        direction: #DESC
      },
      {
        by: 'SubstanceName',
        direction: #ASC
      }
    ],
    requestAtLeast: [ 'CompanySubstanceNavgnLink' ]
  }
}

define view C_ChmlCompOfSubstBsdCmpstn
  --Select data from basic view 'Chemical Component'
  as select from I_ChmlComponent as Component

  -----------------------------------------------------------------------------------------------------------
  --Additional information
  -----------------------------------------------------------------------------------------------------------
  association [0..1] to C_SubstanceVH as _SubstanceVH on $projection.SubstanceUUID = _SubstanceVH.SubstanceUUID
{
      --UUID of component
      @UI:
      {

      -------------------------------------------------------------------------------------------------------
      --Facets
      -------------------------------------------------------------------------------------------------------
        facet:
        [

          --Facet 'Component' - Identification
          {
            label: 'Substance',
            id: 'SubstanceID',
            type:#IDENTIFICATION_REFERENCE,
            position: 10,
            importance: #HIGH
          }
        ],
        hidden: true
      }
  key Component.ChmlCompUUID,
      
      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component._ChemicalComposition.ChmlCompositionStatus,
      
      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component._ChemicalComposition.ChmlCompositionType,

      -------------------------------------------------------------------------------------------------------
      --Information of component substance 
      -------------------------------------------------------------------------------------------------------
      --UUID of composition
      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component.ChmlCompositionUUID,

      --UUID of chemical compliance info
      //--[ GENERATED:012:GlBfhyFV7jY4i}8L6{LzUW

      @Consumption.valueHelpDefinition: [ 
        { entity:  { name:    'I_ChmlCmplncInfoStdVH',
                     element: 'ChmlCmplncInfoUUID' }
        }]
      // ]--GENERATED

      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component.ChmlCmplncInfoUUID,

      --UUID of Substance
//      @UI: {

//          lineItem: [{

//              position: 10,

//              importance: #HIGH

//          }],

//          identification: [{

//              position: 10,

//              importance: #HIGH

//          }],

//          textArrangement: #TEXT_ONLY,

//          multiLineText: true

//      }

//      @ObjectModel: {

//          text: {

//              element: [ 'SubstanceName' ]

//          }

//      }

      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component.SubstanceUUID,
      
      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component.SubstanceUUID as CompanySubstanceNavgnLink,

      --Substance Name
//      @UI.hidden: true

//      @Semantics.text: true

      @UI:
      {
        lineItem:
        {
          position: 10,
          importance: #HIGH
        }
      } 
      @ObjectModel.readOnly: true
      _SubstanceVH.SubstanceName                      as SubstanceName,

      --CAS Number
      @UI: {
          lineItem: [{
              position: 20,
              importance:#HIGH
          }],
          identification: [{
              position: 20,
              importance: #HIGH
          }]
      }
      @ObjectModel.readOnly: true
      _SubstanceVH.CASNumber,

      --Component Type
      @UI: {
          lineItem: [{
              position: 30,
              importance: #HIGH
          }],
          identification: [{
              position: 30,
              importance: #HIGH
          }],
          textArrangement: #TEXT_ONLY
      }
      @ObjectModel.text: {
          element: [ 'ChmlCompTypeName' ]
      }
      @ObjectModel.readOnly: true
      Component.ChmlCompType,

      --Description of Component Type
      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component._ComponentType._Text[1: Language = $session.system_language ].ChmlCompTypeName,

      --Concentration value
      @UI: {
          lineItem: [{
              position: 50,
              importance: #HIGH
          }],
          identification: [{
              position: 50,
              importance: #HIGH
          }]
      }
      @ObjectModel.readOnly: true
      @Semantics: { 
        quantity: {
          unitOfMeasure: 'ChmlCompQtyUnit'
        }
      }
      cast( Component.ChmlCompQty as ehfnd_cci_ccomp_qty )                   as ChmlCompQty,

      --Operator for Lower Limit
      @UI:
      {
        lineItem:
        {
          position: 55,
          importance: #HIGH
        },
        identification:
        {
          position: 55,
          importance: #HIGH
        }
      }      
      Component.ChmlCompOperatorLowerLimit,

      --Lower Limit
      @UI: {
          lineItem: [{
              position: 60,
              importance: #HIGH
          }],
          identification: [{
              position: 60,
              importance: #HIGH
          }]
      }
      @ObjectModel.readOnly: true
      @Semantics: { 
        quantity: {
          unitOfMeasure: 'ChmlCompQtyUnit'
        }
      }
      cast( Component.ChmlCompQtyLowerLimit as ehfnd_cci_ccomp_lower_limit ) as ChmlCompQtyLowerLimit,

      --Operator for Upper Limit
      @UI:
      {
        lineItem:
        {
          position: 65,
          importance: #HIGH
        },
        identification:
        {
          position: 65,
          importance: #HIGH
        }
      }      
      Component.ChmlCompOperatorUpperLimit,

      --Upper limit of concentration
      @UI: {
          lineItem: [{
              position: 70,
              importance: #HIGH
          }],
          identification: [{
              position: 70,
              importance: #HIGH
          }]
      }
      @ObjectModel.readOnly: true
      @Semantics: { 
        quantity: {
          unitOfMeasure: 'ChmlCompQtyUnit'
        }
      }
      cast( Component.ChmlCompQtyUpperLimit as ehfnd_cci_ccomp_upper_limit ) as ChmlCompQtyUpperLimit,

      @UI.hidden: true
      @ObjectModel.readOnly: true
      Component.ChmlCompQtyUnit,

      -------------------------------------------------------------------------------------------------------
      /*Associations*/
      -------------------------------------------------------------------------------------------------------

      --Association for DCL
      Component._ChmlCmplncInfo
}