@EndUserText: {label: 'Flxbl Intvl for Transp Bus Dashboard'}
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata: {allowExtensions: true,
ignorePropagatedAnnotations: true}
@AbapCatalog: {compiler: {compareFilter: true},
sqlViewName: 'ITRBUSPFSACDINT',
preserveKey: true}
@AccessControl: {authorizationCheck: #NOT_REQUIRED}
@ObjectModel: {representativeKey: 'CalendarDate',
usageType: {serviceQuality: #D,
sizeCategory: #L,
dataClass: #MIXED},
supportedCapabilities: #DERIVATION_FUNCTION}
@VDM: {viewType: #COMPOSITE}
@Analytics: {dataCategory: #DIMENSION,
internalName: #LOCAL}
define view I_TranspBusDshbrdFlxblIntvl
as select from I_CalendarDate
{
//Calculate last 6 month begin, etc.
key CalendarDate,
@ObjectModel.foreignKey.association: '_CalendarYear'
CalendarYear,
@ObjectModel.foreignKey.association: '_CalendarQuarter'
CalendarQuarter,
@ObjectModel.foreignKey.association: '_CalendarMonth'
CalendarMonth,
CalendarWeek,
CalendarDay,
@ObjectModel.foreignKey.association: '_YearMonth'
YearMonth,
YearQuarter,
YearWeek,
@ObjectModel.foreignKey.association: '_WeekDay'
WeekDay,
FirstDayOfWeekDate,
FirstDayOfMonthDate,
CalendarDayOfYear,
YearDay,
cast(cast(case
when CalendarMonth = '01'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '07')
when CalendarMonth = '02'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '08')
when CalendarMonth = '03'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '09')
when CalendarMonth = '04'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '10')
when CalendarMonth = '05'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '11')
when CalendarMonth = '06'
then concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '12')
when CalendarMonth between '07' and '12'
then concat (CalendarYear, concat('0', cast((cast(CalendarMonth as abap.int2) - 6) as abap.char(11))))
else '000000'
end as abap.numc(6)) as /scmtms/vdm_lmonthstrt_yrmnth preserving type) as TranspAnlytsIntvlStrtDteYrMnth,
cast(cast(case
when CalendarMonth = '01'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '07'),'01')
when CalendarMonth = '02'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '08'),'01')
when CalendarMonth = '03'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '09'),'01')
when CalendarMonth = '04'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '10'),'01')
when CalendarMonth = '05'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '11'),'01')
when CalendarMonth = '06'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '12'),'01')
when CalendarMonth between '07' and '12'
then concat (CalendarYear, concat('0', concat (cast((cast(CalendarMonth as abap.int2) - 6) as abap.char(11)), '01')))
else '00000000'
end as abap.dats) as /scmtms/vdm_lmonthstrt_dte preserving type) as TranspAnlytsIntvlStrtDte,
cast(cast(cast(case
when CalendarMonth = '01'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '07'),'01000000')
when CalendarMonth = '02'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '08'),'01000000')
when CalendarMonth = '03'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '09'),'01000000')
when CalendarMonth = '04'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '10'),'01000000')
when CalendarMonth = '05'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '11'),'01000000')
when CalendarMonth = '06'
then concat (concat(cast((cast(CalendarYear as abap.int4) - 1) as abap.char(11)), '12'),'01000000')
when CalendarMonth between '07' and '12'
then concat (CalendarYear, concat('0', concat (cast((cast(CalendarMonth as abap.int2) - 6) as abap.char(11)), '01000000')))
else '0'
end as abap.numc(15)) as abap.dec(15,0)) as /scmtms/vdm_intvlstrtmo_dtetme preserving type) as TranspAnlytsIntvlStrtDteTime,
cast(cast(cast(concat(CalendarDate, '235959') as abap.numc(15)) as abap.dec(15,0)) as /scmtms/vdm_caldate_enddtetme) as CalendarDateEndDateTime,
cast(cast(cast(cast('19500101120000' as abap.char(15)) as abap.numc(15)) as abap.dec(15,0)) as /scmtms/vdm_abap_min_datetime) as ABAPMinimumDateTime,
cast(cast(cast(cast('99991231120000' as abap.char(15)) as abap.numc(15)) as abap.dec(15,0)) as /scmtms/vdm_abap_max_datetime) as ABAPMaximumDateTime,
cast('19500101' as /scmtms/vdm_abap_min_date) as ABAPMinimumDate,
cast('99991231' as /scmtms/vdm_abap_max_date) as ABAPMaximumDate,
/* Associations */
_WeekDay,
_CalendarMonth,
_CalendarQuarter,
_CalendarYear,
_YearMonth
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CALENDARDATE"
],
"ASSOCIATED":
[
"I_CALENDARMONTH",
"I_CALENDARQUARTER",
"I_CALENDARYEAR",
"I_WEEKDAY",
"I_YEARMONTH"
],
"BASE":
[
"I_CALENDARDATE"
],
"ANNO_REF":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/