C_UpaDaGdsClfnTechNameAll is a Consumption CDS View that provides data about "Technical Names - All Company Substances" in SAP S/4HANA. It reads from 1 data source (I_Substance) and exposes 7 fields with key fields SubstanceUUID, CmplRqVersOrganicPrxdUUID, CmplRqVersSelfReactvSubstUUID. It has 3 associations to related views.
_SubstIsOnOrganicPrxdList.SubstanceUUID = $projection.SubstanceUUID and _SubstIsOnOrganicPrxdList.CmplRqVersUUID = $parameters.P_CmplRqVersUUID and _SubstIsOnOrganicPrxdList.ProdCmplncDngrsGdsIdnNmbrType = $parameters.P_DangerousGoodsIdnNumberType and _SubstIsOnOrganicPrxdList.ProdCmplncDngrsGdsIdnNmbr = $parameters.P_DangerousGoodsIdnNumber
_SubstIsOnSelfReactvSubstList.SubstanceUUID = $projection.SubstanceUUID and _SubstIsOnSelfReactvSubstList.CmplRqVersUUID = $parameters.P_CmplRqVersUUID and _SubstIsOnSelfReactvSubstList.ProdCmplncDngrsGdsIdnNmbrType = $parameters.P_DangerousGoodsIdnNumberType and _SubstIsOnSelfReactvSubstList.ProdCmplncDngrsGdsIdnNmbr = $parameters.P_DangerousGoodsIdnNumber
@AbapCatalog.sqlViewName: 'IUPDGTECHNAMALL'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #MANDATORY@AccessControl.personalData.blocking: #NOT_REQUIRED@VDM.viewType: #CONSUMPTION@ClientHandling.algorithm: #SESSION_VARIABLE@EndUserText.label: 'Technical Names - All Company Substances'
@ObjectModel.usageType:{ serviceQuality: #C, // < 15 msec
sizeCategory: #L, // < 10.000.000
dataClass: #MIXED }defineview C_UpaDaGdsClfnTechNameAll
withparameters
P_CmplRqVersUUID : sysuuid_x,
P_DangerousGoodsIdnNumber : ehdgm_dangerous_good_idn,
P_DangerousGoodsIdnNumberType : ehdgm_dangerous_good_idn_type
asselectfrom I_Substance
association [0..1] to P_SubstNameFallbackLogonLang as _SubstNameFallbackLogonLang on _SubstNameFallbackLogonLang.SubstanceUUID = $projection.SubstanceUUID
// check if the substance ison the organic peroxide list
association [0..1] to P_SubstIsOnOrganicPrxdList as _SubstIsOnOrganicPrxdList on _SubstIsOnOrganicPrxdList.SubstanceUUID = $projection.SubstanceUUID
and _SubstIsOnOrganicPrxdList.CmplRqVersUUID = $parameters.P_CmplRqVersUUID
and _SubstIsOnOrganicPrxdList.ProdCmplncDngrsGdsIdnNmbrType = $parameters.P_DangerousGoodsIdnNumberType
and _SubstIsOnOrganicPrxdList.ProdCmplncDngrsGdsIdnNmbr = $parameters.P_DangerousGoodsIdnNumber
// check if the substance ison the self-reactive substance list
association [0..1] to P_SubstIsOnSelfReactvSubstList as _SubstIsOnSelfReactvSubstList on _SubstIsOnSelfReactvSubstList.SubstanceUUID = $projection.SubstanceUUID
and _SubstIsOnSelfReactvSubstList.CmplRqVersUUID = $parameters.P_CmplRqVersUUID
and _SubstIsOnSelfReactvSubstList.ProdCmplncDngrsGdsIdnNmbrType = $parameters.P_DangerousGoodsIdnNumberType
and _SubstIsOnSelfReactvSubstList.ProdCmplncDngrsGdsIdnNmbr = $parameters.P_DangerousGoodsIdnNumber
{
key SubstanceUUID as SubstanceUUID,
// key field if the substance ison the organic peroxide list
key _SubstIsOnOrganicPrxdList.CmplRqVersOrganicPrxdUUID,
// key field if the substance ison the self reactive substance list
key _SubstIsOnSelfReactvSubstList.CmplRqVersSelfReactvSubstUUID,
case// use the name from the list if the substance ison the peroxide list
when _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsOrganicPrxdName
// use the name from the list if the substance ison the self-reactive substance list
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsSelfReactvName
// bydefault use the substance name
else
_SubstNameFallbackLogonLang.SubstanceName
endas SubstanceName,
_ListedSubstance.CASNumber as CASNumber,
_ListedSubstance.ECNumber as ECNumber,
@ObjectModel.readOnly: truecast (
casewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen 'X'
// when _SubstIsOnOrganicPrxdList.SubstanceUUID isnull// then ''
else ''
endas substisonorganicprxdlist preserving type) as SubstIsOnOrganicPrxdList,
@ObjectModel.readOnly: truecast (
casewhen _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen 'X'
// when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnull// then ''
else ''
endas substisonselfreactvsubstlist preserving type) as SubstIsOnSelfReactvSubstList,
// Position on List
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsPositionOnSource
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsPositionOnSource
else
0
endas DngrsGdsPositionOnSource,
// Printed Name
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsOrganicPrxdPrintedName
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsSelfReactvPrintedName
else
''
endas DngrsGdsSubstPrintedName,
// Additional Information
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsOrganicPrxdAddlInfoTxt
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsSelfReactvAddlInfoTxt
else
''
endas DngrsGdsAddlInfoTxt,
// Concentration - Lower Operator/Value/Unit
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnLowrQtyOptr
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnLowrQtyOptr
else
''
endas DngrsGdsConcnLowrQtyOptr,
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnLowrQty
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnLowrQty
else
0
endas DngrsGdsConcnLowrQty,
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnLowrQtyUnit
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnLowrQtyUnit
elsecast( ' ' as dngrsgdsconcnuprqtyunit )
endas DngrsGdsConcnLowrQtyUnit,
// Concentration - Upper Operator/Value/Unit
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnUprQtyOptr
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnUprQtyOptr
else
''
endas DngrsGdsConcnUprQtyOptr,
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnUprQty
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnUprQty
else
0
endas DngrsGdsConcnUprQty,
@ObjectModel.readOnly: truecasewhen _SubstIsOnOrganicPrxdList.SubstanceUUID isnotnullthen _SubstIsOnOrganicPrxdList.DngrsGdsConcnUprQtyUnit
when _SubstIsOnSelfReactvSubstList.SubstanceUUID isnotnullthen _SubstIsOnSelfReactvSubstList.DngrsGdsConcnUprQtyUnit
elsecast( ' ' as dngrsgdsconcnuprqtyunit )
endas DngrsGdsConcnUprQtyUnit,
--Technical Name Exist Flag
@ObjectModel.readOnly: true@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHDGM_UP_COMPONENT_EXIT'
cast('' as substancetechnameisexisting preserving type) as SubstanceTechNameIsExisting,
--Technical Name is Creatable Flag
@ObjectModel.readOnly: true@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHDGM_UP_COMPONENT_EXIT'
cast('' as substancetechnameiseditable preserving type) as SubstanceTechNameIsEditable,
--Technical Name
@ObjectModel.readOnly: true@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHDGM_UP_COMPONENT_EXIT'
cast('' as substancetechnametext) as SubstanceTechNameText,
// Required for DCL
@Consumption.hidden: true
ResponsibleUnit
// Associations
// _SubstIsOnOrganicPrxdList,
// _SubstIsOnSelfReactvSubstList
}
where
_SubstNameFallbackLogonLang.SubstanceName <> ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_SUBSTACTIVEDRAFTLSTDSUBST",
"I_SUBSTANCE",
"P_SUBSTISONORGANICPRXDLIST",
"P_SUBSTISONSELFREACTVSUBSTLIST",
"P_SUBSTNAMEFALLBACKLOGONLANG"
],
"ASSOCIATED":
[
"P_SUBSTISONORGANICPRXDLIST",
"P_SUBSTISONSELFREACTVSUBSTLIST",
"P_SUBSTNAMEFALLBACKLOGONLANG"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/