I_FinTransNominal

DDL: I_FINTRANSNOMINAL SQL: IFINTRANSNOMINAL Type: view COMPOSITE

Fin Trans Nominal Amount

I_FinTransNominal is a Composite CDS View that provides data about "Fin Trans Nominal Amount" in SAP S/4HANA. It reads from 2 data sources (I_FinTransCurrentActivity, I_FinTransFlow) and exposes 8 fields with key fields CompanyCode, FinancialTransaction, FinancialTransactionDirection. It has 4 associations to related views.

Data Sources (2)

SourceAliasJoin Type
I_FinTransCurrentActivity Activity inner
I_FinTransFlow Flow from

Parameters (1)

NameTypeDefault
P_KeyDate vdm_v_key_date

Associations (4)

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_Currency _NominalCurrency $projection.FinTransFlowNomAmtCrcy = _NominalCurrency.Currency

Annotations (14)

NameValueLevelField
AbapCatalog.sqlViewName IFINTRANSNOMINAL 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 Nominal Amount 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 (8)

KeyFieldSource TableSource FieldDescription
KEY CompanyCode I_FinTransFlow CompanyCode
KEY FinancialTransaction I_FinTransFlow FinancialTransaction
KEY FinancialTransactionDirection I_FinTransFlow FinancialTransactionDirection
FinTransFlowNomAmtCrcy I_FinTransFlow FinTransFlowNomAmtCrcy
_CompanyCode _CompanyCode
_FinTrans _FinTrans
_Direction _Direction
_NominalCurrency _NominalCurrency
@AbapCatalog.sqlViewName: 'IFINTRANSNOMINAL'
@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 Nominal Amount'
@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 nominal data based on flows

define view I_FinTransNominal 
  with parameters
    //parameter needed to get nominal flows valid on key date

    @Environment.systemField: #SYSTEM_DATE
    P_KeyDate   : vdm_v_key_date
  //get data from cash flow

  as select from I_FinTransFlow as Flow
    inner join I_FinTransCurrentActivity as Activity on Flow.CompanyCode          = Activity.CompanyCode
                                                    and Flow.FinancialTransaction = Activity.FinancialTransaction
// 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_Currency             as _NominalCurrency on  $projection.FinTransFlowNomAmtCrcy        = _NominalCurrency.Currency

{
// 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,
  @Semantics.amount.currencyCode: 'FinTransFlowNomAmtCrcy'    
  sum( case when Flow.FinTransFlowPaytAmtDirection = '+'
            then Flow.FinTransFlowNomAmt 
            else Flow.FinTransFlowNomAmt * -1 
       end )                         as FinTransFlowNomAmt,
  @ObjectModel.foreignKey.association: '_NominalCurrency'
  Flow.FinTransFlowNomAmtCrcy        as FinTransFlowNomAmtCrcy,
// exposed dimensions

  _CompanyCode,
  _FinTrans,
  _Direction,
  _NominalCurrency
}
where 
  //all flows before key date

      Flow.FinTransFlowPaymentDate      <= $parameters.P_KeyDate
  //nominal relevant flow categories

  and (   Flow.FinTransFlowCategory = '10'
       or Flow.FinTransFlowCategory = '11'
       or Flow.FinTransFlowCategory = '12'
       or Flow.FinTransFlowCategory = '13'
       or Flow.FinTransFlowCategory = '14'
       or Flow.FinTransFlowCategory = '15'
       or Flow.FinTransFlowCategory = '16'
       or Flow.FinTransFlowCategory = '70'
       or Flow.FinTransFlowCategory = '71'
       or Flow.FinTransFlowCategory = '72'
       or Flow.FinTransFlowCategory = '73'
       or Flow.FinTransFlowCategory = '84'
       or Flow.FinTransFlowCategory = '85' )
  //only consider flow (and whole financial transaction) in case key date is before end of term / notice date

  and (   Activity.TermEndDate > $parameters.P_KeyDate
       or Activity.TermEndDate is initial )
  and (   Activity.FinTransNoticeDate is initial
       or Activity.FinTransNoticeDate > $parameters.P_KeyDate )
  and ( Flow.FinTransFlowPostingStatus <> '3' 
       and Flow.FinTransFlowPostingStatus <> '4' )    
  //group flows

group by Flow.CompanyCode, Flow.FinancialTransaction, Flow.FinancialTransactionDirection, Flow.FinTransFlowNomAmtCrcy
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_FINTRANSCURRENTACTIVITY",
"I_FINTRANSFLOW"
],
"ASSOCIATED":
[
"I_COMPANYCODE",
"I_CURRENCY",
"I_FINANCIALTRANSACTION",
"I_FINTRANSACTIONDIRECTION"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/