CSN_EXPOSURE_CDS_DEFAULT_FT

DDL: CSN_EXPOSURE_CDS_DEFAULT_FT SQL: CSNEXPCDSDEFFT Type: view

CSN Entities with feature flag

CSN_EXPOSURE_CDS_DEFAULT_FT is a CDS View that provides data about "CSN Entities with feature flag" in SAP S/4HANA. It reads from 17 data sources and exposes 22 fields with key field EntityName. It has 4 associations to related views.

Data Sources (17)

SourceAliasJoin Type
ddheadanno annoExtr left_outer
ddheadanno annoMP left_outer
SADL_GW_DDLA_AnnotationEnum annoMPMap left_outer
CSN_EXPOSURE_CDS_ARS_APIS_FT api_state inner
CSN_EXPOSURE_CDS_ARS_APIS_FT api_state_c0 left_outer
CSN_EXPOSURE_CDS_ARS_APIS_FT api_state_c1 left_outer
CSN_EXPOSURE_CDS_ARS_APIS_FT api_state_c2 left_outer
df14l appl_comps left_outer
ddldependency dep inner
dd03nd elements left_outer
ddheadanno header_annos left_outer
dd02bnd node_info inner
DDCDS_USED_SESSION_VARIABLE session_var inner
ddddlsrc src inner
dd02b stob from
tadir tadir inner
tdevc tdevc left_outer

Parameters (1)

NameTypeDefault
P_Language abap.lang

Associations (4)

CardinalityTargetAliasCondition
[0..*] SADL_GW_DDLA_AnnotationEnumT _annoMPText _annoMPText.AnnotationKey = 'OBJECTMODEL.MODELINGPATTERN' and _annoMPText.AnnotationEnumKey = annoMPMap.AnnotationEnumKey
[0..*] df14t _ac_text _ac_text.fctr_id = appl_comps.fctr_id and _ac_text.as4local = 'A' and _ac_text.addon = ''
[0..*] ddddlsrc02bt _label_text _label_text.ddlname = dep.ddlname and _label_text.strucobjn = stob.strucobjn and _label_text.as4local = stob.as4local
[0..*] tdevct _tdevct _tdevct.devclass = tadir.devclass

Annotations (8)

NameValueLevelField
AbapCatalog.sqlViewName CSNEXPCDSDEFFT view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label CSN Entities with feature flag view
Search.searchable true view
EnterpriseSearch.enabled true view
UI.headerInfo.title.value ENTITYNAME view
Metadata.allowExtensions true view

Fields (22)

