@AbapCatalog: {
sqlViewName: 'IEHSAMNSFORACT',
compiler.compareFilter: true,
preserveKey: true
}
@AccessControl.authorizationCheck: #PRIVILEGED_ONLY
@EndUserText.label: 'Amounts for Activity'
@ObjectModel.usageType:{ serviceQuality: #D,
sizeCategory: #XL,
dataClass: #MIXED }
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view I_EHSAmountsForActivity
// DATA COLLECTIONS
as select from I_EHSAmountRoot as EHSAmountRoot
inner join I_DataCollectionRootBasic as DataCollectionRoot on EHSAmountRoot.EHSAmountSourceUUID = DataCollectionRoot.DataCollectionUUID
association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType
{
key EHSAmountRoot.EHSAmountUUID,
EHSAmountRoot.EHSAmountSourceUUID,
cast( EHSAmountRoot.EHSAmountSourceType as ehfnd_amns_src_type_nc preserving type ) as EHSAmountSourceType,
cast( EHSAmountRoot.EHSSubjectType as ehenv_amns_qry_subj_type preserving type ) as EHSSubjectType,
EHSAmountRoot.EHSSubjectUUID,
EHSAmountRoot.EHSAmountUTCDateTime,
cast( EHSAmountRoot.EHSAmountValue as ehfnd_amns_value_nc preserving type ) as EHSAmountValue,
cast( EHSAmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
cast( EHSAmountRoot.UnitOfMeasureDimension as ehfnd_unit_dimension_nc preserving type ) as UnitOfMeasureDimension,
EHSAmountRoot.EHSAmountIsMissing,
EHSAmountRoot.EHSAmountIsFaulty,
EHSAmountRoot.EHSAmountIsNotAvailable,
EHSAmountRoot.EHSAmountIsReplaced,
EHSAmountRoot.EHSAmountDeviationID,
EHSAmountRoot.EHSAmountHasWarning,
EHSAmountRoot.EHSAmountIsPreliminary,
EHSAmountRoot.EHSAmountStatus,
EHSAmountRoot.EHSAmountExternalSource,
cast( EHSAmountRoot.EHSAmtOutOfPrecisenessOptr as ehfnd_amns_outofprecis_op_nc preserving type ) as EHSAmtOutOfPrecisenessOptr,
EHSAmountRoot.Note,
cast (case
when EHSAmountRoot.EHSAmountIsFaulty = 'X' then '02'
when EHSAmountRoot.EHSAmountHasWarning = 'X' then '03'
when EHSAmountRoot.EHSAmountIsMissing = 'X' then '04'
when EHSAmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
else ''
end as ehenv_amns_qry_issue_type preserving type ) as EHSAmountIssueType,
// Data Collection fields
DataCollectionRoot.DataCollectionUUID as EHSComplianceScenActivityUUID,
DataCollectionRoot.DataCollectionID as EHSComplianceScenActivityID,
DataCollectionRoot.DataCollectionName as EHSComplianceScenActivityName,
DataCollectionRoot.DataCollectionTitle as EHSComplianceScenActivityTitle,
cast( DataCollectionRoot.DataUsagePeriodicity as ehenv_mdef_period_code_nc preserving type ) as DataUsagePeriodicity,
DataCollectionRoot.EHSLocationUUID,
// Associations
EHSAmountRoot._EHSAmountSourceType,
EHSAmountRoot._EHSAmountStatus,
EHSAmountRoot._UnitText,
DataCollectionRoot._EHSLocation,
DataCollectionRoot._EHSDataPeriod,
_EHSAmountIssueTypeText
}
where
// Only Data Collections
EHSAmountRoot.EHSAmountSourceType = '02'
// CALCULATION RESULTS
union select from I_EHSAmountRoot as EHSAmountRoot
inner join I_CalcDefResultHeader as CalcDefResultHeader on EHSAmountRoot.EHSAmountSourceUUID = CalcDefResultHeader.CalculationResultHeaderUUID
association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType
{
key EHSAmountRoot.EHSAmountUUID,
EHSAmountRoot.EHSAmountSourceUUID,
cast( EHSAmountRoot.EHSAmountSourceType as ehfnd_amns_src_type_nc preserving type ) as EHSAmountSourceType,
cast( EHSAmountRoot.EHSSubjectType as ehenv_amns_qry_subj_type preserving type ) as EHSSubjectType,
EHSAmountRoot.EHSSubjectUUID,
EHSAmountRoot.EHSAmountUTCDateTime,
cast( EHSAmountRoot.EHSAmountValue as ehfnd_amns_value_nc preserving type ) as EHSAmountValue,
cast( EHSAmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
cast( EHSAmountRoot.UnitOfMeasureDimension as ehfnd_unit_dimension_nc preserving type ) as UnitOfMeasureDimension,
EHSAmountRoot.EHSAmountIsMissing,
EHSAmountRoot.EHSAmountIsFaulty,
EHSAmountRoot.EHSAmountIsNotAvailable,
EHSAmountRoot.EHSAmountIsReplaced,
EHSAmountRoot.EHSAmountDeviationID,
EHSAmountRoot.EHSAmountHasWarning,
EHSAmountRoot.EHSAmountIsPreliminary,
EHSAmountRoot.EHSAmountStatus,
EHSAmountRoot.EHSAmountExternalSource,
cast( EHSAmountRoot.EHSAmtOutOfPrecisenessOptr as ehfnd_amns_outofprecis_op_nc preserving type ) as EHSAmtOutOfPrecisenessOptr,
EHSAmountRoot.Note,
cast (case
when EHSAmountRoot.EHSAmountIsFaulty = 'X' then '02'
when EHSAmountRoot.EHSAmountHasWarning = 'X' then '03'
when EHSAmountRoot.EHSAmountIsMissing = 'X' then '04'
when EHSAmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
else ''
end as ehenv_amns_qry_issue_type preserving type ) as EHSAmountIssueType,
// Calculation Result fields
CalcDefResultHeader.CalculationResultHeaderUUID as EHSComplianceScenActivityUUID,
CalcDefResultHeader.CalculationResultHeaderID as EHSComplianceScenActivityID,
CalcDefResultHeader.EHSCalculationSetupName as EHSComplianceScenActivityName,
CalcDefResultHeader.CalculationResultHeaderTitle as EHSComplianceScenActivityTitle,
cast( CalcDefResultHeader.DataUsagePeriodicity as ehenv_mdef_period_code_nc preserving type ) as DataUsagePeriodicity,
CalcDefResultHeader.EHSLocationUUID,
// Associations
EHSAmountRoot._EHSAmountSourceType,
EHSAmountRoot._EHSAmountStatus,
EHSAmountRoot._UnitText,
CalcDefResultHeader._EHSLocation,
CalcDefResultHeader._EHSDataPeriod,
_EHSAmountIssueTypeText
}
where
// Only Calculation Results
EHSAmountRoot.EHSAmountSourceType = '04'
// SAMPLINGS
union select from I_EHSAmountRoot as EHSAmountRoot
inner join I_SamplingReference as SamplingReference on EHSAmountRoot.EHSAmountSourceUUID = SamplingReference.SamplingUUID
inner join I_SamplingHeader as SamplingHeader on EHSAmountRoot.EHSAmountSubjComponentUUID = SamplingHeader.SamplingAnalyteUUID
and SamplingReference.SamplingDefinitionUUID = SamplingHeader.SamplingDefinitionUUID
inner join I_SamplingDefinitionRoot as SamplingDefinitionRoot on SamplingReference.SamplingDefinitionUUID = SamplingDefinitionRoot.SamplingDefinitionUUID
association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType
{
key EHSAmountRoot.EHSAmountUUID,
EHSAmountRoot.EHSAmountSourceUUID,
cast( EHSAmountRoot.EHSAmountSourceType as ehfnd_amns_src_type_nc preserving type ) as EHSAmountSourceType,
cast( EHSAmountRoot.EHSSubjectType as ehenv_amns_qry_subj_type preserving type ) as EHSSubjectType,
EHSAmountRoot.EHSSubjectUUID,
EHSAmountRoot.EHSAmountUTCDateTime,
cast( EHSAmountRoot.EHSAmountValue as ehfnd_amns_value_nc preserving type ) as EHSAmountValue,
cast( EHSAmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
cast( EHSAmountRoot.UnitOfMeasureDimension as ehfnd_unit_dimension_nc preserving type ) as UnitOfMeasureDimension,
EHSAmountRoot.EHSAmountIsMissing,
EHSAmountRoot.EHSAmountIsFaulty,
EHSAmountRoot.EHSAmountIsNotAvailable,
EHSAmountRoot.EHSAmountIsReplaced,
EHSAmountRoot.EHSAmountDeviationID,
EHSAmountRoot.EHSAmountHasWarning,
EHSAmountRoot.EHSAmountIsPreliminary,
EHSAmountRoot.EHSAmountStatus,
EHSAmountRoot.EHSAmountExternalSource,
cast( EHSAmountRoot.EHSAmtOutOfPrecisenessOptr as ehfnd_amns_outofprecis_op_nc preserving type ) as EHSAmtOutOfPrecisenessOptr,
EHSAmountRoot.Note,
cast (case
when EHSAmountRoot.EHSAmountIsFaulty = 'X' then '02'
when EHSAmountRoot.EHSAmountHasWarning = 'X' then '03'
when EHSAmountRoot.EHSAmountIsMissing = 'X' then '04'
when EHSAmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
else ''
end as ehenv_amns_qry_issue_type preserving type ) as EHSAmountIssueType,
// Sampling fields
SamplingHeader.SamplingHeaderUUID as EHSComplianceScenActivityUUID,
SamplingHeader.EHSSamplingHeaderID as EHSComplianceScenActivityID,
SamplingDefinitionRoot.SamplingDefinitionName as EHSComplianceScenActivityName,
SamplingHeader.SamplingHeaderTitle as EHSComplianceScenActivityTitle,
cast( SamplingDefinitionRoot.DataUsagePeriodicity as ehenv_mdef_period_code_nc preserving type ) as DataUsagePeriodicity,
SamplingDefinitionRoot.EHSLocationUUID,
// Associations
EHSAmountRoot._EHSAmountSourceType,
EHSAmountRoot._EHSAmountStatus,
EHSAmountRoot._UnitText,
SamplingDefinitionRoot._EHSLocation,
SamplingDefinitionRoot._EHSDataPeriod,
_EHSAmountIssueTypeText
}
where
// Only Samplings
EHSAmountRoot.EHSAmountSourceType = '05'
// LOCATION AGGREGATIONS
union select from I_EHSAmountRoot as EHSAmountRoot
inner join I_LocAggregationRoot as LocAggregationRoot on EHSAmountRoot.EHSAmountSourceUUID = LocAggregationRoot.LocAggregationUUID
association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType
{
key EHSAmountRoot.EHSAmountUUID,
EHSAmountRoot.EHSAmountSourceUUID,
cast( EHSAmountRoot.EHSAmountSourceType as ehfnd_amns_src_type_nc preserving type ) as EHSAmountSourceType,
cast( EHSAmountRoot.EHSSubjectType as ehenv_amns_qry_subj_type preserving type ) as EHSSubjectType,
EHSAmountRoot.EHSSubjectUUID,
EHSAmountRoot.EHSAmountUTCDateTime,
cast( EHSAmountRoot.EHSAmountValue as ehfnd_amns_value_nc preserving type ) as EHSAmountValue,
cast( EHSAmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
cast( EHSAmountRoot.UnitOfMeasureDimension as ehfnd_unit_dimension_nc preserving type ) as UnitOfMeasureDimension,
EHSAmountRoot.EHSAmountIsMissing,
EHSAmountRoot.EHSAmountIsFaulty,
EHSAmountRoot.EHSAmountIsNotAvailable,
EHSAmountRoot.EHSAmountIsReplaced,
EHSAmountRoot.EHSAmountDeviationID,
EHSAmountRoot.EHSAmountHasWarning,
EHSAmountRoot.EHSAmountIsPreliminary,
EHSAmountRoot.EHSAmountStatus,
EHSAmountRoot.EHSAmountExternalSource,
cast( EHSAmountRoot.EHSAmtOutOfPrecisenessOptr as ehfnd_amns_outofprecis_op_nc preserving type ) as EHSAmtOutOfPrecisenessOptr,
EHSAmountRoot.Note,
cast (case
when EHSAmountRoot.EHSAmountIsFaulty = 'X' then '02'
when EHSAmountRoot.EHSAmountHasWarning = 'X' then '03'
when EHSAmountRoot.EHSAmountIsMissing = 'X' then '04'
when EHSAmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
else ''
end as ehenv_amns_qry_issue_type preserving type ) as EHSAmountIssueType,
// Location Aggregation fields
LocAggregationRoot.LocAggregationUUID as EHSComplianceScenActivityUUID,
LocAggregationRoot.LocAggregationID as EHSComplianceScenActivityID,
LocAggregationRoot.LocAggregationName as EHSComplianceScenActivityName,
LocAggregationRoot.LocAggregationTitle as EHSComplianceScenActivityTitle,
cast( LocAggregationRoot.DataUsagePeriodicity as ehenv_mdef_period_code_nc preserving type ) as DataUsagePeriodicity,
LocAggregationRoot.EHSLocationUUID,
// Associations
EHSAmountRoot._EHSAmountSourceType,
EHSAmountRoot._EHSAmountStatus,
EHSAmountRoot._UnitText,
LocAggregationRoot._EHSLocation,
LocAggregationRoot._EHSDataPeriod,
_EHSAmountIssueTypeText
}
where
// Only Location Aggregations
EHSAmountRoot.EHSAmountSourceType = '06'
// Emitted substances
union select from I_EHSAmountRoot as EHSAmountRoot
inner join I_EHSEmittedSubstanceDataSet as EHSEmittedSubstanceDataSet on EHSAmountRoot.EHSAmountSourceUUID = EHSEmittedSubstanceDataSet.EHSEmittedSubstDataSetUUID
inner join I_EHSEmittedSubstance as EHSEmittedSubstance on EHSEmittedSubstance.EHSEmittedSubstanceUUID = EHSEmittedSubstanceDataSet.EHSEmittedSubstanceUUID
association [0..*] to I_EHSAmountIssueTypeText as _EHSAmountIssueTypeText on $projection.EHSAmountIssueType = _EHSAmountIssueTypeText.EHSAmountIssueType
association [0..1] to I_EHSDataPeriod as _EHSDataPeriod on $projection.DataUsagePeriodicity = _EHSDataPeriod.EHSDataPeriod
{
key EHSAmountRoot.EHSAmountUUID,
EHSAmountRoot.EHSAmountSourceUUID,
cast( EHSAmountRoot.EHSAmountSourceType as ehfnd_amns_src_type_nc preserving type ) as EHSAmountSourceType,
cast( EHSAmountRoot.EHSSubjectType as ehenv_amns_qry_subj_type preserving type ) as EHSSubjectType,
EHSAmountRoot.EHSSubjectUUID,
EHSAmountRoot.EHSAmountUTCDateTime,
cast( EHSAmountRoot.EHSAmountValue as ehfnd_amns_value_nc preserving type ) as EHSAmountValue,
cast( EHSAmountRoot.UnitOfMeasure as ehfnd_unit_code_nce preserving type ) as UnitOfMeasure,
cast( EHSAmountRoot.UnitOfMeasureDimension as ehfnd_unit_dimension_nc preserving type ) as UnitOfMeasureDimension,
EHSAmountRoot.EHSAmountIsMissing,
EHSAmountRoot.EHSAmountIsFaulty,
EHSAmountRoot.EHSAmountIsNotAvailable,
EHSAmountRoot.EHSAmountIsReplaced,
EHSAmountRoot.EHSAmountDeviationID,
EHSAmountRoot.EHSAmountHasWarning,
EHSAmountRoot.EHSAmountIsPreliminary,
EHSAmountRoot.EHSAmountStatus,
EHSAmountRoot.EHSAmountExternalSource,
cast( EHSAmountRoot.EHSAmtOutOfPrecisenessOptr as ehfnd_amns_outofprecis_op_nc preserving type ) as EHSAmtOutOfPrecisenessOptr,
EHSAmountRoot.Note,
cast (case
when EHSAmountRoot.EHSAmountIsFaulty = 'X' then '02'
when EHSAmountRoot.EHSAmountHasWarning = 'X' then '03'
when EHSAmountRoot.EHSAmountIsMissing = 'X' then '04'
when EHSAmountRoot.EHSAmountIsNotAvailable = 'X' then '05'
else ''
end as ehenv_amns_qry_issue_type preserving type ) as EHSAmountIssueType,
// Location Aggregation fields
EHSEmittedSubstanceDataSet.EHSEmittedSubstDataSetUUID as EHSComplianceScenActivityUUID,
EHSEmittedSubstanceDataSet.EHSEmittedSubstDataSetID as EHSComplianceScenActivityID,
EHSEmittedSubstance.EHSEmittedSubstName as EHSComplianceScenActivityName,
EHSEmittedSubstanceDataSet.EHSEmittedSubstDataSetTitle as EHSComplianceScenActivityTitle,
cast( '003' as ehenv_mdef_period_code_nc ) as DataUsagePeriodicity,
EHSEmittedSubstance.EHSLocationUUID as EHSLocationUUID,
// Associations
EHSAmountRoot._EHSAmountSourceType,
EHSAmountRoot._EHSAmountStatus,
EHSAmountRoot._UnitText,
EHSEmittedSubstance._EHSLocation,
_EHSDataPeriod,
_EHSAmountIssueTypeText
}
where
// Only Emiited Substances
EHSAmountRoot.EHSAmountSourceType = '08'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALCDEFRESULTHEADER",
"I_DATACOLLECTIONROOTBASIC",
"I_EHSAMOUNTROOT",
"I_EHSEMITTEDSUBSTANCE",
"I_EHSEMITTEDSUBSTANCEDATASET",
"I_LOCAGGREGATIONROOT",
"I_SAMPLINGDEFINITIONROOT",
"I_SAMPLINGHEADER",
"I_SAMPLINGREFERENCE"
],
"ASSOCIATED":
[
"I_EHSAMOUNTISSUETYPETEXT",
"I_EHSAMOUNTSOURCETYPE",
"I_EHSAMOUNTSTATUS",
"I_EHSDATAPERIOD",
"I_EHSLOCATIONREVISION",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_DATACOLLECTIONROOTBASIC",
"I_EHSAMOUNTROOT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/