@AbapCatalog.sqlViewName: 'PRASALLOCATEDPRC'
@ClientHandling.algorithm: #SESSION_VARIABLE@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey:true@AccessControl.authorizationCheck: #NOT_REQUIRED@VDM.viewType: #COMPOSITE@VDM.private: true/* Here must selectfrom P_RAPerfOblgnFullPeriod instead of P_RAPerfOblgnPeriod since the former
* contains the full periods within a compound group. If using P_RAPerfOblgnPeriod it will lead wrong
* summed allocated amount/cost and open revenue/cost of compound POB. For example, if a compound POB has two
* non-distinct POBs, and one only has fulfillments in peirod 001, the other only has fulfillments on 002.
* Result of P_RAPerfOblgnPeriod is:
* Non-distinct_POB1 001
* Non-distinct_POB2 002
* Result of P_RAPerfOblgnFullPeriod is:
* Non-distinct_POB1 001
* Non-distinct_POB1 002
* Non-distinct_POB2 001
* Non-distinct_POB2 002
*
*/defineview P_RASchedAllocatedAmtPerPerd
asselectfrom P_RAPerfOblgnFullPeriod as RAPerfOblgnPerPerd
leftouter to many join P_RASchedPerfOblgnAmtPerd as PerfOblgnTotalAmtPerPeriod
on RAPerfOblgnPerPerd.PerformanceObligation = PerfOblgnTotalAmtPerPeriod.PerformanceObligation
and ( RAPerfOblgnPerPerd.FiscalYear > PerfOblgnTotalAmtPerPeriod.FiscalYear
or RAPerfOblgnPerPerd.FiscalYear = PerfOblgnTotalAmtPerPeriod.FiscalYear
and RAPerfOblgnPerPerd.FiscalPeriod >= PerfOblgnTotalAmtPerPeriod.FiscalPeriod )
and RAPerfOblgnPerPerd.RevenueAccountingContract = PerfOblgnTotalAmtPerPeriod.RevenueAccountingContract
{
/**************************key*****************************/key RAPerfOblgnPerPerd.PerformanceObligation,
key RAPerfOblgnPerPerd.FiscalYear,
key RAPerfOblgnPerPerd.FiscalPeriod,
key RAPerfOblgnPerPerd.RevenueAccountingContract,
RAPerfOblgnDistinctType,
RAHigherLevelPerfOblgn,
/**************************End Revenue*****************************///sum(doc_amt_delta)
sum(PerfOblgnTotalAmtPerPeriod.DeltaEffectiveAmtPerPerd) as TotalEffectiveAmtInSlsDocCrcy,
//sum(doc_amt_delta) with spec_indicator <> 'D', condition type isnot CORR, contractual price
sum(PerfOblgnTotalAmtPerPeriod.DeltaContractualPricePerPerd) as TotalDocAmtContractual,
//sum(doc_amt_delta) with spec_indicator = 'D', condition type is CORR, allocated difference
sum(PerfOblgnTotalAmtPerPeriod.DeltaAllocatedEffctPerPerd ) as TotalDocAmtAllocatedEffect,
//sum(doc_amt_delta) with spec_indicator = 'F'
sum(PerfOblgnTotalAmtPerPeriod.DeltaFreeFaceValue ) as TotalFreeFaceValue,
//sum(rev_amt_delta)
sum(PerfOblgnTotalAmtPerPeriod.DeltaRecognizedAmtPerPerd) as TolRecognizedAmtPerPerd,
//sum(rev_amt_catchup)
sum(PerfOblgnTotalAmtPerPeriod.DeltaRecgdAmtCatchupPerPerd) as TolRecgdAmtCatchupPerPerd,
/**************************End Cost*****************************/
sum(PerfOblgnTotalAmtPerPeriod.DeltaRecognizedCostPerPerd) as TolRecognizedCostPerPerd,
sum(PerfOblgnTotalAmtPerPeriod.DeltaEffectiveCostPerPerd) as TolEffectiveCostPerPerd,
sum(PerfOblgnTotalAmtPerPeriod.DeltaInvoicedCostPerPerd) as TolInvoicedCostPerPerd
}
groupby
RAPerfOblgnPerPerd.PerformanceObligation,
RAPerfOblgnPerPerd.FiscalYear,
RAPerfOblgnPerPerd.FiscalPeriod,
RAPerfOblgnPerPerd.RevenueAccountingContract,
RAPerfOblgnDistinctType,
RAHigherLevelPerfOblgn
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"P_RAPERFOBLGNFULLPERIOD",
"P_RASCHEDPERFOBLGNAMTPERD"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/