I_SUBSTANCETP

CDS View

Substance

I_SUBSTANCETP is a CDS View in S/4HANA. Substance. It contains 13 fields. 8 CDS views read from this table.

CDS Views using this table (8)

ViewTypeJoinVDMDescription
C_ChmlCmpstnSubstanceVH view from CONSUMPTION Value Help for Substance in Composition
C_MatlBasedProducedSubstanceVH view from CONSUMPTION Value Help for Produced Substances for Matl Bsd Composition
C_MatlBasedReplacedSubstanceVH view from CONSUMPTION Value Help for Replaced Substances for Matl Bsd Composition
C_PCSftyDcmpstnProdSubstanceVH view from CONSUMPTION Decomposition Product Substance ValueHelp
C_ProdCmplncServiceReqSubst view from CONSUMPTION PC Service Requests Private Substance
C_SubstanceCmplRqRslt view from CONSUMPTION Compliance Assessments Overview for Substance
C_SubstanceQryTP view from CONSUMPTION Manage Substances Compliance
C_SubstanceVH view from CONSUMPTION Substance Value Help

Fields (13)

KeyField CDS FieldsUsed in Views
KEY SubstanceUUID SubstanceUUID 7
ActiveSubstanceUUID ActiveSubstanceUUID 1
CompanySubstanceName CompanySubstanceName 6
CreatedByUser CreatedByUser 1
CreationUTCDateTime CreationUTCDateTime 1
LastChangedByUser LastChangedByUser 1
LastChangeUTCDateTime LastChangeUTCDateTime 1
ListedSubstanceUUID ListedSubstanceUUID 6
PolymerIsBsdOnOECDDef PolymerIsBsdOnOECDDef 1
ResponsibleUnit ResponsibleUnit 6
Specification Specification 2
SubstanceInternalName SubstanceInternalName 7
SubstanceName SubstanceName 7
@EndUserText.label: 'Substance'
@VDM.viewType: #TRANSACTIONAL
@AbapCatalog: {
  sqlViewName:            'ISUBTP',
  compiler.compareFilter: true
}

@AccessControl:
{
  authorizationCheck: #CHECK,
  privilegedAssociations:  [ '_CreatedByUser', '_LastChangedByUser' ]
}

@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
  modelCategory:                  #BUSINESS_OBJECT,
  transactionalProcessingEnabled: true,
  compositionRoot:                true,
  draftEnabled:                   true,
  createEnabled:                  true,
  updateEnabled:                  'EXTERNAL_CALCULATION',
  deleteEnabled:                  'EXTERNAL_CALCULATION',
  writeDraftPersistence:          'ehfndw_sub',
  writeActivePersistence:         'ehfndv_sub',
  representativeKey:              'SubstanceUUID',
  semanticKey:                    ['SubstanceUUID'],
  usageType: {
    serviceQuality: #C,
    dataClass:      #MASTER,
    sizeCategory:   #L
  },
  entityChangeStateId: 'LastChangeUTCDateTime'
}

define view I_SubstanceTP
  as select from I_Substance as Substance
  association [0..*] to I_SubstanceVarAssgmtTP       as _SubstanceVarAssgmt        on $projection.SubstanceUUID = _SubstanceVarAssgmt.SubstanceUUID
  association [0..*] to I_SubstanceGrpAssgmtTP       as _SubstanceGrpAssgmtTP      on $projection.SubstanceUUID = _SubstanceGrpAssgmtTP.SubstanceUUID
  // Note: this will move to the CI team as entity of the Listed Substance

  //  association [0..*] to I_SubstanceGrpAssgmtTP as _SubstanceGrpAsgmt   on $projection.SubstanceUUID = _SubstanceGrpAsgmt.SubstanceUUID

  association [0..*] to I_SubstanceTextTP            as _SubstanceText             on $projection.SubstanceUUID = _SubstanceText.SubstanceUUID
  association [0..*] to I_SubstanceTradeSecretTextTP as _SubstanceTradeSecretText  on $projection.SubstanceUUID = _SubstanceTradeSecretText.SubstanceUUID
  association [0..*] to I_SubstanceAdditionalIdfrTP  as _SubstanceAdditionalIdfrTP on $projection.SubstanceUUID = _SubstanceAdditionalIdfrTP.SubstanceUUID

{
  key Substance.SubstanceUUID,

      @ObjectModel.readOnly: true
      Substance.SubstanceUUID                                             as ActiveSubstanceUUID, --Active UUID of Substance

      @ObjectModel.readOnly: true
      Substance.CreationUTCDateTime,
      @ObjectModel.readOnly: true
      Substance.CreatedByUser,
      @ObjectModel.readOnly: true
      Substance.LastChangeUTCDateTime,
      @ObjectModel.readOnly: true
      Substance.LastChangedByUser,

      @ObjectModel.mandatory: true
      Substance.ListedSubstanceUUID,
      Substance.SubstanceInternalName,

      //Substance name cases see REQ-41-0032:

      //1. own substance name

      //2. listed substance name

      //3. internal name

      @ObjectModel.readOnly: true
      cast (
             case
                when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is not null
                     then _SubstanceText[1:Language = $session.system_language].SubstanceName
                when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is null and _ListedSubstance.ListedSubstanceDefaultName is not null
                     then _ListedSubstance.ListedSubstanceDefaultName
                when _SubstanceText[1:Language = $session.system_language].SubstanceUUID is null and _ListedSubstance.ListedSubstanceDefaultName is null
                     then Substance.SubstanceInternalName
      end as ehfnd_sub_substance_name_ltd )                               as SubstanceName,

      @ObjectModel.readOnly: true
      // set company substance name to not mandatory for displaying although it is mandatory if used in the substance text node

      @ObjectModel.mandatory: false
      _SubstanceText[1:Language = $session.system_language].SubstanceName as CompanySubstanceName,

      @ObjectModel.mandatory: true
      Substance.ResponsibleUnit,

      Substance.Specification,
      Substance.SpecificationInternalID,
      Substance.PolymerIsBsdOnOECDDef,
      /* Exposed Associations */
      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _SubstanceText,

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

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

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

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

      _CreatedByUser,
      _LastChangedByUser,
      Substance._ListedSubstance

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SUBSTACTIVEDRAFTLSTDSUBST",
"I_SUBSTANCE",
"I_SUBSTANCETEXTTP"
],
"ASSOCIATED":
[
"I_SUBSTACTIVEDRAFTLSTDSUBST",
"I_SUBSTANCEADDITIONALIDFRTP",
"I_SUBSTANCEGRPASSGMTTP",
"I_SUBSTANCETEXTTP",
"I_SUBSTANCETRADESECRETTEXTTP",
"I_SUBSTANCEVARASSGMTTP",
"I_USER"
],
"BASE":
[
"I_SUBSTANCE"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/