DDCDS_ENTITY_ELEMENTS

CDS View

Metadata of CDS Entities: Elements

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

CDS Views using this table (7)

ViewTypeJoinVDMDescription
DD_MDQDPI_BP_DATA_MODEL view_entity union_all .
Dictionary_Definition view from Dictionary Definition
Dictionary_Definition_Ext view from Dictionary Definition
I_CCV_Element_Successors view_entity inner CCV Element - Successors
I_EntityElementDetail view_entity from Metadata of CDS Elements
I_ImpctMgmtObjectListTP view_entity inner TRANSACTIONAL Impact Management Object List - TP
P_RespyRuleParamCDSElmntStdVH view from COMPOSITE Value Help for CDS View and Field Name

Fields (9)

KeyField CDS FieldsUsed in Views
KEY element_name FieldName,ImpctMgmtSourceFieldName,ImpctMgmtTargetFieldName 2
KEY element_name_raw element_name,FieldNameText 2
KEY entity_name CDSName,DDLSourceName 1
data_element DataElement 1
data_element_label_m DataElementText_Medium 1
data_type DataType 1
element_position FieldPosition 1
is_key ImpctMgmtSourceIsKeyFld,ImpctMgmtTargetIsKeyField 1
length Length 1
//@AbapCatalog.sqlViewName: 'DDCDS_E_ELEM_V'

@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Metadata of CDS Entities: Elements'
// **********************************************************************************************************************************************************//

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

// Field Label texts are retrieved in the System Language. Fallback: First preference is English, the last preference is in original Language.               //

// Field Annotations read via Annotation API are inherited from the base object. But this is not the case here. They are simply read from table ddfieldanno. //

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

define view entity DDCDS_ENTITY_ELEMENTS
  as select from dd02b                      as stob
    inner join   DDCDS_ENTITY_ELEMENTS_LIST 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

  -- Element Label - fallback
  /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
  association [0..1] to ddfieldanno  as _label_active_fb       on  _label_active_fb.strucobjn  = stob.strucobjn
                                                               and _label_active_fb.lfieldname = elements.fieldname
                                                               and _label_active_fb.name       = 'ENDUSERTEXT.LABEL'

  -- 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.element_position    as abap.int4)                                                                                                                           as element_position,
      @EndUserText.label: 'Element Type'
      cast( case when  elements.element_position = 0 then  'ASSOC'
                 else  'FIELD'    end as abap.char(10))                                                                                                                         as element_type,
      @EndUserText.label: 'Direct Element Label'
      cast(coalesce( coalesce( coalesce( _label_active.fieldlabel, _label_active_en.fieldlabel ), _label_active_orig.fieldlabel ), _label_active_fb.value )  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'
      cast( case when  elements.datatype = 'D16D' then  'DF16_DEC'
                 when  elements.datatype = 'D16R' then  'DF16_RAW'
                 when  elements.datatype = 'D16S' then  'DF16_SCL'
                 when  elements.datatype = 'D34D' then  'DF34_DEC'
                 when  elements.datatype = 'D34R' then  'DF34_RAW'
                 when  elements.datatype = 'D16S' then  'DF34_SCL'
                 when  elements.datatype = 'D16N' then  'DECFLOAT16'
                 when  elements.datatype = 'D34N' then  'DECFLOAT34'
                 when  elements.datatype = 'UTCL' then  'UTCLONG'
                 when  elements.datatype = 'RSTR' then  'RAWSTRING'
                 when  elements.datatype = 'SSTR' then  'SSTRING'
                 when  elements.datatype = 'STRG' then  'STRING'
                 when  elements.datatype = 'GGM1' then  'GEOM_EWKB'
                 else  elements.datatype    end as abap.char(10))                                                                                                               as data_type,
      @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,
      @EndUserText.label: 'Simple Type'
      cast(elements.simple_type        as abap.char(30))                                                                                                                        as simple_type,
      @EndUserText.label: 'DDL Name of the Extend'
      cast(elements.extendname         as abap.char(30))                                                                                                                        as extend_ddl_name
}
where
  stob.as4local = 'A'