C_PackagedDangerousGood

DDL: C_PACKAGEDDANGEROUSGOOD SQL: CPPDG Type: view CONSUMPTION

Packaged Dangerous Good

C_PackagedDangerousGood is a Consumption CDS View that provides data about "Packaged Dangerous Good" in SAP S/4HANA. It reads from 1 data source (I_ChmlCmplncInfo) and exposes 48 fields with key field ChmlCmplncInfoUUID. It has 9 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ChmlCmplncInfo ChemicalComplianceInfo from

Associations (9)

CardinalityTargetAliasCondition
[1..1] I_Product _Product $projection.Product = _Product.Product
[0..*] I_ProductText _ProductText $projection.Product = _ProductText.Product
[0..*] I_ProductGroupText_2 _ProductGroupText $projection.productgroup = _ProductGroupText.ProductGroup
[0..*] C_PackagedDangerousGoodClfn _PackagedDangerousGoodClfn $projection.ChmlCmplncInfoUUID = _PackagedDangerousGoodClfn.ChmlCmplncInfoUUID
[1..1] C_PckgdDngrsGoodEnclosureDets _PckgdDngrsGoodEnclosureDets $projection.ChmlCmplncInfoUUID = _PckgdDngrsGoodEnclosureDets.ChmlCmplncInfoUUID
[0..*] C_PckgdDngrsGoodHzdNote _PckgdDngrsGoodHzdNote $projection.ChmlCmplncInfoUUID = _PckgdDngrsGoodHzdNote.ChmlCmplncInfoUUID -- needed for the smart link navigation on the unpackaged product name
[0..1] P_AssociatedAnlytlReldCmpstn _AnlytlCmpstn _AnlytlCmpstn.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID
[0..1] P_AssociatedMatlReldCmpstn _MatlBsdCmpstn _MatlBsdCmpstn.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID
[0..1] P_ChmlCmplncInfoAssgdPCPhys _PCPhysProperty _PCPhysProperty.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID and _PCPhysProperty.PCPrptyRootType = 'EHFNDD_PHYSCHEM' and ( _PCPhysProperty.PCPrptyInProcProcgSts = 'IP' or _PCPhysProperty.PCPrptyReldProcgSts = 'RE' )

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName CPPDG view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AbapCatalog.dataMaintenance #RESTRICTED view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Packaged Dangerous Good view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.serviceQuality #C view

Fields (48)

