ARS_V_API_VERSION_APIS

DDL: ARS_V_API_VERSION_APIS SQL: ARS_V_APIV_APIS Type: view Package: S_ARS_API_VERSIONS

API Release: API Objects + Contracts

ARS_V_API_VERSION_APIS is a CDS View that provides data about "API Release: API Objects + Contracts" in SAP S/4HANA. It reads from 7 data sources and exposes 9 fields with key fields object_type, object_name, object_name, object_name, object_name. Part of development package S_ARS_API_VERSIONS.

Data Sources (7)

SourceAliasJoin Type
ars_w_api_state api inner
ars_w_api_state api left_outer
ARS_V_EXTENSION_OBJECTS extension_object union
ARS_V_CUSTOM_EXTENSION_OBJECTS extension_object union
I_Cfd_Registry_Objects registry from
I_Cfd_Registry_Objects registry union
scr_sw_comp_relations scr_sw_comp_relations union

Annotations (5)

NameValueLevelField
AbapCatalog.sqlViewName ARS_V_APIV_APIS view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_ALLOWED view
EndUserText.label API Release: API Objects + Contracts view

Fields (9)

KeyFieldSource TableSource FieldDescription
KEY object_type ars_w_api_state object_type
KEY object_name ars_w_api_state object_name
KEY object_name I_Cfd_Registry_Objects tadir_obj_name
object_type
KEY object_name ARS_V_CUSTOM_EXTENSION_OBJECTS object_name
object_type
KEY object_name ARS_V_CUSTOM_EXTENSION_OBJECTS object_name
KEY object_name object_name
is_extension
@AbapCatalog.sqlViewName: 'ARS_V_APIV_APIS'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_ALLOWED
@EndUserText.label: 'API Release: API Objects + Contracts'
define view ARS_V_API_VERSION_APIS
  //(a) objects released as stable APIs

  as select distinct from ars_w_api_state as api
{
  key api.object_type,
  key api.object_name,
  key api.compatibility_contract,
      cast(' ' as abap_boolean) as is_extension
}
where
     api.release_state = 'RELEASED'
  or api.release_state = 'RELEASED_WITH_FEATURE_TOGGLE'
  or api.release_state = 'DEPRECATED'
  or api.release_state = 'NOT_TO_BE_RELEASED_STABLE'
//(b) objects released for C0 and Use in Key User Apps

union select from I_Cfd_Registry_Objects as registry
{
  key registry.tadir_object              as object_type,
  key registry.tadir_obj_name            as object_name,
  key cast('C0' as ars_release_contract) as compatibility_contract,
      cast(' ' as abap_boolean)          as is_extension
}
//(c) extensions of objects released as stable APIs

union select from ARS_V_EXTENSION_OBJECTS as extension_object
  inner join      ars_w_api_state         as api on  api.object_type = extension_object.core_object_type
                                                 and api.object_name = extension_object.core_object_name
{
  key extension_object.object_type,
  key extension_object.object_name,
  key api.compatibility_contract,
      cast('X' as abap_boolean) as is_extension
}
where
     api.release_state = 'RELEASED'
  or api.release_state = 'RELEASED_WITH_FEATURE_TOGGLE'
  or api.release_state = 'DEPRECATED'
  or api.release_state = 'NOT_TO_BE_RELEASED_STABLE'
//(d) customs extensions of foreign objects which might get released for C1 in the future

union select from ARS_V_CUSTOM_EXTENSION_OBJECTS as extension_object
  left outer join ars_w_api_state                as api on  api.object_type            = extension_object.core_object_type
                                                        and api.object_name            = extension_object.core_object_name
                                                        and api.compatibility_contract = 'C1'
{
  key extension_object.object_type,
  key extension_object.object_name,
  key cast('C1' as ars_release_contract) as compatibility_contract,
      cast('X' as abap_boolean)          as is_extension
}
where
          extension_object.core_object_coupling is null
  and     extension_object.is_c1_release_allowed  =  'X'
  and(
          api.release_state                       is null
    or(
          api.release_state                       <> 'RELEASED'
      and api.release_state                       <> 'RELEASED_WITH_FEATURE_TOGGLE'
      and api.release_state                       <> 'DEPRECATED'
      and api.release_state                       <> 'NOT_TO_BE_RELEASED_STABLE'
    )
  )
// (e) software component relations (contract C1 is a dummy here)

union select from scr_sw_comp_relations
{
  key object_type,
  key object_name,
  key cast('C1' as ars_release_contract) as compatibility_contract,
      cast(' ' as abap_boolean)          as is_extension
}