I_MatlBasedCompositionTP

DDL: I_MATLBASEDCOMPOSITIONTP Type: view TRANSACTIONAL

Material Based Composition

I_MatlBasedCompositionTP is a Transactional CDS View that provides data about "Material Based Composition" in SAP S/4HANA. It reads from 1 data source (I_ChmlComposition) and exposes 16 fields. It has 4 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ChmlComposition MaterialBasedComposition from

Associations (4)

CardinalityTargetAliasCondition
[0..*] I_MatlBsdBeforeProdnCompTP _MatlBsdComponentBeforeProd $projection.ChmlCompositionUUID = _MatlBsdComponentBeforeProd.ChmlCompositionUUID -- After production material-based components
[0..*] I_MatlBsdAfterProdnCompTP _MatlBsdComponentAfterProd $projection.ChmlCompositionUUID = _MatlBsdComponentAfterProd.ChmlCompositionUUID --Produced Substances
[0..*] I_MatlBsdProducedSubstTP _ProducedSubstance $projection.ChmlCompositionUUID = _ProducedSubstance.ChmlCompositionUUID --legal deviation
[0..*] I_MatlBsdCmpstnLglDeviationTP _LegalDeviation $projection.ChmlCompositionUUID = _LegalDeviation.ChmlCompositionUUID

Annotations (22)

NameValueLevelField
EndUserText.label Material Based Composition view
AbapCatalog.sqlViewName IMCOMPOSITIONTP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.modelCategory #BUSINESS_OBJECT view
ObjectModel.compositionRoot true view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.createEnabled EXTERNAL_CALCULATION view
ObjectModel.updateEnabled EXTERNAL_CALCULATION view
ObjectModel.deleteEnabled true view
ObjectModel.draftEnabled true view
ObjectModel.writeDraftPersistence EHFNDW_MCMPS view
ObjectModel.writeActivePersistence EHFNDV_CCMPS view
ObjectModel.entityChangeStateId LastChangeUTCDateTime view
ObjectModel.sapObjectNodeType.name ProductMaterialBsdComposition view
ObjectModel.representativeKey ChmlCompositionUUID view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #C view

Fields (16)

KeyFieldSource TableSource FieldDescription
UUIDofcompositionkeyChmlCompositionUUID
ChangedbyuserLastChangedByUser
CompositionTypeChmlCompositionType
ReleaseStatusChmlCompositionStatus
ValidfromdateValidityStartDateTime
ValidtoDateValidityEndDateTime
_MatlBsdComponentBeforeProd _MatlBsdComponentBeforeProd
_MatlBsdComponentAfterProd _MatlBsdComponentAfterProd
_ProducedSubstance _ProducedSubstance
_LegalDeviation _LegalDeviation
_CreatedByUser _CreatedByUser
_LastChangedByUser _LastChangedByUser
_ReleasedByUser _ReleasedByUser
_ChmlCmplncInfo _ChmlCmplncInfo
_CompositionStatus _CompositionStatus
_CompositionType _CompositionType
@EndUserText.label: 'Material Based Composition'

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

@AccessControl:
{
  --Authority Check for Composition
  authorizationCheck: #MANDATORY,
  privilegedAssociations:  [ '_CreatedByUser', '_LastChangedByUser', '_ReleasedByUser']
}

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

@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API

@ObjectModel:
{
  --Transactional Annotations for the generated BO
  modelCategory: #BUSINESS_OBJECT,
  compositionRoot: true,
  transactionalProcessingEnabled: true,
  createEnabled: 'EXTERNAL_CALCULATION',
  updateEnabled: 'EXTERNAL_CALCULATION',
  deleteEnabled: true,
  draftEnabled: true,
  writeDraftPersistence: 'EHFNDW_MCMPS',
  writeActivePersistence: 'EHFNDV_CCMPS',
  entityChangeStateId: 'LastChangeUTCDateTime',
  sapObjectNodeType.name: 'ProductMaterialBsdComposition',
  semanticKey:  [ 'ChmlCompositionUUID' ],
  representativeKey: 'ChmlCompositionUUID',
  usageType:
  {
    dataClass: #MASTER,
    sizeCategory: #L,
    serviceQuality: #C
  }
}

define view I_MatlBasedCompositionTP
  --Select data from basic view 'Composition'
  as select from I_ChmlComposition as MaterialBasedComposition 

  -- Nodes/Detaildata;
  -- Before production material-based components
  association [0..*] to I_MatlBsdBeforeProdnCompTP    as _MatlBsdComponentBeforeProd on $projection.ChmlCompositionUUID = _MatlBsdComponentBeforeProd.ChmlCompositionUUID

  -- After production material-based components
  association [0..*] to I_MatlBsdAfterProdnCompTP     as _MatlBsdComponentAfterProd  on $projection.ChmlCompositionUUID = _MatlBsdComponentAfterProd.ChmlCompositionUUID

  --Produced Substances
  association [0..*] to I_MatlBsdProducedSubstTP      as _ProducedSubstance          on $projection.ChmlCompositionUUID = _ProducedSubstance.ChmlCompositionUUID
  
  --legal deviation 
  association [0..*] to I_MatlBsdCmpstnLglDeviationTP as _LegalDeviation             on $projection.ChmlCompositionUUID = _LegalDeviation.ChmlCompositionUUID
{

      --UUID of composition
      @ObjectModel.mandatory: true
  key ChmlCompositionUUID,

      --Active UUID of composition
      @ObjectModel.readOnly: true
      ChmlCompositionUUID as ActiveChmlCompositionUUID,

      --Create date/time of composition
      @ObjectModel.readOnly: true
      CreationUTCDateTime,

      --Created by user
      @ObjectModel.readOnly: true
      CreatedByUser,

      --Change date/time of composition
      @ObjectModel.readOnly: true
      LastChangeUTCDateTime,

      --Changed by user
      @ObjectModel.readOnly: true
      LastChangedByUser,

      --UUID of chemical compliance info
      ChmlCmplncInfoUUID,

      --Composition Type
      @ObjectModel.mandatory: true
      ChmlCompositionType,

      --Release Status
      @ObjectModel.mandatory: true
      ChmlCompositionStatus,

      --Released by user
      ReleasedByUser,

      -- Valid from date
      ValidityStartDateTime,

      -- Valid to Date
      ValidityEndDateTime,

      /* Associations */
      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      _MatlBsdComponentBeforeProd,

      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      _MatlBsdComponentAfterProd,

      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      _ProducedSubstance,

      @ObjectModel.association.type:  [ #TO_COMPOSITION_CHILD ]
      _LegalDeviation,

      _CreatedByUser,
      _LastChangedByUser,
      _ReleasedByUser,
      _ChmlCmplncInfo,
      _CompositionStatus,
      _CompositionType
}
where
  ChmlCompositionType = 'MATLBSD2'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHMLCOMPOSITION"
],
"ASSOCIATED":
[
"I_CHMLCMPLNCINFO",
"I_CHMLCOMPOSITIONSTATUS",
"I_CHMLCOMPOSITIONTYPE",
"I_MATLBSDAFTERPRODNCOMPTP",
"I_MATLBSDBEFOREPRODNCOMPTP",
"I_MATLBSDCMPSTNLGLDEVIATIONTP",
"I_MATLBSDPRODUCEDSUBSTTP",
"I_USER"
],
"BASE":
[
"I_CHMLCOMPOSITION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/