I_FinTransInterest

DDL: I_FINTRANSINTEREST SQL: IFINTRANSINTRST Type: view COMPOSITE

Fin Trans Interest Information

I_FinTransInterest is a Composite CDS View that provides data about "Fin Trans Interest Information" in SAP S/4HANA. It reads from 6 data sources and exposes 37 fields with key fields CompanyCode, FinancialTransaction, FinancialTransactionDirection, FinancialTransaction, FinancialTransactionDirection. It has 6 associations to related views.

Data Sources (6)

SourceAliasJoin Type
R_FinTransCashFlowActivity Activity from
R_FinTransCashFlowActivity Activity union
R_FinTransCondition Condition inner
R_FinTransCondition Condition inner
R_FinTransFlow Flow inner
R_FinTransUnfixedFlow UnfixedFlow inner

Parameters (1)

NameTypeDefault
P_KeyDate vdm_v_key_date

Associations (6)

CardinalityTargetAliasCondition
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_FinancialTransaction _FinTrans $projection.CompanyCode = _FinTrans.CompanyCode and $projection.FinancialTransaction = _FinTrans.FinancialTransaction
[0..1] I_FinTransactionDirection _Direction $projection.FinancialTransactionDirection = _Direction.FinancialTransactionDirection
[0..1] I_FinCndnInterestCategory _IntCat $projection.FinConditionInterestCategory = _IntCat.FinConditionInterestCategory
[0..1] I_Currency _PaymentCurrency $projection.FinTransFlowPaytAmtCrcy = _PaymentCurrency.Currency
[0..1] I_FinIntrstRateAdjmtStatus _AdjmtStatus $projection.FinInterestRateAdjmtStatus = _AdjmtStatus.FinInterestRateAdjmtStatus

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IFINTRANSINTRST view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AbapCatalog.buffering.status #NOT_ALLOWED view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Fin Trans Interest Information view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
Metadata.allowExtensions false view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #COMPOSITE view

Fields (37)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode R_FinTransFlow CompanyCode
KEY FinancialTransaction R_FinTransFlow FinancialTransaction
KEY FinancialTransactionDirection R_FinTransFlow FinancialTransactionDirection
FinConditionInterestCategory R_FinTransCondition FinConditionInterestCategory
FinTransFlowPaytAmt R_FinTransFlow FinTransFlowPaytAmt
FinTransFlowPaytAmtCrcy R_FinTransFlow FinTransFlowPaytAmtCrcy
FinTransFlowPaymentDate R_FinTransFlow FinTransFlowPaymentDate
FinTransFlowPaymentDueDate R_FinTransFlow FinTransFlowPaymentDueDate
FinTransFlowIntrstRateFixDate R_FinTransFlow FinTransFlowIntrstRateFixDate
ConditionPercentageRate R_FinTransFlow ConditionPercentageRate
FinInterestRateAdjmtStatus R_FinTransFlow FinInterestRateAdjmtStatus
FinTransIntrstHndlgAtRollover
RolloverDfrrdIntrstPyoutDte
_CompanyCode _CompanyCode
_FinTrans _FinTrans
_Direction _Direction
_IntCat _IntCat
_PaymentCurrency _PaymentCurrency
CompanyCodeasCompanyCode
KEY FinancialTransaction R_FinTransUnfixedFlow FinancialTransaction
KEY FinancialTransactionDirection R_FinTransUnfixedFlow FinancialTransactionDirection
FinConditionInterestCategory R_FinTransCondition FinConditionInterestCategory
FinTransFlowPaytAmt R_FinTransUnfixedFlow FinTransFlowPaytAmt
FinTransFlowPaytAmtCrcy R_FinTransUnfixedFlow FinTransFlowPaytAmtCrcy
FinTransFlowPaymentDate R_FinTransUnfixedFlow FinTransFlowPaymentDate
FinTransFlowPaymentDueDate R_FinTransUnfixedFlow FinTransFlowPaymentDueDate
FinTransFlowIntrstRateFixDate R_FinTransUnfixedFlow FinTransFlowIntrstRateFixDate
ConditionPercentageRate R_FinTransUnfixedFlow ConditionPercentageRate
FinInterestRateAdjmtStatus R_FinTransUnfixedFlow FinInterestRateAdjmtStatus
FinTransIntrstHndlgAtRollover
RolloverDfrrdIntrstPyoutDte
_CompanyCode _CompanyCode
_FinTrans _FinTrans
_Direction _Direction
_IntCat _IntCat
_PaymentCurrency _PaymentCurrency
_AdjmtStatus _AdjmtStatus
@AbapCatalog.sqlViewName: 'IFINTRANSINTRST'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AbapCatalog.buffering.status: #NOT_ALLOWED
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Fin Trans Interest Information'
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@Metadata.allowExtensions:false
@Metadata.ignorePropagatedAnnotations: true // For C1-Release