KeyFieldSource TableSource FieldDescription
KEY EntityName dd02b strucobjn_raw Entity Name
EntityLabel Entity Label
ReleaseContract CSN_EXPOSURE_CDS_ARS_APIS_FT compatibility_contract Release Contract
ReleaseState CSN_EXPOSURE_CDS_ARS_APIS_FT release_state Release State
ReleaseContractMax
ReleaseStateMax
ReleaseStateC0 CSN_EXPOSURE_CDS_ARS_APIS_FT release_state
ReleaseContractC0 CSN_EXPOSURE_CDS_ARS_APIS_FT compatibility_contract
ReleaseStateC1 CSN_EXPOSURE_CDS_ARS_APIS_FT release_state
ReleaseContractC1 CSN_EXPOSURE_CDS_ARS_APIS_FT compatibility_contract
ReleaseStateC2 CSN_EXPOSURE_CDS_ARS_APIS_FT release_state
ReleaseContractC2 CSN_EXPOSURE_CDS_ARS_APIS_FT compatibility_contract
ModelingPattern SADL_GW_DDLA_AnnotationEnum AnnotationEnumKey Modeling Pattern
ModelingPatternDescription Modeling Pattern Description
AnalyticsDataExtractable ddheadanno value Data Extraction Enabled
HeaderAnnotationName ddheadanno name Header Annotation Name
HeaderAnnotationValue ddheadanno value Header Annotation Value
ApplicationComponent df14l ps_posid Application Component
ApplicationComponentText Application Component Description
Field dd03nd fieldname Field
SoftwareComponent tdevc dlvunit Software Component
ComponentText Software Component Description
@AbapCatalog.sqlViewName: 'CSNEXPCDSDEFFT'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'CSN Entities with feature flag'
@Search.searchable: true
@EnterpriseSearch.enabled: true
@UI.headerInfo.title: {value: 'ENTITYNAME'}
@ObjectModel.semanticKey: ['ENTITYNAME']
@Metadata.allowExtensions: true
define view CSN_EXPOSURE_CDS_DEFAULT_FT
  with parameters
    @Environment.systemField : #SYSTEM_LANGUAGE
    @Consumption.hidden : true
    P_Language : abap.lang
  as select from    dd02b                        as stob

    inner join      ddldependency                as dep          on  dep.objectname = stob.strucobjn
                                                                 and dep.state      = stob.as4local
                                                                 and dep.objecttype = 'STOB'

  -- Has parameters
    inner join      dd02bnd                      as node_info    on  node_info.strucobjn = stob.strucobjn
                                                                 and node_info.nodename  = '.NODE1'
                                                                 and node_info.as4local  = stob.as4local
  -- Session variables
    inner join      DDCDS_USED_SESSION_VARIABLE  as session_var  on  session_var.strucobjn = stob.strucobjn
                                                                 and session_var.nodename  = '.NODE1'
                                                                 and session_var.as4local  = stob.as4local

  --tadir
    inner join      tadir                        as tadir        on  tadir.pgmid    = 'R3TR'
                                                                 and tadir.object   = 'STOB'
                                                                 and tadir.obj_name = stob.strucobjn


    inner join      ddddlsrc                     as src          on  src.ddlname  = dep.ddlname
                                                                 and src.as4local = dep.state

    inner join      CSN_EXPOSURE_CDS_ARS_APIS_FT as api_state    on  stob.strucobjn            = api_state.sub_object_name
                                                                 and api_state.sub_object_type = 'CDS_STOB'

    left outer join CSN_EXPOSURE_CDS_ARS_APIS_FT as api_state_c0 on  stob.strucobjn                      = api_state_c0.sub_object_name
                                                                 and api_state_c0.sub_object_type        = 'CDS_STOB'
                                                                 and api_state_c0.compatibility_contract = 'C0'

    left outer join CSN_EXPOSURE_CDS_ARS_APIS_FT as api_state_c1 on  stob.strucobjn                      = api_state_c1.sub_object_name
                                                                 and api_state_c1.sub_object_type        = 'CDS_STOB'
                                                                 and api_state_c1.compatibility_contract = 'C1'

    left outer join CSN_EXPOSURE_CDS_ARS_APIS_FT as api_state_c2 on  stob.strucobjn                      = api_state_c2.sub_object_name
                                                                 and api_state_c2.sub_object_type        = 'CDS_STOB'
                                                                 and api_state_c2.compatibility_contract = 'C2'

    left outer join ddheadanno                   as annoMP       on stob.strucobjn = annoMP.strucobjn
                                                                 and(
                                                                   annoMP.name     = 'OBJECTMODEL.MODELINGPATTERN'
                                                                   or annoMP.name  = 'OBJECTMODEL.MODELINGPATTERN$1$'
                                                                 )

    left outer join ddheadanno                    as annoExtr     on stob.strucobjn = annoExtr.strucobjn
                                                                  and(
                                                                    annoExtr.name   = 'ANALYTICS.DATAEXTRACTION.ENABLED'
                                                                  )

    left outer join SADL_GW_DDLA_AnnotationEnum  as annoMPMap    on annoMP.value = annoMPMap.AnnotationEnumKeyRaw

    left outer join ddheadanno                   as header_annos on stob.strucobjn = header_annos.strucobjn

    left outer join tdevc                        as tdevc        on tdevc.devclass = tadir.devclass

    left outer join df14l                        as appl_comps   on appl_comps.fctr_id = tdevc.component

    left outer join dd03nd                       as elements     on  elements.strucobjn = stob.strucobjn
                                                                 and elements.as4local  = stob.as4local
                                                                 and elements.nodename  = '.NODE1'

  association [0..*] to SADL_GW_DDLA_AnnotationEnumT as _annoMPText on  _annoMPText.AnnotationKey     = 'OBJECTMODEL.MODELINGPATTERN'
                                                                    and _annoMPText.AnnotationEnumKey = annoMPMap.AnnotationEnumKey

  association [0..*] to df14t                        as _ac_text    on  _ac_text.fctr_id  = appl_comps.fctr_id
                                                                    and _ac_text.as4local = 'A'
                                                                    and _ac_text.addon    = ''

  association [0..*] to ddddlsrc02bt                 as _label_text on  _label_text.ddlname   = dep.ddlname
                                                                    and _label_text.strucobjn = stob.strucobjn
                                                                    and _label_text.as4local  = stob.as4local

  association [0..*] to tdevct                       as _tdevct     on  _tdevct.devclass = tadir.devclass

