@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
serviceQuality: #X,
sizeCategory: #S,
dataClass: #MIXED
}
@VDM.viewType: #COMPOSITE
@VDM.private:true
define view entity P_RAMnlRevnSprdgByPeriodTP as select from P_RAPerfOblignAllPeriods
association [0..1] to P_RADeferralItemAggrgdRevn as _aggregatedRevenue on $projection.PerformanceObligation = _aggregatedRevenue.PerformanceObligation
and $projection.RevenueAccountingContract = _aggregatedRevenue.RevenueAccountingContract
and $projection.FiscalYear = _aggregatedRevenue.FiscalYear
and $projection.FiscalPeriod = _aggregatedRevenue.FiscalPeriod
association [0..1] to P_RAFlfmtAggrgdMnlSprdgAmt as _aggregatedMnlSprdgAmt on $projection.PerformanceObligation = _aggregatedMnlSprdgAmt.PerformanceObligation
and $projection.RevenueAccountingContract = _aggregatedMnlSprdgAmt.RevenueAccountingContract
and $projection.FiscalYear = _aggregatedMnlSprdgAmt.FiscalYear
and $projection.FiscalPeriod = _aggregatedMnlSprdgAmt.FiscalPeriod
association [0..1] to P_RAContrLastSplitFull as _lastSplit on $projection.RevenueAccountingContract = _lastSplit.RevenueAccountingContract
association [0..1] to I_RAPeriodSetting as _periodSetting on $projection.AccountingPrinciple = _periodSetting.AccountingPrinciple
and $projection.CompanyCode = _periodSetting.CompanyCode
{
key PerformanceObligation,
key FiscalYear,
key FiscalPeriod,
RevenueAccountingContract,
CompanyCode,
AccountingPrinciple,
@Semantics.amount.currencyCode: 'SalesDocumentCurrency'
_aggregatedRevenue.DeltaRecognizedAmtInSlsDocCrcy,
@Semantics.amount.currencyCode: 'SalesDocumentCurrency'
_aggregatedRevenue.RecgdCatchUpAmtInSlsDocCrcy,
@Semantics.amount.currencyCode: 'SalesDocumentCurrency'
_aggregatedMnlSprdgAmt.FulfilledAmountInSlsDocCrcy,
_aggregatedRevenue.SalesDocumentCurrency,
@Semantics.quantity.unitOfMeasure: 'FulfilledQuantityUnit'
_aggregatedMnlSprdgAmt.ReportedFulfilledQuantity,
_aggregatedMnlSprdgAmt.FulfilledQuantityUnit,
// split edit field status
case when FiscalYear < _lastSplit.FiscalYear
then
'X'
else
case
when FiscalYear = _lastSplit.FiscalYear and
FiscalPeriod < _lastSplit.FiscalPeriod
then
'X'
else
' '
end
end as NotEditableSplit,
// period edit field status
case
when FiscalYear < _periodSetting.FiscalYear
then
'X'
else
case
when ( FiscalYear = _periodSetting.FiscalYear and
FiscalPeriod < _periodSetting.FiscalPeriod and
_periodSetting.PostingPeriodStatus <> 'I' ) or (
FiscalYear = _periodSetting.FiscalYear and
FiscalPeriod <= _periodSetting.FiscalPeriod and
_periodSetting.PostingPeriodStatus = 'I'
)
then
'X'
else
' '
end
end as NotEditablePeriod
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_RAPERIODSETTING",
"P_RACONTRLASTSPLITFULL",
"P_RADEFERRALITEMAGGRGDREVN",
"P_RAFLFMTAGGRGDMNLSPRDGAMT",
"P_RAPERFOBLIGNALLPERIODS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/