@AbapCatalog.sqlViewName: 'IFINTRANSCNDNSGL'
@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 Condition Single Date'
@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 ]
define view I_FinTransCndnSingleDate
//all activities containing conditions
as select from R_FinTransCashFlowActivity as Activity
//all conditions of these activities (within where-condition they can be restricted)
inner join R_FinTransCondition as Condition on Activity.CompanyCode = Condition.CompanyCode
and Activity.FinancialTransaction = Condition.FinancialTransaction
and Activity.FinancialInstrumentActivity = Condition.FinancialInstrumentActivity
//in case of scale condition only consider main condition (if possible join here the main condition and in where-statement restrict to main condition)
left outer join R_FinTransCondition as Parallel on Condition.CompanyCode = Parallel.CompanyCode
and Condition.FinancialTransaction = Parallel.FinancialTransaction
and Condition.FinancialInstrumentActivity = Parallel.FinancialInstrumentActivity
and Condition.FinancialTransactionDirection = Parallel.FinancialTransactionDirection
and Condition.ConditionItemValidityStartDate = Parallel.ConditionItemValidityStartDate
and Condition.FinInstrConditionLogicGroup = Parallel.FinInstrConditionLogicGroup
and Condition.FinConditionConditionCategory = Parallel.FinConditionConditionCategory
and Condition.FinConditionItem > Parallel.FinConditionItem
// 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_FinTransActivity as _Activity on $projection.CompanyCode = _Activity.CompanyCode
and $projection.FinancialTransaction = _Activity.FinancialTransaction
and $projection.FinancialInstrumentActivity = _Activity.FinancialInstrumentActivity
association [0..1] to I_FinTransactionDirection as _Direction on $projection.FinancialTransactionDirection = _Direction.FinancialTransactionDirection
{
//exposed fields
@ObjectModel.foreignKey.association: '_CompanyCode'
key Condition.CompanyCode as CompanyCode,
@ObjectModel.foreignKey.association: '_FinTrans'
key Condition.FinancialTransaction as FinancialTransaction,
@ObjectModel.foreignKey.association: '_Activity'
key Condition.FinancialInstrumentActivity as FinancialInstrumentActivity,
@ObjectModel.foreignKey.association: '_Direction'
key Condition.FinancialTransactionDirection as FinancialTransactionDirection,
key Condition.FinConditionItem as FinConditionItem,
key Condition.ConditionItemValidityStartDate as ConditionItemValidityStartDate,
key Condition.FinConditionSubItem as FinConditionSubItem,
_FinTrans.FinancialInstrProductCategory as FinancialInstrProductCategory,
Condition.FinConditionConditionCategory as FinConditionConditionCategory,
case
when Condition.FinConditionConditionCategory <> '21'
then Condition.CalculationDate
end as CalculationDate,
case
when Condition.FinConditionConditionCategory <> '21'
then Condition.CalcDateIsAsEndDateMonthEnd
end as CalcDateIsAsEndDateMonthEnd,
Condition.DueDate as DueDate,
Condition.DueDateIsAsEndDateMonthEnd as DueDateIsAsEndDateMonthEnd,
Condition.ConditionPercentageRate as ConditionPercentageRate,
@Semantics.amount.currencyCode: 'FinConditionFixedAmountCrcy'
Condition.FinConditionFixedAmount as FinConditionFixedAmount,
Condition.FinConditionFixedAmountCrcy as FinConditionFixedAmountCrcy,
cast ( case
when Condition.FinConditionConditionCategory = '21'
then Condition.CalculationDate
end as tbvaluza preserving type ) as InterestRateAdjustmentDate,
cast ( case
when Condition.FinConditionConditionCategory = '21'
then Condition.CalcDateIsAsEndDateMonthEnd
end as adjmt_dte_as_end_dte_month_end preserving type ) as IntrstRateAdjmtDateIsMonthEnd,
//exposed dimensions, containing for example text fields
_CompanyCode,
_FinTrans,
_Activity,
_Direction
}
where Condition.FinConditionHasSingleDateEntry = 'X'
and Parallel.FinConditionItem is null
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_FINANCIALTRANSACTION",
"R_FINTRANSCASHFLOWACTIVITY",
"R_FINTRANSCONDITION"
],
"ASSOCIATED":
[
"I_COMPANYCODE",
"I_FINANCIALTRANSACTION",
"I_FINTRANSACTIONDIRECTION",
"I_FINTRANSACTIVITY"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/