KeyFieldSource TableSource FieldDescription
KEY ChmlCmplncInfoUUID I_ChmlCmplncInfo ChmlCmplncInfoUUID
IsEditable
SitnInstceAnchorObjectKey
Product
RawMaterial
ProductGroup _Product ProductGroup
DescriptionOfDngrsGdsPckg _PckgdDngrsGoodEnclosureDets DescriptionOfDngrsGdsPckg
PackagingIsTankOrBulkFilling _PckgdDngrsGoodEnclosureDets PackagingIsTankOrBulkFilling
DescOfDngrsGdsPckgName _PckgdDngrsGoodEnclosureDets DescOfDngrsGdsPckgName
DangerousGoodsPackagingCode _PckgdDngrsGoodEnclosureDets DangerousGoodsPackagingCode
DangerousGoodsEnclosureQty _PckgdDngrsGoodEnclosureDets DangerousGoodsEnclosureQty
DangerousGoodsEnclosureUnit _PckgdDngrsGoodEnclosureDets DangerousGoodsEnclosureUnit
DngrsGdsEnclrNmbrOfInnerPckgs _PckgdDngrsGoodEnclosureDets DngrsGdsEnclrNmbrOfInnerPckgs
DescOfDngrsGdsInnerPackgg _PckgdDngrsGoodEnclosureDets DescOfDngrsGdsInnerPackgg
DescOfDngrsGdsInnerPackggName _PckgdDngrsGoodEnclosureDets DescOfDngrsGdsInnerPackggName
DngrsGdsEnclrInnerPackageQty _PckgdDngrsGoodEnclosureDets DngrsGdsEnclrInnerPackageQty
DngrsGdsEnclrInnerPackageUnit _PckgdDngrsGoodEnclosureDets DngrsGdsEnclrInnerPackageUnit
DangerousGoodsControlTemp _PckgdDngrsGoodEnclosureDets DangerousGoodsControlTemp
DangerousGoodsControlTempUnit _PckgdDngrsGoodEnclosureDets DangerousGoodsControlTempUnit
DangerousGoodsEmergencyTemp _PckgdDngrsGoodEnclosureDets DangerousGoodsEmergencyTemp
DangerousGoodsEmgyTempUnit _PckgdDngrsGoodEnclosureDets DangerousGoodsEmgyTempUnit
ChmlCmplncInfoCombinedName
ChmlCmplncInternalName I_ChmlCmplncInfo ChmlCmplncInternalName
ProductName ProductText ProductName
ChmlCmplncProdUUID ProductAssignment ChmlCmplncProdUUID
ChmlCmplncInfoNavgnLink ProductAssignment ChmlCmplncProdUUID
AnalyticCmpstnNavgnLinkUUID _AnlytlCmpstn ChmlCompositionReleasedUUID
MatlBsdCmpstnNavgnLinkUUID _MatlBsdCmpstn ChmlCompositionReleasedUUID
PCPhysPrptyNavgnLinkUUID _PCPhysProperty PCPrptyNavgnLinkUUID
ChmlCmplncInfoUnpckgdProdName
ChmlCmplncInfoRawMaterialName
DngrsGdsRespUnit I_ChmlCmplncInfo DngrsGdsRespUnit
ChmlCmplncInfoType I_ChmlCmplncInfo ChmlCmplncInfoType
ChmlCmplncProdIsResearched I_ChmlCmplncInfo ChmlCmplncProdIsResearched
MaterialIsSold I_ChmlCmplncInfo MaterialIsSold
MaterialIsTransported I_ChmlCmplncInfo MaterialIsTransported
MaterialIsSourced I_ChmlCmplncInfo MaterialIsSourced
MaterialIsProduced I_ChmlCmplncInfo MaterialIsProduced
char255asChmlCmplncTypeImageURL
Associations_ProductText
_ProductGroupText _ProductGroupText
_PackagedDangerousGoodClfn _PackagedDangerousGoodClfn
_PckgdDngrsGoodEnclosureDets _PckgdDngrsGoodEnclosureDets
_EnclosureUnitOfMeasureText _PckgdDngrsGoodEnclosureDets _EnclosureUnitOfMeasureText
_InnerPackageUnitOfMeasureText _PckgdDngrsGoodEnclosureDets _InnerPackageUnitOfMeasureText
_EmgyTempUnitOfMeasureText _PckgdDngrsGoodEnclosureDets _EmgyTempUnitOfMeasureText
_ControlTempUnitOfMeasureText _PckgdDngrsGoodEnclosureDets _ControlTempUnitOfMeasureText
_PckgdDngrsGoodHzdNote _PckgdDngrsGoodHzdNote
@AbapCatalog.sqlViewName: 'CPPDG'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey:true
@AbapCatalog.dataMaintenance: #RESTRICTED
@AccessControl:
{
  authorizationCheck: #MANDATORY,
  personalData.blocking: #NOT_REQUIRED
}

