@AbapCatalog.sqlViewName: 'CDSVIEWALL'
@EndUserText.label: 'All CDS Views with Analytic/Non-Analytic categorization'
@ObjectModel.usageType.serviceQuality: #P
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE
define view Cds_View_All
as select from ddddlsrc
inner join ddldependency
on ddddlsrc.ddlname = ddldependency.ddlname
and ddddlsrc.as4local = 'A' and ddldependency.state = 'A' and ddldependency.objecttype = 'STOB'
left outer join Public_Cds_View_Type
on Public_Cds_View_Type.CDSName = ddldependency.objectname
inner join Cds_Sql_View
on ddddlsrc.ddlname = Cds_Sql_View.DDLSourceName
left outer join Cds_View_Annotation
on ddldependency.objectname = Cds_View_Annotation.CDSName
and Cds_View_Annotation.AnnotationName = 'ANALYTICS.QUERY' and Cds_View_Annotation.AnnotationValue = 'true'
left outer join tadir
on tadir.object = 'DDLS' and tadir.obj_name = ddddlsrc.ddlname
left outer join ARS_APIS_RELEASED_C1_OR_GROUPS as ReleasedViews
on ddddlsrc.ddlname = ReleasedViews.tadir_obj_name and ReleasedViews.tadir_object = 'DDLS'
// DD02B displays name of the CDS view in the raw camel case format.
left outer join dd02b
on dd02b.strucobjn = Cds_Sql_View.DDLSourceName and dd02b.as4local = 'A'
association [1..*] to Cds_Application_Component as _CdsApplComp on $projection.DDLSourceName = _CdsApplComp.ObjectName
association [0..*] to vdm_browsertag as _CdsBrowserTag on $projection.DDLSourceName = _CdsBrowserTag.ddlsourcename
association [1..*] to Cds_Tag_Count as _CdsTagCount on $projection.DDLSourceName = _CdsTagCount.DDLSourceName
association [1..*] to Cds_Favorite as _CdsFavorite on $projection.DDLSourceName = _CdsFavorite.DDLSourceName
association [1..*] to Dictionary_Definition as _CdsDefinition on $projection.CDSName = _CdsDefinition.ObjectName
association [0..*] to Cds_View_Parameter as _CdsViewParameter on $projection.CDSName = _CdsViewParameter.CDSName
association [0..*] to Cds_View_Annotation as _CdsViewAnnotation on $projection.CDSName = _CdsViewAnnotation.CDSName
association [1..*] to Cds_View_Crossreference as _CdsViewCrossreference on $projection.SQLViewName = _CdsViewCrossreference.SQLViewName
association [0..*] to Cds_View_Text as _Text on $projection.DDLSourceName = _Text.DDLSourceName
association [0..*] to Cds_Editors_Text as _EditorText on $projection.CDSOrigin = _EditorText.CDSOrigin
{
key ddddlsrc.ddlname as DDLSourceName,
// Raw Text representation of CDS View Name. If text is null, use DDLSourceName key.
coalesce( dd02b.strucobjn_raw, Cds_Sql_View.DDLSourceName ) as DDLSourceNameText,
ddldependency.objectname as CDSName,
Cds_Sql_View.SQLViewName as SQLViewName,
tadir.devclass as CDSViewPackage,
tadir.srcsystem as CDSViewSourceSystem,
cast(ddddlsrc.source_origin as abap.char( 10 )) as CDSOrigin,
case
when ( ReleasedViews.state is not null ) then 1 //Released
else 0 //Not released
end as CDSReleaseStatus,
case when Cds_View_Annotation.AnnotationValue = 'true'
then 1 //Analytic Query
else 2 //Non-Analytic Query
end as CDSType,
case when Public_Cds_View_Type.CDSName is not null
then Public_Cds_View_Type.CdsViewType
else 'NA' //if the VDM view type is not maintained it is marked as NA(Undefined)
end as CdsViewType,
_CdsApplComp,
_CdsBrowserTag,
_CdsTagCount,
_CdsFavorite,
_CdsDefinition,
_CdsViewParameter,
_CdsViewAnnotation,
_CdsViewCrossreference,
_Text,
_EditorText
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"ARS_APIS_RELEASED_C1_OR_GROUPS",
"CDS_SQL_VIEW",
"CDS_VIEW_ANNOTATION",
"PUBLIC_CDS_VIEW_TYPE",
"DD02B",
"DDDDLSRC",
"DDLDEPENDENCY",
"TADIR"
],
"ASSOCIATED":
[
"CDS_APPLICATION_COMPONENT",
"CDS_EDITORS_TEXT",
"CDS_FAVORITE",
"CDS_TAG_COUNT",
"CDS_VIEW_ANNOTATION",
"CDS_VIEW_CROSSREFERENCE",
"CDS_VIEW_PARAMETER",
"CDS_VIEW_TEXT",
"DICTIONARY_DEFINITION",
"VDM_BROWSERTAG"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/