FAA_SDM_DOCIT_CP22
Compare from ACDOCA to PLAN_VALUE
FAA_SDM_DOCIT_CP22 is a CDS View that provides data about "Compare from ACDOCA to PLAN_VALUE" in SAP S/4HANA. It reads from 5 data sources (acdoca, FAA_CFG_DEPR_AREA, fins_tech_ledger, fins_tech_ledger, FAA_SDM_DOCIT_CP02) and exposes 56 fields with key fields bukrs, anln1, anln2, gjahr, afabe.
Data Sources (5)
| Source | Alias | Join Type |
|---|---|---|
| acdoca | acdoca | from |
| FAA_CFG_DEPR_AREA | cfg_depr_area | inner |
| fins_tech_ledger | ledger_a | inner |
| fins_tech_ledger | ledger_p | inner |
| FAA_SDM_DOCIT_CP02 | split_number | left_outer |
Annotations (8)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | FAAVDOCITCP22 | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| EndUserText.label | Compare from ACDOCA to PLAN_VALUE | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #X | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view |
Fields (56)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | bukrs | acdoca | rbukrs | |
| KEY | anln1 | acdoca | anln1 | |
| KEY | anln2 | acdoca | anln2 | |
| KEY | gjahr | acdoca | gjahr | |
| KEY | afabe | acdoca | afabe | |
| KEY | poper | acdoca | depr_period | |
| KEY | slalittype | acdoca | slalittype | |
| KEY | rldnr | |||
| KEY | belnr | acdoca | belnr | |
| KEY | docln | acdoca | docln | |
| rldnrthenXelseendastech_ledger_d | ||||
| t_poper | acdoca | poper | ||
| poperthenXelseendaspoper_d | ||||
| s_movcat | plan_values | movcat | ||
| t_movcat | acdoca | movcat | ||
| movcatthenXelseendasmovcat_d | ||||
| s_hsl | plan_values | hsl | ||
| t_hsl | acdoca | hsl | ||
| hslthenXelseendashsl_d | ||||
| s_ksl | plan_values | ksl | ||
| t_ksl | acdoca | ksl | ||
| ksl_d | ||||
| s_osl | plan_values | osl | ||
| t_osl | acdoca | osl | ||
| osl_d | ||||
| s_vsl | plan_values | vsl | ||
| t_vsl | acdoca | vsl | ||
| vsl_d | ||||
| s_rhcur | plan_values | rhcur | ||
| t_rhcur | acdoca | rhcur | ||
| rhcurthenXelseendasrhcur_d | ||||
| s_rkcur | plan_values | rkcur | ||
| t_rkcur | acdoca | rkcur | ||
| rkcur_d | ||||
| s_rocur | plan_values | rocur | ||
| t_rocur | acdoca | rocur | ||
| rocur_d | ||||
| s_rvcur | plan_values | rvcur | ||
| t_rvcur | acdoca | rvcur | ||
| rvcur_d | ||||
| s_anlkl | plan_values | anlkl | ||
| t_anlkl | acdoca | anlkl | ||
| anlklthenXelseendasanlkl_d | ||||
| s_ktogr | plan_values | ktogr | ||
| t_ktogr | acdoca | ktogr | ||
| ktogrthenXelseendasktogr_d | ||||
| s_mig_source | plan_values | mig_source | ||
| t_mig_source | acdoca | mig_source | ||
| mig_source_d | ||||
| s_recid | plan_values | recid | ||
| t_recid | acdoca | recid | ||
| recidthenXelseendasrecid_d | ||||
| recidthenXelseendasdifferent | Different | |||
| direction | Migrated | |||
| anlkl | acdoca | anlkl | ||
| movcat | acdoca | movcat |
@AbapCatalog.sqlViewName: 'FAAVDOCITCP22'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Compare from ACDOCA to PLAN_VALUE'
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XXL
define view FAA_SDM_DOCIT_CP22
as select from acdoca as acdoca
inner join fins_tech_ledger as ledger_a on acdoca.rldnr = ledger_a.tech_ledger
and ledger_a.tech_ledger <> ''
and acdoca.awtyp = 'AMDP'
and acdoca.mig_source = 'A'
left outer join(
faagtt_plan_val as plan_values
inner join FAA_CFG_DEPR_AREA as cfg_depr_area on plan_values.bukrs = cfg_depr_area.comp_code
and plan_values.afabe = cfg_depr_area.depr_area
and cfg_depr_area.POSTING_TYPE = '0'
//and plan_values.sdm_status = '19'
inner join fins_tech_ledger as ledger_p on ledger_p.rldnr = cfg_depr_area.ledger
)
on acdoca.rbukrs = plan_values.bukrs
and acdoca.anln1 = plan_values.anln1
and acdoca.anln2 = plan_values.anln2
and acdoca.gjahr = plan_values.gjahr
and acdoca.afabe = plan_values.afabe
// and acdoca.poper = plan_values.poper
and plan_values.poper = acdoca.depr_period
// and (
// (
// plan_values.poper_shifted = '000'
// and plan_values.poper = acdoca.poper
// and plan_values.poper = acdoca.depr_period
// )
// or(
// plan_values.poper_shifted <> '000'
// and plan_values.poper_shifted = acdoca.poper
// and plan_values.poper = acdoca.depr_period
// )
// )
and acdoca.slalittype = plan_values.slalittype
left outer join FAA_SDM_DOCIT_CP02 as split_number on split_number.bukrs = plan_values.bukrs
and split_number.anln1 = plan_values.anln1
and split_number.anln2 = plan_values.anln2
and split_number.gjahr = plan_values.gjahr
and split_number.afabe = plan_values.afabe
and split_number.poper = plan_values.poper
and split_number.slalittype = plan_values.slalittype
and split_number.source_table = 'PLAN_VALUES'
{
key acdoca.rbukrs as bukrs,
key acdoca.anln1,
key acdoca.anln2,
key acdoca.gjahr,
//key acdoca.awtyp,
//key acdoca.awref,
//key acdoca.aworg,
//key acdoca.awsys,
//key acdoca.subta,
key acdoca.afabe,
key acdoca.depr_period as poper,
key acdoca.slalittype,
//key acdoca.drcrk,
key cast( acdoca.rldnr as fins_technical_ledger preserving type ) as rldnr,
key acdoca.belnr,
key acdoca.docln,
acdoca.poper as poper_shifted,
cast( case
when split_number.counter is null then 0
else split_number.counter
end as int4 preserving type ) as split_number,
//cast( '000000' as fins_awitem preserving type ) as s_awitem,
//cast( '000000' as fins_awitem preserving type ) as t_awitem,
cast( ledger_p.tech_ledger as fins_technical_ledger preserving type ) as s_tech_ledger,
cast( acdoca.rldnr as fins_technical_ledger preserving type ) as t_tech_ledger,
case
when plan_values.bukrs is null then 'X'
when ledger_p.tech_ledger <> acdoca.rldnr then 'X'
else ''
end as tech_ledger_d,
//cast( ' ' as vorgn preserving type ) as s_vorgn,
//cast( ' ' as vorgn preserving type ) as t_vorgn,
//cast( '00000000' as budat ) as s_budat,
//cast( '00000000' as budat ) as t_budat,
//cast( '00000000' as bzdat ) as s_bzdat,
//cast( '00000000' as bzdat ) as t_bzdat,
case
when plan_values.poper_shifted <> '000'
then plan_values.poper_shifted
else plan_values.poper
end as s_poper,
// plan_values.poper as s_poper,
acdoca.poper as t_poper,
// case
// when plan_values.bukrs is null then 'X'
// when plan_values.poper <> acdoca.poper then 'X'
// else ''
// end as poper_d,
case
when plan_values.bukrs is null then 'X'
when ( ( plan_values.poper_shifted = '000' and
plan_values.poper <> acdoca.poper )
or
( plan_values.poper_shifted <> '000' and
plan_values.poper_shifted <> acdoca.poper
)
) then 'X'
else ''
end as poper_d,
//cast( ' ' as bwasl preserving type ) as s_bwasl,
//cast( ' ' as bwasl preserving type ) as t_bwasl,
plan_values.movcat as s_movcat,
acdoca.movcat as t_movcat,
case
when plan_values.bukrs is null then 'X'
when ( plan_values.movcat = '46' and acdoca.movcat <> '06' ) or
( plan_values.movcat = '65' and acdoca.movcat <> '06' ) or
( plan_values.movcat <> '46' and plan_values.movcat <> '65' and plan_values.movcat <> acdoca.movcat ) then 'X'
else ''
end as movcat_d,
@Semantics.amount.currencyCode: 's_rhcur'
plan_values.hsl as s_hsl,
@Semantics.amount.currencyCode: 't_rhcur'
acdoca.hsl as t_hsl,
case
when plan_values.bukrs is null then 'X'
when plan_values.hsl <> acdoca.hsl then 'X'
else ''
end as hsl_d,
@Semantics.amount.currencyCode: 's_rkcur'
plan_values.ksl as s_ksl,
@Semantics.amount.currencyCode: 't_rkcur'
acdoca.ksl as t_ksl,
'' as ksl_d,
@Semantics.amount.currencyCode: 's_rocur'
plan_values.osl as s_osl,
@Semantics.amount.currencyCode: 't_rocur'
acdoca.osl as t_osl,
'' as osl_d,
@Semantics.amount.currencyCode: 's_rvcur'
plan_values.vsl as s_vsl,
@Semantics.amount.currencyCode: 't_rvcur'
acdoca.vsl as t_vsl,
'' as vsl_d,
@Semantics.currencyCode: true
plan_values.rhcur as s_rhcur,
@Semantics.currencyCode: true
acdoca.rhcur as t_rhcur,
case
when plan_values.bukrs is null then 'X'
when plan_values.rhcur <> acdoca.rhcur then 'X'
else ''
end as rhcur_d,
@Semantics.currencyCode: true
plan_values.rkcur as s_rkcur,
@Semantics.currencyCode: true
acdoca.rkcur as t_rkcur,
'' as rkcur_d,
@Semantics.currencyCode: true
plan_values.rocur as s_rocur,
@Semantics.currencyCode: true
acdoca.rocur as t_rocur,
'' as rocur_d,
@Semantics.currencyCode: true
plan_values.rvcur as s_rvcur,
@Semantics.currencyCode: true
acdoca.rvcur as t_rvcur,
'' as rvcur_d,
//cast( '' as fins_xreversing preserving type ) as s_xreversing,
//cast( '' as fins_xreversing preserving type ) as t_xreversing,
//cast( '' as fins_xreversed preserving type ) as s_xreversed,
//cast( '' as fins_xreversed preserving type ) as t_xreversed,
//cast( '' as fins_xsettling preserving type ) as s_xsettling,
//cast( '' as fins_xsettling preserving type ) as t_xsettling,
//cast( '' as fins_xsettled preserving type ) as s_xsettled,
//cast( '' as fins_xsettled preserving type ) as t_xsettled,
//cast( ' ' as fins_prec_awtyp preserving type ) as s_prec_awtyp,
//cast( ' ' as fins_prec_awtyp preserving type ) as t_prec_awtyp,
//cast( ' ' as fins_prec_aworg preserving type ) as s_prec_aworg,
//cast( ' ' as fins_prec_aworg preserving type ) as t_prec_aworg,
//cast( ' ' as fins_prec_awref preserving type ) as s_prec_awref,
//cast( ' ' as fins_prec_awref preserving type ) as t_prec_awref,
//cast( '000000' as fins_prec_subta preserving type ) as s_prec_subta,
//cast( '000000' as fins_prec_subta preserving type ) as t_prec_subta,
//cast( ' ' as awtyp_rev preserving type ) as s_awtyp_rev,
//cast( ' ' as awtyp_rev preserving type ) as t_awtyp_rev,
//cast( ' ' as awref_rev preserving type ) as s_awref_rev,
//cast( ' ' as awref_rev preserving type ) as t_awref_rev,
//cast( ' ' as aworg_rev preserving type ) as s_aworg_rev,
//cast( ' ' as aworg_rev preserving type ) as t_aworg_rev,
//cast( '000000' as fins_subta_rev preserving type ) as s_subta_rev,
//cast( '000000' as fins_subta_rev preserving type ) as t_subta_rev,
plan_values.anlkl as s_anlkl,
acdoca.anlkl as t_anlkl,
case
when plan_values.bukrs is null then 'X'
when plan_values.anlkl = '' and acdoca.anlkl = '' then 'X'
when plan_values.anlkl <> '' and plan_values.anlkl <> acdoca.anlkl then 'X'
else ''
end as anlkl_d,
plan_values.ktogr as s_ktogr,
acdoca.ktogr as t_ktogr,
case
when plan_values.bukrs is null then 'X'
when plan_values.ktogr = '' and acdoca.ktogr = '' then 'X'
when plan_values.ktogr <> '' and plan_values.ktogr <> acdoca.ktogr then 'X'
else ''
end as ktogr_d,
//cast( ' ' as panl1 preserving type ) as s_panl1,
//cast( ' ' as panl1 preserving type ) as t_panl1,
//cast( ' ' as panl2 preserving type ) as s_panl2,
//cast( ' ' as panl2 preserving type ) as t_panl2,
plan_values.mig_source as s_mig_source,
acdoca.mig_source as t_mig_source,
'' as mig_source_d,
plan_values.recid as s_recid,
acdoca.recid as t_recid,
case
when plan_values.bukrs is null then 'X'
when plan_values.recid <> acdoca.recid then 'X'
else ''
end as recid_d,
//cast( '00000000' as bldat ) as s_bldat,
//cast( '00000000' as bldat ) as t_bldat,
//'' as s_sgtxt,
//'' as t_sgtxt,
//'' as s_zuonr,
//'' as t_zuonr,
//cast( ' ' as a_obart preserving type ) as s_obart,
//cast( ' ' as a_obart preserving type ) as t_obart,
//'' as s_objid,
//'' as t_objid,
//cast( '00000000' as ubzdt ) as s_ubzdt_pn,
//cast( '00000000' as ubzdt ) as t_ubzdt_pn,
//cast( '' as xvabg preserving type ) as s_xvabg_pn,
//cast( '' as xvabg preserving type ) as t_xvabg_pn,
//cast( 0 as prozs ) as s_prozs_pn,
//cast( 0 as prozs ) as t_prozs_pn,
//cast( '' as xmanpropval preserving type ) as s_xmanpropval_pn,
//cast( '' as xmanpropval preserving type ) as t_xmanpropval_pn,
@EndUserText.label: 'Different'
@EndUserText.quickInfo: 'Has some differences'
case
when plan_values.bukrs is null then 'X'
when ledger_p.tech_ledger <> acdoca.rldnr then 'X'
// when plan_values.poper <> acdoca.poper then 'X'
when ( ( plan_values.poper_shifted = '000' and
plan_values.poper <> acdoca.poper )
or
( plan_values.poper_shifted <> '000' and
plan_values.poper_shifted <> acdoca.poper
)
) then 'X'
when ( plan_values.movcat = '46' and acdoca.movcat <> '06' ) or
( plan_values.movcat = '65' and acdoca.movcat <> '06' ) or
( plan_values.movcat <> '46' and plan_values.movcat <> '65' and plan_values.movcat <> acdoca.movcat ) then 'X'
when plan_values.hsl <> acdoca.hsl then 'X'
//when plan_values.ksl <> acdoca.ksl then 'X'
//when plan_values.osl <> acdoca.osl then 'X'
//when plan_values.vsl <> acdoca.vsl then 'X'
when plan_values.rhcur <> acdoca.rhcur then 'X'
//when plan_values.rkcur <> acdoca.rkcur then 'X'
//when plan_values.rocur <> acdoca.rocur then 'X'
//when plan_values.rvcur <> acdoca.rvcur then 'X'
//when plan_values.anlkl <> acdoca.anlkl then 'X'
when ( plan_values.anlkl = '' and acdoca.anlkl = '' ) or
( plan_values.anlkl <> '' and plan_values.anlkl <> acdoca.anlkl ) then 'X'
//when plan_values.ktogr <> acdoca.ktogr then 'X'
when ( plan_values.ktogr = '' and acdoca.ktogr = '' ) or
( plan_values.ktogr <> '' and plan_values.ktogr <> acdoca.ktogr ) then 'X'
//when ( plan_values.sdm_status = '19' and acdoca.mig_source <> 'A') or
// ( plan_values.sdm_status <> '19' and plan_values.mig_source <> acdoca.mig_source ) then 'X'
when plan_values.recid <> acdoca.recid then 'X'
else ''
end as different,
@EndUserText.label: 'Redundant'
@EndUserText.quickInfo: 'Redundant in both tables'
case
when plan_values.bukrs is null then ''
else 'X'
end as redundant,
@EndUserText.label: 'Migrated'
@EndUserText.quickInfo: 'Has been migrated'
cast( '-' as char01 preserving type ) as direction,
acdoca.anlkl,
acdoca.movcat
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"FAA_CFG_DEPR_AREA",
"FAA_SDM_DOCIT_CP02",
"ACDOCA",
"FAAGTT_PLAN_VAL",
"FINS_TECH_LEDGER"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA