C_ChmlCmplncInfoProdMntr is a Consumption CDS View that provides data about "Packaged Product" in SAP S/4HANA. It reads from 1 data source (I_ChmlCmplncInfo) and exposes 23 fields. It has 6 associations to related views.
//Manage Basic Compliance Data - Packaged Product (Monitor)
@EndUserText.label: 'Packaged Product'
@AbapCatalog:
{
sqlViewName: 'CCCINFOPPMNTR',
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' ]
}
@Metadata.allowExtensions: true@Search.searchable : truedefineview C_ChmlCmplncInfoProdMntr
--Select data from basic view of chemical compliance information
asselectfrom I_ChmlCmplncInfo as ChemicalCompliance
--Additional Information
--Cardinality is okay as one PP has only one UP assigned1
association [0..1] to I_ChmlCmplncProdAssgmt as _ChmlCmplncProdAssgmt on $projection.ChmlCmplncInfoUUID = _ChmlCmplncProdAssgmt.ChmlCmplncInfoUUID
--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
{
--UUID of active chemical compliance information
@ObjectModel.readOnly: truekey ChemicalCompliance.ChmlCmplncInfoUUID,
--Material/Product number
@ObjectModel.readOnly: true@Consumption: {
valueHelpDefinition: [{
entity: {name: 'I_ProductVH', element: 'Product'} }]
}
key ChemicalCompliance._MaterialAssignment.Material as Material,
--UUID of Unpackaged Product - Used for Navigation
@ObjectModel.readOnly: true
_ChmlCmplncProdAssgmt.ChmlCmplncProdUUID 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
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_2._ProductGroupText[1: Language = $session.system_language ].ProductGroupName as MaterialGroupName,
--Overall composition status
// @UI:
// {
// textArrangement: #TEXT_ONLY
// }
// @ObjectModel:
// {
// readOnly: true,
// text.element: [ 'ChmlCompositionStatusName' ],
// foreignKey.association: '_OverallStatusVH'
// }
// @Consumption.filter:
// {
// multipleSelections: true// }
// cast( _ChmlCompositionOverallStatus.ChmlCompositionStatus as ehfnd_cci_ccmps_overall_status preserving type ) as ChmlCompositionStatus,
//
// --Description of overall composition status
// @UI.hidden: true// @ObjectModel.readOnly: true// _ChmlCompositionOverallStatus._StatusText._Text[1: Language = $session.system_language ].ChmlCmpstnOverallStatusName as ChmlCompositionStatusName,
//
// --Criticality of overall composition status
// @UI.hidden: true// @ObjectModel.readOnly: true// _ChmlCompositionOverallStatus.ChmlCompositionStsCriticality,
--Responsible unit of PSS
@ObjectModel.readOnly: true@Consumption.hidden: true
ChemicalCompliance.ProdStewardshipRespUnit,
--Number of Assigned PMA Requirments
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// cast( _PurposeRequirementPmaCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_ma ) as NmbrOfChmlCmplncMktRqmts,
//
// --Number of Assigned DG Requirments
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// cast( _PurposeRequirementDgCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_dg ) as NmbrOfChmlCmplncDngrsGdsRqmts,
//
// --Number of Assigned DG Requirments
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// cast( _PurposeRequirementSdsCounter.NmbrOfCmplRqRslts as ehfnd_cci_number_of_cr_sds ) as NmbrOfChmlCmplncDataShtRqmts,
//
// --Number of Coverages
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// @UI:
// {
// lineItem:
// {
// position: 70
// }
// }
// cast( _MarketKeyFig.NmbrOfChmlCmplncMktCountries as ehfnd_cci_number_of_cvrg ) as NmbrOfChmlCmplncProcdMktCvrgs,
//
// --Number of Purposes
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// @UI:
// {
// lineItem:
// {
// position: 80
// }
// }
// cast( _PurposeCounter.NmbrOfChmlCmplncPurposes as ehfnd_cci_number_of_prps ) as NmbrOfChmlCmplncPurposes,
//
// --Number of Compliance Requests
// @ObjectModel.readOnly: true// @Consumption.filter.hidden: true// cast( _RequestCounter.recordCount as ehfnd_cci_number_of_req ) as NmbrOfUnprocessedChmlCmplncReq,
--Product Hierarchy
@ObjectModel:
{
readOnly: true,
// foreignKey.association: '_ProductHierarchyVH'
text.element: [ 'ProductHierarchyText' ]
}
ChemicalCompliance._MaterialAssignment._Product.ProductHierarchy,
ChemicalCompliance._MaterialAssignment._Product._ProductHierarchyText[1: Language = $session.system_language ].ProductHierarchyText,
--Product Division
@ObjectModel:
{
readOnly: true,
// foreignKey.association: '_DivisionVH',
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
ChemicalCompliance.Specification as Specification,
--R&D Indicator: Product under Research
@ObjectModel.readOnly: true
ChemicalCompliance.ChmlCmplncProdIsResearched,
ChemicalCompliance.ChmlCmplncInfoType,
ChemicalCompliance.MaterialIsSold as MaterialIsSold,
ChemicalCompliance.MaterialIsTransported as MaterialIsTransported,
ChemicalCompliance.MaterialIsProduced as MaterialIsProduced,
/*Association*///Associationwith@Search annotation includes the fields from packaged product into the search
// @Search.defaultSearchElement: true// _PackagedProdAssgmt,
@Consumption.filter.hidden: true
_ProductGroupVH,
@Consumption.filter.hidden: true
_RespUnitForProductStewardship,
@Consumption.filter.hidden: true
_ProductHierarchyVH,
@Consumption.filter.hidden: true
_DivisionVH,
@Consumption.filter.hidden: true
_ExternalProdGrpVH
}
where
ChemicalCompliance.ChmlCmplncInfoType = 'PP'
and(
ChemicalCompliance.MaterialIsSold = 'X'
or ChemicalCompliance.MaterialIsProduced = 'X'
// or ChemicalCompliance.MaterialIsTransported = 'X' -- No longer a mandatory role - PSSPROD-3445
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"C_CHMLCMPLNCPRIMMATL",
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCMATLASSGMT",
"I_CHMLCMPLNCPRODASSGMT",
"I_DIVISIONTEXT",
"I_EXTPRODGRP",
"I_EXTPRODGRPTEXT",
"I_PRODUCT",
"I_PRODUCTGROUPTEXT_2",
"I_PRODUCTGROUP_2",
"I_PRODUCTHIERARCHYTEXT",
"I_PRODUCTTEXT"
],
"ASSOCIATED":
[
"C_CHMLCMPLNCPRIMMATL",
"I_CHMLCMPLNCPRODASSGMT",
"I_DIVISION",
"I_EXTPRODGRP",
"I_PRODUCTGROUP_2",
"I_PRODUCTHIERARCHY",
"I_RESPONSIBLEUNIT"
],
"BASE":
[
"I_CHMLCMPLNCINFO"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/