DDCDS_ENTITY_ELEMENTS_INTERN

CDS View

Metadata of CDS Entities: Elements

DDCDS_ENTITY_ELEMENTS_INTERN is a CDS View in S/4HANA. Metadata of CDS Entities: Elements. It contains 7 fields. 1 CDS views read from this table.

CDS Views using this table (1)

ViewTypeJoinVDMDescription
dbc2abap_cds_elements view_entity inner CDS Entities in SQL1 Service Bindings

Fields (7)

KeyField CDS FieldsUsed in Views
KEY element_name element_name 1
data_type_d ddic_type 1
decimals ddic_decimals 1
element_name_raw element_name_raw 1
element_position element_position 1
is_key is_key 1
length ddic_length 1
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Metadata of CDS Entities: Elements'
// **********************************************************************************************************************************************************//

// Internal: This view provides elements metadata of CDS Entities.                                                                                           //

// **********************************************************************************************************************************************************//

define view entity DDCDS_ENTITY_ELEMENTS_INTERN
  as select from dd02b  as stob
    inner join   dd03nd as elements on  elements.strucobjn = stob.strucobjn
                                    and elements.as4local  = stob.as4local
                                    and elements.nodename  = '.NODE1'
  -- tadir
    inner join   tadir  as tadir    on  tadir.pgmid    = 'R3TR'
                                    and tadir.object   = 'STOB'
                                    and tadir.obj_name = stob.strucobjn

  -- Element Label - Current Language
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddddlsrc03nt as _label_active          on  _label_active.strucobjn  = stob.strucobjn
                                                               and _label_active.as4local   = stob.as4local
                                                               and _label_active.fieldname  = elements.fieldname
                                                               and _label_active.ddlanguage = $session.system_language
  -- Element Label - English
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddddlsrc03nt as _label_active_en       on  _label_active_en.strucobjn  = stob.strucobjn
                                                               and _label_active_en.as4local   = stob.as4local
                                                               and _label_active_en.fieldname  = elements.fieldname
                                                               and _label_active_en.ddlanguage = 'E'
  -- Element Label - original language
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddddlsrc03nt as _label_active_orig     on  _label_active_orig.strucobjn  = stob.strucobjn
                                                               and _label_active_orig.as4local   = stob.as4local
                                                               and _label_active_orig.fieldname  = elements.fieldname
                                                               and _label_active_orig.ddlanguage = tadir.masterlang

  -- Annotation 'AGGREGATION.DEFAULT'
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddfieldanno  as _aggregation_default   on  _aggregation_default.strucobjn  = elements.strucobjn
                                                               and _aggregation_default.lfieldname = elements.fieldname
                                                               and _aggregation_default.name       = 'AGGREGATION.DEFAULT'

  -- Annotation 'SEMANTICS.AMOUNT.CURRENCYCODE'
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddfieldanno  as _currency_code         on  _currency_code.strucobjn  = elements.strucobjn
                                                               and _currency_code.lfieldname = elements.fieldname
                                                               and _currency_code.name       = 'SEMANTICS.AMOUNT.CURRENCYCODE'

  -- Annotation 'API.ELEMENT.RELEASESTATE'
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddfieldanno  as _release_status        on  _release_status.strucobjn  = elements.strucobjn
                                                               and _release_status.lfieldname = elements.fieldname
                                                               and _release_status.name       = 'API.ELEMENT.RELEASESTATE'
  -- Data Element label medium - Current Language
  association [0..1] to dd04t        as _dte_label_active      on  _dte_label_active.rollname   = elements.rollname
                                                               and _dte_label_active.as4local   = elements.as4local
                                                               and _dte_label_active.ddlanguage = $session.system_language
                                                               and _dte_label_active.as4vers    = '0000'

  -- Data Element label medium - English Language
  association [0..1] to dd04t        as _dte_label_active_en   on  _dte_label_active_en.rollname   = elements.rollname
                                                               and _dte_label_active_en.as4local   = elements.as4local
                                                               and _dte_label_active_en.ddlanguage = 'E'
                                                               and _dte_label_active_en.as4vers    = '0000'

  -- Data Element label medium - Original Language
  association [0..1] to dd04t        as _dte_label_active_orig on  _dte_label_active_orig.rollname   = elements.rollname
                                                               and _dte_label_active_orig.as4local   = elements.as4local
                                                               and _dte_label_active_orig.ddlanguage = tadir.masterlang
                                                               and _dte_label_active_orig.as4vers    = '0000'


