@AbapCatalog.sqlViewName: 'FINS_RR_DATA3B'
@ClientDependent: true
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Data of trans. based revenue recog. for cumulative process.'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XXL
@ObjectModel.usageType.dataClass: #MIXED
//Has the parameters p_gjahr, p_poper, p_fiscyearper, p_fiscyearper1 and p_fiscyearper2
//Similar result as Fins_Rev_Rec_Data_View, but without posting date, fiscal year, fiscal period
//The fiscal year period (Fiscyearper) returns three time slices:
//- p_fiscyearper as fiscyearper for gjahr = p_gjahr and poper = p_poper
//- p_fiscyearper1 as fiscyearper for gjahr = p_gjahr and poper < p_poper
//- p_fiscyearper2 as fiscyearper for gjahr < p_gjahr
//Selects from ACDOCA with condition acdoca-fiscyearper <= p_fiscyearper
define view FINS_REV_REC_DATA_VIEW3_BASE
with parameters
p_gjahr :gjahr,
p_poper :poper,
p_fiscyearper :jahrper,
p_fiscyearper1 :jahrper,
p_fiscyearper2 :jahrper
as
select
a.rldnr as rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
//gjahr, poper,//
:p_fiscyearper as fiscyearper,
//budat,//
racct as hkont,
gkont,
slalittype,
cast( case awtyp when 'TBRR' then ' ' else 'X' end as fins_trr_real_time ) as rtind,
rbukrs as bukrs,
werks,
rbusa as gsber,
prctr,
//segment, rfarea as fkber, scope,
//pbukrs, rassc as vbund, sbusa as pargb, pprctr, psegment, sfarea as pfkber,
//matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit,
max(budat) as max_budat,
sum(wsl) as wsl,
sum(hsl) as hsl,
sum(ksl) as ksl,
sum(kfsl) as kfsl,
sum(osl) as osl,
sum(vsl) as vsl,
sum(bsl) as bsl,
sum(csl) as csl,
sum(dsl) as dsl,
sum(esl) as esl,
sum(fsl) as fsl,
sum(gsl) as gsl,
sum(co_osl) as co_osl,
sum(msl) as msl
from acdoca as a
inner join finsc_ld_cmp as v on a.rbukrs = v.bukrs
and a.rldnr = v.rldnr --- Ledger space is obsolete or a.rldnr = '' )
// and ( v.versn = '000' or v.versn <> '' ) --- select only the ledger which is assigned to version 000;
where
vorgn = 'TBRR'
and a.gjahr = :p_gjahr
and a.poper = :p_poper
and not(
a.bstat = 'C'
and a.poper = '000'
)
// and ( a.mig_source = 'C' or ( a.mig_source = ' ' and not ( a.bstat = 'C' and a.poper = '000' ) ) )
group by
a.rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
// gjahr, poper,//
// fiscyearper, //
// budat,//
racct,
gkont,
slalittype,
awtyp,
rbukrs,
werks,
rbusa,
prctr,
// segment, rfarea, scope,
// pbukrs, rassc, sbusa, pprctr, psegment, sfarea,
// matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit
union all select
a.rldnr as rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
//gjahr, poper,//
:p_fiscyearper2 as fiscyearper,
//budat,//
racct as hkont,
gkont,
slalittype,
cast( case awtyp when 'TBRR' then 'X' else ' ' end as fins_trr_real_time ) as rtind,
rbukrs as bukrs,
werks,
rbusa as gsber,
prctr,
//segment, rfarea as fkber, scope,
//pbukrs, rassc as vbund, sbusa as pargb, pprctr, psegment, sfarea as pfkber,
//matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit,
max(budat) as max_budat,
sum(wsl) as wsl,
sum(hsl) as hsl,
sum(ksl) as ksl,
sum(kfsl) as kfsl,
sum(osl) as osl,
sum(vsl) as vsl,
sum(bsl) as bsl,
sum(csl) as csl,
sum(dsl) as dsl,
sum(esl) as esl,
sum(fsl) as fsl,
sum(gsl) as gsl,
sum(co_osl) as co_osl,
sum(msl) as msl
from acdoca as a
inner join finsc_ld_cmp as v on a.rbukrs = v.bukrs
and a.rldnr = v.rldnr --- Ledger space is obsolete or a.rldnr = '' )
// and ( v.versn = '000' or v.versn <> '' ) --- select only the ledger which is assigned to version 000;
where
vorgn = 'TBRR'
and a.gjahr < :p_gjahr
and not(
a.bstat = 'C'
and a.poper = '000'
)
// and ( a.mig_source = 'C' or ( a.mig_source = ' ' and not ( a.bstat = 'C' and a.poper = '000' ) ) )
group by
a.rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
// gjahr, poper,
// fiscyearper, //
// budat,//
racct,
gkont,
slalittype,
awtyp,
rbukrs,
werks,
rbusa,
prctr,
// segment, rfarea, scope,
// pbukrs, rassc, sbusa, pprctr, psegment, sfarea,
// matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit
union all select
a.rldnr as rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
//gjahr, poper,//
:p_fiscyearper1 as fiscyearper,
//budat,//
racct as hkont,
gkont,
slalittype,
cast( case awtyp when 'TBRR' then 'X' else ' ' end as fins_trr_real_time ) as rtind,
rbukrs as bukrs,
werks,
rbusa as gsber,
prctr,
//segment, rfarea as fkber, scope,
//pbukrs, rassc as vbund, sbusa as pargb, pprctr, psegment, sfarea as pfkber,
//matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit,
max(budat) as max_budat,
sum(wsl) as wsl,
sum(hsl) as hsl,
sum(ksl) as ksl,
sum(kfsl) as kfsl,
sum(osl) as osl,
sum(vsl) as vsl,
sum(bsl) as bsl,
sum(csl) as csl,
sum(dsl) as dsl,
sum(esl) as esl,
sum(fsl) as fsl,
sum(gsl) as gsl,
sum(co_osl) as co_osl,
sum(msl) as msl
from acdoca as a
inner join finsc_ld_cmp as v on a.rbukrs = v.bukrs
and a.rldnr = v.rldnr --- Ledger space is obsolete or a.rldnr = '' )
// and ( v.versn = '000' or v.versn <> '' ) --- select only the ledger which is assigned to version 000;
where
vorgn = 'TBRR'
and a.gjahr = :p_gjahr
and a.poper < :p_poper
and not(
a.bstat = 'C'
and a.poper = '000'
)
// and ( a.mig_source = 'C' or ( a.mig_source = ' ' and not ( a.bstat = 'C' and a.poper = '000' ) ) )
group by
a.rldnr,
objnr,
ps_posid,
ps_psp_pnr,
ps_pspid,
paobjnr,
aufnr,
kdauf,
kdpos,
service_doc_id,
service_doc_item_id,
service_contract_id,
service_contract_item_id,
vtkey,
vtpos,
// gjahr, poper,
// fiscyearper, //
// budat,//
racct,
gkont,
slalittype,
awtyp,
rbukrs,
werks,
rbusa,
prctr,
// segment, rfarea, scope,
// pbukrs, rassc, sbusa, pprctr, psegment, sfarea,
// matnr, hkgrp, lifnr, kunnr,
pernr,
rsrce,
uprctr,
accasty,
rwcur,
rhcur,
rkcur,
rocur,
rvcur,
rbcur,
rccur,
rdcur,
recur,
rfcur,
rgcur,
rco_ocur,
runit;
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"ACDOCA",
"FINSC_LD_CMP"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/