@AbapCatalog.sqlViewName: 'CFISRCOSTTIM'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #CONSUMPTION
@EndUserText.label: 'Service Cost Rate Timeline Chart'
@ClientHandling: {
type: #CLIENT_DEPENDENT,
algorithm: #SESSION_VARIABLE
}
@ObjectModel: {
usageType: {
sizeCategory: #L,
serviceQuality: #C,
dataClass: #TRANSACTIONAL
}
}
@Search.searchable: true
//@UI.chart:[{ chartType:#LINE, measureAttributes: [{measure:'CostRateVarblAmount'}],
// dimensions:['FiscalPeriod','FiscalYear'], dimensionAttributes:[{dimension:'FiscalPeriod'}]
//}]
@UI.chart:[{ chartType:#LINE, measures:['CostRateVarblAmount'],
dimensions:['FiscalPeriod','FiscalYear'], dimensionAttributes:[{dimension:'FiscalPeriod'}]
}]
define view C_ServiceCostRateTimeline
as select from I_ServiceCostRate_2 as _Rate
inner join I_FiscalYearPeriodForLedger as _Ledger on _Rate.Ledger = _Ledger.Ledger
and _Rate.CompanyCode = _Ledger.CompanyCode
and _Rate.ValidityStartFiscalYearPeriod <= _Ledger.FiscalYearPeriod
and _Rate.ValidityEndFiscalYearPeriod >= _Ledger.FiscalYearPeriod
{
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
key _Rate.CompanyCode,
key CostCenter,
key TimeSheetOvertimeCategory,
key ActivityType,
key cast(_Ledger.FiscalYearPeriod as fins_fyearperiod) as FiscalYearPeriod,
// key cast(_Ledger.FiscalYearPeriod as fis_jahrper_c) as FiscalYearPeriod,
key _Ledger.FiscalYear,
key _Ledger.FiscalPeriod,
key IsIntercompanyRate,
key ReceivingCompanyCode,
key cast(case ServiceCostLevel
when '0000' then ''
else ServiceCostLevel
end as fco_service_cost_level_c) as ServiceCostLevel,
key cast(case PersonnelNumber
when '00000000' then ''
else PersonnelNumber
end as fco_personnel_number_c) as PersonnelNumber,
key WorkItem,
// key WBSElementExternalID_2 as WBSElementExternalID,
key WBSElementExternalID,
key CostRateScaleFactor,
key _Rate.Ledger as Ledger,
@Consumption.hidden: true
ControllingArea,
@Semantics.amount.currencyCode: 'Currency'
cast( CostRateVarblAmount as fco_cost_rate preserving type ) as CostRateVarblAmount,
Currency,
CostCtrActivityTypeQtyUnit
}
where
_Ledger.FiscalPeriod <= '012'
union
select from I_ServiceCostRate_2 as _Rate
inner join I_FiscalYearPeriodForCmpnyCode as _Ledger
on _Rate.CompanyCode = _Ledger.CompanyCode
and _Rate.ValidityStartFiscalYearPeriod <= _Ledger.FiscalYearPeriod
and _Rate.ValidityEndFiscalYearPeriod >= _Ledger.FiscalYearPeriod
{
@Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.8 }
key _Rate.CompanyCode,
key CostCenter,
key TimeSheetOvertimeCategory,
key ActivityType,
key cast(_Ledger.FiscalYearPeriod as fins_fyearperiod) as FiscalYearPeriod,
// key cast(_Ledger.FiscalYearPeriod as fis_jahrper_c) as FiscalYearPeriod,
key _Ledger.FiscalYear,
key _Ledger.FiscalPeriod,
key IsIntercompanyRate,
key ReceivingCompanyCode,
key cast(case ServiceCostLevel
when '0000' then ''
else ServiceCostLevel
end as fco_service_cost_level_c) as ServiceCostLevel,
key cast(case PersonnelNumber
when '00000000' then ''
else PersonnelNumber
end as fco_personnel_number_c) as PersonnelNumber,
key WorkItem,
// key WBSElementExternalID_2 as WBSElementExternalID,
key WBSElementExternalID,
key CostRateScaleFactor,
key _Rate.Ledger as Ledger,
@Consumption.hidden: true
ControllingArea,
@Semantics.amount.currencyCode: 'Currency'
cast( CostRateVarblAmount as fco_cost_rate preserving type ) as CostRateVarblAmount,
Currency,
CostCtrActivityTypeQtyUnit
} where
_Ledger.FiscalPeriod <= '012'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_FISCALYEARPERIODFORCMPNYCODE",
"I_FISCALYEARPERIODFORLEDGER",
"I_SERVICECOSTRATE_2"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/