C_UnpackagedDangerousGood is a Consumption CDS View that provides data about "Unpackaged Dangerous Good" in SAP S/4HANA. It reads from 1 data source (I_ChmlCmplncInfo) and exposes 28 fields with key field ChmlCmplncInfoUUID. It has 9 associations to related views.
@AbapCatalog.sqlViewName: 'CUPDG'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey:true@AccessControl:
{
authorizationCheck: #MANDATORY,
personalData.blocking: #NOT_REQUIRED
}@EndUserText.label: 'Unpackaged Dangerous Good'
@Metadata.allowExtensions: true@Metadata.ignorePropagatedAnnotations: true@VDM.viewType: #CONSUMPTION@ClientHandling.algorithm: #SESSION_VARIABLE@ObjectModel:
{
semanticKey: [ 'Product',
'ChmlCmplncInfoNavgnLink',
'AnalyticCmpstnNavgnLinkUUID',
'MatlBsdCmpstnNavgnLinkUUID',
'PCPhysPrptyNavgnLinkUUID' ],
usageType:
{
dataClass: #MIXED,
sizeCategory: #L,
serviceQuality: #C
}
}
defineview C_UnpackagedDangerousGood
--Select data from master table 'Chemical Compliance Info'
asselectfrom I_ChmlCmplncInfo as ChemicalComplianceInfo
--Join data from primary material assignment
leftouter to one join I_ChmlCmplncMatlAssgmt as PrimaryMaterial on ChemicalComplianceInfo.ChmlCmplncInfoUUID = PrimaryMaterial.ChmlCmplncInfoUUID
and PrimaryMaterial.MatlAssgmtIsPrimary = 'X'
leftouter to one join P_AssociatedAnlytlReldCmpstn as ReleasedAnalyticalComposition on ReleasedAnalyticalComposition.ChmlCmplncInfoUUID = ChemicalComplianceInfo.ChmlCmplncInfoUUID
--Join data from product name in current language to define Combined Name
leftouter to one join I_ProductText as ProductText on PrimaryMaterial.Material = ProductText.Product
and Language = $session.system_language
-- provide additional product data via exposed associationassociation [1..1] to I_Product as _Product on $projection.Product = _Product.Product
association [0..*] to I_ProductText as _ProductText on $projection.Product = _ProductText.Product
association [0..*] to I_ProductGroupText_2 as _ProductGroupText on $projection.productgroup = _ProductGroupText.ProductGroup
association [0..*] to C_DngrsGdsAnlytlCmpstnComp as _ChmlCompOfReldAnlytlCmpstn on $projection.AnalyticCmpstnReleasedUUID = _ChmlCompOfReldAnlytlCmpstn.ChmlCompositionUUID
association [0..*] to C_UnpackagedDangerousGoodClfn as _UnpackagedDangerousGoodClfn on $projection.ChmlCmplncInfoUUID = _UnpackagedDangerousGoodClfn.ChmlCmplncInfoUUID
-- provide data for related packaged dangerous goods
association [0..*] to C_UpaDaGdsClfnAssgdPckgdClfn as _RelatedPackagedProduct on $projection.ChmlCmplncInfoUUID = _RelatedPackagedProduct.ChmlCmplncInfoUUID
-- needed for the smart link navigation in the up apps
association [0..1] to P_AssociatedAnlytlReldCmpstn as _AnlytlCmpstn on _AnlytlCmpstn.ChmlCmplncInfoUUID = $projection.ChmlCmplncInfoUUID
association [0..1] to P_AssociatedMatlReldCmpstn as _MatlBsdCmpstn on _MatlBsdCmpstn.ChmlCmplncInfoUUID = $projection.ChmlCmplncInfoUUID
association [0..1] to P_ChmlCmplncInfoAssgdPCPhys as _PCPhysProperty on _PCPhysProperty.ChmlCmplncInfoUUID = $projection.ChmlCmplncInfoUUID
and _PCPhysProperty.PCPrptyRootType = 'EHFNDD_PHYSCHEM'
and (
_PCPhysProperty.PCPrptyInProcProcgSts = 'IP'
or _PCPhysProperty.PCPrptyReldProcgSts = 'RE'
)
// association [0..1] to C_ChmlCmplncInfoAssgdPCPrpty as _PCEctxProperty on _PCEctxProperty.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID
// and _PCEctxProperty.PCPrptyRootType = 'EHFNDD_ECTX'
{
@ObjectModel.readOnly: true@ObjectModel.text.element: ['ChmlCmplncInfoCombinedName']key ChemicalComplianceInfo.ChmlCmplncInfoUUID,
//@ObjectModel.text.element: ['ChmlCmplncInfoCombinedName']@ObjectModel.readOnly: truecast (PrimaryMaterial.Material as productnumber preserving type ) as Product,
@ObjectModel.readOnly: truecast (PrimaryMaterial.Material as ehfnd_cci_raw_material preserving type ) as RawMaterial,
// SIT Handling
@UI.hidden: truecast( bintohex(ChemicalComplianceInfo.ChmlCmplncInfoUUID) as sit_de_ancobjkey ) as SitnInstceAnchorObjectKey,
@ObjectModel.readOnly: true@ObjectModel.text.association: '_ProductGroupText'
_Product.ProductGroup,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.Specification,
@ObjectModel.readOnly: true@Semantics.text: truecast( coalesce( ProductText.ProductName, ChemicalComplianceInfo.ChmlCmplncInternalName ) as ehfnd_cci_up ) as ChmlCmplncInfoCombinedName,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.ChmlCmplncInternalName,
@ObjectModel.readOnly: true
ProductText.ProductName,
@ObjectModel.readOnly: true@Consumption.filter.hidden: true
ReleasedAnalyticalComposition.ChmlCompositionReleasedUUID as AnalyticCmpstnReleasedUUID,
@ObjectModel.readOnly: true@Consumption.filter.hidden: true
ReleasedAnalyticalComposition.ReleaseDateTime as AnalyticCmpstnReleaseDateTime,
// Cloud system indicator to switch visibility of certain UI elements
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_CALC_EXIT_IS_CLOUD'
@ObjectModel.readOnly: true@Semantics.booleanIndicator: truecast( 'X' as char1 ) as IsCloudSystem,
// Needed for Authorization check
@ObjectModel.readOnly: true@Consumption.hidden: true
ChemicalComplianceInfo.DngrsGdsRespUnit,
-------------------------------------------------------------------------------------------------------
--Navigation Links
-------------------------------------------------------------------------------------------------------
@UI.hidden: true@ObjectModel.readOnly: true
ChemicalComplianceInfo.ChmlCmplncInfoUUID as ChmlCmplncInfoNavgnLink, // needed for navigation
@UI.hidden: true@ObjectModel.readOnly: true
_AnlytlCmpstn.ChmlCompositionReleasedUUID as AnalyticCmpstnNavgnLinkUUID, // needed for Navigation into Analytical Composition
@UI.hidden: true@ObjectModel.readOnly: true
_MatlBsdCmpstn.ChmlCompositionReleasedUUID as MatlBsdCmpstnNavgnLinkUUID, // needed for Navigation into Material Based Composition
// @ObjectModel.readOnly: true// _SubstBsdLglCmpstn.ChmlCmpstnNavgnLinkUUID as SubstBsdLglCmpstnNavgnLinkUUID, // needed for Navigation into Substance Based Legal Composition
@UI.hidden: true@ObjectModel.readOnly: true
_PCPhysProperty.PCPrptyNavgnLinkUUID as PCPhysPrptyNavgnLinkUUID, // needed for Navigation into PhysChem Property
// @ObjectModel.readOnly: true// _PCEctxProperty.PCPrptyNavgnLinkUUID as PCEctxPrptyNavgnLinkUUID, // needed for Navigation into Ecotox Property
-------------------------------------------------------------------------------------------------------
--Type Image URL
-------------------------------------------------------------------------------------------------------
// needed for the Object Page Header Image URL sadl exit
@ObjectModel.readOnly: true
ChemicalComplianceInfo.ChmlCmplncInfoType,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.ChmlCmplncProdIsResearched,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.MaterialIsSold,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.MaterialIsTransported,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.MaterialIsSourced,
@ObjectModel.readOnly: true
ChemicalComplianceInfo.MaterialIsProduced,
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_TYPE_IMAGE_CALC_EXT'
@ObjectModel.readOnly: truecast( '' asabap.char( 255 ) ) as ChmlCmplncTypeImageURL,
-------------------------------------------------------------------------------------------------------
--Associations
-------------------------------------------------------------------------------------------------------
@Consumption.hidden: true
_ProductText,
@Consumption.hidden: true
_ProductGroupText,
_ChmlCompOfReldAnlytlCmpstn,
_UnpackagedDangerousGoodClfn,
_RelatedPackagedProduct
}
where
ChemicalComplianceInfo.ChmlCmplncInfoType = 'BU'
and ChemicalComplianceInfo.MaterialIsTransported = 'X'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCMATLASSGMT",
"I_PRODUCT",
"I_PRODUCTTEXT",
"P_ASSOCIATEDANLYTLRELDCMPSTN",
"P_ASSOCIATEDMATLRELDCMPSTN",
"P_CHMLCMPLNCINFOASSGDPCPHYS"
],
"ASSOCIATED":
[
"C_DNGRSGDSANLYTLCMPSTNCOMP",
"C_UNPACKAGEDDANGEROUSGOODCLFN",
"C_UPADAGDSCLFNASSGDPCKGDCLFN",
"I_PRODUCT",
"I_PRODUCTGROUPTEXT_2",
"I_PRODUCTTEXT",
"P_ASSOCIATEDANLYTLRELDCMPSTN",
"P_ASSOCIATEDMATLRELDCMPSTN",
"P_CHMLCMPLNCINFOASSGDPCPHYS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/