@EndUserText.label: 'Packaged 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
  }
}
define view C_PackagedDangerousGood
  --Select data from master table 'Chemical Compliance Info'
  as select from           I_ChmlCmplncInfo       as ChemicalComplianceInfo

  --Join data from primary material assignment
    left outer to one join I_ChmlCmplncMatlAssgmt as PrimaryMaterial   on  ChemicalComplianceInfo.ChmlCmplncInfoUUID = PrimaryMaterial.ChmlCmplncInfoUUID
                                                                       and PrimaryMaterial.MatlAssgmtIsPrimary       = 'X'
  --Join data from product name in current language to define Combined Name
    left outer to one join I_ProductText          as ProductText       on  PrimaryMaterial.Material = ProductText.Product
                                                                       and ProductText.Language     = $session.system_language
  --Join data from corresponding unpackaged product
    left outer to one join I_ChmlCmplncProdAssgmt as ProductAssignment on ChemicalComplianceInfo.ChmlCmplncInfoUUID = ProductAssignment.ChmlCmplncInfoUUID

    left outer to one join I_ChmlCmplncInfo       as UnpackagedProduct on ProductAssignment.ChmlCmplncProdUUID = UnpackagedProduct.ChmlCmplncInfoUUID

    left outer to one join I_ChmlCmplncMatlAssgmt as UPPrimaryMaterial on  UnpackagedProduct.ChmlCmplncInfoUUID  = UPPrimaryMaterial.ChmlCmplncInfoUUID
                                                                       and UPPrimaryMaterial.MatlAssgmtIsPrimary = 'X'

    left outer to one join I_ProductText          as UPProductText     on  UPPrimaryMaterial.Material = UPProductText.Product
                                                                       and UPProductText.Language     = $session.system_language

  -- provide additional product data via exposed association
  association [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_PackagedDangerousGoodClfn   as _PackagedDangerousGoodClfn   on  $projection.ChmlCmplncInfoUUID = _PackagedDangerousGoodClfn.ChmlCmplncInfoUUID
  association [1..1] to C_PckgdDngrsGoodEnclosureDets as _PckgdDngrsGoodEnclosureDets on  $projection.ChmlCmplncInfoUUID = _PckgdDngrsGoodEnclosureDets.ChmlCmplncInfoUUID
  association [0..*] to C_PckgdDngrsGoodHzdNote       as _PckgdDngrsGoodHzdNote       on  $projection.ChmlCmplncInfoUUID = _PckgdDngrsGoodHzdNote.ChmlCmplncInfoUUID


  -- needed for the smart link navigation on the unpackaged product name
  association [0..1] to P_AssociatedAnlytlReldCmpstn  as _AnlytlCmpstn                on  _AnlytlCmpstn.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID
  association [0..1] to P_AssociatedMatlReldCmpstn    as _MatlBsdCmpstn               on  _MatlBsdCmpstn.ChmlCmplncInfoUUID = UnpackagedProduct.ChmlCmplncInfoUUID
  association [0..1] to P_ChmlCmplncInfoAssgdPCPhys   as _PCPhysProperty              on  _PCPhysProperty.ChmlCmplncInfoUUID    = UnpackagedProduct.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.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHDGM_CCI_AUTHZN_EXIT'
      @Semantics.booleanIndicator:true
      cast( '' as ehfnd_boolean preserving type )                                                                            as IsEditable,

      // SIT Handling

      @UI.hidden: true
      cast( bintohex(ChemicalComplianceInfo.ChmlCmplncInfoUUID) as  sit_de_ancobjkey )                                       as SitnInstceAnchorObjectKey,

      @ObjectModel.readOnly:true
      cast (PrimaryMaterial.Material as productnumber preserving type )                                                      as Product,
      @ObjectModel.readOnly:true
      cast (PrimaryMaterial.Material as ehfnd_cci_raw_material preserving type )                                             as RawMaterial,
      @ObjectModel.readOnly:true
      @ObjectModel.text.association: '_ProductGroupText'
      _Product.ProductGroup,

      @ObjectModel.readOnly: true
      @ObjectModel.text.element: ['DescOfDngrsGdsPckgName']
      _PckgdDngrsGoodEnclosureDets.DescriptionOfDngrsGdsPckg,
      @ObjectModel.readOnly: true
      _PckgdDngrsGoodEnclosureDets.PackagingIsTankOrBulkFilling,
      @ObjectModel.readOnly: true
      @Semantics.text: true
      _PckgdDngrsGoodEnclosureDets.DescOfDngrsGdsPckgName,

      @ObjectModel.readOnly: true
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsPackagingCode,

      @ObjectModel.readOnly:true
      @Semantics.quantity.unitOfMeasure: 'DangerousGoodsEnclosureUnit'
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsEnclosureQty,

      @ObjectModel.readOnly:true
      @ObjectModel.text.association: '_EnclosureUnitOfMeasureText'
      @Semantics.unitOfMeasure: true
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsEnclosureUnit,

      @ObjectModel.readOnly:true
      _PckgdDngrsGoodEnclosureDets.DngrsGdsEnclrNmbrOfInnerPckgs,

      @ObjectModel.readOnly: true
      @ObjectModel.text.element: ['DescOfDngrsGdsInnerPackggName']
      _PckgdDngrsGoodEnclosureDets.DescOfDngrsGdsInnerPackgg,
      @ObjectModel.readOnly: true
      @Semantics.text: true
      _PckgdDngrsGoodEnclosureDets.DescOfDngrsGdsInnerPackggName,

      @ObjectModel.readOnly:true
      @Semantics.quantity.unitOfMeasure: 'DngrsGdsEnclrInnerPackageUnit'
      _PckgdDngrsGoodEnclosureDets.DngrsGdsEnclrInnerPackageQty,

      @ObjectModel.readOnly:true
      @ObjectModel.text.association: '_InnerPackageUnitOfMeasureText'
      @Semantics.unitOfMeasure: true
      _PckgdDngrsGoodEnclosureDets.DngrsGdsEnclrInnerPackageUnit,

      @ObjectModel.readOnly:true
      @Semantics.quantity.unitOfMeasure: 'DangerousGoodsControlTempUnit'
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsControlTemp,

      @ObjectModel.readOnly: true
      @ObjectModel.text.association: '_ControlTempUnitOfMeasureText'
      @Semantics.unitOfMeasure: true
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsControlTempUnit,

      @ObjectModel.readOnly:true
      @Semantics.quantity.unitOfMeasure: 'DangerousGoodsEmgyTempUnit'
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsEmergencyTemp,

      @ObjectModel.readOnly: true
      @ObjectModel.text.association: '_EmgyTempUnitOfMeasureText'
      @Semantics.unitOfMeasure: true
      _PckgdDngrsGoodEnclosureDets.DangerousGoodsEmgyTempUnit,

      @ObjectModel.readOnly:true
      @Semantics.text: true
      cast( coalesce( ProductText.ProductName, ChemicalComplianceInfo.ChmlCmplncInternalName ) as ehfnd_cci_pp )             as ChmlCmplncInfoCombinedName,

      @ObjectModel.readOnly:true
      ChemicalComplianceInfo.ChmlCmplncInternalName,
      @ObjectModel.readOnly:true
      ProductText.ProductName,

      // UUID of the assigned UP

      @ObjectModel.readOnly:true
      ProductAssignment.ChmlCmplncProdUUID, // redundant field due to compatiblity reasons to previous releases

      @ObjectModel.readOnly:true
      ProductAssignment.ChmlCmplncProdUUID                                                                                   as ChmlCmplncInfoNavgnLink, // needed for navigation to the unpackaged product targets


      @ObjectModel.readOnly: true
      _AnlytlCmpstn.ChmlCompositionReleasedUUID                                                                              as AnalyticCmpstnNavgnLinkUUID, // needed for Navigation into Analytical Composition


      @ObjectModel.readOnly: true
      _MatlBsdCmpstn.ChmlCompositionReleasedUUID                                                                             as MatlBsdCmpstnNavgnLinkUUID, // needed for Navigation into Material Based Composition


      @ObjectModel.readOnly: true
      _PCPhysProperty.PCPrptyNavgnLinkUUID                                                                                   as PCPhysPrptyNavgnLinkUUID, // needed for Navigation into PhysChem Property


      // Unpackaged Product Name

      @ObjectModel.readOnly:true
      @Semantics.text: true
      cast( coalesce( UPProductText.ProductName, UnpackagedProduct.ChmlCmplncInternalName)  as ehfnd_cci_up )                as ChmlCmplncInfoUnpckgdProdName,

      @ObjectModel.readOnly:true
      @Semantics.text: true
      cast( coalesce( UPProductText.ProductName, UnpackagedProduct.ChmlCmplncInternalName ) as ehfnd_cci_raw_material_name ) as ChmlCmplncInfoRawMaterialName,

      // Needed for Authorization check

      @ObjectModel.readOnly:true
      @Consumption.hidden: true
      ChemicalComplianceInfo.DngrsGdsRespUnit,

      // needed for the Object Page Header Icon determination

      @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,

      -------------------------------------------------------------------------------------------------------
      --Type Image URL
      -------------------------------------------------------------------------------------------------------
      @ObjectModel.virtualElement
      @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_TYPE_IMAGE_CALC_EXT'
      @ObjectModel.readOnly: true
      cast( '' as abap.char( 255 ) )                                                                                         as ChmlCmplncTypeImageURL,

      -------------------------------------------------------------------------------------------------------
      --Associations
      -------------------------------------------------------------------------------------------------------
      @Consumption.hidden: true
      _ProductText,
      @Consumption.hidden: true
      _ProductGroupText,

      _PackagedDangerousGoodClfn,
      _PckgdDngrsGoodEnclosureDets,
      _PckgdDngrsGoodEnclosureDets._EnclosureUnitOfMeasureText,
      _PckgdDngrsGoodEnclosureDets._InnerPackageUnitOfMeasureText,
      _PckgdDngrsGoodEnclosureDets._EmgyTempUnitOfMeasureText,
      _PckgdDngrsGoodEnclosureDets._ControlTempUnitOfMeasureText,
      _PckgdDngrsGoodHzdNote

}
where
      ChemicalComplianceInfo.ChmlCmplncInfoType    = 'PP'
  and ChemicalComplianceInfo.MaterialIsTransported = 'X'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_PCKGDDNGRSGOODENCLOSUREDETS",
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCMATLASSGMT",
"I_CHMLCMPLNCPRODASSGMT",
"I_PRODUCT",
"I_PRODUCTTEXT",
"P_ASSOCIATEDANLYTLRELDCMPSTN",
"P_ASSOCIATEDMATLRELDCMPSTN",
"P_CHMLCMPLNCINFOASSGDPCPHYS"
],
"ASSOCIATED":
[
"C_PACKAGEDDANGEROUSGOODCLFN",
"C_PCKGDDNGRSGOODENCLOSUREDETS",
"C_PCKGDDNGRSGOODHZDNOTE",
"I_DNGRSGDSUNITOFMEASURETEXT",
"I_PRODUCT",
"I_PRODUCTGROUPTEXT_2",
"I_PRODUCTTEXT",
"P_ASSOCIATEDANLYTLRELDCMPSTN",
"P_ASSOCIATEDMATLRELDCMPSTN",
"P_CHMLCMPLNCINFOASSGDPCPHYS"
],
"BASE":
[
"C_PCKGDDNGRSGOODENCLOSUREDETS"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/