fco_ovhd_cost_co_values1

DDL: FCO_OVHD_COST_CO_VALUES1 Type: view_entity Package: KASC

Overhead costs from acdoca to fields for CO-Version

fco_ovhd_cost_co_values1 is a CDS View that provides data about "Overhead costs from acdoca to fields for CO-Version" in SAP S/4HANA. It reads from 6 data sources and exposes 53 fields with key fields lednr, gjahr, bukrs, objnr, vrgng. Part of development package KASC.

Data Sources (6)

SourceAliasJoin Type
acdoca a from
fco_cmp_versnd_add_curr addcur inner
tj01 bt inner
t000 s inner
tka01 t inner
finsc_cmp_versnd v inner

Annotations (6)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Overhead costs from acdoca to fields for CO-Version view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view

Fields (53)

KeyFieldSource TableSource FieldDescription
KEY lednr
KEY gjahr acdoca ryear
KEY bukrs acdoca rbukrs
KEY objnr acdoca objnr
KEY vrgng acdoca vrgng
KEY beknz acdoca co_beknz
KEY kstar acdoca racct
KEY hrkft acdoca hrkft
KEY vbund
KEY pargb
KEY twaer acdoca rwcur
KEY meinh acdoca co_meinh
KEY beltp acdoca beltp
KEY uspob
KEY perio acdoca poper
versn finsc_cmp_versnd versn
timestmp 0
parob1 acdoca parob1
coep_vbund acdoca rassc
coep_pargb acdoca sbusa
hwaer acdoca rhcur
co_belnr acdoca co_belnr
aworg acdoca aworg
awtyp acdoca awtyp
awsys acdoca awsys
awref acdoca awref
budat acdoca budat
bldat acdoca bldat
megbtr
mefbtr
wagbtr
wvgbtr
wbgbtr
wcgbtr
wdgbtr
wegbtr
wfgbtr
wggbtr
whgbtr
fkber acdoca rfarea
segment acdoca segment
geber acdoca rfund
grant_nbr acdoca rgrant_nbr
budget_pd acdoca rbudget_pd
pfkber acdoca sfarea
psegment acdoca psegment
pgeber acdoca sfund
pgrant_nbr acdoca sgrant_nbr
pbudget_pd acdoca sbudget_pd
vornr
arbid acdoca arbid
aufnr_org acdoca aufnr_org
vornr_org acdoca vornr_org
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Overhead costs from acdoca to fields for CO-Version'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
define view entity fco_ovhd_cost_co_values1
  as select from acdoca                  as a
    inner join   finsc_cmp_versnd        as v      on  a.rbukrs      = v.bukrs
                                                   and a.rldnr       = v.rldnr
                                                   and v.set_to_zero = ''

    inner join   tka01                   as t      on t.kokrs = a.kokrs

    inner join   t000                    as s      on s.mandt           = $session.client
                                                   and(
                                                     s.logsys           = a.logsyso
                                                     or a.logsyso       = ''
                                                     or(
                                                       (
                                                         a.accasty      = 'KS'
                                                         or a.accasty   = 'KL'
                                                       )
                                                       and(
                                                         s.logsys       = t.logsystem
                                                         or t.logsystem = ''
                                                       )
                                                     )
                                                   )

    inner join   tj01                    as bt     on bt.vrgng   = a.vrgng
                                                   and(
                                                     bt.xcosp    = 'X'
                                                     or bt.xcoss = 'X'
                                                   )
    inner join   fco_cmp_versnd_add_curr as addcur on  a.rbukrs = addcur.bukrs
                                                   and a.rldnr  = addcur.rldnr
{
  key       cast( '00' as fins_ledger )                                                                         as lednr,
  key       a.ryear                                                                                             as gjahr,
  key       a.rbukrs                                                                                            as bukrs,
  key       a.objnr,
  key       a.vrgng,
  key       a.co_beknz                                                                                          as beknz,
  key       a.racct                                                                                             as kstar,
  key       a.hrkft,
  key       case when bt.xcosp = 'X' then a.rassc else '' end                                                   as vbund,
  key       case when bt.xcosp = 'X' then a.sbusa else '' end                                                   as pargb,
  key       a.rwcur                                                                                             as twaer,
  key       a.co_meinh                                                                                          as meinh,
  key       a.beltp,
  key       case when bt.xcoss = 'X' then
                   case when a.parobsrc = '1' then a.parob1     else case
                       when a.parobsrc = '2' then a.paccasty
                       else ''                             end end  else '' end                                 as parob, // COSS only



  key       case when bt.xcoss = 'X' then a.uspob else '' end                                                   as uspob,
  key       a.poper                                                                                             as perio,
            v.versn,
            0                                                                                                   as timestmp,
            a.parob1,
            a.paccasty,
            a.rassc                                                                                             as coep_vbund,
            a.sbusa                                                                                             as coep_pargb,
            a.rhcur                                                                                             as hwaer,
            // reference fields block

            a.co_belnr,
            a.aworg,
            a.awtyp,
            a.awsys,
            a.awref,
            a.budat,
            a.bldat,

            @Semantics.amount.currencyCode: 'twaer'
            case
            when v.field_name_wtgbtr_add = 'WSL'  then a.wsl
            when v.field_name_wtgbtr_add = 'WSL2' then a.wsl2
            when v.field_name_wtgbtr_add = 'WSL3' then a.wsl3
            else cast( 0 as fins_vwcur12 )
            end                                                                                                 as wtgbtr_add,
            @Semantics.amount.currencyCode: 'twaer'
            case v.field_name_wtgbtr_subtract
              when 'WSL'  then a.wsl
              when 'WSL2' then a.wsl2
              when 'WSL3' then a.wsl3
              else cast( 0 as fins_vwcur12  )
            end                                                                                                 as wtgbtr_subtract,
            @Semantics.amount.currencyCode: 'hwaer'
            case
              when v.set_to_zero = 'X'  then cast( 0 as fins_vhcur12  )

              when v.field_name_wogbtr_add = 'CO_OSL'  then a.co_osl
            //others put 0 in null case. check how do we handle it in overhead

              when v.field_name_wogbtr_add = 'HSL'  then a.hsl
              when v.field_name_wogbtr_add = 'OSL'  then a.osl
              when v.field_name_wogbtr_add = 'VSL'  then a.vsl
              when v.field_name_wogbtr_add = 'BSL'  then a.bsl
              when v.field_name_wogbtr_add = 'CSL'  then a.csl
              when v.field_name_wogbtr_add = 'DSL'  then a.dsl
              when v.field_name_wogbtr_add = 'ESL'  then a.esl
              when v.field_name_wogbtr_add = 'FSL'  then a.fsl
              when v.field_name_wogbtr_add = 'GSL'  then a.gsl
              when v.field_name_wogbtr_add = 'KSL'  then a.ksl
              else cast( 0 as fins_vhcur12  )
            end                                                                                                 as wogbtr_add,
            @Semantics.amount.currencyCode: 'hwaer'
            case v.field_name_wogbtr_subtract
                    when 'CO_OSL'  then a.co_osl
                    when 'HSL'  then a.hsl
                    when 'OSL'  then a.osl
                    when 'VSL'  then a.vsl
                    when 'BSL'  then a.bsl
                    when 'CSL'  then a.csl
                    when 'DSL'  then a.dsl
                    when 'ESL'  then a.esl
                    when 'FSL'  then a.fsl
                    when 'GSL'  then a.gsl
                    when 'KSL'  then a.ksl
                    else  cast( 0 as fins_vhcur12 )
                  end                                                                                           as wogbtr_subtract,
            case
            when v.set_to_zero = 'X'             then a.rkcur
            when v.field_name_wkgbtr_add = 'KSL'   then a.rkcur
            when v.field_name_wkgbtr_add = 'OSL'   then a.rocur
            when v.field_name_wkgbtr_add = 'VSL'   then a.rvcur
            when v.field_name_wkgbtr_add = 'BSL'   then a.rbcur
            when v.field_name_wkgbtr_add = 'CSL'   then a.rccur
            when v.field_name_wkgbtr_add = 'DSL'   then a.rdcur
            when v.field_name_wkgbtr_add = 'ESL'   then a.recur
            when v.field_name_wkgbtr_add = 'FSL'   then a.rfcur
            when v.field_name_wkgbtr_add = 'GSL'   then a.rgcur
            when v.field_name_wkgbtr_add = 'HSL'   then a.rhcur
            when v.field_name_wkgbtr_subtract = 'KSL'   then a.rkcur
            when v.field_name_wkgbtr_subtract = 'OSL'   then a.rocur
            when v.field_name_wkgbtr_subtract = 'VSL'   then a.rvcur
            when v.field_name_wkgbtr_subtract = 'BSL'   then a.rbcur
            when v.field_name_wkgbtr_subtract = 'CSL'   then a.rccur
            when v.field_name_wkgbtr_subtract = 'DSL'   then a.rdcur
            when v.field_name_wkgbtr_subtract = 'ESL'   then a.recur
            when v.field_name_wkgbtr_subtract = 'FSL'   then a.rfcur
            when v.field_name_wkgbtr_subtract = 'GSL'   then a.rgcur
            when v.field_name_wkgbtr_subtract = 'HSL'   then a.rhcur
            else cast( '' as fins_currk  )
            end                                                                                                 as kwaer,
            @Semantics.amount.currencyCode: 'kwaer'
            case
              when v.field_name_wkgbtr_add = 'KSL'  then a.ksl
              when v.field_name_wkgbtr_add = 'OSL'  then a.osl
              when v.field_name_wkgbtr_add = 'VSL'  then a.vsl
              when v.field_name_wkgbtr_add = 'BSL'  then a.bsl
              when v.field_name_wkgbtr_add = 'CSL'  then a.csl
              when v.field_name_wkgbtr_add = 'DSL'  then a.dsl
              when v.field_name_wkgbtr_add = 'ESL'  then a.esl
              when v.field_name_wkgbtr_add = 'FSL'  then a.fsl
              when v.field_name_wkgbtr_add = 'GSL'  then a.gsl
              when v.field_name_wkgbtr_add = 'HSL'  then a.hsl
              else cast( 0 as fins_vkcur12 )
            end                                                                                                 as wkgbtr_add,
            @Semantics.amount.currencyCode: 'kwaer'
            case v.field_name_wkgbtr_subtract
              when 'KSL'  then a.ksl
              when 'OSL'  then a.osl
              when 'VSL'  then a.vsl
              when 'BSL'  then a.bsl
              when 'CSL'  then a.csl
              when 'DSL'  then a.dsl
              when 'ESL'  then a.esl
              when 'FSL'  then a.fsl
              when 'GSL'  then a.gsl
              when 'HSL'  then a.hsl
              else cast( 0 as fins_vkcur12 )
            end                                                                                                 as wkgbtr_subtract,
            @Semantics.amount.currencyCode: 'kwaer'
            case
              when v.field_name_wkfbtr_add = 'KFSL'   then a.kfsl
              when v.field_name_wkfbtr_add = 'KFSL2'  then a.kfsl2
              when v.field_name_wkfbtr_add = 'KFSL3'  then a.kfsl3
              else cast( 0 as fins_vgcur12_fix  )
            end                                                                                                 as wkfbtr_add,
            @Semantics.amount.currencyCode: 'kwaer'
            case v.field_name_wkfbtr_subtract
              when 'KFSL'   then a.kfsl
              when 'KFSL2'  then a.kfsl2
              when 'KFSL3'  then a.kfsl3
              else cast( 0 as fins_vgcur12_fix  )
            end                                                                                                 as wkfbtr_subtract,
            @Semantics.amount.currencyCode: 'kwaer'
            case
              when  v.field_name_pagbtr_add = 'PSL'  then a.psl
              when  v.field_name_pagbtr_add = 'PSL2' then a.psl2
              when  v.field_name_pagbtr_add = 'PSL3' then a.psl3
              else  cast( 0 as fins_vpcur12  )
            end                                                                                                 as pagbtr_add,
            @Semantics.amount.currencyCode: 'kwaer'
            case v.field_name_pagbtr_subtract
              when 'PSL'  then a.psl
              when 'PSL2' then a.psl2
              when 'PSL3' then a.psl3
              else  cast( 0 as fins_vpcur12 )
            end                                                                                                 as pagbtr_subtract,
            @Semantics.amount.currencyCode: 'kwaer'
            case
              when  v.field_name_pafbtr_add = 'PFSL'  then a.pfsl
              when  v.field_name_pafbtr_add = 'PFSL2' then a.pfsl2
              when  v.field_name_pafbtr_add = 'PFSL3' then a.pfsl3
              else  cast( 0 as fins_vpfcur12 )
            end                                                                                                 as pafbtr_add,
            @Semantics.amount.currencyCode: 'kwaer'
            case v.field_name_pafbtr_subtract
              when 'PFSL'  then a.pfsl
              when 'PFSL2' then a.pfsl2
              when 'PFSL3' then a.pfsl3
              else cast( 0 as fins_vpfcur12  )
            end                                                                                                 as pafbtr_subtract,
            @Semantics.quantity.unitOfMeasure: 'meinh'
            case when v.versn = '000' and v.set_to_zero = '' then a.co_megbtr else cast( 0 as fco_megbtr) end   as megbtr,
            @Semantics.quantity.unitOfMeasure: 'meinh'
            case when v.versn = '000' and v.set_to_zero = '' then a.co_mefbtr else cast( 0 as fco_mefbtr) end   as mefbtr,

            // Additional currencies:

            @Semantics.amount.currencyCode: 'awaer'
            case when ( v.set_to_zero = '' ) then a.osl else cast( 0 as fins_vocur12 ) end  as wagbtr,
            @Semantics.amount.currencyCode: 'vwaer'
            case when ( v.set_to_zero = ''  ) then a.vsl else cast( 0 as fins_vvcur12  ) end as wvgbtr,
            @Semantics.amount.currencyCode: 'bwaer'
            case when ( v.set_to_zero = '' ) then a.bsl else cast( 0 as fins_vbcur12  ) end as wbgbtr,
            @Semantics.amount.currencyCode: 'cwaer'
            case when ( v.set_to_zero = '' ) then a.csl else cast( 0 as fins_vccur12 ) end  as wcgbtr,
            @Semantics.amount.currencyCode: 'dwaer'
            case when ( v.set_to_zero = '' ) then a.dsl else cast( 0 as fins_vdcur12  ) end as wdgbtr,
            @Semantics.amount.currencyCode: 'ewaer'
            case when ( v.set_to_zero = ''  ) then a.esl else cast( 0 as fins_vecur12  ) end as wegbtr,
            @Semantics.amount.currencyCode: 'fwaer'
            case when ( v.set_to_zero = ''  ) then a.fsl else cast( 0 as fins_vfcur12 ) end  as wfgbtr,
            @Semantics.amount.currencyCode: 'gwaer'
            case when ( v.set_to_zero = ''  ) then a.gsl else cast( 0 as fins_vgcur12 ) end  as wggbtr,
            @Semantics.amount.currencyCode: 'hwaer'
            case when ( v.set_to_zero = ''  ) then a.hsl else cast( 0 as fins_vhcur12  ) end as whgbtr,

            case when v.versn = '000' then
                                      case  when ( ( v.set_to_zero = '' ) and ( addcur.acurr <> 'X' )  )
                                                                            then a.rocur else cast( '' as fins_curr1 ) end
                                                                            else cast( '' as fins_curr1 ) end   as awaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = ''  )  and ( addcur.vcurr <> 'X')  )
                                                                            then a.rvcur else cast( '' as fins_curr2 ) end
                                                                            else cast( '' as fins_curr1 ) end   as vwaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = '' ) and ( addcur.bcurr <> 'X')  )
                                                                            then a.rbcur else cast( '' as fins_curr3 ) end
                                                                            else cast( '' as fins_curr1 ) end   as bwaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = ''  ) and ( addcur.ccurr <> 'X')  )
                                                                            then a.rccur else cast( '' as fins_curr4 ) end
                                                                            else cast( '' as fins_curr1 ) end   as cwaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = '' ) and ( addcur.dcurr <> 'X')  )
                                                                            then a.rdcur else cast( '' as fins_curr5 ) end
                                                                            else cast( '' as fins_curr1 ) end   as dwaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = '' ) and ( addcur.ecurr <> 'X')  )
                                                                            then a.recur else cast( '' as fins_curr6 ) end
                                                                            else cast( '' as fins_curr1 ) end   as ewaer,

            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = '' ) and ( addcur.fcurr <> 'X')  )
                                                                            then a.rfcur else cast( '' as fins_curr7 ) end
                                                                            else cast( '' as fins_curr1 ) end   as fwaer,
            case when v.versn = '000' then
                                      case when ( ( v.set_to_zero = ''  ) and ( addcur.gcurr <> 'X')  )
                                                                            then a.rgcur else cast( '' as fins_curr8 ) end
                                                                            else cast( '' as fins_curr1 ) end   as gwaer,

            case when v.field_name_buzei = 'CO_BUZEI'  then a.co_buzei
                 when v.field_name_buzei = 'CO_BUZEI1' then a.co_buzei1
                 when v.field_name_buzei = 'CO_BUZEI2' then a.co_buzei2
                 when v.field_name_buzei = 'CO_BUZEI5' then a.co_buzei5
                 when v.field_name_buzei = 'CO_BUZEI6' then a.co_buzei6
                 when v.field_name_buzei = 'CO_BUZEI7' then a.co_buzei7
                 else a.co_buzei end                                                                            as co_buzei,

            a.rfarea                                                                                            as fkber,
            a.segment,
            a.rfund                                                                                             as geber,
            a.rgrant_nbr                                                                                        as grant_nbr,
            a.rbudget_pd                                                                                        as budget_pd,
            a.sfarea                                                                                            as pfkber,
            a.psegment,
            a.sfund                                                                                             as pgeber,
            a.sgrant_nbr                                                                                        as pgrant_nbr,
            a.sbudget_pd                                                                                        as pbudget_pd,
            --new grouping fields
            a.vornr,
            a.arbid,
            a.aufnr_org,
            a.vornr_org

}
where
  (
    (
          a.co_buzei    <> '000'
      and not a.accasty =  ''
    )
    or(
          a.mig_source  =  'C'
      and a.bstat       =  'C'
    )


  )
  and     a.objnr       <> ''
  and     a.accasty     <> ''