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.
@AbapCatalog.sqlViewName: 'ARS_V_APIV_APIS'
@AbapCatalog.compiler.compareFilter: true@AbapCatalog.preserveKey: true@AccessControl.authorizationCheck: #NOT_ALLOWED@EndUserText.label: 'API Release: API Objects + Contracts'
defineview ARS_V_API_VERSION_APIS
//(a) objects released as stable APIs
asselectdistinctfrom 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 inKey User Apps
unionselectfrom I_Cfd_Registry_Objects as registry
{
key registry.tadir_object as object_type,
key registry.tadir_obj_name as object_name,
keycast('C0' as ars_release_contract) as compatibility_contract,
cast(' ' as abap_boolean) as is_extension
}
//(c) extensions of objects released as stable APIs
unionselectfrom ARS_V_EXTENSION_OBJECTS as extension_object
innerjoin 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
unionselectfrom ARS_V_CUSTOM_EXTENSION_OBJECTS as extension_object
leftouterjoin 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,
keycast('C1' as ars_release_contract) as compatibility_contract,
cast('X' as abap_boolean) as is_extension
}
where
extension_object.core_object_coupling isnulland extension_object.is_c1_release_allowed = 'X'
and(
api.release_state isnullor(
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)
unionselectfrom scr_sw_comp_relations
{
key object_type,
key object_name,
keycast('C1' as ars_release_contract) as compatibility_contract,
cast(' ' as abap_boolean) as is_extension
}