P_FTR_CL_KEYDATE_UTILIZATION

CDS View

P_FTR_CL_KEYDATE_UTILIZATION is a CDS View in S/4HANA. It contains 3 fields. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
I_Ftr_Cl_Key_Date_Utilization view from COMPOSITE Facility Utilization by Key Date

Fields (3)

KeyField CDS FieldsUsed in Views
KEY CompanyCode CompanyCode 1
KEY FinancialTransaction FinancialTransaction 1
TransactionCurrency TransactionCurrency 1
@AbapCatalog.sqlViewName: 'PCLKEYDATEUTI'
@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_Ftr_Cl_Keydate_Utilization
  // Facility change flow

  as select from P_Ftr_Asgn_Keydate_Fac_Amt(
                 P_StartDate : '00010101',
                 P_EndDate   : '99991231') as Facility // hard code here cause underlying view uses these two parameters to decrease data volume,

                                                       // in order to get all data, so just hard code the maximum date period

{
  Facility.CompanyCode,
  Facility.FinancialTransaction,
  Facility.RelatObject,
  Facility.LimitDate                                     as FacilityDate,
  @Semantics.currencyCode: true
  Facility.TransactionCurrency,
  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(Facility.ChangeAmount as ftr_totamtintranscrcy)   as TotalAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(0 as ftr_utilamtintranscrcy)                      as UtilizedChangeAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(Facility.ChangeAmount as ftr_availamtintranscrcy) as AvailableAmount
}

union all
// Utilization change flow

select distinct from P_Ftr_Asgn_Facility_Period(
                     P_StartDate : '00010101',
                     P_EndDate   : '99991231') as Facility
  inner join         P_Ftr_Asgn_Pos_With_Ratio(
                     P_StartDate : '00010101',
                     P_EndDate   : '99991231') as Position on Facility.RelatObject = Position.RelatObject // similar as above

{
  Facility.CompanyCode,
  Facility.FinancialTransaction,
  Facility.RelatObject,
  Position.ChangeDate                                                                                                                                          as FacilityDate,
  @Semantics.currencyCode: true
  Facility.TransactionCurrency,
  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(0 as ftr_totamtintranscrcy)                                                                                                                             as TotalAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  case when Position.CurrencyConversionRate >= 0
  then cast(coalesce(
              division(  cast(cast(Position.ChangeAmount * Position.Ratio as abap.dec( 17, 2 )) * cast(Position.CurrencyConversionRate as abap.dec( 13, 9 )) as abap.dec(23,9) ),
                         cast(Position.ExchangeRateFactor as abap.dec(13,9)),  5 )
                  , 0) as ftr_utilamtintranscrcy)
  else cast(coalesce(
              division(
                cast(division( cast(Position.ChangeAmount * Position.Ratio as abap.dec( 17, 2 )),
                          cast(Position.CurrencyConversionRate as abap.dec( 13, 9 ) ), 5) as abap.dec(23,9) ),
                Position.ExchangeRateFactor, 5)
              , 0) as ftr_utilamtintranscrcy)
  end  as UtilizedChangeAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(coalesce(cast(Position.ChangeAmount * Position.Ratio * -1 as abap.dec( 17, 2 )) * cast(Position.CurrencyConversionRate as abap.dec( 13, 9 ) ), 0) as ftr_availamtintranscrcy)       as AvailableAmount
}

union all
// Facility repayment flow

select from  P_Ftr_Asgn_Facility_Period(
                      P_StartDate : '00010101',
                      P_EndDate   : '99991231') as Facility
  inner join vtb_asgn_limit                     as limit on  limit.relat_obj  = Facility.RelatObject
                                                         and limit.limit_date = Facility.LastLimitDate
{
  Facility.CompanyCode,
  Facility.FinancialTransaction,
  Facility.RelatObject,
  Facility.TermEndDate                                                                  as FacilityDate,
  @Semantics.currencyCode: true
  Facility.TransactionCurrency,
  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(limit.limit_pos_amount * -1 as ftr_totamtintranscrcy)                            as TotalAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(0 as ftr_utilamtintranscrcy)                                                     as UtilizedChangeAmount,

  @Semantics.amount.currencyCode: 'TransactionCurrency'
  @DefaultAggregation: #SUM
  cast(limit.limit_pos_amount * -1 as ftr_availamtintranscrcy)                          as AvailableAmount
}