fco_abr_bel_ld_a

DDL: FCO_ABR_BEL_LD_A SQL: FCOV_ABRBELLDA Type: view Package: KABR

Settlement actual costs per ledger

fco_abr_bel_ld_a is a CDS View that provides data about "Settlement actual costs per ledger" in SAP S/4HANA. It reads from 3 data sources (t000, tka01, finsc_cmp_versnd). Part of development package KABR.

Data Sources (3)

SourceAliasJoin Type
t000 s inner
tka01 t inner
finsc_cmp_versnd v left_outer

Parameters (2)

NameTypeDefault
akP abap.char(3)
akG abap.char(4)

Annotations (6)

NameValueLevelField
AbapCatalog.sqlViewName FCOV_ABRBELLDA view
EndUserText.label Settlement actual costs per ledger view
ClientHandling.algorithm #SESSION_VARIABLE view
Metadata.ignorePropagatedAnnotations true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ObjectModel.usageType.serviceQuality #P view
@AbapCatalog.sqlViewName: 'FCOV_ABRBELLDA'
@EndUserText.label      : 'Settlement actual costs per ledger'

@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ObjectModel.usageType.serviceQuality: #P

define view fco_abr_bel_ld_a

   with parameters akP : abap.char(3),     // Settlement period      auak-perio

                   akG : abap.char(4) as   // Settlement fiscal year auak-gjahr

   select
          a.rldnr  as lednr,
          objnr,
          ryear    as gjahr,
          v.versn  as versn,
          racct    as kstar,
          hrkft,
          vrgng,
          case when parobsrc = '1' then parob1     else case
               when parobsrc = '2' then paccasty
               else ''                             end end
                   as parob, // COSS only

          uspob,             // COSS only

          rassc    as vbund, // COSP only

          sbusa    as pargb, // COSP only

          co_beknz as beknz,
          rwcur    as twaer,
          co_meinh as meinh,
          bemot,
          beltp,

          case when ryear < :akG or poper <= :akP then case when v.field_name_wtgbtr_add is null or
                                                                 v.field_name_wtgbtr_add = 'WSL'  then wsl
                                                            when v.field_name_wtgbtr_add = 'WSL2' then wsl2
                                                            when v.field_name_wtgbtr_add = 'WSL3' then wsl3
                                                            else 0 end else 0 end
               as wtgbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_wtgbtr_add is null or
                                                                 v.field_name_wtgbtr_add = 'WSL'  then wsl
                                                            when v.field_name_wtgbtr_add = 'WSL2' then wsl2
                                                            when v.field_name_wtgbtr_add = 'WSL3' then wsl3
                                                            else 0 end else 0 end
               as wtgper,

          case when ryear < :akG or poper <= :akP then case when v.field_name_wogbtr_add is null    then 0
                                                            when t.xwbuk = '' and 
                                                               ( ( ( mig_source =  'C' and bstat =  'C' ) and co_osl <> 0 ) or
                                                                 ( ( mig_source <> 'C' or  bstat <> 'C' ) and rco_ocur <> '' ) ) then co_osl
                                                            when v.field_name_wogbtr_add = 'HSL'    then hsl
                                                            when v.field_name_wogbtr_add = 'OSL'    then osl
                                                            when v.field_name_wogbtr_add = 'KSL'    then ksl
                                                            when v.field_name_wogbtr_add = 'VSL'    then vsl
                                                            when v.field_name_wogbtr_add = 'BSL'    then bsl
                                                            when v.field_name_wogbtr_add = 'CSL'    then csl
                                                            when v.field_name_wogbtr_add = 'DSL'    then dsl
                                                            when v.field_name_wogbtr_add = 'ESL'    then esl
                                                            when v.field_name_wogbtr_add = 'FSL'    then fsl
                                                            when v.field_name_wogbtr_add = 'GSL'    then gsl
                                                            else 0 end else 0 end
               as wogbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_wogbtr_add is null    then 0
                                                            when t.xwbuk = '' and
                                                               ( ( ( mig_source =  'C' and bstat =  'C' ) and co_osl <> 0 ) or
                                                                 ( ( mig_source <> 'C' or  bstat <> 'C' ) and rco_ocur <> '' ) ) then co_osl
                                                            when v.field_name_wogbtr_add = 'HSL'    then hsl
                                                            when v.field_name_wogbtr_add = 'OSL'    then osl
                                                            when v.field_name_wogbtr_add = 'KSL'    then ksl
                                                            when v.field_name_wogbtr_add = 'VSL'    then vsl
                                                            when v.field_name_wogbtr_add = 'BSL'    then bsl
                                                            when v.field_name_wogbtr_add = 'CSL'    then csl
                                                            when v.field_name_wogbtr_add = 'DSL'    then dsl
                                                            when v.field_name_wogbtr_add = 'ESL'    then esl
                                                            when v.field_name_wogbtr_add = 'FSL'    then fsl
                                                            when v.field_name_wogbtr_add = 'GSL'    then gsl
                                                            else 0 end else 0 end
               as wogper,

          case when ryear < :akG or poper <= :akP then case when v.field_name_wkgbtr_add is null or
                                                                 v.field_name_wkgbtr_add = 'KSL' then ksl
                                                            when v.field_name_wkgbtr_add = 'HSL' then hsl
                                                            when v.field_name_wkgbtr_add = 'OSL' then osl
                                                            when v.field_name_wkgbtr_add = 'VSL' then vsl
                                                            when v.field_name_wkgbtr_add = 'BSL' then bsl
                                                            when v.field_name_wkgbtr_add = 'CSL' then csl
                                                            when v.field_name_wkgbtr_add = 'DSL' then dsl
                                                            when v.field_name_wkgbtr_add = 'ESL' then esl
                                                            when v.field_name_wkgbtr_add = 'FSL' then fsl
                                                            when v.field_name_wkgbtr_add = 'GSL' then gsl
                                                            else 0 end else 0 end
               as wkgbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_wkgbtr_add is null or
                                                                 v.field_name_wkgbtr_add = 'KSL' then ksl
                                                            when v.field_name_wkgbtr_add = 'HSL' then hsl
                                                            when v.field_name_wkgbtr_add = 'OSL' then osl
                                                            when v.field_name_wkgbtr_add = 'VSL' then vsl
                                                            when v.field_name_wkgbtr_add = 'BSL' then bsl
                                                            when v.field_name_wkgbtr_add = 'CSL' then csl
                                                            when v.field_name_wkgbtr_add = 'DSL' then dsl
                                                            when v.field_name_wkgbtr_add = 'ESL' then esl
                                                            when v.field_name_wkgbtr_add = 'FSL' then fsl
                                                            when v.field_name_wkgbtr_add = 'GSL' then gsl
                                                            else 0 end else 0 end
               as wkgper,

          case when ryear < :akG or poper <= :akP then case when v.field_name_wkfbtr_add is null or
                                                                 v.field_name_wkfbtr_add = 'KFSL'  then kfsl
                                                            when v.field_name_wkfbtr_add = 'KFSL2' then kfsl2
                                                            when v.field_name_wkfbtr_add = 'KFSL3' then kfsl3
                                                            else 0 end else 0 end
               as wkfbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_wkfbtr_add is null or
                                                                 v.field_name_wkfbtr_add = 'KFSL'  then kfsl
                                                            when v.field_name_wkfbtr_add = 'KFSL2' then kfsl2
                                                            when v.field_name_wkfbtr_add = 'KFSL3' then kfsl3
                                                            else 0 end else 0 end
               as wkfper,

          case when ryear < :akG or poper <= :akP then case when v.field_name_pagbtr_add is null or
                                                                 v.field_name_pagbtr_add = 'PSL'  then psl
                                                            when v.field_name_pagbtr_add = 'PSL2' then psl2
                                                            when v.field_name_pagbtr_add = 'PSL3' then psl3
                                                            else 0 end else 0 end
               as pagbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_pagbtr_add is null or
                                                                 v.field_name_pagbtr_add = 'PSL'  then psl
                                                            when v.field_name_pagbtr_add = 'PSL2' then psl2
                                                            when v.field_name_pagbtr_add = 'PSL3' then psl3
                                                            else 0 end else 0 end
               as pagper,

          case when ryear < :akG or poper <= :akP then case when v.field_name_pafbtr_add is null or
                                                                 v.field_name_pafbtr_add = 'PFSL'  then pfsl
                                                            when v.field_name_pafbtr_add = 'PFSL2' then pfsl2
                                                            when v.field_name_pafbtr_add = 'PFSL3' then pfsl3
                                                            else 0 end else 0 end
               as pafbtr,
          case when ryear = :akG and poper = :akP then case when v.field_name_pafbtr_add is null or
                                                                 v.field_name_pafbtr_add = 'PFSL'  then pfsl
                                                            when v.field_name_pafbtr_add = 'PFSL2' then pfsl2
                                                            when v.field_name_pafbtr_add = 'PFSL3' then pfsl3
                                                            else 0 end else 0 end
               as pafper,

          case when (ryear < :akG or poper <= :akP) then co_megbtr else 0 end
               as megbtr,
          case when (ryear = :akG and poper = :akP) then co_megbtr else 0 end
               as megper,

          case when (ryear < :akG or poper <= :akP) then co_mefbtr else 0 end
               as mefbtr,
          case when (ryear = :akG and poper = :akP) then co_mefbtr else 0 end
               as mefper,

          case when co_meinh = '' // see fill_bel_cos*a

                                                    then cast(0      as abap.int4) else case
               when (ryear < :akG or poper <= :akP) then cast(muvflg as abap.int4) else
                                                         cast(0      as abap.int4) end end
               as muvbtr,
          case when co_meinh = '' // see fill_bel_cos*a

                                                    then cast(0      as abap.int4) else case
               when (ryear = :akG and poper = :akP) then cast(muvflg as abap.int4) else
                                                         cast(0      as abap.int4) end end
               as muvper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then osl else 0 end
               as wagbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then osl else 0 end
               as wagper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null ) 
                and ( ryear < :akG or poper <= :akP ) then vsl else 0 end
               as wvgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then vsl else 0 end
               as wvgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then bsl else 0 end
               as wbgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then bsl else 0 end
               as wbgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then csl else 0 end
               as wcgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then csl else 0 end
               as wcgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then dsl else 0 end
               as wdgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then dsl else 0 end
               as wdgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then esl else 0 end
               as wegbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then esl else 0 end
               as wegper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then fsl else 0 end
               as wfgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then fsl else 0 end
               as wfgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then gsl else 0 end
               as wggbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then gsl else 0 end
               as wggper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then hsl else 0 end
               as whgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then hsl else 0 end
               as whgper,

          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear < :akG or poper <= :akP ) then co_osl else 0 end
               as wsgbtr,
          case when ( v.field_name_wkgbtr_subtract = '' or v.field_name_wkgbtr_subtract is null )
                and ( ryear = :akG and poper = :akP ) then co_osl else 0 end
               as wsgper

    from acdoca as a

    left outer join finsc_cmp_versnd as v  on     a.rbukrs = v.bukrs
                                              and a.rldnr  = v.rldnr
                                              and            v.field_name_wkgbtr_add <> ''

    inner join t000                  as s  on   s.mandt  = a.rclnt
                                          and ( s.logsys = a.logsyso
                                                        or a.logsyso  = '' )

    inner join tka01                 as t  on   t.mandt  = a.rclnt
                                          and   t.kokrs  = a.kokrs 

    where a.accasty <> ''
    ;