{
      @EndUserText.label: 'Entity Name Upper Case'
  key cast(stob.strucobjn               as abap.char(30))                                                                                          as entity_name,
      @EndUserText.label: 'Entity State'
  key cast(stob.as4local                as abap.char(1))                                                                                           as entity_state,
      @EndUserText.label: 'Element Name'
  key cast(elements.fieldname           as abap.char(30))                                                                                          as element_name,
      @EndUserText.label: 'Entity Name Raw'
      cast(stob.strucobjn_raw           as abap.char(30))                                                                                          as entity_name_raw,
      @EndUserText.label: 'Element Name Raw'
      cast(elements.fieldname_raw       as abap.char(30))                                                                                          as element_name_raw,
      @EndUserText.label: 'Element Position'
      cast(elements.position            as abap.int4)                                                                                              as element_position,
      @EndUserText.label: 'Direct Element Label'
      cast(coalesce( coalesce( _label_active.fieldlabel, _label_active_en.fieldlabel ), _label_active_orig.fieldlabel ) as abap.char(250))         as direct_element_label, // it is not inherited and not aligned with Metadata Extension aligned

      @EndUserText.label: 'Language of Direct Element Label'
      coalesce( coalesce( _label_active.ddlanguage, _label_active_en.ddlanguage ), _label_active_orig.ddlanguage )                                 as direct_element_label_language,
      @EndUserText.label: 'Data Type short'
      cast(elements.datatype   as abap.char(4) )                                                                                                   as data_type_d,
      @EndUserText.label: 'Length'
      cast(elements.leng                as abap.numc(6) )                                                                                          as length,
      @EndUserText.label: 'Decimals'
      cast(elements.decimals            as abap.numc(6) )                                                                                          as decimals,
      @EndUserText.label: 'Domain Name'
      cast(elements.domname             as abap.char(30))                                                                                          as domain_name,
      @EndUserText.label: 'Data Element'
      cast(elements.rollname            as abap.char(30))                                                                                          as data_element,
      @EndUserText.label: 'Data Element Label Medium'
      cast(coalesce( coalesce( _dte_label_active.scrtext_m, _dte_label_active_en.scrtext_m ), _dte_label_active_orig.scrtext_m ) as abap.char(20)) as data_element_label_m,
      @EndUserText.label: 'Data Element Label Medium Language'
      coalesce( coalesce( _dte_label_active.ddlanguage, _dte_label_active_en.ddlanguage ), _dte_label_active_orig.ddlanguage )                     as data_element_label_m_language,
      @EndUserText.label: 'Reference Element'
      cast(elements.reffield            as abap.char(30))                                                                                          as ref_field,
      @EndUserText.label: 'Reference Object'
      cast(elements.reftable            as abap.char(30))                                                                                          as ref_table,
      @EndUserText.label: 'Direct Default Aggregation'
      cast( _aggregation_default.value  as abap.char(30) )                                                                                         as direct_default_aggregation, // it is not inherited and hence not aligned with Annotation API

      @EndUserText.label: 'Direct Currency Code'
      cast( _currency_code.value        as abap.char(65) )                                                                                         as direct_currency_code, // it is not inherited and hence not aligned with Annotation API

      @EndUserText.label: 'Direct Release Status'
      cast( _release_status.value       as abap.char(30) )                                                                                         as direct_release_status, // it is not inherited and hence not aligned with Annotation API

      @EndUserText.label: 'Is Key'
      cast(elements.keyflag             as abap.char(1))                                                                                           as is_key,
      @EndUserText.label: 'Is Calculated'
      cast(elements.is_calculated       as abap.char(1))                                                                                           as is_calculated,
      @EndUserText.label: 'Is Virtual'
      cast(elements.is_virtual          as abap.char(1))                                                                                           as is_virtual,
      @EndUserText.label: 'Is Element from Extend'
      case when elements.fieldorigin = 'E' then 'X' else ' ' end                                                                                   as is_external
}
where
  stob.as4local = 'A'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"DD02B",
"DD03ND",
"DD04T",
"DDDDLSRC03NT",
"DDFIELDANNO",
"TADIR"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/