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 6 data sources and exposes 8 fields with key fields object_type, object_name, object_name, object_name, object_name.
@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.is_decoupled_extension = 'X'
and 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'
)
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"ARS_V_CUSTOM_EXTENSION_OBJECTS",
"ARS_V_EXTENSION_OBJECTS",
"I_CFD_REGISTRY_OBJECTS",
"ARS_W_API_STATE"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/