P_IRM_REFINT_HIST_KEYDATE

DDL: P_IRM_REFINT_HIST_KEYDATE SQL: PREFINTHISTKEYD Type: view COMPOSITE Package: FTR_IRM_CORE

Calculate term date view

P_IRM_REFINT_HIST_KEYDATE is a Composite CDS View that provides data about "Calculate term date view" in SAP S/4HANA. It reads from 2 data sources (P_IRM_REFINT_DATE_CYCLE, I_ReferenceInterestRateVal) and exposes 5 fields. Part of development package FTR_IRM_CORE.

Data Sources (2)

SourceAliasJoin Type
P_IRM_REFINT_DATE_CYCLE P_IRM_REFINT_DATE_CYCLE from
I_ReferenceInterestRateVal ReferenceInterestRate left_outer

Parameters (2)

NameTypeDefault
P_KeyDate vdm_v_key_date
P_CalendarFrequency ftr_date_granularity

Annotations (7)

NameValueLevelField
AbapCatalog.sqlViewName PREFINTHISTKEYD view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #B view
VDM.private true view

Fields (5)

KeyFieldSource TableSource FieldDescription
ReferenceInterestRate I_ReferenceInterestRateVal ReferenceInterestRate
EffectiveDate
_ReferenceInterestRate I_ReferenceInterestRateVal _ReferenceInterestRate
KeyDate CalendarDate KeyDate
CreditLineReportingPeriod CalendarDate CreditLineReportingPeriod
@AbapCatalog.sqlViewName: 'PREFINTHISTKEYD'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@ObjectModel.usageType.serviceQuality: #B
@VDM.private:true
define view P_IRM_REFINT_HIST_KEYDATE 
    with parameters
        @Environment.systemField: #SYSTEM_DATE
        P_KeyDate : vdm_v_key_date,
        P_CalendarFrequency : ftr_date_granularity
    as select from P_IRM_REFINT_DATE_CYCLE(
                    P_EndDate                    : $parameters.P_KeyDate,
                    P_CrdtLineReportingFrequency : $parameters.P_CalendarFrequency) as CalendarDate
    left outer join I_ReferenceInterestRateVal as ReferenceInterestRate on  CalendarDate.KeyDate <= $parameters.P_KeyDate
                                                                        and CalendarDate.KeyDate >= ReferenceInterestRate.EffectiveDate
{
  ReferenceInterestRate.ReferenceInterestRate,
  max(ReferenceInterestRate.EffectiveDate) as EffectiveDate,
  ReferenceInterestRate._ReferenceInterestRate,
  CalendarDate.KeyDate,
  CalendarDate.CreditLineReportingPeriod
}
where
          ReferenceInterestRate.ReferenceInterestRate <> ''
  and(
      (   CalendarDate.KeyDate      >= DATS_ADD_DAYS($parameters.P_KeyDate, - 7, 'NULL') // -7 means by default, generates report in last 7 periods

       and CalendarDate.CON_DAY       = left($parameters.P_CalendarFrequency, 1)
      )
    or(    CalendarDate.KeyDate      >= DATS_ADD_DAYS($parameters.P_KeyDate, - 49, 'NULL') // -49 means -7 * 7, last 7 weeks, totally, it's 49 days  

       and CalendarDate.CON_WEEK      = left($parameters.P_CalendarFrequency, 1)
      )
    or(    CalendarDate.KeyDate      >= DATS_ADD_MONTHS($parameters.P_KeyDate, - 12, 'NULL')
       and CalendarDate.CON_MONTH     = left($parameters.P_CalendarFrequency, 1)
      )
    or(    CalendarDate.KeyDate      >= DATS_ADD_MONTHS($parameters.P_KeyDate, - 21, 'NULL') // -21 means -7 * 3, last 7 quarters, totally, it's 21 months

       and CalendarDate.CON_QUARTER   = left($parameters.P_CalendarFrequency, 1)
      )
    or(    CalendarDate.KeyDate      >= DATS_ADD_MONTHS($parameters.P_KeyDate, - 84, 'NULL') // -84 means -7 * 12, last 7 years, totally, it's 84 months

       and CalendarDate.CON_YEAR      = left($parameters.P_CalendarFrequency, 1)
      )
   )
group by
  ReferenceInterestRate.ReferenceInterestRate,
  CalendarDate.KeyDate,
  CalendarDate.CreditLineReportingPeriod