cross_relation

DDL: CROSS_RELATION SQL: CROSS_RELATION_V Type: view

Source code relations to used objects

cross_relation is a CDS View that provides data about "Source code relations to used objects" in SAP S/4HANA. It reads from 7 data sources and exposes 7 fields.

Data Sources (7)

SourceAliasJoin Type
cross_tadir cross_tadir union_all
dd02l dd02l left_outer
ddtypes ddtypes left_outer
wbcrossgt_raw relation from
wbcrossgt_raw relation union_all
sedt_bdef sedt_bdef left_outer
sedt_type type_groups left_outer

Annotations (5)

NameValueLevelField
AbapCatalog.sqlViewName CROSS_RELATION_V view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Source code relations to used objects view

Fields (7)

KeyFieldSource TableSource FieldDescription
include wbcrossgt_raw include
fullname wbcrossgt_raw fullname
fullname
used_object sedt_type type_group_name
fullname fullname
used_object name
used_type tadir_type
@AbapCatalog.sqlViewName: 'CROSS_RELATION_V'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Source code relations to used objects'
define view cross_relation

  //ddic stuff without type groups

  as select from    wbcrossgt_raw as relation
    left outer join ddtypes   on ddtypes.typename = relation.used_object
    left outer join dd02l     on  dd02l.tabname  = ddtypes.typename
                              and dd02l.tabclass = 'INTTAB'
  // add bdefs

    left outer join sedt_bdef on sedt_bdef.bd_include = relation.used_object
{
  relation.include  as include,
  relation.fullname as fullname,
  case
    when sedt_bdef.bdef_name is not initial then sedt_bdef.bdef_name
  else relation.used_object
  end               as used_object,
  case
    when dd02l.tabclass = 'INTTAB' then 'STRU'
    when sedt_bdef.bdef_name is not initial then 'BDEF'
    else ddtypes.typekind
  end               as used_type
}

union all

// type groups

select from       wbcrossgt_raw as relation
  left outer join sedt_type     as type_groups on  relation.type_group = type_groups.type_group_include
                                               and type_groups.state   = 'A'
{
  relation.include            as include,
  ''                          as fullname,
  type_groups.type_group_name as used_object,
  'TYPE'                      as used_type
}
where
  type_groups.type_group_include is not initial

union all

//main objects

select from cross_tadir
{
  include    as include,
  fullname   as fullname,
  name       as used_object,
  tadir_type as used_type
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"CROSS_TADIR",
"SEDT_BDEF",
"SEDT_TYPE",
"WBCROSSGT_RAW",
"DD02L",
"DDTYPES"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/