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 33 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 (33)

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
_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
_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,
// 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,
// 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 )
       
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"R_FINTRANSCASHFLOWACTIVITY",
"R_FINTRANSCONDITION",
"R_FINTRANSFLOW",
"R_FINTRANSUNFIXEDFLOW"
],
"ASSOCIATED":
[
"I_COMPANYCODE",
"I_CURRENCY",
"I_FINANCIALTRANSACTION",
"I_FINCNDNINTERESTCATEGORY",
"I_FININTRSTRATEADJMTSTATUS",
"I_FINTRANSACTIONDIRECTION"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/