@EndUserText.label: 'Amounts for Activities'
@VDM.viewType: #COMPOSITE
@AccessControl:
{
authorizationCheck: #NOT_REQUIRED,
// blocking of personal data not required (user data can not be blocked and no BP info from user exposed)
personalData.blocking: #NOT_REQUIRED
}
@AbapCatalog.sqlViewName: 'IENVAMNSFORACT'
@AbapCatalog.compiler.compareFilter: true
// Client handling by session
@ClientHandling.algorithm: #SESSION_VARIABLE
// used for BOBF Master Data Object
@ObjectModel.usageType:{ serviceQuality: #D, // < 15 msec
sizeCategory: #L, // < 10.000.000
dataClass: #MIXED }
define view I_EnvrmtAmountsForActivity
with parameters
@Consumption.hidden: true
@Environment.systemField: #SYSTEM_LANGUAGE
P_Language : sylangu
//================================================================================================================
//================================================================================================================
//================================================================================================================
///////DATA COLLECTIONS
as select from I_EHSAmountRoot as AmountRoot
inner join I_DataCollectionRoot as DataCollectionRoot on AmountRoot.EHSAmountSourceUUID = DataCollectionRoot.DataCollectionUUID
inner join t006a on t006a.msehi = AmountRoot.UnitOfMeasure
inner join P_DataCollDefPeriod as _DataCollDefPeriod on DataCollectionRoot.DataUsagePeriodicity = _DataCollDefPeriod.Period
and _DataCollDefPeriod.Language = $session.system_language
{
key AmountRoot.EHSAmountUUID,
AmountRoot.EHSAmountUTCDateTime,
AmountRoot.UnitOfMeasureName,
AmountRoot.UnitOfMeasure,
AmountRoot._UnitText,
AmountRoot.EHSAmountSourceType,
AmountRoot._EHSAmountSourceType,
AmountRoot._EHSAmountSourceType._Text[1: Language = $session.system_language].EHSAmountSourceTypeName,
AmountRoot.EHSSubjectType,
AmountRoot.EHSSubjectUUID,
AmountRoot.EHSAmountValue,
DataCollectionRoot.EHSLocationUUID,
// DataCollectionRoot._EHSLocation,
DataCollectionRoot.DataUsagePeriodicity,
DataCollectionRoot._EHSLocation._EHSLocationRevisionName[1: Language = $session.system_language].EHSLocationName as EHSLocationName,
_EHSLocation,
DataCollectionRoot._EHSLocation.Country,
// DataCollectionRoot._EHSLocation._Country._Text[1: Language = $session.system_language].CountryName,
_EHSLocation._Country,
DataCollectionRoot._EHSLocation.Plant,
DataCollectionRoot._EHSLocation._Plant.PlantName,
_EHSLocation._Plant,
DataCollectionRoot._EHSLocation.BusinessArea,
//DataCollectionRoot._EHSLocation._BusinessArea._Text[1: Language = $session.system_language].BusinessAreaName,
_EHSLocation._BusinessArea,
DataCollectionRoot._EHSLocation.Region,
_EHSLocation._Region,
DataCollectionRoot._EHSLocation.EHSLocationType,
// DataCollectionRoot._EHSLocation._EHSLocationType._Text[1: Language = $session.system_language].EHSLocationTypeText,
_EHSLocation._EHSLocationType,
_DataCollDefPeriod.DataPeriodName
}
where
//Only Data Collection
AmountRoot.EHSAmountSourceType = '02'
and
//With Approved Status!
AmountRoot.EHSAmountStatus = '02'
and
//Only Monthly Data Collections
DataCollectionRoot.DataUsagePeriodicity = '002'
//================================================================================================================
//================================================================================================================
//================================================================================================================
/////////CALCULATIONS
union select from I_EHSAmountRoot as AmountRoot
inner join I_CalcDefResultHeader as CalcDefResultHeader on AmountRoot.EHSAmountSourceUUID = CalcDefResultHeader.CalculationResultHeaderUUID
inner join t006a on t006a.msehi = AmountRoot.UnitOfMeasure
and t006a.spras = $parameters.P_Language
inner join P_CalcPeriod as _CalcPeriod on CalcDefResultHeader.DataUsagePeriodicity = _CalcPeriod.Period
and _CalcPeriod.Language = $session.system_language
{
key AmountRoot.EHSAmountUUID,
AmountRoot.EHSAmountUTCDateTime,
AmountRoot.UnitOfMeasureName,
AmountRoot.UnitOfMeasure,
AmountRoot._UnitText,
AmountRoot.EHSAmountSourceType,
AmountRoot._EHSAmountSourceType,
AmountRoot._EHSAmountSourceType._Text[1: Language = $session.system_language].EHSAmountSourceTypeName,
AmountRoot.EHSSubjectType,
AmountRoot.EHSSubjectUUID,
AmountRoot.EHSAmountValue,
CalcDefResultHeader.EHSLocationUUID,
// CalcDefResultHeader._EHSLocation,
CalcDefResultHeader.DataUsagePeriodicity,
CalcDefResultHeader._EHSLocation._EHSLocationRevisionName[1: Language = $session.system_language].EHSLocationName as EHSLocationName,
_EHSLocation,
CalcDefResultHeader._EHSLocation.Country,
// CalcDefResultHeader._EHSLocation._Country._Text[1: Language = $session.system_language].CountryName,
_EHSLocation._Country,
CalcDefResultHeader._EHSLocation.Plant,
CalcDefResultHeader._EHSLocation._Plant.PlantName,
_EHSLocation._Plant,
CalcDefResultHeader._EHSLocation.BusinessArea,
// CalcDefResultHeader._EHSLocation._BusinessArea._Text[1: Language = $session.system_language].BusinessAreaName,
_EHSLocation._BusinessArea,
CalcDefResultHeader._EHSLocation.Region,
_EHSLocation._Region,
CalcDefResultHeader._EHSLocation.EHSLocationType,
// CalcDefResultHeader._EHSLocation._EHSLocationType._Text[1: Language = $session.system_language].EHSLocationTypeText,
_EHSLocation._EHSLocationType,
_CalcPeriod.DataPeriodName
}
where
//Only CALCULATIONS
AmountRoot.EHSAmountSourceType = '04'
and
//With Approved Status!
AmountRoot.EHSAmountStatus = '02'
and
//Only Monthly Data Collections
CalcDefResultHeader.DataUsagePeriodicity = '002'
////================================================================================================================
////================================================================================================================
////================================================================================================================
/////////SAMPLING
union select from I_EHSAmountRoot as AmountRoot
inner join I_SamplingDefinitionRoot as SamplingDefinitionRoot on AmountRoot.EHSAmountSourceUUID = SamplingDefinitionRoot.SamplingDefinitionUUID
inner join t006a on t006a.msehi = AmountRoot.UnitOfMeasure
and t006a.spras = $parameters.P_Language
inner join P_SamplingPeriod as _SamplingPeriod on SamplingDefinitionRoot.DataUsagePeriodicity = _SamplingPeriod.Period
and _SamplingPeriod.Language = $session.system_language
{
key AmountRoot.EHSAmountUUID,
AmountRoot.EHSAmountUTCDateTime,
AmountRoot.UnitOfMeasureName,
AmountRoot.UnitOfMeasure,
AmountRoot._UnitText,
AmountRoot.EHSAmountSourceType,
AmountRoot._EHSAmountSourceType,
AmountRoot._EHSAmountSourceType._Text[1: Language = $session.system_language].EHSAmountSourceTypeName,
AmountRoot.EHSSubjectType,
AmountRoot.EHSSubjectUUID,
AmountRoot.EHSAmountValue,
SamplingDefinitionRoot.EHSLocationUUID,
//SamplingDefinitionRoot._EHSLocation,
SamplingDefinitionRoot.DataUsagePeriodicity,
SamplingDefinitionRoot._EHSLocation._EHSLocationRevisionName[1: Language = $session.system_language].EHSLocationName as EHSLocationName,
_EHSLocation,
SamplingDefinitionRoot._EHSLocation.Country,
// SamplingDefinitionRoot._EHSLocation._Country._Text[1: Language = $session.system_language].CountryName,
_EHSLocation._Country,
SamplingDefinitionRoot._EHSLocation.Plant,
SamplingDefinitionRoot._EHSLocation._Plant.PlantName,
_EHSLocation._Plant,
SamplingDefinitionRoot._EHSLocation.BusinessArea,
// SamplingDefinitionRoot._EHSLocation._BusinessArea._Text[1: Language = $session.system_language].BusinessAreaName,
_EHSLocation._BusinessArea,
SamplingDefinitionRoot._EHSLocation.Region,
_EHSLocation._Region,
SamplingDefinitionRoot._EHSLocation.EHSLocationType,
//SamplingDefinitionRoot._EHSLocation._EHSLocationType._Text[1: Language = $session.system_language].EHSLocationTypeText,
_EHSLocation._EHSLocationType,
_SamplingPeriod.DataPeriodName
}
where
//Only SAMPLINGS
AmountRoot.EHSAmountSourceType = '05'
and
//With Approved Status!
AmountRoot.EHSAmountStatus = '02'
////================================================================================================================
////================================================================================================================
////================================================================================================================
/////////LOCATION AGGREGATION
union select from I_EHSAmountRoot as AmountRoot
inner join I_LocAggregationRoot as LocAggregationRoot on AmountRoot.EHSAmountSourceUUID = LocAggregationRoot.LocAggregationUUID
inner join t006a on t006a.msehi = AmountRoot.UnitOfMeasure
and t006a.spras = $parameters.P_Language
inner join P_LocAggregationPeriod as _LocAggregationPeriod on LocAggregationRoot.DataUsagePeriodicity = _LocAggregationPeriod.Period
and _LocAggregationPeriod.Language = $session.system_language
{
key AmountRoot.EHSAmountUUID,
AmountRoot.EHSAmountUTCDateTime,
AmountRoot.UnitOfMeasureName,
AmountRoot.UnitOfMeasure,
AmountRoot._UnitText,
AmountRoot.EHSAmountSourceType,
AmountRoot._EHSAmountSourceType,
AmountRoot._EHSAmountSourceType._Text[1: Language = $session.system_language].EHSAmountSourceTypeName,
AmountRoot.EHSSubjectType,
AmountRoot.EHSSubjectUUID,
AmountRoot.EHSAmountValue,
LocAggregationRoot.EHSLocationUUID,
//LocAggregationRoot._EHSLocation,
LocAggregationRoot.DataUsagePeriodicity,
LocAggregationRoot._EHSLocation._EHSLocationRevisionName[1: Language = $session.system_language].EHSLocationName as EHSLocationName,
_EHSLocation,
LocAggregationRoot._EHSLocation.Country,
// LocAggregationRoot._EHSLocation._Country._Text[1: Language = $session.system_language].CountryName,
_EHSLocation._Country,
LocAggregationRoot._EHSLocation.Plant,
LocAggregationRoot._EHSLocation._Plant.PlantName,
_EHSLocation._Plant,
LocAggregationRoot._EHSLocation.BusinessArea,
//LocAggregationRoot._EHSLocation._BusinessArea._Text[1: Language = $session.system_language].BusinessAreaName,
_EHSLocation._BusinessArea,
LocAggregationRoot._EHSLocation.Region,
_EHSLocation._Region,
LocAggregationRoot._EHSLocation.EHSLocationType,
// LocAggregationRoot._EHSLocation._EHSLocationType._Text[1: Language = $session.system_language].EHSLocationTypeText,
_EHSLocation._EHSLocationType,
_LocAggregationPeriod.DataPeriodName
}
where
//Only LOCATION AGGREGATION
AmountRoot.EHSAmountSourceType = '06'
and
//With Approved Status!
AmountRoot.EHSAmountStatus = '02'
and
//Only Monthly Data Collections
LocAggregationRoot.DataUsagePeriodicity = '002'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALCDEFRESULTHEADER",
"I_DATACOLLECTIONROOT",
"I_EHSAMOUNTROOT",
"I_EHSAMOUNTSOURCETYPE",
"I_EHSAMOUNTSOURCETYPENAME",
"I_EHSLOCATIONREVISION",
"I_EHSLOCATIONREVISIONNAMET",
"I_LOCAGGREGATIONROOT",
"I_PLANT",
"I_SAMPLINGDEFINITIONROOT",
"P_CALCPERIOD",
"P_DATACOLLDEFPERIOD",
"P_LOCAGGREGATIONPERIOD",
"P_SAMPLINGPERIOD",
"T006A"
],
"ASSOCIATED":
[
"I_BUSINESSAREA",
"I_COUNTRY",
"I_EHSAMOUNTSOURCETYPE",
"I_EHSLOCATIONREVISION",
"I_EHSLOCATIONTYPE",
"I_PLANT",
"I_REGION",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_DATACOLLECTIONROOT",
"I_EHSAMOUNTROOT",
"I_EHSLOCATIONREVISION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/