{
      @EndUserText.label: 'Entity Name'
      @Search.defaultSearchElement: true
      @ObjectModel.sort.enabled: true
      @UI.hidden: true
      @EnterpriseSearch.defaultValueSuggestElement: true
      @Search.ranking: #HIGH
  key stob.strucobjn_raw                                                                                                                     as EntityName,

      @EndUserText.label: 'Entity Label'
      @Search.defaultSearchElement: true
      @ObjectModel.sort.enabled: true
      @UI.identification: [{position: 1}]
      @EnterpriseSearch.defaultValueSuggestElement: true
      @Search.ranking: #HIGH
      _label_text[1: ddlanguage = $parameters.P_Language].ddtext                                                                             as EntityLabel,

      @EndUserText.label: 'Release Contract'
      @ObjectModel.sort.enabled: true
      @EnterpriseSearch.filteringFacet.default: true
      api_state.compatibility_contract                                                                                                       as ReleaseContract,
      @EndUserText.label: 'Release State'
      @ObjectModel.sort.enabled: true
      api_state.release_state                                                                                                                as ReleaseState,
      @UI.identification: [{position: 2}]
      coalesce( api_state_c2.compatibility_contract, coalesce ( api_state_c1.compatibility_contract, api_state_c0.compatibility_contract ) ) as ReleaseContractMax,
      @UI.identification: [{position: 3}]
      coalesce( api_state_c2.release_state, coalesce ( api_state_c1.release_state, api_state_c0.release_state ) )                            as ReleaseStateMax,
      @UI.hidden: true
      api_state_c0.release_state                                                                                                             as ReleaseStateC0,
      @UI.hidden: true
      api_state_c0.compatibility_contract                                                                                                    as ReleaseContractC0,
      @UI.hidden: true
      api_state_c1.release_state                                                                                                             as ReleaseStateC1,
      @UI.hidden: true
      api_state_c1.compatibility_contract                                                                                                    as ReleaseContractC1,
      @UI.hidden: true
      api_state_c2.release_state                                                                                                             as ReleaseStateC2,
      @UI.hidden: true
      api_state_c2.compatibility_contract                                                                                                    as ReleaseContractC2,

      @EndUserText.label: 'Modeling Pattern'
      @Search.defaultSearchElement: true
      @ObjectModel.sort.enabled: true
      @UI.identification: [{position: 4}]
      @ObjectModel.text.element: ['MODELINGPATTERNDESCRIPTION']
      @Search.ranking: #HIGH
      annoMPMap.AnnotationEnumKey                                                                                                            as ModelingPattern,

      @UI.hidden: true
      @Search.defaultSearchElement: true
      @EndUserText.label: 'Modeling Pattern Description'
      @Search.ranking: #HIGH
      @EnterpriseSearch.filteringFacet.default: true
      _annoMPText[1: Language = $parameters.P_Language].Description                                                                          as ModelingPatternDescription,

      @EndUserText.label: 'Data Extraction Enabled'
      // @Search.defaultSearchElement: true

      @ObjectModel.sort.enabled: true
      @UI.identification: [{position: 13}]
      // @EnterpriseSearch.filteringFacet.default: true

      annoExtr.value                                                                                                                         as AnalyticsDataExtractable,

      @EndUserText.label: 'Header Annotation Name'
      @Search.defaultSearchElement: true
      @EnterpriseSearch.filteringAttribute.default: true
      @Search.ranking: #MEDIUM
      header_annos.name                                                                                                                      as HeaderAnnotationName,
      @EnterpriseSearch.filteringAttribute.default: true
      @EndUserText.label: 'Header Annotation Value'
      header_annos.value                                                                                                                     as HeaderAnnotationValue,

      @UI.identification: [{position: 5}]
      @EnterpriseSearch.filteringFacet.default: true
      @EndUserText.label: 'Application Component'
      appl_comps.ps_posid                                                                                                                    as ApplicationComponent,

      @UI.identification: [{position: 7}]
      @EndUserText.label: 'Application Component Description'
      _ac_text[1: langu = $parameters.P_Language].name                                                                                       as ApplicationComponentText,
      @EndUserText.label: 'Field'
      @Search.defaultSearchElement: true
      @Search.ranking: #MEDIUM
      elements.fieldname                                                                                                                     as Field,
      @UI.identification: [{position: 6}]
      @EnterpriseSearch.filteringFacet.default: true
      @EndUserText.label: 'Software Component'
      tdevc.dlvunit                                                                                                                          as SoftwareComponent,

      @EndUserText.label: 'Software Component Description'
      @UI.identification: [{position: 10}]
      _tdevct[1: spras = $parameters.P_Language].ctext                                                                                       as ComponentText
}
where
       stob.as4local   = 'A'
  and(
       src.source_type = 'V' // DDIC-based view

    or src.source_type = 'W' // View entity

    or src.source_type = 'P' // Projection view

    or src.source_type = 'A' // Abstract entity

    or src.source_type = 'Q' // Custom entity

    or src.source_type = 'H' // Hierarchy

  )
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"CSN_EXPOSURE_CDS_ARS_APIS_FT",
"DDCDS_USED_SESSION_VARIABLE",
"SADL_GW_DDLA_ANNOTATIONENUM",
"SADL_GW_DDLA_ANNOTATIONENUMT",
"DD02B",
"DD02BND",
"DD03ND",
"DDDDLSRC",
"DDDDLSRC02BT",
"DDHEADANNO",
"DDLDEPENDENCY",
"DF14L",
"DF14T",
"TADIR",
"TDEVC",
"TDEVCT"
],
"ASSOCIATED":
[
"SADL_GW_DDLA_ANNOTATIONENUMT",
"DDDDLSRC02BT",
"DF14T",
"TDEVCT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/