//@EndUserText.label: 'Count Compliance Requirements of all Purposes per Product'
@AbapCatalog:
{
sqlViewName: 'PCCPRPSCRQSDSCT',
compiler.compareFilter: true
}
@AccessControl:
{
authorizationCheck: #NOT_REQUIRED
}
--Client Handling of the view
@ClientHandling.algorithm: #SESSION_VARIABLE
--VDM view type
@VDM.viewType: #CONSUMPTION
@VDM.private: true
@ObjectModel.representativeKey: 'ChmlCmplncInfoUUID'
define view P_ChmlCmplncPrpsRqmtSdsCT
--Select data from basic view 'Chemical compliance information'
as select from I_ChmlCmplncInfo as ChmlCmplInfo
--Join master table
--purpose assignment in chemical compliance information
join I_ChmlCmplncPrpsAssgmt as PurposeAssignment on ChmlCmplInfo.ChmlCmplncInfoUUID = PurposeAssignment.ChmlCmplncInfoUUID
--Purpose
join I_CmplncPrpsRqmtAssgmt as PrpsCRAssgnmt on PrpsCRAssgnmt.CmplncPrpsUUID = PurposeAssignment.CmplncPrpsUUID
--Compliance Requirements
join I_CmplRqVers as CRVersion on PrpsCRAssgnmt.CmplRqUUID = CRVersion.CmplRqUUID
--Compliance Requirement Results IP and RE
inner join I_CmplRqRslt as CRR on CRR.ChmlCmplncInfoUUID = ChmlCmplInfo.ChmlCmplncInfoUUID
and CRR.CmplRqVersUUID = CRVersion.CmplRqVersUUID
and ( CRR.CmplRqRsltProcessingStatus = 'IP'
or CRR.CmplRqRsltProcessingStatus = 'RE' )
{
--UUID of chemical compliance information
key ChmlCmplInfo.ChmlCmplncInfoUUID,
--Count compliance requirements
cast( count( distinct CRVersion.CmplRqUUID ) as ehfnd_cci_number_of_cr_sds ) as NmbrOfCmplRqRslts
}
where
CRVersion.CmplRqApplicationComponent = 'SDS'
and PrpsCRAssgnmt.CmplncPrpsRqmtAssgmtIsObslt = ''
group by
ChmlCmplInfo.ChmlCmplncInfoUUID
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHMLCMPLNCINFO",
"I_CHMLCMPLNCPRPSASSGMT",
"I_CMPLNCPRPSRQMTASSGMT",
"I_CMPLRQRSLT",
"I_CMPLRQVERS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/