@VDM.viewType: #COMPOSITE
@ObjectModel.supportedCapabilities: [ #CDS_MODELING_ASSOCIATION_TARGET, #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE ]

//view shall provide interest data based on flows

define view I_FinTransInterest
  with parameters
    //parameter needed to get interest flow valid on key date

    @Environment.systemField: #SYSTEM_DATE
    P_KeyDate : vdm_v_key_date

  //all activities containing flows

  as select from R_FinTransCashFlowActivity as Activity
  //all flows of these activities (within where-condition they are restricted)

    inner join   R_FinTransFlow             as Flow      on  Activity.CompanyCode                 = Flow.CompanyCode
                                                         and Activity.FinancialTransaction        = Flow.FinancialTransaction
                                                         and Activity.FinancialInstrumentActivity = Flow.FinancialInstrumentActivity
    inner join   R_FinTransCondition        as Condition on  Flow.CompanyCode                    = Condition.CompanyCode
                                                         and Flow.FinancialTransaction           = Condition.FinancialTransaction
                                                         and Flow.FinancialInstrumentActivity    = Condition.FinancialInstrumentActivity
                                                         and Flow.FinancialTransactionDirection  = Condition.FinancialTransactionDirection
                                                         and Flow.FinConditionItem               = Condition.FinConditionItem
                                                         and Flow.ConditionItemValidityStartDate = Condition.ConditionItemValidityStartDate
                                                         and Flow.FinConditionSubItem            = Condition.FinConditionSubItem

  // dimensions, containing for example text fields

  association [0..1] to I_CompanyCode              as _CompanyCode     on  $projection.CompanyCode = _CompanyCode.CompanyCode
  association [0..1] to I_FinancialTransaction     as _FinTrans        on  $projection.CompanyCode          = _FinTrans.CompanyCode
                                                                       and $projection.FinancialTransaction = _FinTrans.FinancialTransaction
  association [0..1] to I_FinTransactionDirection  as _Direction       on  $projection.FinancialTransactionDirection = _Direction.FinancialTransactionDirection
  association [0..1] to I_FinCndnInterestCategory  as _IntCat          on  $projection.FinConditionInterestCategory = _IntCat.FinConditionInterestCategory
  association [0..1] to I_Currency                 as _PaymentCurrency on  $projection.FinTransFlowPaytAmtCrcy = _PaymentCurrency.Currency
  association [0..1] to I_FinIntrstRateAdjmtStatus as _AdjmtStatus     on  $projection.FinInterestRateAdjmtStatus = _AdjmtStatus.FinInterestRateAdjmtStatus
{
      // exposed fields

      @ObjectModel.foreignKey.association: '_CompanyCode'
  key Flow.CompanyCode                                         as CompanyCode,
      @ObjectModel.foreignKey.association: '_FinTrans'
  key Flow.FinancialTransaction                                as FinancialTransaction,
      @ObjectModel.foreignKey.association: '_Direction'
  key Flow.FinancialTransactionDirection                       as FinancialTransactionDirection,
      @ObjectModel.foreignKey.association: '_IntCat'
      Condition.FinConditionInterestCategory                   as FinConditionInterestCategory,
      @Semantics.amount.currencyCode: 'FinTransFlowPaytAmtCrcy'
      Flow.FinTransFlowPaytAmt                                 as FinTransFlowPaytAmt,
      @ObjectModel.foreignKey.association: '_PaymentCurrency'
      Flow.FinTransFlowPaytAmtCrcy                             as FinTransFlowPaytAmtCrcy,
      Flow.FinTransFlowPaymentDate                             as FinTransFlowPaymentDate,
      Flow.FinTransFlowPaymentDueDate                          as FinTransFlowPaymentDueDate,
      Flow.FinTransFlowIntrstRateFixDate                       as FinTransFlowIntrstRateFixDate,
      Flow.ConditionPercentageRate                             as ConditionPercentageRate,
      @ObjectModel.foreignKey.association: '_AdjmtStatus'
      Flow.FinInterestRateAdjmtStatus                          as FinInterestRateAdjmtStatus,

      _FinTrans._CurrentActivity.FinTransIntrstHndlgAtRollover as FinTransIntrstHndlgAtRollover,
      _FinTrans._CurrentActivity.RolloverDfrrdIntrstPyoutDte   as RolloverDfrrdIntrstPyoutDte,

      // exposed dimensions

      _CompanyCode,
      _FinTrans,
      _Direction,
      _IntCat,
      _PaymentCurrency,
      _AdjmtStatus
}

//restrict to flows, which are not blocked for specific reasons

where
       Flow.FinTransFlowPostingBlkgReason <> '2'
  and  Flow.FinTransFlowPostingBlkgReason <> '4'
  and  Flow.FinTransFlowPostingBlkgReason <> '5'
  and  Flow.FinTransFlowPostingBlkgReason <> '6'

  //flow category interest

  and(
       Flow.FinTransFlowCategory          =  '15'
    or Flow.FinTransFlowCategory          =  '20'
  )
  //key date must be in calculation period

  and  Flow.CalculationPeriodStartDate    <= $parameters.P_KeyDate
  and  Flow.CalculationPeriodEndDate      >= $parameters.P_KeyDate
  //main group

  and(
       Flow.FinInstrConditionLogicGroup   =  '1000'
    or Flow.FinInstrConditionLogicGroup   is initial
  )


//all activities containing flows

union select from R_FinTransCashFlowActivity as Activity
//all flows of these activities (within where-condition they are restricted)

  inner join      R_FinTransUnfixedFlow      as UnfixedFlow on  Activity.CompanyCode                 = UnfixedFlow.CompanyCode
                                                            and Activity.FinancialTransaction        = UnfixedFlow.FinancialTransaction
                                                            and Activity.FinancialInstrumentActivity = UnfixedFlow.FinancialInstrumentActivity
  inner join      R_FinTransCondition        as Condition   on  UnfixedFlow.CompanyCode                    = Condition.CompanyCode
                                                            and UnfixedFlow.FinancialTransaction           = Condition.FinancialTransaction
                                                            and UnfixedFlow.FinancialInstrumentActivity    = Condition.FinancialInstrumentActivity
                                                            and UnfixedFlow.FinancialTransactionDirection  = Condition.FinancialTransactionDirection
                                                            and UnfixedFlow.FinConditionItem               = Condition.FinConditionItem
                                                            and UnfixedFlow.ConditionItemValidityStartDate = Condition.ConditionItemValidityStartDate
                                                            and UnfixedFlow.FinConditionSubItem            = Condition.FinConditionSubItem

// dimensions, containing for example text fields

association [0..1] to I_CompanyCode              as _CompanyCode     on  $projection.CompanyCode = _CompanyCode.CompanyCode
association [0..1] to I_FinancialTransaction     as _FinTrans        on  $projection.CompanyCode          = _FinTrans.CompanyCode
                                                                     and $projection.FinancialTransaction = _FinTrans.FinancialTransaction
association [0..1] to I_FinTransactionDirection  as _Direction       on  $projection.FinancialTransactionDirection = _Direction.FinancialTransactionDirection
association [0..1] to I_FinCndnInterestCategory  as _IntCat          on  $projection.FinConditionInterestCategory = _IntCat.FinConditionInterestCategory
association [0..1] to I_Currency                 as _PaymentCurrency on  $projection.FinTransFlowPaytAmtCrcy = _PaymentCurrency.Currency
association [0..1] to I_FinIntrstRateAdjmtStatus as _AdjmtStatus     on  $projection.FinInterestRateAdjmtStatus = _AdjmtStatus.FinInterestRateAdjmtStatus
{
      // exposed fields

      @ObjectModel.foreignKey.association: '_CompanyCode'
  key UnfixedFlow.CompanyCode                   as CompanyCode,
      @ObjectModel.foreignKey.association: '_FinTrans'
  key UnfixedFlow.FinancialTransaction          as FinancialTransaction,
      @ObjectModel.foreignKey.association: '_Direction'
  key UnfixedFlow.FinancialTransactionDirection as FinancialTransactionDirection,
      @ObjectModel.foreignKey.association: '_IntCat'
      Condition.FinConditionInterestCategory    as FinConditionInterestCategory,
      @Semantics.amount.currencyCode: 'FinTransFlowPaytAmtCrcy'
      UnfixedFlow.FinTransFlowPaytAmt           as FinTransFlowPaytAmt,
      @ObjectModel.foreignKey.association: '_PaymentCurrency'
      UnfixedFlow.FinTransFlowPaytAmtCrcy       as FinTransFlowPaytAmtCrcy,
      UnfixedFlow.FinTransFlowPaymentDate       as FinTransFlowPaymentDate,
      UnfixedFlow.FinTransFlowPaymentDueDate    as FinTransFlowPaymentDueDate,
      UnfixedFlow.FinTransFlowIntrstRateFixDate as FinTransFlowIntrstRateFixDate,
      UnfixedFlow.ConditionPercentageRate       as ConditionPercentageRate,
      @ObjectModel.foreignKey.association: '_AdjmtStatus'
      UnfixedFlow.FinInterestRateAdjmtStatus    as FinInterestRateAdjmtStatus,

      _FinTrans._CurrentActivity.FinTransIntrstHndlgAtRollover as FinTransIntrstHndlgAtRollover,
      _FinTrans._CurrentActivity.RolloverDfrrdIntrstPyoutDte   as RolloverDfrrdIntrstPyoutDte,

      // exposed dimensions

      _CompanyCode,
      _FinTrans,
      _Direction,
      _IntCat,
      _PaymentCurrency,
      _AdjmtStatus
}

//restrict to flows, which are not blocked for specific reasons

where
       UnfixedFlow.FinTransFlowPostingBlkgReason <> '2'
  and  UnfixedFlow.FinTransFlowPostingBlkgReason <> '4'
  and  UnfixedFlow.FinTransFlowPostingBlkgReason <> '5'
  and  UnfixedFlow.FinTransFlowPostingBlkgReason <> '6'

  //flow category interest

  and(
       UnfixedFlow.FinTransFlowCategory          =  '15'
    or UnfixedFlow.FinTransFlowCategory          =  '20'
  )
  //key date must be in calculation period

  and  UnfixedFlow.CalculationPeriodStartDate    <= $parameters.P_KeyDate
  and  UnfixedFlow.CalculationPeriodEndDate      >= $parameters.P_KeyDate
  //main group

  and(
       UnfixedFlow.FinInstrConditionLogicGroup   =  '1000'
    or UnfixedFlow.FinInstrConditionLogicGroup   is initial
  )