DDCDS_ENTITY_ELEMENTS
Metadata of CDS Entities: Elements
DDCDS_ENTITY_ELEMENTS is a CDS View in S/4HANA. Metadata of CDS Entities: Elements. It contains 3 fields. 6 CDS views read from this table.
CDS Views using this table (6)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| Dictionary_Definition | view | from | Dictionary Definition | |
| I_CCV_Element_Successors | view_entity | inner | CCV Element - Successors | |
| I_ImpctMgmtFieldNameStdVH | view_entity | from | COMPOSITE | Modeler Field Name |
| I_ImpctMgmtFieldNameStdVH | view_entity | inner | COMPOSITE | Modeler Field Name |
| I_ImpctMgmtObjectListTP | view_entity | inner | TRANSACTIONAL | Impact Management Object List - TP |
| P_RespyRuleParamCDSElmntStdVH | view | from | COMPOSITE |
Fields (3)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | element_name | ImpctMgmtFieldName,ImpctMgmtSourceFieldName,ImpctMgmtTargetFieldName | 2 |
| KEY | element_name_raw | element_name | 1 |
| is_key | ImpctMgmtIsKeyFld,ImpctMgmtSourceIsKeyFld,ImpctMgmtTargetIsKeyField | 2 |
//@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
}
where
stob.as4local = 'A'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"DDCDS_ENTITY_ELEMENTS_LIST",
"DD02B",
"DD04T",
"DDDDLSRC03NT",
"DDFIELDANNO",
"TADIR"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/