C_ChmlCmplncInfoMntr is a Consumption CDS View that provides data about "Unpackaged Product" in SAP S/4HANA. It reads from 1 data source (I_ChmlCmplncInfo) and exposes 32 fields. It has 16 associations to related views. Part of development package EHFND_CNS_CCI.
//Manage Basic Compliance Data - Unpackaged Product (Monitor)
@EndUserText.label: 'Unpackaged Product'
@AbapCatalog:
{
sqlViewName: 'CCCINFOMNTR',
compiler.compareFilter: true
}@AccessControl:
{
authorizationCheck: #MANDATORY,
// blocking of personal data not required (no personal data fields exposed for material (MARA))
personalData.blocking: #NOT_REQUIRED
}@ClientHandling.algorithm: #SESSION_VARIABLE@VDM.viewType: #CONSUMPTION@ObjectModel:
{
createEnabled: false,
updateEnabled: false,
deleteEnabled: false,
usageType:
{
dataClass: #MIXED,
sizeCategory: #L,
serviceQuality: #C
},
semanticKey: [ 'ChmlCmplncInfoCombinedName' ]
}
@Search.searchable : true@Metadata.allowExtensions: truedefineview C_ChmlCmplncInfoMntr
--Select data from basic view of chemical compliance information
asselectfrom I_ChmlCmplncInfo as ChemicalCompliance
--Additional Information
--Product Information
association [0..1] to I_ProductGroup_2 as _ProductGroupVH on $projection.MaterialGroup = _ProductGroupVH.ProductGroup
association [0..1] to I_ProductHierarchy as _ProductHierarchyVH on $projection.producthierarchy = _ProductHierarchyVH.ProductHierarchy
association [0..1] to I_Division as _DivisionVH on $projection.division = _DivisionVH.Division
association [0..1] to I_ExtProdGrp as _ExternalProdGrpVH on $projection.ExternalProductGroup = _ExternalProdGrpVH.ExternalProductGroup
association [0..1] to C_ChmlCmplncPrimMatl as _MaterialDataPrimary on ChemicalCompliance.ChmlCmplncInfoUUID = _MaterialDataPrimary.ChmlCmplncInfoUUID
--Overall Composition Status
association [0..1] to P_ChmlCompositionOverallStatus as _ChmlCompositionOverallStatus on ChemicalCompliance.ChmlCmplncInfoUUID = _ChmlCompositionOverallStatus.ChmlCmplncInfoUUID
association [0..1] to I_ChmlCmpstnOverallStatusVH as _OverallStatusVH on $projection.ChmlCompositionStatus = _OverallStatusVH.ChmlCmpstnOverallStatus
--Counter of purposes and compliance requirements
association [0..1] to P_ChmlCmplncPrpsRqmtPmaCT as _PurposeRequirementPmaCounter on ChemicalCompliance.ChmlCmplncInfoUUID = _PurposeRequirementPmaCounter.ChmlCmplncInfoUUID
association [0..1] to P_ChmlCmplncPrpsRqmtDgCT as _PurposeRequirementDgCounter on ChemicalCompliance.ChmlCmplncInfoUUID = _PurposeRequirementDgCounter.ChmlCmplncInfoUUID
association [0..1] to P_ChmlCmplncPrpsRqmtSdsCT as _PurposeRequirementSdsCounter on ChemicalCompliance.ChmlCmplncInfoUUID = _PurposeRequirementSdsCounter.ChmlCmplncInfoUUID
association [0..1] to P_ChmlCmplncPrpsAssgmtCt as _PurposeCounter on ChemicalCompliance.ChmlCmplncInfoUUID = _PurposeCounter.ChemicalComplianceUUID
association [0..1] to P_ChmlCmplncReqUnprocessedCT as _RequestCounter on ChemicalCompliance.ChmlCmplncInfoUUID = _RequestCounter.ChmlCmplncProdUUID
association [0..1] to I_ChmlCmplncMktKeyFig as _MarketKeyFig on ChemicalCompliance.ChmlCmplncInfoUUID = _MarketKeyFig.ChmlCmplncInfoUUID
--Link to phrase texts (needed for sorting and filtering)
association [0..1] to I_ProdCmplncPhrsTxtWthFallback as _ProdCatztnPhrs on $projection.ChmlCmplncProdCatztnPhrsUUID = _ProdCatztnPhrs.ProdCmplncPhrsUUID
--Chemical Compliance Identifier
association [0..1] to C_ChmlCmplncInfoIdfrSearch as _Identifier on $projection.ChmlCmplncInfoUUID = _Identifier.ChmlCmplncIdfrParentUUID
and _Identifier.ChmlCmplncIdfrParentType = 'CCI'
association [0..1] to C_ChmlCmplncInfoQuickView as _ChmlCmplncInfoQuickVw on $projection.Specification = _ChmlCmplncInfoQuickVw.Specification
{
--UUID of active chemical compliance information
@ObjectModel.readOnly: truekey ChemicalCompliance.ChmlCmplncInfoUUID,
--Material/Product number
@ObjectModel.readOnly: true@ObjectModel.text.element: ['ProductName']@Consumption: {
valueHelpDefinition: [{
entity: {name: 'I_ProductVH', element: 'Product'} }]
}
key ChemicalCompliance._MaterialAssignment.Material as Material,
--UUID of active chemical compliance information
@ObjectModel.readOnly: true
ChemicalCompliance.ChmlCmplncInfoUUID as ChmlCmplncInfoNavgnLink,
--Material name or internal name
@ObjectModel.readOnly: true
_MaterialDataPrimary.ChmlCmplncInfoCombinedName as ChmlCmplncInfoCombinedName,
--Material name
@ObjectModel.readOnly: true
ChemicalCompliance._MaterialAssignment._Product._Text[1: Language = $session.system_language ].ProductName as ProductName,
--Internal name of chemical compliance information
@ObjectModel.readOnly: true@Semantics.text:true
ChemicalCompliance.ChmlCmplncInternalName,
--Product group@ObjectModel:
{
readOnly: true,
text.element: [ 'MaterialGroupName' ],
foreignKey.association: '_ProductGroupVH'
}
ChemicalCompliance._MaterialAssignment._Product.ProductGroup as MaterialGroup,
--Material Group Name
@ObjectModel.readOnly: true
ChemicalCompliance._MaterialAssignment._Product._ProductGroup._Text[1: Language = $session.system_language ].MaterialGroupName as MaterialGroupName,
--Overall composition status
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCompositionStatusName' ],
foreignKey.association: '_OverallStatusVH'
}cast( _ChmlCompositionOverallStatus.ChmlCompositionStatus as ehfnd_cci_ccmps_overall_status preserving type ) as ChmlCompositionStatus,
--Description of overall composition status
@ObjectModel.readOnly: true
_ChmlCompositionOverallStatus._StatusText._Text[1: Language = $session.system_language ].ChmlCmpstnOverallStatusName as ChmlCompositionStatusName,
--Criticality of overall composition status
@ObjectModel.readOnly: true
_ChmlCompositionOverallStatus.ChmlCompositionStsCriticality,
--Responsible unit of PSS
@ObjectModel.readOnly: true@Consumption.hidden: true
ChemicalCompliance.ProdStewardshipRespUnit,
--Number of Assigned PMA Requirments
@ObjectModel.readOnly: truecast( _PurposeRequirementPmaCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_ma ) as NmbrOfChmlCmplncMktRqmts,
--Number of Assigned DG Requirments
@ObjectModel.readOnly: truecast( _PurposeRequirementDgCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_dg ) as NmbrOfChmlCmplncDngrsGdsRqmts,
--Number of Assigned DG Requirments
@ObjectModel.readOnly: truecast( _PurposeRequirementSdsCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_sds ) as NmbrOfChmlCmplncDataShtRqmts,
--Number of Coverages
@ObjectModel.readOnly: truecast( _MarketKeyFig.NmbrOfChmlCmplncMktCountries as ehfnd_cci_number_of_cvrg ) as NmbrOfChmlCmplncProcdMktCvrgs,
--Number of Purposes
@ObjectModel.readOnly: truecast( _PurposeCounter.NmbrOfChmlCmplncPurposes as ehfnd_cci_number_of_prps ) as NmbrOfChmlCmplncPurposes,
--Number of Compliance Requests
@ObjectModel.readOnly: truecast( _RequestCounter.recordCount as ehfnd_cci_number_of_req ) as NmbrOfUnprocessedChmlCmplncReq,
--Product Hierarchy
@ObjectModel:
{
readOnly: true,
text.element: [ 'ProductHierarchyText' ]
}
ChemicalCompliance._MaterialAssignment._Product.ProductHierarchy,
ChemicalCompliance._MaterialAssignment._Product._ProductHierarchyText[1: Language = $session.system_language ].ProductHierarchyText,
--Product Division
@ObjectModel:
{
readOnly: true,
text.element: [ 'DivisionName' ]
}
ChemicalCompliance._MaterialAssignment._Product.Division,
ChemicalCompliance._MaterialAssignment._Product._DivisionText[1: Language = $session.system_language ].DivisionName,
--External product group@ObjectModel:
{
readOnly: true,
text.element: [ 'ExternalProductGroupName' ],
foreignKey.association: '_ExternalProdGrpVH'
}cast( ChemicalCompliance._MaterialAssignment._Product.ExternalProductGroup as ehfnd_ext_material_group_l ) as ExternalProductGroup,
--Description of External Product Group@ObjectModel.readOnly: true
ChemicalCompliance._MaterialAssignment._Product._ExternalProductGroup._Text[1: Language = $session.system_language ].ExternalProductGroupName,
--Specification
@ObjectModel:
{
readOnly: true,
text.element: [ 'ChmlCmplncInternalName' ],
foreignKey.association: '_ChmlCmplncInfoQuickVw'
}
ChemicalCompliance.Specification as Specification,
@Consumption: {
valueHelpDefinition: [{
entity: {name: 'C_ProdCmplncPhrsExtraSmallVH', element: 'ProdCmplncPhrsUUID'},
additionalBinding: [
{ localConstant: 'EHFND_CHM_PROD_CATZTNPHRS_UUID', element: 'ProdCmplncPhrsEnabledField', usage: #FILTER }]
}]
}
ChemicalCompliance.ChmlCmplncProdCatztnPhrsUUID as ChmlCmplncProdCatztnPhrsUUID,
@ObjectModel.readOnly: true@ObjectModel:{
virtualElement: true,
virtualElementCalculatedBy: 'ABAP:CL_EHFND_CCI_PRODCAT_PHRS_EXIT',
filter.transformedBy: 'ABAP:CL_EHFND_CCI_PRODCAT_PHRS_EXIT',
sort.transformedBy: 'ABAP:CL_EHFND_CCI_PRODCAT_PHRS_EXIT'
}cast('' as ehfnd_chm_prod_catztnphrs_txt ) as ChmlCmplncProdCatztnPhrs1Text,
--R&D Indicator: Product under Research
@ObjectModel.readOnly: true
ChemicalCompliance.ChmlCmplncProdIsResearched as ChmlCmplncProdIsResearched,
-- Safety Data Sheet Required
cast(casewhen MatlIsNotProdSafetyRlvt = 'X'
then ''
else 'X'
endas ehfnd_cci_sds_is_required preserving type ) as SftyDataShtIsRequired,
ChemicalCompliance.MatlIsMultiComponentProduct as MatlIsMultiComponentProduct,
-- indicators to disable essential checks
cast(MatlIsNotProdSafetyRlvt as ehfnd_cci_sds_is_required preserving type ) as MatlIsNotProdSafetyRlvt,
ChemicalCompliance.ChmlCmplncInfoType,
ChemicalCompliance.MaterialIsSold as MaterialIsSold,
ChemicalCompliance.MaterialIsTransported as MaterialIsTransported,
ChemicalCompliance.MaterialIsProduced as MaterialIsProduced,
/*Association*/
_ProductGroupVH,
ChemicalCompliance._RespUnitForProductStewardship,
_ProductHierarchyVH,
_DivisionVH,
_ExternalProdGrpVH,
_OverallStatusVH,
_ProdCatztnPhrs, --Phrase association used for filterin SADL exit
_Identifier._ChmlCmplncIdfrValue,
_Identifier.ChmlCmplncIdfrUUID,
_Identifier,
_ChmlCmplncInfoQuickVw
}
where
ChemicalCompliance.ChmlCmplncInfoType = 'BU'
and(
ChemicalCompliance.MaterialIsSold = 'X'
or ChemicalCompliance.MaterialIsProduced = 'X'
// or ChemicalCompliance.MaterialIsTransported = 'X' -- No longer a mandatory role - PSSPROD-3445
)